Chapter 1 terms
the dominant approach for constructing web-based systems. When building these systems, you think about how you can assemble them from pre-existing software components and systems.
Software reuse
independent functionality and which may be used by other services in the system.
Utility services that provide basic application
Web-based systems are complex distributed systems but the fundamental principles of software engineering discussed previously are as applicable to them as they are to any other types of system.
web based software engineering
such as email, conferencing, photo sharing etc. and access to specific educational content such as scientific films or historical resources. Configuration services that are used
Application services that provide specific applications
The Code contains eight Principles related to the behaviour of and decisions made by professional software engineers, including practitioners, educators, managers, supervisors and policy makers, as well as trainees and students of the profession.
ACM/IEEE
These are business systems that are designed to process data in large batches. They process large numbers of individual inputs to create corresponding outputs.
Batch processing systems
Engineers should not misrepresent their level of competence. They should not knowingly accept work which is outwith their competence.
Competence
Software engineers should not use their technical skills to misuse other people's computers. Computer misuse ranges from relatively trivial (game playing on an employer's machine, say) to extremely serious (dissemination of viruses).
Computer misuse
Engineers should normally respect the confidentiality of their employers or clients irrespective of whether or not a formal confidentiality agreement has been signed.
Confidentiality
that are used to adapt the environment with a specific set of application services and do define how services are shared between students, teachers and their parents.
Configuration services
Software that is commissioned by a specific customer to meet their own needs. Examples - embedded control systems, air traffic control software, traffic monitoring systems. The specification of what the software should do is owned by the customer for the software and they make decisions on software changes that are required.
Customized products
These are systems that collect data from their environment using a set of sensors and send that data to other systems for processing.
Data collection systems
These are software control systems that control and manage hardware devices. Numerically, there are probably more embedded systems than any other type of system.
Embedded control systems
Using appropriate theories and methods to solve problems bearing in mind organizational and financial constraints.
Engineering discipline
These are systems that are primarily for personal use and which are intended to entertain the user.
Entertainment systems
Maintainability, Dependability and Security, Efficiency, Adaptability
Essential Attributes of good software
Heterogeneity Business and social change Security and trust scale
General issues that affect software
Stand-alone systems that are marketed and sold to any customer who wishes to buy them. Examples - PC software such as graphics programs, project management tools; CAD software; software for specific markets such as appointments systems for dentists. The specification of what the software should do is owned by the software developer and decisions on software change are made by the developer.
Generic Products
Web-based systems should be developed and delivered incrementally. It is now generally recognized that it is impractical to specify all the requirements for such systems in advance.
Incremental and agile development
are services which are simply accessed through a browser interface and which operate independently of other services. Information can only be shared with other services through explicit user actions such as copy and paste; re-authentication may be required for each independent service.
Independent services
are services which offer an API (application programming interface) and which can be accessed by other services through that API. Direct service-to-service communication is therefore possible.
Integrated services
Engineers should be aware of local laws governing the use of intellectual property such as patents, copyright, etc. They should be careful to ensure that the intellectual property of employers and clients is protected.
Intellectual property rights
Applications that execute on a remote computer and are accessed by users from their own PCs or terminals. These include web applications such as e-commerce applications.
Interactive transaction-based applications
Interface development technologies such as AJAX and HTML5 have emerged that support the creation of rich interfaces within a web browser.
Rich interfaces
Software may be implemented using service-oriented software engineering, where the software components are stand-alone web services.
Service-oriented systems
where the software is modified to reflect changing customer and market requirements.
Software evolution
where the software is designed and programmed.
Software development
an engineering discipline that is concerned with all aspects of software production
Software engineering
where customers and engineers define the software that is to be produced and the constraints on its operation.
Software specification
where the software is checked to ensure that it is what the customer requires.
Software validation
These are application systems that run on a local computer, such as a PC. They include all necessary functionality and do not need to be connected to a network.
Stand-alone applications
These are systems that are developed by scientists and engineers to model physical processes or situations, which include many, separate, interacting objects.
Systems for modeling and simulation
These are systems that are composed of a number of other software systems.
Systems of systems
While all software projects have to be professionally managed and developed, different techniques are appropriate for different types of system. For example, games should always be developed using a series of prototypes whereas safety critical control systems require a complete and analyzable specification to be developed. You can't, therefore, say that one method is better than another.
What are the best software engineering techniques and methods?
Computer programs and associated documentation. Software products may be developed for a particular customer or may be developed for a general market.
What is software?
Good software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable.
attributes of good software
Roughly 60% of software costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs.
costs of software engineering?
Computer science focuses on theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software.
difference between software engineering and computer science
System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this more general process.
difference between software engineering and system engineering
The web has led to the availability of software services and the possibility of developing highly distributed service-based systems. Web-based systems development has led to important advances in programming languages and software reuse.
differences has the web made to software engineering
a framework in which a set of general-purpose and specially designed tools for learning may be embedded plus a set of applications that are geared to the needs of the learners using the system.
digital learning environment
Software specification, software development, software validation and software evolution.
fundamental software engineering activities
The Web is now a platform for running application and organizations are increasingly developing web-based systems rather than local systems.
internet software engineering
Coping with increasing diversity, demands for reduced delivery times and developing trustworthy software.
key challenges facing software engineering
The system with all system components considered to be a replaceable service. This allows the system to be updated incrementally as new services become available. It also makes it possible to rapidly configure the system to create versions of the environment for different groups such as very young children who cannot read, senior students, etc.
service-oriented system