40
Software Life Cycle Models

Software Life Cycle Models. Waterfall Model The Waterfall Model is the earliest method of structured system development. The original waterfall model

Embed Size (px)

Citation preview

Page 1: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Software Life Cycle Models

Page 2: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Waterfall Model

The Waterfall Model is the earliest method of structured system development.

The original waterfall model was presented by Winston Royce in "Managing Development of Large Scale Software Systems" (Proceeding of IEEE WESCON, August 1970)

Page 3: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Waterfall Model

Page 4: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Waterfall Model

Page 5: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Waterfall Model

Page 6: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Waterfall Model

Page 7: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Waterfall Model

Although it has come under attack in recent years for being too rigid and unrealistic when it comes to quickly meeting customer's needs, the Waterfall Model is still widely used.

Page 8: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Waterfall Model

It is attributed with providing the theoretical basis for other Process Models, because it most closely resembles a "generic" model for software development.

Page 9: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Waterfall ModelThe advantage of waterfall development

is that a schedule can be set with deadlines for each stage of development and a product can proceed through the development process like a car in a carwash, and theoretically, be delivered on time.

Page 10: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Waterfall ModelThe disadvantage of waterfall

development is that it does not allow for much reflection or revision.

Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage.

Page 11: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

The Prototyping ModelThe Prototyping Model is a systems

development method (SDM) in which a prototype (an early approximation of a final system or product) is built, tested, and then reworked as necessary until an acceptable prototype is finally achieved from which the complete system or product can now be developed.

Page 12: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

The Prototyping ModelThis model works best in scenarios

where not all of the project requirements are known in detail ahead of time.

It is an iterative, trial-and-error process that takes place between the developers and the users.

Page 13: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

The Prototyping ModelThere are several steps in the

Prototyping Model:

1. The new system requirements are defined in as much detail as possible. This usually involves interviewing a number of users representing all aspects of the existing system.

Page 14: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

The Prototyping Model

2. A preliminary design is created for the new system.

3. A first prototype of the new system is constructed from the preliminary design. This is usually a scaled-down system, and represents an approximation of the characteristics of the final product.

Page 15: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

The Prototyping Model

4. The users thoroughly evaluate the first prototype, noting its strengths and weaknesses, what needs to be added, and what should to be removed. The developer collects and analyzes the remarks from the users.

Page 16: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

The Prototyping Model

5. The first prototype is modified, based on the comments supplied by the users, and a second prototype of the new system is constructed.

6. The second prototype is evaluated in the same manner as was the first prototype. The process is repeated until a final prototype is produced.

Page 17: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

The Prototyping Model

Page 18: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

The Incremental Model

The incremental approach attempts to combine the waterfall sequence with some of the advantages of prototyping.

Page 19: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

The Incremental Model

It divides the overall project into a number of increments, then it applies the waterfall model to each increment.

Page 20: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

The Incremental Model

This approach is favored by many object-oriented practitioners.

Page 21: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Incremental Phases

Inception :During the inception phase, the purpose, business rationale, and scope of the project is determined. This is similar to the feasibility analysis that is done in other life cycles.

Page 22: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Incremental Phases

Elaboration: During the elaboration phase, more detailed requirements are collected, high level analysis is performed, and a general architecture is determined.

Page 23: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

The Incremental Model

Elaboration: This phase divides the requirements into increments that can be built separately.

Page 24: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

The Incremental Model

Construction The construction phase builds increments of the system. Each increment is developed using a waterfall approach.

Page 25: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

The Incremental Model

Construction This includes detailed analysis and design for the use cases in the increment and coding and testing of the implementation of the sequence of events defined by the use cases.

Page 26: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

The Incremental Model

Page 27: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Boehm’s Spiral Model

Barry Boehm, "A Spiral Model of Software Development and Enhancement", ACM SIGSOFT Software Engineering Notes, August 1986.

Page 28: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Boehm’s Spiral Model

Each cycle produces something to be evaluated, but not necessarily a usable system.

Page 29: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Boehm’s Spiral Model

Each cycle ends with the question "should we continue?"

Page 30: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Evolutionary Delivery Model

Used by Microsoft and Netscape to develop web browsers.

Page 31: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Agile Development ModelThe Agile Manifesto reads, in its

entirety, as follows:We are uncovering better ways of

developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes

and tools

Page 32: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Agile Development Model Working software over comprehensive

documentation Customer collaboration over contract

negotiation Responding to change over following a

plan That is, while there is value in the items on

the right, we value the items on the left more.

Page 33: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Agile Development ModelThe Agile Manifesto is based on twelve

principles:Customer satisfaction by rapid delivery

of useful softwareWelcome changing requirements, even

late in development

Page 34: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Agile Development ModelWorking software is delivered frequently

(weeks rather than months)Working software is the principal

measure of progressSustainable development, able to

maintain a constant paceClose, daily cooperation between

business people and developers

Page 35: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Agile Development ModelFace-to-face conversation is the best

form of communication (co-location)Projects are built around motivated

individuals, who should be trustedContinuous attention to technical

excellence and good design

Page 36: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Agile Development ModelSimplicity—the art of maximizing the

amount of work not done—is essentialSelf-organizing teamsRegular adaptation to changing

circumstances

Page 37: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Agile Development Model

Page 38: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Agile Development ModelThe Agile Manifesto introduced the term

“Agile Development” in 2001. (http://agilemanifesto.org/)

Page 39: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Conclusions

There is no one “correct” model.

Each model has tradeoffs.

Page 40: Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model

Conclusions Traditional models (Waterfall)

–Definite and defined–Ability to estimate when the product will be finished, well-

known costing models–Does not react well to change

Incremental models–Less definite, but react better to change between increments

Evolutionary–No certainty as to when the product will be finished–Allow changes to occur between prototypes

Spiral models–Same as incremental, but allows project to stop

Agile–Very flexible–Almost no structure – can get out of control