Software Development Life Cycle Models 2 Confidential Objectives Overview of Software Development Life Cycle Understanding of well known SDLC Models Guidelines to choose an appropriate SDLC Model 3 Confidential SDLC Overview & Phases (1/4) A software life cycle is the series of identifiable stages that a software product undergoes during its lifetime Phases of SDLC Feasibility (pre-development) Establishes a high-level view of the intended project and determines its goals 4 Confidential SDLC Overview & Phases (2/4) Requirements Refines project goals into defined functions and operation of the intended application. Analyzes end-user information needs. Addresses on What System should do 5 Confidential SDLC Overview & Phases (3/4) Design Describes desired features and operations in detail, including screen layouts, business rules, process diagrams, pseudocode and other documentation. Coding and Unit testing The real code is written here 6 Confidential SDLC Overview & Phases (4/4) Testing Brings all the pieces together into a special testing environment, then checks for errors, bugs and interoperability. Maintenance (post-development) Incorporation of changes, corrections, additions. 7 Confidential SDLC Models (1/3) Set of generic development activities to be used on software projects and the order in which they are applied Bring order & structure to software development Define a distinct set of activities, actions, tasks, milestones & work products required to engineer high quality software 8 Confidential SDLC Models (2/3) Some well known life cycle models are Single version model Waterfall model Waterfall model with back flow Throwaway Prototype model Iterative model Evolutionary Prototype model Spiral model 9 Confidential Analysis Design Implementation Testing Analysis Design Impln. Testing Analysis Design Impln. Testing Analysis Design Impln. Testing Scope Single version model Iterative models SDLC Models (3/3) 10 Confidential Software Development flows steadily downwards (like a waterfall) Proceeding from one phase to the next is purely in sequential manner e.g. After completion of Requirement phase only Design phase should start Waterfall Model (1/7) 11 Confidential Waterfall Model (2/7) PSU RQA HLD LLD CONSTRUCTION SYSTEM TEST ACCEPTANCE TEST PACKAGE & RELEASE OPERATIONS & MAINTENANCE Each phase pours over into the next phase. 12 Confidential Advantages Each phase has specific deliverables and review process hence easy to manage Phases are processed and completed one at a time - Ensures effective resource management Comfortable contract finalization with reference to delivery and payment schedule Waterfall Model (3/7) 13 Confidential Issues Produces working Software at later stage during the life cycle Leads to high amount of risk and uncertainty Mandates correction of identified defects in the phase where they are initiated which is difficult in practical scenario Waterfall Model (4/7) 14 Confidential It is impossible to get one phase of a software product's lifecycle "perfected" before moving on to the next phases (1) clients may not be aware of exactly what requirements they want before they see a working prototype and can comment upon it - they may change their requirements constantly, and program designers and implementers may have little control over this Waterfall Model (5/7) 15 Confidential (2) Designers may not be aware of future implementation difficulties when writing a design for an unimplemented software product. That is, it may become clear in the implementation phase that a particular area of program functionality is difficult to implement. Waterfall Model 16 Confidential Waterfall Model with back-flow (5/7) Allows correction of detected defects by going back to the appropriate phase (where the defect got introduced) Principle of Phase containment of errors: If and when errors occur, they should be detected (and corrected) as early as possible 17 Confidential PSU RQA HLD LLD CONSTRUCTION SYSTEM TEST ACCEPTANCE TEST PACKAGE & RELEASE OPERATIONS & MAINTENANCE Waterfall Model with back-flow (6/7) 18 Confidential Waterfall Model (7/7) If software requirements are stable and well understood, then waterfall model can be used 19 Confidential Prototyping Model (1/7) Suggests building a prototype before developing the actual software A prototype is a rudimentary working model of a S/W Built for demonstration purposes (Throwaway prototype) or As part of the development process (Evolutionary prototype ) 20 Confidential Requirements gathering Quick design Refine requirements Prototype evaluation Build prototype Design Development Test Maintain Customer acceptance Customer suggestions Throwaway Prototype Model (2/7) 21 Confidential Prototype gives look & feel of the future system to the client After acceptance of the prototype, the development can be done using an iterative waterfall model Throwaway Prototype Model (3/7) 22 Confidential Development of a user interface prototype Throwaway Prototype Model (4/7) 23 Confidential Advantages Easy to change Prototypes as per clients suggestion Early visibility of the prototypegives users an idea of what the final system looks like This Increases clients satisfaction and participation Throwaway Prototype Model (5/7) 24 Confidential Advantages May provide the proof of concept necessary to attract funding Time/effort spent on prototype is worth it SRS gets supplemented with prototype Experience in building prototype is carried forward to development Throwaway Prototype Model (6/7) 25 Confidential Issues Extra effort & time is required to build prototypes When to choose Prototype model If software requirements are stable, but not clear, then ThrowawayPrototype model can be used Throwaway Prototype Model (7/7) 26 Confidential Evolutionary Prototype Model (1/7) Also known as SUCCESSIVE VERSIONS model Allows Breaking a system down into several modules Delivery of modules in an incremental fashion 27 Confidential Core module is developed initially Refined by incrementally adding new functionalities Note: Each successive version of the product is a working version Evolutionary Prototype Model (2/7) 28 Confidential A A B A B C Evolutionary Prototype Model (3/7) 29 Confidential Advantages Useful when staffing is unavailable for a complete implementation Early increments can be implemented by fewer people Depending on the acceptability, more resources can be added for subsequent stages Evolutionary Prototype Model (4/7) 30 Confidential Advantages User gets an opportunity to use the partial system much before the fully developed version is released Helps in extracting requirements Core module gets tested very thoroughly (since it gets tested at the time of each release) Evolutionary Prototype Model (5/7) 31 Confidential Issues Agreement on the core product is not easy It is difficult to break down a system into functional units that can be implemented in an evolutionary way Evolutionary Prototype Model (6/7) 32 Confidential Evolutionary Prototype Model (7/7) Evolutionary prototype model is useful for implementation of large projects in incremental fashion Note : Customer needs to be agreed upon Incremental delivery 33 Confidential Spiral Model (1/10) The spiral model is an evolutionary software process model that couples The iterative nature of prototyping and The controlled and systematic aspects of the waterfall model 34 Confidential Radius indicates the cost Angle indicates the Progress Spiral Model (2/10) 1. Determine Objectives and identify alternative solutions 2. Identify and Resolve the risk 3. Develop the next level of product 4. Review and plan for the next phase 35 Confidential Four Quadrants of Spiral Model Planning Objectives, alternatives, and constraints are determined. Risk Analysis Alternative solutions and constraints are defined, and risks are identified and analyzed. Spiral Model (3/10) 36 Confidential Risk A customer not knowing exactly what he/she wants Changing expectations as project progresses Staff who are inexperienced in the problem domain or with the appropriate implementation techniques Spiral Model (4/10) 37 Confidential Engineering Actual Development and Testing happens Customer Evaluation Customer will assess the S/W and suggest changes if necessary Spiral Model (5/10) 38 Confidential Single loop spiral model represents a Waterfall model Looping around each cycle represents evolutionary model More complete version of the product gets built progressively Spiral Model (6/10) 39 Confidential Advantages High amount of Risk Analysis 1.Allows customer and developer to determine and react to risks at each evolutionary level 2.Direct consideration of risks at all levels greatly reduces problems Spiral Model (7/10) 40 Confidential Advantages S/W is produced early in life cycle Good for large, complex and mission critical projects Spiral Model (8/10) 41 Confidential Disadvantages Can be Costly model Risk analysis requires highly specific expertise Projects success is dependent on the risk analysis Spiral Model (9/10) 42 Confidential Spiral Model (10/10) Spiral model should be used If the requirements are coupled with the underlying business processes, which are going through a process of change If development is for technically challenging products 43 Confidential ETVX Model (1/3) Facilitates Process control and ensures correctness and completeness of each activities Each Phase in the development process can itself be considered a high level activity with a specific ETVX 44 Confidential ETVX Model (2/3) ENTRY CRITERIA EXIT CRITERIA TASKS VERIFICATION 45 Confidential Entry Criteria Checklist of conditions that must be satisfied before beginning the activity Tasks A set of tasks that needs to be carried out Verification A list of tasks to verify the quality of work items produced Exit Criteria A checklist of conditions that must be satisfied before each activity is completed ETVX Model (3/3) 46 Confidential Choosing a model (1/2) 47 Confidential Choosing a model (2/2) Spiral Evolutionary (Iterative) Waterfall Throw-Away & Waterfall Require ments (Lack of) Clarity (Un)Stability Risk 48 Confidential Thank You Thank You