Software Life Cycle Models - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

Software Life Cycle Models

Description:

Incremental Development and Waterfall models. Figure 3. 8/28/09. 14. Mohammed Haroon Shariff ... Evolutionary Development Model. Figure 4. 8/28/09. 17. Mohammed ... – PowerPoint PPT presentation

Number of Views:281
Avg rating:3.0/5.0
Slides: 27
Provided by: goel2
Category:
Tags: cycle | life | models | software

less

Transcript and Presenter's Notes

Title: Software Life Cycle Models


1
Software Life Cycle Models
Alan M. Davis University Of Colorado
  • EEL 6887 Software Engineering Life Cycle Control
  • Presented by
  • MOHAMMED HAROON SHARIFF
  • 02/15/06

2
References
  • Software Life Cycle Models Alan M. Davis,
    University of Colorado
  • A Strategy for Comparing Alternative Software
    Development Life Cycle Models Davis, A M, E H
    Bersoff, and E R Comer, IEEE Trans. Software Eng.
  • Alternative Software Life cycle Models , in
    Aerospace Eng. Comer E
  • Software Engineering Principles and Practice
    Van Vliet
  • Capability Maturity Model for Software Mark
    C P, Bill C, Mary B C, Charles V W.
  • Lecture 2 Dr. Workman.
  • www.images.google.com

3
Overview
  • Introduction
  • Definition of a Life Cycle Model
  • Choices for a Life Cycle Model
  • Different Life Cycle Models
  • Selecting Life Cycle Models
  • Summary
  • Conclusion

4
Introduction
  • In the 1970s the first Software Life Cycle
    Model was developed by Winston Royce, it was
    called the Waterfall Model . This was used as the
    primary life cycle in the industry for over
    twenty years.
  • As time progressed increasing demands, budget
    and time constraints led to the invent of newer
    life cycles. Many other life cycle models have
    been proposed in the last two decades which claim
    to be better than the Waterfall model.
  • The new life cycles have their own way to
    develop software more rapidly, or incrementally ,
    or in a evolutionary manner, or they precede
    full-scale development with some kind of rapid
    prototype.
  • This paper gives an insight into the different
    software life cycle models that have been
    developed. It gives an approach to evaluate and
    contrast these different life cycle models, but
    emphasizes that all of them just provide another
    view to the basic software development process.

5
What is a Life Cycle Model ?
  • Definition A software life cycle model is a
    view of the activities
  • that occur during the software development
  • To elaborate on the definition a software life
    cycle model is a
  • model that helps us understand the various
    activities and characteristics
  • while developing a software. It is not an actual
    method in which one can
  • develop a software but it is a procedure which
    helps us look at the on
  • going software development . In short
  • It illustrates all the important development
    phases
  • It defines the main functions to be
    accomplished in each phase
  • Helps the management keep a track of
    development progress
  • It gives reference model to define the software
    development process

6
Choices for a Life Cycle Model
  • Using different life cycle models is just a
    different way of looking at the manner in which
    the software can be developed. There can be many
    such views in which the same software project can
    be looked at i.e.. the software can be modeled
    using various life cycles such as the waterfall
    model, incremental development, evolutionary
    development, prototyping, spiral, etc
  • Although each life cycle model has its own
    views to develop software , the models discussed
    in this paper are more complementary than
    exclusionary.
  • Thus it is not wise decision to assign a single
    life cycle model to which a software project
    should adhere to.

7
Different Life Cycle Models
  • The different life cycle models are
  • Waterfall Model
  • Incremental Development Model
  • Evolutionary Development Model
  • Requirements Prototyping Model
  • Spiral Model
  • Concurrent Model

8
Waterfall Model
  • The waterfall model is one of the first models
    developed . It serves as a building block for
    most of the later life cycle models.
  • It has a very simple concept where it views the
    entire software development process as a
    sequence of phases (figure 1) .
  • Each phase has a set of goals and activities that
    need to be accomplished in that phase .
  • Development progress can be seen as a flow from
    one phase to the next represented by the forward
    arrows. The backward arrows represent feedback to
    the previous phases.
  • There is no constraints that activities from the
    current phase only should be done in that phase.
  • Also a complete cycle of execution of all the
    phases might lead either to the complete system
    or just a part of it.
  • The primary advantage of the waterfall model is
    that it helps the management to keep track of the
    overall project progress.

9
Waterfall Model
  • Figure 1

10
Waterfall Model
  • To summarize the waterfall model emphasizes and
    recommends
  • the following practices
  • Planning of a project before starting to
    developing it.
  • Specifying a systems desired external behavior
    before proceeding to its internal architecture.
  • Documentation at the end of each activity or
    goal.
  • Have a complete design of the system before
    moving onto the coding phase.
  • System should be tested on completion to verify
    that it meets the requirements.

11
Incremental Development Model
  • Building large complex systems leads to a lot of
    risks, to reduce these risks only a subset of the
    system is built .
  • Each increment of development results in
    capturing an increasing subset of requirements.
  • One method to implement incremental development
    is to maintain a separate requirements document
    for each increment of development.
  • Another way to implement incremental development
    is to maintain one document with all requirements
    and the increment in which that requirement will
    be implemented.
  • The incremental model can be used in combination
    with the waterfall model as it does not specify a
    particular way in which each increment should be
    completed.

