Life Cycle Models
                                     Saranya.V
                                       AP/CSE,
Sri Vidya College of Engineering & Technology,
                                 Virudhunagar
Need for life cycle models
• Software development phase is a complex
  task.
• Break down the development process into
  phases.
Types of life cycle models
Waterfall Model
Incremental Process Models
  Incremental Model
  Rapid Application Development Model
Evolutionary Process Model
  Prototyping Model
  Spiral Model
Component-Based Process Model.
1. Waterfall Model- Royce
• Process of software designing consists of linear
  set of distinct phases.
• Stage 1: Feasibility Study
   – Choose desirable system for designing.
       •   Technical study
       •   Economic study
       •   Schedule study
       •   Operational study
       •   Motivational study
• Stage 2: Requirement Analysis and Specifications
   – Understand the exact requirements of the customer.
   – This stage produces a large document containing a description of what
     the system will do without describing bow it will be done. This
     document is known as “ Software Document Specification” (SRS).
• Stage 3:Design
   – Requirement phase to design phase
   – To create a basic structure for a given requirement.
   – Product design and detailed design procedures should be noted using
     SDD ( Software Design Description).
• Stage 4: Coding
  – Known as Implementation phase.
  – SDD is sufficient to begin coding phase.
  – Transform design specification into machine readable
    form.
  – Code generation can be done easily.
  – Design is implemented as a program module
  – Each module is tested using unit testing.
• Stage 5: Integration and System Testing
  – Modules are integrated in a planned way
  – After testing the software is delivered to the customer.
• Stage 6: Software Maintenance
   – Error correction
   – Enhancement of capabilities
   – Optimization (minima and maxima of a function)
Advantages:
• Smaller projects can be done easily
• Phase completion one at the time.
Disadvantages:
• Difficult for the customer to state all the requirements
  explicitly.
• Sequential flow is difficult to follow.
2. Incremental Process Models
2.1 Incremental Model
• Combination of linear sequential Model with
  the iterative philosophy of prototyping.
2.2 Rapid Application Development (RAD)
                    Model
• Do construction of prototypes.
• Initiate iterative development.
• Merging various structured techniques(data driven information,
  etc).
Phases of RAD:
• Business      Modeling:      regarding    business
  functionalities like information and process)
• Data Modeling: information collected from
  business modeling is refined into a set of data
  objects.
   – Attributed identified here.
• Process Modeling: data objects defined in the
  data modeling phase are transformed to
  achieve the information flow.
  – Adding, modifying, deleting.
• Application Generation: automated tools are
  used to facilitate construction of the software
• Testing and Turn Over: Reduce overall testing
  time.
Advantages:
• Adaptable to changes
• Reduce the project risk
• Use short development cycle so user can see the RAD product
  quickly.
• Giving the chance to users to review the product.
Disadvantages:
• Unknown cost of product.
• Not suitable for large scale projects.
• Not appropriate when technical risks are high.
3. Evolutionary Process Model
• Evolutionary    model     is  designed   to
  accommodate iterative development of a
  software product.
• Requirements may change in subsequent
  iterations
(But when details are not known, some product,
  functionalities and concept should be
  delivered)
Evolutionary Process Model
Steps occurs in evolutionary model
• Listening to the customer to understand the
  requirements for the software product.
• Engineering, building and modifying the product
  based on the customer requirements.
• Allowing the customer to evaluate the product .
Disadvantages:
• Not possible to develop fixed cost estimates
  and static schedules due to uncertainty.
3.1 Prototyping Models
• Provides a reduced functionality
Steps to be followed in prototyping model:
• Requirements gathering:
   – Developer and customer meet
   – Define overall objective
• Quick Design:
   – Objects Visible to user
• Building prototype:
   – Leads to construction of a prototype.
• Customer evaluation of prototype:
   – Prototype is evaluated by the customer.
• Refining prototyping:
   – Refine the requirements to develop the software.
• Engineer Product:
   – Prototype serves as a mechanism for identify software requirements.
Advantages:
• Misunderstanding between developers and
  customers can be identified.
• Confusing user services can be identified.
Disadvantages:
• designing a prototype  Quick rather than
  quality
3.2 Spiral Model
                    - Dr. Barry Boehm
• Idea of minimizing risk via the use of
  prototypes & other means is the concept of
  spiral model.
• Spiral model is a sequence of activities with
  backtracking.
  – Each loop in the spiral represents a phase in the
    process.
  – Risks are explicitly assessed and resolved
    throughout the process.
