Presentation is loading. Please wait.

Presentation is loading. Please wait.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.

Similar presentations


Presentation on theme: "©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية."— Presentation transcript:

1 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية

2 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 2 Software life cycle and process model

3 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 3 Software processes l 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

4 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 4 Generic software process models l The waterfall model l Evolutionary development l Component-based software engineering

5 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 5 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 :-

6 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 6 1- Requirements analysis and definition l 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

7 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 7 2- System and software design l 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

8 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 8 Implementation and unit testing l 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.

9 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 9 4- Integration and system testing l 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

10 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 10 5-Operation and maintenance l 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

11 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 11 The advantages of the waterfall model l are that documentation is produced at each phase and that it fits with other engineering process models

12 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 12 The disadvantages of the waterfall model l 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

13 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 13 Waterfall model phases

14 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 14 Evolutionary development There are two fundamental types of evolutionary development: l 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. l 2- Throw-away prototyping Objective is to understand the system requirements. Should start with poorly understood requirements to clarify what is really needed.

15 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 15 Evolutionary Model

16 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 16 Evolutionary Model Advantages :- l 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.

17 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 17 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

18 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 18 Incremental development

19 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 19 Incremental development The specifications :- 1- Define requirements 2- Design system increment 3- Assign requirements to increment 4- Develop system increment 5- Test increment

20 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 20 Incremental development 6- Integrate system increment 7- Validate system 8- Final system

21 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 21 Incremental development

22 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 22 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

23 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 23 Spiral development

24 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 24 Spiral development l Process is represented as a spiral rather than as a sequence of activities with backtracking. l Each loop in the spiral represents a phase in the process. l No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required. l Risks are explicitly assessed and resolved throughout the process.

25 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 25 Spiral model of the software process

26 ©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 26 Spiral model sectors l Objective setting Specific objectives for the phase are identified. l Risk assessment and reduction Risks are assessed and activities put in place to reduce the key risks. l Development and validation A development model for the system is chosen which can be any of the generic models. l Planning The project is reviewed and the next phase of the spiral is planned.


Download ppt "©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية."

Similar presentations


Ads by Google