Академический Документы
Профессиональный Документы
Культура Документы
Software engineering
The economies of ALL developed nations are dependent on software More and more systems are software controlled Software engineering is concerned with theories, methods and tools for professional software development
Software costs
Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware cost Software costs more to maintain than it does to develop. For systems with a long life, maintenance costs may be several times development costs Software engineering is concerned with cost-effective software development
What is software?
Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market Software products may be
Generic - developed to be sold to a range of different customers Bespoke (custom) - developed for a single customer according to their specification
Dependability
Software must be trustworthy;
Efficiency
Software should not make wasteful use of system resources;
Acceptability
Software must accepted by the users for which it was designed. This means it must be understandable, usable and compatible with other systems.
What is the difference between software engineering and computer science? Computer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software Computer science theories are currently insufficient to act as a complete underpinning for software engineering
What is the difference between software engineering and system engineering? System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this process System engineers are involved in system specification, architectural design, integration and deployment
Waterfall model
Requ i em en ts r defi n i tion System an d software design Im pl em ention ta an d u n i t testin g In teg ration an d system testi n g Operation an d m ai n ten an ce
Process iteration
System requirements ALWAYS evolve in the course of a project so process iteration where earlier stages are reworked is always part of the process for large systems. Iteration can be applied to any of the generic process models. Two (related) approaches
Incremental delivery; Spiral development.
Incremental delivery
Rather than deliver the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality. User requirements are prioritised and the highest priority requirements are included in early increments. Once the development of an increment is started, the requirements are frozen though requirements for later increments
Incremental development
Defi n e ou tl i n e r equ i r em en ts
Dev el op sy stem i n cr en t em
Va l i da te i n cr en t em
I n teg rate i n cr en t em
Spiral development
Process is represented as a spiral rather than as a sequence of activities with backtracking. Each loop in the spiral represents a phase in the process. No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required. Risks are explicitly assessed and
Prototype 3
Product design
Plan ne xt phase
L ocae t er r r o
Desi gn er or epa i r r r
Repa i r er or r
Re-test progra m
Application types
Stand-alone applications
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.
Application types
Batch processing systems
These are business systems that are designed to process data in large batches. They process large numbers of individual inputs to create corresponding outputs.
Entertainment systems
These are systems that are primarily for personal use and which are intended to entertain the user.
Application types
Data collection systems
These are systems that collect data from their environment using a set of sensors and send that data to other systems for processing.
Systems of systems
These are systems that are composed of a number of other software systems.