Spiral Model Sectors
• Objective setting
  – Identify the specific objective
• Risk assessment and Reduction
  – Assess the risk and Reduce the key risk
• Development and Validation
  – Choose development models and do validation
• Planning
  – The project is reviewed and the next phase of the
    spiral is planned.
The Risk Analysis task region
• This model is iterative, starting from the
  innermost point and proceeding radialy
  outwards.
• Moving outwards on the spiral means moving
  towards more complete versions of the sw
  product.
• The spiral model is divided into 4 task regions:
     •   Planning : project plan
     •   Risk analysis: identify the risk
     •   Engineering: Required Technical activities
     •   Customer evaluation :Get feedback
Iteration of Spiral Model
• 1st task region (Planning) : estimation of cost,
  schedules, get customer feedback for previous
  iteration.
• 2th task region (Evaluating) : go or no-go
  decisions
• 3th task region (Engineering) : building the
  product based on the end product.
• 4th task region (Customer Evaluation) :
  Evaluate the end product
Advantages:
• Important issues(cost estimation and schedule)     are
  discovered earlier.
• Best understanding and high quality
• Supports for dynamically changing requirements.
• Changes made in one module will not have any impact on
  another module.
Disadvantages:
•   Limiting reusability
•   Requirements and designs are not tested
•   Different for each application
•   Budget and schedule risk.
•   Route cause analysis is difficult.
4. Component Based Process Model
• Reuse of Components
• Includes:
  – Building components
  – Storing
  – Incorporate with some modifications
Identity
                 candidate
                components
                                                 Identify suitable
                                                  components
Construct nth                                    Modify
                                    Look up
 iteration of                                    Reuse
                                 components
    system                         in library



   Put new                           Extract
components                       components
  in library                      if available

                      Build
                 components
                  if available
Computer Based System
• Implemented within the organization for the
  purpose of improving the efficiency of the org.
• Identify:
  – Characteristics of the organization
                                          Identify the
  – Work systems                          successful
                                          system
  – People
  – Development methodologies.
• Complexity of the system:
  – Due to integration technology
  – Human activities
• Engineers with detailed understanding both of
  the application domain and computer
  electronics, software, human factors and
  communication are needed to provide a
  holistic approach to system development.
Model Based Development
• Models are necessary in system engineering.
• Use of models can reduce the number of
  errors in the design and thus the system,
  reduce engineering effort and preserve
  knowledge.
• Maintaining     models     with   up-to-date
  knowledge is a major problem as must
  systems are not generated from models.

