Lifecycle 2

32
   C   o   n   q   u   e   r    i   n   g    C   o   m   p    l   e   x   a   n    d    C    h   a   n   g    i   n   g    S   y   s    t   e   m   s    O    b    j   e   c    t   -    O   r    i   e   n    t   e    d    S   o    f    t   w   a   r   e    E   n   g    i   n   e   e   r    i   n   g Chapter 15, Alternatives to the Iterative Waterfall lifecycle model 

Transcript of Lifecycle 2

Page 1: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 1/32

C o n q u e r i n g C o m p

l e x a n d

C h a n g i n g

S y s t e m s

O b j e c t - O r i e n

t e d S o f t w a r e

E n g i n e e r i n g Chapter 15,

Alternatives tothe Iterative Waterfalllifecycle model

Page 2: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 2/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 2

Outline

Software Life CycleA variety of software lifecycle models have been proposed over timeAll help manage the complexity of software developmentEach has advantages, disadvantagesPreviously, we looked at the Waterfall and Iterative WaterfallmodelsAlternatives include:

V-ModelBoehm’s Spiral Model Issue-based Development Model (Concurrent Development)

Page 3: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 3/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 3

Requirements

Software

What we intend

Page 4: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 4/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 4

How it should go: Our plan of attack

Requirements Analysis

Implementation

Design

Testing

Delivery and Installation

Page 5: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 5/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 5

Definitions

Software lifecycle modeling: Attempt to deal with complexityand change

Software lifecycle:

Set of activities and their relationships to each other to support thedevelopment of a software system

Software development methodology:A collection of techniques for building models - applied across thesoftware lifecycle

Page 6: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 6/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 6

Typical Software Lifecycle Questions

Which activities should I select for the software project?What are the dependencies between activities?

Does system design depend on analysis? Doesanalysis depend on design?

How should I schedule the activities?Should analysis precede design?

Can analysis and design be done in parallel?Should they be done iteratively?

Page 7: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 7/32Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 7

Requirements Process

System Allocation

Process

Concept Exploration

Process

Design Process

Implementation Process

Installation Process

Operation &

Support Process

Verification & Validation

Process

The Waterfall Model of the

Software Life Cycle

adapted from [Royce 1970]

Page 8: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 8/32Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 8

Requirements Process

System Allocation

Process

Concept Exploration

Process

Design Process

Implementation Process

Installation Process

Operation &

Support Process

Verification & Validation

Process

The IterativeWaterfall Model of the

Software Life Cycle

Page 9: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 9/32Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 9

V Model : Distinguishes between Development and Verification Activities

Level of Detail

Project Time

Low

High

SystemTesting

Problem with V-Model:Client’s Perception is the same as theDeveloper’s Perception

Client’s Understanding

Developer’s Understanding Requirements

Elicitation

Design

Object Design Unit Testing

Integration Testing

Page 10: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 10/32Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 10

Problems with V Model

The V model does not model iteration

Page 11: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 11/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 11

Identify risksAssign priorities to risksDevelop a series of prototypes for the identified risks startingwith the highest risk.

Use a waterfall model for each prototype development(“cycle”) If a risk has successfully been resolved, evaluate the results of the “cycle” and plan the next round

If a certain risk cannot be resolved, terminate the projectimmediately

Spiral Model (Boehm) Deals with Iteration

Page 12: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 12/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 12

Spiral Model

Determine objec t ives,alternat ives, & constraints

Evaluate alternatives,identif y & resolve risks

Develop & ver if ynext level productPlan next phase

Requirements

Development

Integration

plan

plan

plan

Re quire me nts

Design

valida tion

valida tion

Software SystemProduct

Risk a naly sis

Risk a naly sis

Prototype1

Prototype2Prototype3

Risk a naly sis

Con cept of operation

RequirementsDesign

Code

Unit Te st

Integration & TestAcceptance

DetailedDesign

P1

P2

Te st

Page 13: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 13/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 13

Activities (“Rounds”) in Boehm’s Spiral Model

Concept of OperationsSoftware RequirementsSoftware Product DesignDetailed Design

