100 likes | 227 Views
Software Engineering (CSE-3513) Lecture-4. Instructor: Sazid Zaman Khan Lecturer, Department of Computer Science and Engineering, IIUC. Incremental model.
E N D
Software Engineering (CSE-3513)Lecture-4 Instructor: SazidZaman Khan Lecturer, Department of Computer Science and Engineering, IIUC
Incremental model • In an incremental model, customers identify in outline, the services to be provided by the system. They identify which of the services are most important and which are least important for them. A number of delivery increments are then defined, with each increment providing a sub-set of the system functionality. • Once the system increments are specified, the requirements for the services to be delivered in the first increment are defined in detail and that increment is developed. • Once an increment is completed and delivered, customers can put that into service. They can then determine their requirements for later increments.
Incremental model Assign requirement to increments Define outline requirements Design System Validate increment Integrate increment Develop increment Validate system System incomplete Final system (one increment) Figure-1: Incremental model (Sommerville-8th edition- Fig-4.4-96P)
Advantages of incremental model • Customers do not have to wait until the entire system is delivered before they can gain value from it. • Customers can use early increment as prototypes and gain experience that informs their requirements for later system increments. • There is a lower risk of overall project failure. • As the highest priority services are delivered first and later increments are integrate with them, it is inevitable that the most important services receive the most testing.
Disadvantages of incremental model • Increments should be relatively small. • It can be hard to map customer’s requirements onto increments of the right size. • It can be hard to identify common facilities required by all increments.
Spiral development • In this model, software process is represented as a spiral, each loop in the spiral represents a phase of the software process. Thus, the innermost loop might be considered with system feasibility, the next loop requirements definition, next loop system design and so on.
Spiral development • Each loop in the spiral is split into four sectors: • Objective setting: Specific objective, constraints on the process and the product are identified, detail management plan is drawn up. • Risk assessment and reduction: For each of the identified project risks, a detailed analysis is carried out. Steps are taken to reduce the risk.
Spiral development • Development and Validation: After risk evaluation, a development model for the system is chosen. For example, if user interface risks are dominant, an appropriate development model might be evolutionary prototyping. • Planning: The project is reviewed and a decision is made whether to continue with a further loop of the spiral. If so, plans are drawn for next phase of project.
Spiral development • The main difference between the spiral and other software process models is the explicit recognition of risk in the spiral model. Informally, something that can go wrong. For example, if the intention is to use a new programming language, a risk is that available compilers are unrealiable.
Spiral development • Spiral development-Figure- 4.5 (Sommerville 8th edition-98P).