Software Development Life Cycle

  • 1.
    Life Cycle Models Saranya.V AP/CSE, Sri Vidya College of Engineering & Technology, Virudhunagar
  • 2.
    Need for lifecycle models • Software development phase is a complex task. • Break down the development process into phases.
  • 4.
    Types of lifecycle models Waterfall Model Incremental Process Models Incremental Model Rapid Application Development Model Evolutionary Process Model Prototyping Model Spiral Model Component-Based Process Model.
  • 5.
    1. Waterfall Model-Royce • Process of software designing consists of linear set of distinct phases.
  • 6.
    • Stage 1:Feasibility Study – Choose desirable system for designing. • Technical study • Economic study • Schedule study • Operational study • Motivational study • Stage 2: Requirement Analysis and Specifications – Understand the exact requirements of the customer. – This stage produces a large document containing a description of what the system will do without describing bow it will be done. This document is known as “ Software Document Specification” (SRS). • Stage 3:Design – Requirement phase to design phase – To create a basic structure for a given requirement. – Product design and detailed design procedures should be noted using SDD ( Software Design Description).
  • 7.
    • Stage 4:Coding – Known as Implementation phase. – SDD is sufficient to begin coding phase. – Transform design specification into machine readable form. – Code generation can be done easily. – Design is implemented as a program module – Each module is tested using unit testing. • Stage 5: Integration and System Testing – Modules are integrated in a planned way – After testing the software is delivered to the customer.
  • 8.
    • Stage 6:Software Maintenance – Error correction – Enhancement of capabilities – Optimization (minima and maxima of a function) Advantages: • Smaller projects can be done easily • Phase completion one at the time. Disadvantages: • Difficult for the customer to state all the requirements explicitly. • Sequential flow is difficult to follow.
  • 9.
  • 10.
    2.1 Incremental Model •Combination of linear sequential Model with the iterative philosophy of prototyping.
  • 11.
    2.2 Rapid ApplicationDevelopment (RAD) Model • Do construction of prototypes. • Initiate iterative development. • Merging various structured techniques(data driven information, etc). Phases of RAD: • Business Modeling: regarding business functionalities like information and process) • Data Modeling: information collected from business modeling is refined into a set of data objects. – Attributed identified here.
  • 12.
    • Process Modeling:data objects defined in the data modeling phase are transformed to achieve the information flow. – Adding, modifying, deleting. • Application Generation: automated tools are used to facilitate construction of the software • Testing and Turn Over: Reduce overall testing time.
  • 13.
    Advantages: • Adaptable tochanges • Reduce the project risk • Use short development cycle so user can see the RAD product quickly. • Giving the chance to users to review the product. Disadvantages: • Unknown cost of product. • Not suitable for large scale projects. • Not appropriate when technical risks are high.
  • 14.
    3. Evolutionary ProcessModel • Evolutionary model is designed to accommodate iterative development of a software product. • Requirements may change in subsequent iterations (But when details are not known, some product, functionalities and concept should be delivered)
  • 15.
  • 16.
    Steps occurs inevolutionary model • Listening to the customer to understand the requirements for the software product. • Engineering, building and modifying the product based on the customer requirements. • Allowing the customer to evaluate the product . Disadvantages: • Not possible to develop fixed cost estimates and static schedules due to uncertainty.
  • 17.
    3.1 Prototyping Models •Provides a reduced functionality Steps to be followed in prototyping model: • Requirements gathering: – Developer and customer meet – Define overall objective • Quick Design: – Objects Visible to user • Building prototype: – Leads to construction of a prototype. • Customer evaluation of prototype: – Prototype is evaluated by the customer. • Refining prototyping: – Refine the requirements to develop the software. • Engineer Product: – Prototype serves as a mechanism for identify software requirements.
  • 19.
    Advantages: • Misunderstanding betweendevelopers and customers can be identified. • Confusing user services can be identified. Disadvantages: • designing a prototype  Quick rather than quality
  • 20.
    3.2 Spiral Model - Dr. Barry Boehm • Idea of minimizing risk via the use of prototypes & other means is the concept of spiral model. • Spiral model is a sequence of activities with backtracking. – Each loop in the spiral represents a phase in the process. – Risks are explicitly assessed and resolved throughout the process.
  • 21.
    Spiral Model Sectors •Objective setting – Identify the specific objective • Risk assessment and Reduction – Assess the risk and Reduce the key risk • Development and Validation – Choose development models and do validation • Planning – The project is reviewed and the next phase of the spiral is planned.
  • 23.
    The Risk Analysistask region
  • 24.
    • This modelis iterative, starting from the innermost point and proceeding radialy outwards. • Moving outwards on the spiral means moving towards more complete versions of the sw product. • The spiral model is divided into 4 task regions: • Planning : project plan • Risk analysis: identify the risk • Engineering: Required Technical activities • Customer evaluation :Get feedback
  • 25.
    Iteration of SpiralModel • 1st task region (Planning) : estimation of cost, schedules, get customer feedback for previous iteration. • 2th task region (Evaluating) : go or no-go decisions • 3th task region (Engineering) : building the product based on the end product. • 4th task region (Customer Evaluation) : Evaluate the end product
  • 26.
    Advantages: • Important issues(costestimation and schedule) are discovered earlier. • Best understanding and high quality • Supports for dynamically changing requirements. • Changes made in one module will not have any impact on another module. Disadvantages: • Limiting reusability • Requirements and designs are not tested • Different for each application • Budget and schedule risk. • Route cause analysis is difficult.
  • 27.
    4. Component BasedProcess Model • Reuse of Components • Includes: – Building components – Storing – Incorporate with some modifications
  • 28.
    Identity candidate components Identify suitable components Construct nth Modify Look up iteration of Reuse components system in library Put new Extract components components in library if available Build components if available
  • 29.
    Computer Based System •Implemented within the organization for the purpose of improving the efficiency of the org. • Identify: – Characteristics of the organization Identify the – Work systems successful system – People – Development methodologies.
  • 30.
    • Complexity ofthe system: – Due to integration technology – Human activities • Engineers with detailed understanding both of the application domain and computer electronics, software, human factors and communication are needed to provide a holistic approach to system development.
  • 31.
    Model Based Development •Models are necessary in system engineering. • Use of models can reduce the number of errors in the design and thus the system, reduce engineering effort and preserve knowledge. • Maintaining models with up-to-date knowledge is a major problem as must systems are not generated from models.