You are on page 1of 32

Object-Oriented Software Engineering

Conquering Complex and Changing Systems

Chapter 15, Alternatives to the Iterative Waterfall lifecycle model

Outline

Software Life Cycle


A variety of software lifecycle models have been proposed over time All help manage the complexity of software development Each has advantages, disadvantages Previously, we looked at the Waterfall and Iterative Waterfall models Alternatives include:

V-Model Boehms Spiral Model Issue-based Development Model (Concurrent Development)

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

What we intend

Requirements

Software

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

How it should go: Our plan of attack


Requirements Analysis Design Implementation

Testing Delivery and Installation


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

Definitions

Software lifecycle modeling: Attempt to deal with complexity and change Software lifecycle:
Set of activities and their relationships to each other to support the development of a software system

Software development methodology:


A collection of techniques for building models - applied across the software lifecycle

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

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? Does analysis 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?

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

Concept Exploration Process

The Waterfall Model of the Software Life Cycle

System Allocation Process


Requirements Process Design Process Implementation Process Verification & Validation Process

adapted from [Royce 1970]


Bernd Bruegge & Allen Dutoit

Installation Process Operation & Support Process

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

Concept Exploration Process


System Allocation Process Requirements Process Design Process

The Iterative Waterfall Model of the Software Life Cycle

Implementation Process Verification & Validation Process Installation Process Operation & Support Process
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 8

V Model: Distinguishes between Development and Verification Activities


Level of Detail Low
Requirements Elicitation
Problem with V-Model: Clients Perception is the same as the Developers Perception

Clients Understanding Developers Understanding

System Testing

Design

Integration Testing

Object Design

Unit Testing

High
Project Time
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 9

Problems with V Model

The V model does not model iteration

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

10

Spiral Model (Boehm) Deals with Iteration


Identify risks Assign priorities to risks Develop a series of prototypes for the identified risks starting with 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 project immediately

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

11

Spiral Model
Deter mine objec tives, alternatives, & c onstr ints a
Risk a na ly sis Risk a na ly sis Risk a na ly sis P1 Prototype3 Prototype2 Prototype1 Re quire me nts Conce pt of pla n ope ra tion

Evaluate alternatives, identif y & resolv risk s e

Software Re quire me nts

Syste m Product De sign

De ve lopme nt Re quire me nts pla n valida tion

De tailed De sign

P2

Code Unit Te st

Plan next phase

Inte gration De sign pla n valida tion Ac ce pta nc e Te st

Develop & v ify er next le produc t vel

Inte gration &Te st

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

12

Activities (Rounds) in Boehms Spiral Model


Concept of Operations Software Requirements Software Product Design Detailed Design Code Unit Test Integration and Test Acceptance Test Implementation

For each cycle go through these steps


Define objectives, alternatives, constraints Evaluate alternative, identify and resolve risks Develop, verify prototype Plan next cycle

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

13

Determine Objectives, Alternatives and Constraints


Deter mine objec tives, alternatives, & c onstr ints a
Risk a na ly sis

Evaluate alternatives, identif y & resolv risk s e

Project Start

Risk a na ly sis Risk a na ly sis P1 Prototype3 Prototype2 Prototype1 Re quire me nts Conce pt of pla n ope ra tion

Software Re quire me nts

Syste m Product De sign

De ve lopme nt Re quire me nts pla n valida tion

De tailed De sign

P2

Code Unit Te st

Plan next phase

Inte gration De sign pla n valida tion Ac ce pta nc e Te st

Develop & v ify er next le produc t vel

Inte gration &Te st

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

14

Evaluate Alternatives, Identify, resolve risks


Deter mine objec tives, alternatives, & c onstr ints a
Risk a na ly sis Risk a na ly sis Risk a na ly sis P1 Prototype3 Prototype2 Prototype1 Re quire me nts Conce pt of pla n ope ra tion

Evaluate alternatives, identif y & resolv risk s e

Build Prototype

Software Re quire me nts

Syste m Product De sign

De ve lopme nt Re quire me nts pla n valida tion

De tailed De sign

P2

Code Unit Te st

Plan next phase

Inte gration De sign pla n valida tion Ac ce pta nc e Te st

Develop & v ify er next le produc t vel

Inte gration &Te st

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

15

Develop & Verify Product


Deter mine objec tives, alternatives, & c onstr ints a
Risk a na ly sis Risk a na ly sis Risk a na ly sis P1 Prototype3 Prototype2 Prototype1 Re quire me nts Conce pt of pla n ope ra tion

Evaluate alternatives, identif y & resolv risk s e

Software Re quire me nts

Syste m Product De sign

De ve lopme nt Re quire me nts pla n valida tion

De tailed De sign

P2

Code Unit Te st

Plan next phase

Inte gration De sign pla n valida tion Ac ce pta nc e Te st

Develop & v ify er next le produc t vel

Inte gration &Te st

Concept of Operation Activity


16

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

Prepare for Next Activity


Deter mine objec tives, alternatives, & c onstr ints a
Risk a na ly sis Risk a na ly sis Risk a na ly sis P1 Prototype3 Prototype2 Prototype1 Re quire me nts Conce pt of pla n ope ra tion

Evaluate alternatives, identif y & resolv risk s e

