260 likes | 471 Views
المحاضرة الثانية. Software life cycle and process model. Software processes. Although there are many software processes, some fundamental activities are common to all software processes:-
E N D
Software processes • Although there are many software processes, some fundamental activities are common to all software processes:- 1. Software specification :- The functionality of the software and constraints on its operation must be defined. 2. Software design and implementation :-The software to meet the specification must be produced. 3. Software validation:-The software must be validated to ensure that it does what the customer wants. 4. Software evolution :-The software must evolve to meet changing customer needs
Generic software process models • The waterfall model • Evolutionary development • Component-based software engineering
Waterfall model phases The principal stages of the model onto fundamental development activities :- 1- Requirements analysis and definition :- 2- System and software design :- 3- Implementation and unit testing:- 4- Integration and system testing:- 5-Operation and maintenance :-
1- Requirements analysis and definition • The system’s services, constraints and goals are established by consultation with system users. They are then defined in detail and serve as a system specification
2- System and software design • The systems design process partitions the requirements to either hardware or software systems. It establishes an overall system architecture. Software design involves identifying and describing the fundamental software system abstractions and their relationships
Implementation and unit testing • During this stage, the software design is realized as a set of programs or program units. Unit testing involves verifying that each unit meets its specification.
4- Integration and system testing • The individual program units or programs are integrated and tested as a complete system to ensure that the software requirements have been met. After testing, the software system is delivered to the customer
5-Operation and maintenance • this is the longest life-cycle phase. The system is installed and put into practical use. Maintenance involves correcting errors which were not discovered in earlier stages of the life cycle, improving the implementation of system units and enhancing the system’s services as new requirements are discovered
The advantages of the waterfall model • are that documentation is produced at each phase and that it fits with other engineering process models
The disadvantages of the waterfall model • Is the difficulty of accommodating change after the process is underway .one phase has to be complete before moving on to the next phase Applicability :- Only appropriate when the requirement are well understood
Evolutionary development There are two fundamental types of evolutionary development: • 1 - Exploratory development :- Objective is to work with customers and to evolve a final system from an initial outline specification. Should start with well-understood requirements and add new features as proposed by the customer. • 2- Throw-away prototyping Objective is to understand the system requirements. Should start with poorly understood requirements to clarify what is really needed.
Evolutionary Model Advantages :- • this evolutionary approach to software development is often more effective than the waterfall approach in producing systems that meet the immediate needs of customers that can be developed incrementally.
Evolutionary Model Disadvantages :- from an engineering and management perspective, the evolutionary approach have two problems: 1- Systems are often poorly structured:- Continual change tends to corrupt the software structure 2- Systems are often poorly structured :- Continual change tends to corrupt the software
Incremental development The specifications:- 1- Define requirements 2- Design system increment 3- Assign requirements to increment 4- Develop system increment 5- Test increment
Incremental development 6- Integrate system increment 7- Validate system 8- Final system
Incremental development advantages 1- Customers do not have to wait until the entire system but use the software immediately 2- Customers can use the early increments as prototypes and gain experience that informs their requirements for later system increments 3-There is a lower risk of overall project failure. Although problems may be encountered in some increments, it is likely that will be successfully delivered to the customer 4- the highest priority services are delivered first, This means that customers are less likely to encounter software failures in the most important parts of the system
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 resolved throughout the process.
Spiral model sectors • Objective setting • Specific objectives for the phase are identified. • Risk assessment and reduction • Risks are assessed and activities put in place to reduce the key risks. • Development and validation • A development model for the system is chosen which can be any of the generic models. • Planning • The project is reviewed and the next phase of the spiral is planned.