SDLC – Models
Software Development Life Cycle Model • A framework containing the processes, activities and the tasks involved in the development, operation and maintenance of a software product spanning the life of the system from the definition of it’s requirements to the termination of it’s use (ISO/IEC 12207)
SDLC Models • • • •
Waterfall model Spiral model Prototype model Rapid application development model
Waterfall Model • Also known as ‘classic life cycle model’, ‘linear sequential model’ • This model suggests a systematic and sequential approach to software development that begins at requirements analysis and progresses through all life cycle phases sequentially
Waterfall Model (Cont’d) RA D C T I&A S
Waterfall Model (Cont’d) • Development activities carried out sequentially • Review and approval of each phase outputs • Model does not permit going back and forth • If any defect found, go back to the originating phase and start traversing sequentially all over again
Waterfall Model (Cont’d) Suitable for projects where – • Requirements are clearly defined • Small and medium term duration • Stable technology • Familiarity with the domain and development environments
Waterfall Model (Cont’d) Advantages: • Projects under control • Pre-defined outputs at every phase • Tracking changes is easy • Early identification of slippages, if any
Waterfall Model (Cont’d) Disadvantages: • In real life, customer requirements do change • Customer appraisal of completed work - not feasible always • Phases can not run concurrently
Spiral Model In a spiral model, software is developed in a series of ‘incremental’ releases The spiral model is divided in to a number of framework activities or task regions
Spiral Model (Cont’d) RA S
D
I&A
C T
Spiral Model (Cont’d) • Suitable for large projects with multi-location implementation • Each Spiral consists of a deliverable product • Feedback of each spiral is incorporated in the next spiral • Customer can start using the system after every spiral • Each Spiral consists of a waterfall model
Spiral Model (Cont’d) Advantages: • Useful for large projects • Customer requirements evolve over a period • Early availability of usable system Disadvantages: • Total blue print should be available in the beginning • Basic concepts in the underlying layer can NOT be changed
Prototype Model A prototype model is a representation of a real life situation, which can be evaluated by the user A prototype is developed based on the initial understanding of the customer requirements A visible working prototype helps customer to define the requirements
Prototype Model (Cont’d) Prototype model is used for eliciting customer requirements as well as identifying user – machine interaction Prototype model is used in product development or for developing a new application for a customer
Prototype Model (Cont’d) Advantages : • Can be used when customer is not sure about what he wants • Faster way of finalising the requirements • Useful for new technologies and domains
Disadvantage : • A prototype if used in a production environment, may lack quality or maintainability
Rapid Application Development Model RAD is a high speed adaptation of linear sequential model by using component based construction RAD enables creation of fully functional software within a very short time
RAD Model (Cont’d) Advantages : • Very short cycle time • Use of working components lead to minimum defects
Disadvantages : • Not useful for systems that can NOT be properly modularised • Fine-tuning the existing components is NOT possible