12
Incremental Development Model
  • Figure 2

13
Incremental Development and Waterfall models
  • Figure 3

14
Incremental Development Model
  • Important benefits of this model are
  • As you build the system in small increments the
    risk is lowered.
  • Implementing system functionality in parts
    ensures that the requirements planned for next
    increment are accurate.
  • Reduction in time to develop each increment
    reduces the possibility of change in user
    requirements.
  • If at any stage a major error is found,
    development can be continued just by moving back
    to the previous stage.
  • Development errors made in one increment can be
    rectified before beginning the next increment.

15
Evolutionary Development Model
  • Here we build the system in increments but it is
    assumed that the complete requirements are not
    know initially.
  • All requirements are examined and only those
    which are completely understood and selected.
  • An increment of the system is built using only
    the above selected complete requirements.
  • This system is given to the user to deploy and
    provide feedback.
  • The requirements are updated based on the user
    feedback and the second increment is developed
    and given to the user.
  • This process is repeated indefinitely to get the
    complete system.
  • The Evolutionary Model can be used in combination
    with the waterfall and the incremental models.

16
Evolutionary Development Model
  • Figure 4

17
Requirements Prototyping Model
  • In this life cycle a prototype of the system is
    built to learn more details about the systems
    requirements.
  • A quick prototype is built and handed over to the
    user requesting for the prototypes pros and cons.
  • The developer updates this feedback into the
    actual requirements specification document of the
    real system.
  • This process is continued till the complete
    system is developed.
  • It is useful to develop complex systems where the
    requirements are difficult to arrive at.
  • It can be used along with the other life cycle
    models, but its use should precede the other
    models.
  • In contrast to evolutionary prototyping here a
    prototype is built using the least understood
    requirements.

18
Requirements Prototyping Model
  • Figure 5

19
Spiral Model
  • This is also called a meta-life cycle model as
    the development process is iterative.
  • The first step here is to define the required
    goals.
  • Next all the possible methods to accomplish these
    goals are analyzed and the best method is
    selected.
  • The above selected method is deployed.
  • After completion of the method , the results are
    reviewed to complete the first spiral.
  • Now the next spiral is started, and this process
    goes on till the systems is complete.
  • The spiral model is compatible with the other
    life cycle models.

20
Spiral Model
  • Figure 6

21
Spiral Model
  • To summarize the Spiral Model recommends the
    following practices
  • Identify the problem you want to solve before
    attempting to solve it.
  • Find all the possible solutions to the problem.
  • Choose the optimal solution to the problem and
    use it to solve the problem.
  • Review results from the above solution.
  • Never make an assumption that the system being
    built is the exact system the user needs.
  • Calculate to amount of risk you are going to
    tolerate.

22
Concurrent Model
  • The Concurrent Model also provides a
    meta-description of the model like the Spiral
    model.
  • Here multiply software development activities are
    done simultaneously and are represented by Harel
    statecharts.
  • When most of the requirements are done, we move
    on to give the design phase more time.
  • During design any changes in requirements are
    re-baselined which in turn might or might not
    affect the design.
  • If any component is well defined the detailed
    design of that component can be done. Further
    even coding, integration and testing also can be
    done even if design of other components is not
    complete.
  • Occasionally multiple versions of the same
    product can be developed concurrently.

23
Selecting Life Cycle Models
  • All the above mentioned life cycles are
    compatible with each other,
  • but every project must identify which view is
    beneficiary in its unique
  • situation. A study was done by Linda
    AlexanderALE91 after which she
  • proposed 23 criteria based on the project and its
    application. She created
  • Ideal Profiles of projects compatible with
    each life cycle. Project managers
  • had to create an ideal profile for their project
    and select the life cycle that
  • closely matches it. A few of the criteria are
  • Maturity of the application
  • Problem and the solutions complexity
  • Usefulness of early functionality
  • Fuzziness and frequency of changes in user
    requirements
  • Availability of time and money
  • Risk tolerance of project
  • Importance of meeting deadlines and budget

24
Summary
  • The waterfall model is the basic model from which
    most of the other models were derived.
  • All the life cycle models are compatible with
    each other and can be deployed together in the
    same project.
  • Hence using multiple software development models
    during the lifetime of the project can increase
    its efficiency.
  • Project profiles can be created and its matching
    ideal profile can be chosen to help decide which
    life cycle model is more fruitful.

25
Conclusion
  • The author emphasizes that each model is not
    particularly different, but they provide
    different views of the same basic software
    development process.
  • All the software development life cycles serve
    as tools to monitor the activities and overall
    progress of software development. Each life cycle
    has an extent to which it reflects the software
    development. On one hand the waterfall model
    gives a gross idea of development progress,
    whereas the concurrent model gives an actual idea
    of development progress.
  • These models are used as tools by the project
    manager and the management to keep track of
    development.
  • Most of the life cycle models help to achieve
    CMM level 2. Repeated use of these models will
    help to achieve CMM level 3.

26
Questions ?
Write a Comment
User Comments (0)
About PowerShow.com