Software Re quire me nts

Syste m Product De sign

De ve lopme nt Re quire me nts pla n valida tion

De tailed De sign

P2

Code Unit Te st

Plan next phase

Inte gration De sign pla n valida tion Ac ce pta nc e Te st

Develop & v ify er next le produc t vel

Inte gration &Te st

Lifecycle Modeling Process


Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

17

Start of Software Requirements Activity


Deter mine objec tives, alternatives, & c onstr ints a
Risk a na ly sis Risk a na ly sis Risk a na ly sis P1 Prototype3 Prototype2 Prototype1 Re quire me nts Conce pt of pla n ope ra tion

Evaluate alternatives, identif y & resolv risk s e

Start of Round 2

Software Re quire me nts

Syste m Product De sign

De ve lopme nt Re quire me nts pla n valida tion

De tailed De sign

P2

Code Unit Te st

Plan next phase

Inte gration De sign pla n valida tion Ac ce pta nc e Te st

Develop & v ify er next le produc t vel

Inte gration &Te st

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

18

Types of Prototypes used in the Spiral Model

Illustrative Prototype
Develop the user interface with a set of storyboards Implement 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 functionality Then add more functionality Order identified by risk

Exploratory Prototype ("Hacking")


Implement part of the system to learn more about the requirements. Good for understanding, exploring alternatives

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

19

Types of Prototyping (Continued)

Revolutionary Prototyping
Also called specification prototyping Get user experience with a throwaway version to get the requirements right, then build the whole system

Disadvantage: Users may have to accept that features in the prototype are expensive to implement User may be disappointed when some of the functionality and user interface evaporates because it can not be made available in the implementation environment

Evolutionary Prototyping
The prototype is used as the basis for the implementation of the final system Advantage: Short time to market Disadvantage: Can be used only if target system can be constructed in prototyping language

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

20

Prototyping vs Rapid Development

Revolutionary prototyping is sometimes called rapid prototyping Rapid Prototyping is not a good term because it confuses prototyping with rapid development Prototyping is a technical issue: It is a particular model in the life cycle process Rapid development is a management issue. It is a particular way to control a project Prototyping can go on forever if it is not restricted

Time-boxed prototyping

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

21

The Limitations of the Waterfall and Spiral Models

Neither of these model deals well with frequent change


The Waterfall model assume that once you are done with a phase, all issues covered in that phase are closed and cannot be reopened The Spiral model can deal with change between phases, but once inside a phase, no change is allowed

What do you do if change is happening more frequently? (The only constant is the change)

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

22

An Alternative: Issue-Based Development

A system is described as a collection of issues


Issues are either closed or open Closed issues have a resolution Closed issues can be reopened (Iteration!)

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


I1:Open A.I1:Open

SD.I1:Closed

SD.I3:Closed I2:Closed I3:Closed A.I2:Open SD.I2:Closed

Planning
Bernd Bruegge & Allen Dutoit

Requirements Analysis
Object-Oriented Software Engineering: Conquering Complex and Changing Systems

System Design
23

Waterfall Model: Analysis Phase


I1:Open A.I1:Open I2:Open I3:Open

A.I2:Open

SD.I1:Open

Analysis Analysis
SD.I2:Open

SD.I3:Open

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

24

Waterfall Model: Design Phase


I1:Closed A.I1:Open I2:Closed I3:Open

A.I2:Open

SD.I1:Open

Analysis Analysis
SD.I2:Open

SD.I3:Open

Design

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

25

Waterfall Model: Implementation Phase


I1:Closed A.I1:Closed I2:Closed I3:Closed

A.I2:Closed

SD.I1:Open

Analysis
SD.I2:Open

SD.I3:Open

Design

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

Waterfall Model: Project is Done


I1:Closed A.I1:Closed I2:Closed I3:Closed

A.I2:Closed

SD.I1:Open

Analysis
SD.I2:Open

SD.I3:Open

Design

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

Issue-Based Model: Analysis Phase


I1:Open A.I1:Open I2:Open I3:Open

A.I2:Open

Analysis:80%

SD.I1:Open

SD.I3:Open

Design: 10% Implementation: 10%

SD.I2:Open

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

28

Issue-Based Model: Design Phase


I1:Closed A.I1:Open I2:Closed I3:Open

A.I2:Open

Analysis:40%

SD.I1:Open

SD.I3:Open

Design: 60% Implementation: 0%

SD.I2:Open

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

29

Issue-Based Model: Implementation Phase


I1:Open

A.I1:Open

I2:Closed

I3:Closed A.I2:Closed

Analysis:10%

SD.I1:Open

SD.I3:Open

Design: 10% Implementation: 60%

SD.I2:Cosed

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

30

Issue-Based Model: Project is Done


I1:Closed

A.I1:Closed

I2:Closed

I3:Closed A.I2:Closed

Analysis:0%

SD.I1:Closed

SD.I3:Closed

Design: 0% Implementation: 0%

SD.I2:Closed

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

31

Summary

A Software Life Cycle Model is a representation of the development process (as opposed to the system). Reviewed software life cycles
Waterfall, Iterative model V-Model Boehms Spiral Model Issue-based Development Model (Concurrent Development)

Bernd Bruegge & Allen Dutoit

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

32

You might also like