CodeUnit TestIntegration and TestAcceptance TestImplementation

For each cycle go throughthese stepsDefine objectives, alternatives,constraints

Evaluate alternative, identifyand resolve risks

Develop, verify prototypePlan next “cycle”

Page 14: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 14/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 14

Determine objec t ives,alternat ives, & constraints

Evaluate alternatives,identif y & resolve risks

Develop & ver if ynext level productPlan next phase

Requirements

Development

Integration

plan

plan

plan

Re quire me nts

Design

valida tion

valida tion

Software SystemProduct

Risk a naly sis

Risk a naly sis

Prototype1Prototype2 Prototype3

Risk a naly sis

Con cept of operation

RequirementsDesign

Code

Unit Te st

Integration & TestAcceptance

DetailedDesign

P1

P2

Te st

Determine Objectives, Alternatives and Constraints

ProjectStart

Page 15: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 15/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 15

Determine objec t ives,alternat ives, & constraints

Evaluate alternatives,identif y & resolve risks

Develop & ver if ynext level productPlan next phase

Requirements

Development

Integration

plan

plan

plan

Re quire me nts

Design

valida tion

valida tion

Software SystemProduct

Risk a naly sis

Risk a naly sis

Prototype1Prototype2

Prototype3

Risk a naly sis

Con cept of operation

RequirementsDesign

Code

Unit Te st

Integration & TestAcceptance

DetailedDesign

P1

P2

Te st

Evaluate Alternatives, Identify, resolve risks

BuildPrototype

Page 16: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 16/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 16

Determine objec t ives,alternat ives, & constraints

Evaluate alternatives,identif y & resolve risks

Develop & ver if ynext level productPlan next phase

Requirements

Development

Integration

plan

plan

plan

Re quire me nts

Design

valida tion

valida tion

Software SystemProduct

Risk a naly sis

Risk a naly sis

Prototype1

Prototype2Prototype3

Risk a naly sis

Con cept of operation

RequirementsDesign

Code

Unit Te st

Integration & TestAcceptance

DetailedDesign

P1

P2

Te st

Develop & Verify Product

Concept of OperationActivity

Page 17: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 17/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 17

Determine objec t ives,alternat ives, & constraints

Evaluate alternatives,identif y & resolve risks

Develop & ver if ynext level productPlan next phase

Requirements

Development

Integration

plan

plan

plan

Re quire me nts

Design

valida tion

valida tion

Software SystemProduct

Risk a naly sis

Risk a naly sis

Prototype1

Prototype2Prototype3

Risk a naly sis

Con cept of operation

RequirementsDesign

Code

Unit Te st

Integration & TestAcceptance

DetailedDesign

P1

P2

Te st

Prepare for Next Activity

Lifecycle ModelingProcess

Page 18: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 18/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 18

Determine objec t ives,alternat ives, & constraints

Evaluate alternatives,identif y & resolve risks

Develop & ver if ynext level productPlan next phase

Requirements

Development

Integration

plan

plan

plan

Re quire me nts

Design

valida tion

valida tion

Software SystemProduct

Risk a naly sis

Risk a naly sis

Prototype1

Prototype2Prototype3

Risk a naly sis

Con cept of operation

RequirementsDesign

Code

Unit Te st

Integration & TestAcceptance

DetailedDesign

P1

P2

Te st

Start of Software Requirements Activity

Startof Round 2

Page 19: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 19/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 19

Illustrative Prototype Develop the user interface with a set of storyboardsImplement them on a napkin or with a user interface builder(Visual C++, ....)Good for first dialog with client

Functional Prototype Implement and deliver an operational system with minimum

functionalityThen add more functionalityOrder identified by risk

Exploratory Prototype ("Hacking") Implement part of the system to learn more about the requirements.Good for understanding, exploring alternatives

Types of Prototypes used in the Spiral Model

Page 20: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 20/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 20

Revolutionary Prototyping

Also called specification prototypingGet user experience with a throwaway version to get therequirements right, then build the whole system

Disadvantage: Users may have to accept that features in the prototypeare expensive to implement

User may be disappointed when some of the functionality and userinterface evaporates because it can not be made available in theimplementation environment

Evolutionary PrototypingThe prototype is used as the basis for the implementation of the

final systemAdvantage: Short time to marketDisadvantage: Can be used only if target system can be constructedin prototyping language

Types of Prototyping (Continued)

Page 21: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 21/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 21

Prototyping vs Rapid Development

Revolutionary prototyping is sometimes called rapid prototypingRapid Prototyping is not a good term because it confuses

prototyping with rapid development Prototyping is a technical issue: It is a particular model inthe life cycle processRapid development is a management issue. It is aparticular way to control a project

Prototyping can go on forever if it is not restricted“Time - boxed” prototyping

Page 22: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 22/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 22

The Limitations of the Waterfall and Spiral Models

Neither of these model deals well with frequent changeThe Waterfall model assume that once you are done with a phase,all issues covered in that phase are closed and cannot be reopenedThe Spiral model can deal with change between phases, but onceinside a phase, no change is allowed

What do you do if change is happening more frequently? (“Theonly constant is the change”)

Page 23: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 23/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 23

An Alternative: Issue-Based Development

A system is described as a collection of issues

Issues are either closed or openClosed issues have a resolutionClosed issues can be reopened (Iteration!)

The set of closed issues is the basis of the system model

I1:Open

I2:Closed I3:Closed

A.I1:Open

A.I2:Open

SD.I1:Closed

SD.I2:Closed

SD.I3:Closed

Planning Requirements Analysis System Design

Page 24: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 24/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 24

Waterfall Model: Analysis Phase

I1:Open

I2:Open I3:Open

A.I1:Open

A.I2:Open

SD.I1:Open

SD.I2:Open

SD.I3:OpenAnalysisAnalysis

Page 25: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 25/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 25

Waterfall Model: Design Phase

I1:Closed

I2:Closed I3:Open

A.I1:Open

A.I2:Open

SD.I1:Open

SD.I2:Open

SD.I3:OpenAnalysis

Design

Analysis

Page 26: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 26/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 26

Waterfall Model: Implementation Phase

I1:Closed

I2:Closed I3:Closed

A.I1:Closed

A.I2:Closed

SD.I1:Open

SD.I2:Open

SD.I3:Open

Implementation

Design

Analysis

Page 27: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 27/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 27

Waterfall Model: Project is Done

I1:Closed

I2:Closed I3:Closed

A.I1:Closed

A.I2:Closed

SD.I1:Open

SD.I2:Open

SD.I3:Open

Implementation

Design

Analysis

Page 28: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 28/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 28

Issue-Based Model: Analysis Phase

I1:Open

I2:Open I3:Open

A.I1:Open

A.I2:Open

SD.I1:Open

SD.I2:Open

SD.I3:Open

Analysis:80%

Design: 10%

Implemen-tation: 10%

Page 29: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 29/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 29

Issue-Based Model: Design Phase

I1:Closed

I2:Closed I3:Open

A.I1:Open

A.I2:Open

SD.I1:Open

SD.I2:Open

SD.I3:Open

Analysis:40%

Design: 60%

Implemen-tation: 0%

Page 30: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 30/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 30

Issue-Based Model: Implementation Phase

I1:Open

I2:Closed I3:Closed

A.I1:Open

A.I2:Closed

SD.I1:Open

SD.I2:Cosed

SD.I3:Open

Analysis:10%

Design: 10%

Implemen-tation: 60%

Page 31: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 31/32

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 31

Issue-Based Model: Project is Done

I1:Closed

I2:Closed I3:Closed

A.I1:Closed

A.I2:Closed

SD.I1:Closed

SD.I2:Closed

SD.I3:Closed

Analysis:0%

Design: 0%

Implemen-tation: 0%

Page 32: Lifecycle 2

7/30/2019 Lifecycle 2

http://slidepdf.com/reader/full/lifecycle-2 32/32

Summary

A Software Life Cycle Model is a representation of thedevelopment process (as opposed to the system).Reviewed software life cycles

Waterfall, Iterative modelV-ModelBoehm’s Spiral Model Issue-based Development Model (Concurrent Development)