lecture02 lifecyclelecture02 lifecycle

38
8/14/2019 Lecture02 LifecycleLecture02 Lifecycle http://slidepdf.com/reader/full/lecture02-lifecyclelecture02-lifecycle 1/38

Upload: licarnette-pascual-aguilar

Post on 04-Jun-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 138

983123983151983142983156983159983137983154983141 983140983141983158983141983148983151983152983149983141983150983156 983148983145983142983141983139983161983139983148983141

983124983144983141 983152983151983159983141983154 983151983142 983152983154983151983139983141983155983155

983107983161983139983148983141

983116983145983142983141

983123983151983142983156983159983137983154983141

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 238

983112983151983159 983139983151983149983152983148983141983160 983145983155 983155983151983142983156983159983137983154983141983103

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 338

983127983144983137983156 983145983155 983139983151983149983152983148983141983160983103

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 438

983112983151983159 983139983151983149983152983148983141983160 983145983155 983155983151983142983156983159983137983154983141983103

bull 983117983141983137983155983157983154983141983155 983151983142 983139983151983149983152983148983141983160983145983156983161

ndash 983148983145983150983141983155 983151983142 983139983151983140983141 ndash 983150983157983149983138983141983154 983151983142 983139983148983137983155983155983141983155

ndash 983150983157983149983138983141983154 983151983142 983149983151983140983157983148983141983155

ndash 983149983151983140983157983148983141 983145983150983156983141983154983139983151983150983150983141983139983156983145983151983150983155 983137983150983140 983140983141983152983141983150983140983141983150983139983145983141983155 ndash 983156983145983149983141 983156983151 983157983150983140983141983154983155983156983137983150983140

ndash 983151983142 983137983157983156983144983151983154983155

ndash 991270 983149983137983150983161 983149983151983154983141

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 538

983112983151983159 983139983151983149983152983148983141983160 983145983155 983155983151983142983156983159983137983154983141983103

bull 983117983141983137983155983157983154983141983155 983151983142 983139983151983149983152983148983141983160983145983156983161

ndash 983148983145983150983141983155 983151983142 983139983151983140983141 ndash 983150983157983149983138983141983154 983151983142 983139983148983137983155983155983141983155

ndash 983150983157983149983138983141983154 983151983142 983149983151983140983157983148983141983155

ndash 983149983151983140983157983148983141 983145983150983156983141983154983139983151983150983150983141983139983156983145983151983150983155 983137983150983140 983140983141983152983141983150983140983141983150983139983145983141983155 ndash 983156983145983149983141 983156983151 983157983150983140983141983154983155983156983137983150983140

ndash 983151983142 983137983157983156983144983151983154983155

ndash 991270 983149983137983150983161 983149983151983154983141

Windows Server 2003 50 MSLoC

Debian 50 324 MSLoC

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 638

983112983151983159 983138983145983143 983145983155 983091983090983092 983117983123983116983151983107983103

bull 50 983148983145983150983141983155983152983137983143983141rArr 65983117 983152983137983143983141983155

bull 1983115 983152983137983143983141983155983154983141983137983149rArr 65983115 983154983141983137983149983155bull 2 983145983150983139983144983141983155983154983141983137983149rArr 13983115 983145983150983139983144983141983155

bull 13983115 983145983150983139983144983141983155 asymp 13983160 983156983144983141 983144983141983145983143983144983156 983151983142 983156983144983141 A983148983148983141983150 983107983141983150983156983141983154

bull 5 983159983151983154983140983155983116983151983107 50 983159983152983149rArr 32983117 983149983145983150 asymp 61 983161983141983137983154983155

983114983157983155983156 983156983151 983156983161983152983141

983118983151 983138983154983141983137983147983155 983137983150983140 983150983151 983156983144983145983150983147983145983150983143 983137983148983148983151983159983141983140

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 838

Outline

bull What is a software development lifecycle

bull Why do we need a lifecycle processbull Lifecycle models and their tradeoffs

ndash ldquoCode-and-fixrdquo

ndash Waterfall

ndash Spiral

ndash Evolutionary prototyping ndash Staged delivery

ndash Agile (XP scrum )

many others

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 938

983116983145983142983141983139983161983139983148983141 983155983156983137983143983141983155

bull 983126983145983154983156983157983137983148983148983161 983137983148983148 983148983145983142983141983139983161983139983148983141983155 983155983144983137983154983141 983156983144983141983155983141 983155983156983141983152983155983155983156983137983143983141983155983152983144983137983155983141983155

ndash 983122983141983153983157983145983154983141983149983141983150983156983155

ndash 983108983141983155983145983143983150

ndash 983113983149983152983148983141983149983141983150983156983137983156983145983151983150

ndash 983124983141983155983156983145983150983143 ndash 983117983137983145983150983156983141983150983137983150983139983141

bull 983115983141983161 983153983157983141983155983156983145983151983150 983144983151983159 983140983151 983161983151983157 983139983151983149983138983145983150983141 983156983144983141983149 983137983150983140 983145983150

983159983144983137983156 983151983154983140983141983154

9

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1038

Ad-hoc development

bull Ad-hoc development creating software without any formal

guidelines or process

bull Advantage easy to learn and use

bull Disadvantages

ndash may ignore some important tasks (testing design)

ndash not clear when to start or stop doing each task ndash scales poorly to multiple people

ndash hard to review or evaluate ones work

ndash code may not match users needs (no requirements)

ndash code was not planned for modification not flexible

The later a problem is found in software

the more costly it is to fix

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1138

The software lifecycle

bull Software lifecycle series of steps phases

through which software is produced

ndash from conception to end-of-life

ndash can take months or years to complete

bull Goals of each phase

ndash mark out a clear set of steps to perform

ndash produce a tangible item

ndash allow for review of work

ndash specify actions to perform in the next phase

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1238

983123983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983139983151983140983141983085983137983150983140983085983142983145983160 983159983154983145983156983141 983155983151983149983141 983139983151983140983141 983140983141983138983157983143 983145983156983154983141983152983141983137983156 (983145983141 983137983140983085983144983151983139)

bull 983159983137983156983141983154983142983137983148983148 983155983156983137983150983140983137983154983140 983152983144983137983155983141983155 (983154983141983153 983140983141983155983145983143983150 983139983151983140983141983156983141983155983156) 983145983150 983151983154983140983141983154

bull 983155983152983145983154983137983148 983137983155983155983141983155983155 983154983145983155983147983155 983137983156 983141983137983139983144 983155983156983141983152 983140983151 983149983151983155983156

983139983154983145983156983145983139983137983148 983137983139983156983145983151983150 983142983145983154983155983156

bull 983141983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983138983157983145983148983140 983137983150 983145983150983145983156983145983137983148983155983149983137983148983148 983154983141983153983157983145983154983141983149983141983150983156 983155983152983141983139 983139983151983140983141 983145983156 983156983144983141983150 983141983158983151983148983158983141983156983144983141 983155983152983141983139 983137983150983140 983139983151983140983141 983137983155 983150983141983141983140983141983140

bull 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983138983157983145983148983140 983145983150983145983156983145983137983148 983154983141983153983157983145983154983141983149983141983150983156983155983152983141983139983155 983142983151983154 983155983141983158983141983154983137983148 983154983141983148983141983137983155983141983155 983156983144983141983150 983140983141983155983145983143983150983085983137983150983140983085983139983151983140983141 983141983137983139983144 983145983150 983155983141983153983157983141983150983139983141

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1338

Benefits of using a lifecycle

bull It provides us with a structure in which to

work

bull It forces us to think of the ldquobig picturerdquo and

follow steps so that we reach it withoutglaring deficiencies

bull Without it you may make decisions that are

individually on target but collectivelymisdirected

bull It is a management tool Drawbacks

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1438

983116983145983149983145983156983137983156983145983151983150983155 983151983142 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983107983137983150 983148983141983137983140 983156983151 983139983151983149983152983154983151983149983145983155983141983155 983137983150983140 983137983154983156983145983142983145983139983145983137983148

983139983151983150983155983156983154983137983145983150983156983155

bull 983122983145983155983147 983151983142 983151983158983141983154983141983149983152983144983137983155983145983162983145983150983143 983152983154983151983139983141983155983155 (983150983151983156 983156983144983141 983141983150983140

983145983150 983145983156983155983141983148983142)

bull 983127983137983161983155 983151983142 983141983158983137983148983157983137983156983145983150983143 983149983151983140983141983148983155

ndash 983154983145983155983147 983149983137983150983137983143983141983149983141983150983156 983153983157983137983148983145983156983161983139983151983155983156 983139983151983150983156983154983151983148 983152983154983141983140983145983139983156983137983138983145983148983145983156983161

983158983145983155983145983138983145983148983145983156983161 983151983142 983152983154983151983143983154983141983155983155 983139983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156983142983141983141983140983138983137983139983147

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1538

Are there analogies outside of SE

Consider the process

of building the Paul Allen Center

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1638

Project with little attention to process

Survival Guide

McConnell p24

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1838

983116983141983156991257983155 983156983137983148983147 983137983138983151983157983156 983155983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1938

Code-and-fix model

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2038

Code-and-fix model

Advantagesbull Little or no overhead

ndash just dive in and develop and see progress quicklybull Applicable sometimes for very small projects and

short-lived prototypes

But DANGEROUS for most projectsbull No way to assess progress quality or risks

bull Unlikely to accommodate changes without a major

design overhaulbull Unclear delivery features (scope) timing and support

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2138

Waterfall model

Software

Requirements

Validation

System

Requirements

Validation

Preliminary

Design

Validation

Detailed

DesignValidation

Operations amp

Maintenance

Revalidation

Test

Validation test

Code amp

Debug

Development test

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2238

Waterfall model advantages

bull Can work well for projects that are very

well understood but complex

ndash Tackles all planning upfront

ndash The ideal of no midstream changes equates

to an efficient software development process

bull Supports inexperienced teams

ndash Orderly easy-to-follow sequential model

ndash Reviews at each stage determine if the

product is ready to advance

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 2: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 238

983112983151983159 983139983151983149983152983148983141983160 983145983155 983155983151983142983156983159983137983154983141983103

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 338

983127983144983137983156 983145983155 983139983151983149983152983148983141983160983103

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 438

983112983151983159 983139983151983149983152983148983141983160 983145983155 983155983151983142983156983159983137983154983141983103

bull 983117983141983137983155983157983154983141983155 983151983142 983139983151983149983152983148983141983160983145983156983161

ndash 983148983145983150983141983155 983151983142 983139983151983140983141 ndash 983150983157983149983138983141983154 983151983142 983139983148983137983155983155983141983155

ndash 983150983157983149983138983141983154 983151983142 983149983151983140983157983148983141983155

ndash 983149983151983140983157983148983141 983145983150983156983141983154983139983151983150983150983141983139983156983145983151983150983155 983137983150983140 983140983141983152983141983150983140983141983150983139983145983141983155 ndash 983156983145983149983141 983156983151 983157983150983140983141983154983155983156983137983150983140

ndash 983151983142 983137983157983156983144983151983154983155

ndash 991270 983149983137983150983161 983149983151983154983141

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 538

983112983151983159 983139983151983149983152983148983141983160 983145983155 983155983151983142983156983159983137983154983141983103

bull 983117983141983137983155983157983154983141983155 983151983142 983139983151983149983152983148983141983160983145983156983161

ndash 983148983145983150983141983155 983151983142 983139983151983140983141 ndash 983150983157983149983138983141983154 983151983142 983139983148983137983155983155983141983155

ndash 983150983157983149983138983141983154 983151983142 983149983151983140983157983148983141983155

ndash 983149983151983140983157983148983141 983145983150983156983141983154983139983151983150983150983141983139983156983145983151983150983155 983137983150983140 983140983141983152983141983150983140983141983150983139983145983141983155 ndash 983156983145983149983141 983156983151 983157983150983140983141983154983155983156983137983150983140

ndash 983151983142 983137983157983156983144983151983154983155

ndash 991270 983149983137983150983161 983149983151983154983141

Windows Server 2003 50 MSLoC

Debian 50 324 MSLoC

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 638

983112983151983159 983138983145983143 983145983155 983091983090983092 983117983123983116983151983107983103

bull 50 983148983145983150983141983155983152983137983143983141rArr 65983117 983152983137983143983141983155

bull 1983115 983152983137983143983141983155983154983141983137983149rArr 65983115 983154983141983137983149983155bull 2 983145983150983139983144983141983155983154983141983137983149rArr 13983115 983145983150983139983144983141983155

bull 13983115 983145983150983139983144983141983155 asymp 13983160 983156983144983141 983144983141983145983143983144983156 983151983142 983156983144983141 A983148983148983141983150 983107983141983150983156983141983154

bull 5 983159983151983154983140983155983116983151983107 50 983159983152983149rArr 32983117 983149983145983150 asymp 61 983161983141983137983154983155

983114983157983155983156 983156983151 983156983161983152983141

983118983151 983138983154983141983137983147983155 983137983150983140 983150983151 983156983144983145983150983147983145983150983143 983137983148983148983151983159983141983140

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 838

Outline

bull What is a software development lifecycle

bull Why do we need a lifecycle processbull Lifecycle models and their tradeoffs

ndash ldquoCode-and-fixrdquo

ndash Waterfall

ndash Spiral

ndash Evolutionary prototyping ndash Staged delivery

ndash Agile (XP scrum )

many others

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 938

983116983145983142983141983139983161983139983148983141 983155983156983137983143983141983155

bull 983126983145983154983156983157983137983148983148983161 983137983148983148 983148983145983142983141983139983161983139983148983141983155 983155983144983137983154983141 983156983144983141983155983141 983155983156983141983152983155983155983156983137983143983141983155983152983144983137983155983141983155

ndash 983122983141983153983157983145983154983141983149983141983150983156983155

ndash 983108983141983155983145983143983150

ndash 983113983149983152983148983141983149983141983150983156983137983156983145983151983150

ndash 983124983141983155983156983145983150983143 ndash 983117983137983145983150983156983141983150983137983150983139983141

bull 983115983141983161 983153983157983141983155983156983145983151983150 983144983151983159 983140983151 983161983151983157 983139983151983149983138983145983150983141 983156983144983141983149 983137983150983140 983145983150

983159983144983137983156 983151983154983140983141983154

9

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1038

Ad-hoc development

bull Ad-hoc development creating software without any formal

guidelines or process

bull Advantage easy to learn and use

bull Disadvantages

ndash may ignore some important tasks (testing design)

ndash not clear when to start or stop doing each task ndash scales poorly to multiple people

ndash hard to review or evaluate ones work

ndash code may not match users needs (no requirements)

ndash code was not planned for modification not flexible

The later a problem is found in software

the more costly it is to fix

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1138

The software lifecycle

bull Software lifecycle series of steps phases

through which software is produced

ndash from conception to end-of-life

ndash can take months or years to complete

bull Goals of each phase

ndash mark out a clear set of steps to perform

ndash produce a tangible item

ndash allow for review of work

ndash specify actions to perform in the next phase

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1238

983123983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983139983151983140983141983085983137983150983140983085983142983145983160 983159983154983145983156983141 983155983151983149983141 983139983151983140983141 983140983141983138983157983143 983145983156983154983141983152983141983137983156 (983145983141 983137983140983085983144983151983139)

bull 983159983137983156983141983154983142983137983148983148 983155983156983137983150983140983137983154983140 983152983144983137983155983141983155 (983154983141983153 983140983141983155983145983143983150 983139983151983140983141983156983141983155983156) 983145983150 983151983154983140983141983154

bull 983155983152983145983154983137983148 983137983155983155983141983155983155 983154983145983155983147983155 983137983156 983141983137983139983144 983155983156983141983152 983140983151 983149983151983155983156

983139983154983145983156983145983139983137983148 983137983139983156983145983151983150 983142983145983154983155983156

bull 983141983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983138983157983145983148983140 983137983150 983145983150983145983156983145983137983148983155983149983137983148983148 983154983141983153983157983145983154983141983149983141983150983156 983155983152983141983139 983139983151983140983141 983145983156 983156983144983141983150 983141983158983151983148983158983141983156983144983141 983155983152983141983139 983137983150983140 983139983151983140983141 983137983155 983150983141983141983140983141983140

bull 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983138983157983145983148983140 983145983150983145983156983145983137983148 983154983141983153983157983145983154983141983149983141983150983156983155983152983141983139983155 983142983151983154 983155983141983158983141983154983137983148 983154983141983148983141983137983155983141983155 983156983144983141983150 983140983141983155983145983143983150983085983137983150983140983085983139983151983140983141 983141983137983139983144 983145983150 983155983141983153983157983141983150983139983141

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1338

Benefits of using a lifecycle

bull It provides us with a structure in which to

work

bull It forces us to think of the ldquobig picturerdquo and

follow steps so that we reach it withoutglaring deficiencies

bull Without it you may make decisions that are

individually on target but collectivelymisdirected

bull It is a management tool Drawbacks

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1438

983116983145983149983145983156983137983156983145983151983150983155 983151983142 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983107983137983150 983148983141983137983140 983156983151 983139983151983149983152983154983151983149983145983155983141983155 983137983150983140 983137983154983156983145983142983145983139983145983137983148

983139983151983150983155983156983154983137983145983150983156983155

bull 983122983145983155983147 983151983142 983151983158983141983154983141983149983152983144983137983155983145983162983145983150983143 983152983154983151983139983141983155983155 (983150983151983156 983156983144983141 983141983150983140

983145983150 983145983156983155983141983148983142)

bull 983127983137983161983155 983151983142 983141983158983137983148983157983137983156983145983150983143 983149983151983140983141983148983155

ndash 983154983145983155983147 983149983137983150983137983143983141983149983141983150983156 983153983157983137983148983145983156983161983139983151983155983156 983139983151983150983156983154983151983148 983152983154983141983140983145983139983156983137983138983145983148983145983156983161

983158983145983155983145983138983145983148983145983156983161 983151983142 983152983154983151983143983154983141983155983155 983139983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156983142983141983141983140983138983137983139983147

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1538

Are there analogies outside of SE

Consider the process

of building the Paul Allen Center

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1638

Project with little attention to process

Survival Guide

McConnell p24

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1838

983116983141983156991257983155 983156983137983148983147 983137983138983151983157983156 983155983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1938

Code-and-fix model

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2038

Code-and-fix model

Advantagesbull Little or no overhead

ndash just dive in and develop and see progress quicklybull Applicable sometimes for very small projects and

short-lived prototypes

But DANGEROUS for most projectsbull No way to assess progress quality or risks

bull Unlikely to accommodate changes without a major

design overhaulbull Unclear delivery features (scope) timing and support

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2138

Waterfall model

Software

Requirements

Validation

System

Requirements

Validation

Preliminary

Design

Validation

Detailed

DesignValidation

Operations amp

Maintenance

Revalidation

Test

Validation test

Code amp

Debug

Development test

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2238

Waterfall model advantages

bull Can work well for projects that are very

well understood but complex

ndash Tackles all planning upfront

ndash The ideal of no midstream changes equates

to an efficient software development process

bull Supports inexperienced teams

ndash Orderly easy-to-follow sequential model

ndash Reviews at each stage determine if the

product is ready to advance

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 3: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 338

983127983144983137983156 983145983155 983139983151983149983152983148983141983160983103

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 438

983112983151983159 983139983151983149983152983148983141983160 983145983155 983155983151983142983156983159983137983154983141983103

bull 983117983141983137983155983157983154983141983155 983151983142 983139983151983149983152983148983141983160983145983156983161

ndash 983148983145983150983141983155 983151983142 983139983151983140983141 ndash 983150983157983149983138983141983154 983151983142 983139983148983137983155983155983141983155

ndash 983150983157983149983138983141983154 983151983142 983149983151983140983157983148983141983155

ndash 983149983151983140983157983148983141 983145983150983156983141983154983139983151983150983150983141983139983156983145983151983150983155 983137983150983140 983140983141983152983141983150983140983141983150983139983145983141983155 ndash 983156983145983149983141 983156983151 983157983150983140983141983154983155983156983137983150983140

ndash 983151983142 983137983157983156983144983151983154983155

ndash 991270 983149983137983150983161 983149983151983154983141

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 538

983112983151983159 983139983151983149983152983148983141983160 983145983155 983155983151983142983156983159983137983154983141983103

bull 983117983141983137983155983157983154983141983155 983151983142 983139983151983149983152983148983141983160983145983156983161

ndash 983148983145983150983141983155 983151983142 983139983151983140983141 ndash 983150983157983149983138983141983154 983151983142 983139983148983137983155983155983141983155

ndash 983150983157983149983138983141983154 983151983142 983149983151983140983157983148983141983155

ndash 983149983151983140983157983148983141 983145983150983156983141983154983139983151983150983150983141983139983156983145983151983150983155 983137983150983140 983140983141983152983141983150983140983141983150983139983145983141983155 ndash 983156983145983149983141 983156983151 983157983150983140983141983154983155983156983137983150983140

ndash 983151983142 983137983157983156983144983151983154983155

ndash 991270 983149983137983150983161 983149983151983154983141

Windows Server 2003 50 MSLoC

Debian 50 324 MSLoC

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 638

983112983151983159 983138983145983143 983145983155 983091983090983092 983117983123983116983151983107983103

bull 50 983148983145983150983141983155983152983137983143983141rArr 65983117 983152983137983143983141983155

bull 1983115 983152983137983143983141983155983154983141983137983149rArr 65983115 983154983141983137983149983155bull 2 983145983150983139983144983141983155983154983141983137983149rArr 13983115 983145983150983139983144983141983155

bull 13983115 983145983150983139983144983141983155 asymp 13983160 983156983144983141 983144983141983145983143983144983156 983151983142 983156983144983141 A983148983148983141983150 983107983141983150983156983141983154

bull 5 983159983151983154983140983155983116983151983107 50 983159983152983149rArr 32983117 983149983145983150 asymp 61 983161983141983137983154983155

983114983157983155983156 983156983151 983156983161983152983141

983118983151 983138983154983141983137983147983155 983137983150983140 983150983151 983156983144983145983150983147983145983150983143 983137983148983148983151983159983141983140

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 838

Outline

bull What is a software development lifecycle

bull Why do we need a lifecycle processbull Lifecycle models and their tradeoffs

ndash ldquoCode-and-fixrdquo

ndash Waterfall

ndash Spiral

ndash Evolutionary prototyping ndash Staged delivery

ndash Agile (XP scrum )

many others

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 938

983116983145983142983141983139983161983139983148983141 983155983156983137983143983141983155

bull 983126983145983154983156983157983137983148983148983161 983137983148983148 983148983145983142983141983139983161983139983148983141983155 983155983144983137983154983141 983156983144983141983155983141 983155983156983141983152983155983155983156983137983143983141983155983152983144983137983155983141983155

ndash 983122983141983153983157983145983154983141983149983141983150983156983155

ndash 983108983141983155983145983143983150

ndash 983113983149983152983148983141983149983141983150983156983137983156983145983151983150

ndash 983124983141983155983156983145983150983143 ndash 983117983137983145983150983156983141983150983137983150983139983141

bull 983115983141983161 983153983157983141983155983156983145983151983150 983144983151983159 983140983151 983161983151983157 983139983151983149983138983145983150983141 983156983144983141983149 983137983150983140 983145983150

983159983144983137983156 983151983154983140983141983154

9

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1038

Ad-hoc development

bull Ad-hoc development creating software without any formal

guidelines or process

bull Advantage easy to learn and use

bull Disadvantages

ndash may ignore some important tasks (testing design)

ndash not clear when to start or stop doing each task ndash scales poorly to multiple people

ndash hard to review or evaluate ones work

ndash code may not match users needs (no requirements)

ndash code was not planned for modification not flexible

The later a problem is found in software

the more costly it is to fix

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1138

The software lifecycle

bull Software lifecycle series of steps phases

through which software is produced

ndash from conception to end-of-life

ndash can take months or years to complete

bull Goals of each phase

ndash mark out a clear set of steps to perform

ndash produce a tangible item

ndash allow for review of work

ndash specify actions to perform in the next phase

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1238

983123983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983139983151983140983141983085983137983150983140983085983142983145983160 983159983154983145983156983141 983155983151983149983141 983139983151983140983141 983140983141983138983157983143 983145983156983154983141983152983141983137983156 (983145983141 983137983140983085983144983151983139)

bull 983159983137983156983141983154983142983137983148983148 983155983156983137983150983140983137983154983140 983152983144983137983155983141983155 (983154983141983153 983140983141983155983145983143983150 983139983151983140983141983156983141983155983156) 983145983150 983151983154983140983141983154

bull 983155983152983145983154983137983148 983137983155983155983141983155983155 983154983145983155983147983155 983137983156 983141983137983139983144 983155983156983141983152 983140983151 983149983151983155983156

983139983154983145983156983145983139983137983148 983137983139983156983145983151983150 983142983145983154983155983156

bull 983141983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983138983157983145983148983140 983137983150 983145983150983145983156983145983137983148983155983149983137983148983148 983154983141983153983157983145983154983141983149983141983150983156 983155983152983141983139 983139983151983140983141 983145983156 983156983144983141983150 983141983158983151983148983158983141983156983144983141 983155983152983141983139 983137983150983140 983139983151983140983141 983137983155 983150983141983141983140983141983140

bull 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983138983157983145983148983140 983145983150983145983156983145983137983148 983154983141983153983157983145983154983141983149983141983150983156983155983152983141983139983155 983142983151983154 983155983141983158983141983154983137983148 983154983141983148983141983137983155983141983155 983156983144983141983150 983140983141983155983145983143983150983085983137983150983140983085983139983151983140983141 983141983137983139983144 983145983150 983155983141983153983157983141983150983139983141

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1338

Benefits of using a lifecycle

bull It provides us with a structure in which to

work

bull It forces us to think of the ldquobig picturerdquo and

follow steps so that we reach it withoutglaring deficiencies

bull Without it you may make decisions that are

individually on target but collectivelymisdirected

bull It is a management tool Drawbacks

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1438

983116983145983149983145983156983137983156983145983151983150983155 983151983142 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983107983137983150 983148983141983137983140 983156983151 983139983151983149983152983154983151983149983145983155983141983155 983137983150983140 983137983154983156983145983142983145983139983145983137983148

983139983151983150983155983156983154983137983145983150983156983155

bull 983122983145983155983147 983151983142 983151983158983141983154983141983149983152983144983137983155983145983162983145983150983143 983152983154983151983139983141983155983155 (983150983151983156 983156983144983141 983141983150983140

983145983150 983145983156983155983141983148983142)

bull 983127983137983161983155 983151983142 983141983158983137983148983157983137983156983145983150983143 983149983151983140983141983148983155

ndash 983154983145983155983147 983149983137983150983137983143983141983149983141983150983156 983153983157983137983148983145983156983161983139983151983155983156 983139983151983150983156983154983151983148 983152983154983141983140983145983139983156983137983138983145983148983145983156983161

983158983145983155983145983138983145983148983145983156983161 983151983142 983152983154983151983143983154983141983155983155 983139983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156983142983141983141983140983138983137983139983147

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1538

Are there analogies outside of SE

Consider the process

of building the Paul Allen Center

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1638

Project with little attention to process

Survival Guide

McConnell p24

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1838

983116983141983156991257983155 983156983137983148983147 983137983138983151983157983156 983155983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1938

Code-and-fix model

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2038

Code-and-fix model

Advantagesbull Little or no overhead

ndash just dive in and develop and see progress quicklybull Applicable sometimes for very small projects and

short-lived prototypes

But DANGEROUS for most projectsbull No way to assess progress quality or risks

bull Unlikely to accommodate changes without a major

design overhaulbull Unclear delivery features (scope) timing and support

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2138

Waterfall model

Software

Requirements

Validation

System

Requirements

Validation

Preliminary

Design

Validation

Detailed

DesignValidation

Operations amp

Maintenance

Revalidation

Test

Validation test

Code amp

Debug

Development test

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2238

Waterfall model advantages

bull Can work well for projects that are very

well understood but complex

ndash Tackles all planning upfront

ndash The ideal of no midstream changes equates

to an efficient software development process

bull Supports inexperienced teams

ndash Orderly easy-to-follow sequential model

ndash Reviews at each stage determine if the

product is ready to advance

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 4: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 438

983112983151983159 983139983151983149983152983148983141983160 983145983155 983155983151983142983156983159983137983154983141983103

bull 983117983141983137983155983157983154983141983155 983151983142 983139983151983149983152983148983141983160983145983156983161

ndash 983148983145983150983141983155 983151983142 983139983151983140983141 ndash 983150983157983149983138983141983154 983151983142 983139983148983137983155983155983141983155

ndash 983150983157983149983138983141983154 983151983142 983149983151983140983157983148983141983155

ndash 983149983151983140983157983148983141 983145983150983156983141983154983139983151983150983150983141983139983156983145983151983150983155 983137983150983140 983140983141983152983141983150983140983141983150983139983145983141983155 ndash 983156983145983149983141 983156983151 983157983150983140983141983154983155983156983137983150983140

ndash 983151983142 983137983157983156983144983151983154983155

ndash 991270 983149983137983150983161 983149983151983154983141

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 538

983112983151983159 983139983151983149983152983148983141983160 983145983155 983155983151983142983156983159983137983154983141983103

bull 983117983141983137983155983157983154983141983155 983151983142 983139983151983149983152983148983141983160983145983156983161

ndash 983148983145983150983141983155 983151983142 983139983151983140983141 ndash 983150983157983149983138983141983154 983151983142 983139983148983137983155983155983141983155

ndash 983150983157983149983138983141983154 983151983142 983149983151983140983157983148983141983155

ndash 983149983151983140983157983148983141 983145983150983156983141983154983139983151983150983150983141983139983156983145983151983150983155 983137983150983140 983140983141983152983141983150983140983141983150983139983145983141983155 ndash 983156983145983149983141 983156983151 983157983150983140983141983154983155983156983137983150983140

ndash 983151983142 983137983157983156983144983151983154983155

ndash 991270 983149983137983150983161 983149983151983154983141

Windows Server 2003 50 MSLoC

Debian 50 324 MSLoC

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 638

983112983151983159 983138983145983143 983145983155 983091983090983092 983117983123983116983151983107983103

bull 50 983148983145983150983141983155983152983137983143983141rArr 65983117 983152983137983143983141983155

bull 1983115 983152983137983143983141983155983154983141983137983149rArr 65983115 983154983141983137983149983155bull 2 983145983150983139983144983141983155983154983141983137983149rArr 13983115 983145983150983139983144983141983155

bull 13983115 983145983150983139983144983141983155 asymp 13983160 983156983144983141 983144983141983145983143983144983156 983151983142 983156983144983141 A983148983148983141983150 983107983141983150983156983141983154

bull 5 983159983151983154983140983155983116983151983107 50 983159983152983149rArr 32983117 983149983145983150 asymp 61 983161983141983137983154983155

983114983157983155983156 983156983151 983156983161983152983141

983118983151 983138983154983141983137983147983155 983137983150983140 983150983151 983156983144983145983150983147983145983150983143 983137983148983148983151983159983141983140

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 838

Outline

bull What is a software development lifecycle

bull Why do we need a lifecycle processbull Lifecycle models and their tradeoffs

ndash ldquoCode-and-fixrdquo

ndash Waterfall

ndash Spiral

ndash Evolutionary prototyping ndash Staged delivery

ndash Agile (XP scrum )

many others

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 938

983116983145983142983141983139983161983139983148983141 983155983156983137983143983141983155

bull 983126983145983154983156983157983137983148983148983161 983137983148983148 983148983145983142983141983139983161983139983148983141983155 983155983144983137983154983141 983156983144983141983155983141 983155983156983141983152983155983155983156983137983143983141983155983152983144983137983155983141983155

ndash 983122983141983153983157983145983154983141983149983141983150983156983155

ndash 983108983141983155983145983143983150

ndash 983113983149983152983148983141983149983141983150983156983137983156983145983151983150

ndash 983124983141983155983156983145983150983143 ndash 983117983137983145983150983156983141983150983137983150983139983141

bull 983115983141983161 983153983157983141983155983156983145983151983150 983144983151983159 983140983151 983161983151983157 983139983151983149983138983145983150983141 983156983144983141983149 983137983150983140 983145983150

983159983144983137983156 983151983154983140983141983154

9

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1038

Ad-hoc development

bull Ad-hoc development creating software without any formal

guidelines or process

bull Advantage easy to learn and use

bull Disadvantages

ndash may ignore some important tasks (testing design)

ndash not clear when to start or stop doing each task ndash scales poorly to multiple people

ndash hard to review or evaluate ones work

ndash code may not match users needs (no requirements)

ndash code was not planned for modification not flexible

The later a problem is found in software

the more costly it is to fix

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1138

The software lifecycle

bull Software lifecycle series of steps phases

through which software is produced

ndash from conception to end-of-life

ndash can take months or years to complete

bull Goals of each phase

ndash mark out a clear set of steps to perform

ndash produce a tangible item

ndash allow for review of work

ndash specify actions to perform in the next phase

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1238

983123983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983139983151983140983141983085983137983150983140983085983142983145983160 983159983154983145983156983141 983155983151983149983141 983139983151983140983141 983140983141983138983157983143 983145983156983154983141983152983141983137983156 (983145983141 983137983140983085983144983151983139)

bull 983159983137983156983141983154983142983137983148983148 983155983156983137983150983140983137983154983140 983152983144983137983155983141983155 (983154983141983153 983140983141983155983145983143983150 983139983151983140983141983156983141983155983156) 983145983150 983151983154983140983141983154

bull 983155983152983145983154983137983148 983137983155983155983141983155983155 983154983145983155983147983155 983137983156 983141983137983139983144 983155983156983141983152 983140983151 983149983151983155983156

983139983154983145983156983145983139983137983148 983137983139983156983145983151983150 983142983145983154983155983156

bull 983141983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983138983157983145983148983140 983137983150 983145983150983145983156983145983137983148983155983149983137983148983148 983154983141983153983157983145983154983141983149983141983150983156 983155983152983141983139 983139983151983140983141 983145983156 983156983144983141983150 983141983158983151983148983158983141983156983144983141 983155983152983141983139 983137983150983140 983139983151983140983141 983137983155 983150983141983141983140983141983140

bull 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983138983157983145983148983140 983145983150983145983156983145983137983148 983154983141983153983157983145983154983141983149983141983150983156983155983152983141983139983155 983142983151983154 983155983141983158983141983154983137983148 983154983141983148983141983137983155983141983155 983156983144983141983150 983140983141983155983145983143983150983085983137983150983140983085983139983151983140983141 983141983137983139983144 983145983150 983155983141983153983157983141983150983139983141

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1338

Benefits of using a lifecycle

bull It provides us with a structure in which to

work

bull It forces us to think of the ldquobig picturerdquo and

follow steps so that we reach it withoutglaring deficiencies

bull Without it you may make decisions that are

individually on target but collectivelymisdirected

bull It is a management tool Drawbacks

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1438

983116983145983149983145983156983137983156983145983151983150983155 983151983142 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983107983137983150 983148983141983137983140 983156983151 983139983151983149983152983154983151983149983145983155983141983155 983137983150983140 983137983154983156983145983142983145983139983145983137983148

983139983151983150983155983156983154983137983145983150983156983155

bull 983122983145983155983147 983151983142 983151983158983141983154983141983149983152983144983137983155983145983162983145983150983143 983152983154983151983139983141983155983155 (983150983151983156 983156983144983141 983141983150983140

983145983150 983145983156983155983141983148983142)

bull 983127983137983161983155 983151983142 983141983158983137983148983157983137983156983145983150983143 983149983151983140983141983148983155

ndash 983154983145983155983147 983149983137983150983137983143983141983149983141983150983156 983153983157983137983148983145983156983161983139983151983155983156 983139983151983150983156983154983151983148 983152983154983141983140983145983139983156983137983138983145983148983145983156983161

983158983145983155983145983138983145983148983145983156983161 983151983142 983152983154983151983143983154983141983155983155 983139983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156983142983141983141983140983138983137983139983147

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1538

Are there analogies outside of SE

Consider the process

of building the Paul Allen Center

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1638

Project with little attention to process

Survival Guide

McConnell p24

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1838

983116983141983156991257983155 983156983137983148983147 983137983138983151983157983156 983155983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1938

Code-and-fix model

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2038

Code-and-fix model

Advantagesbull Little or no overhead

ndash just dive in and develop and see progress quicklybull Applicable sometimes for very small projects and

short-lived prototypes

But DANGEROUS for most projectsbull No way to assess progress quality or risks

bull Unlikely to accommodate changes without a major

design overhaulbull Unclear delivery features (scope) timing and support

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2138

Waterfall model

Software

Requirements

Validation

System

Requirements

Validation

Preliminary

Design

Validation

Detailed

DesignValidation

Operations amp

Maintenance

Revalidation

Test

Validation test

Code amp

Debug

Development test

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2238

Waterfall model advantages

bull Can work well for projects that are very

well understood but complex

ndash Tackles all planning upfront

ndash The ideal of no midstream changes equates

to an efficient software development process

bull Supports inexperienced teams

ndash Orderly easy-to-follow sequential model

ndash Reviews at each stage determine if the

product is ready to advance

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 5: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 538

983112983151983159 983139983151983149983152983148983141983160 983145983155 983155983151983142983156983159983137983154983141983103

bull 983117983141983137983155983157983154983141983155 983151983142 983139983151983149983152983148983141983160983145983156983161

ndash 983148983145983150983141983155 983151983142 983139983151983140983141 ndash 983150983157983149983138983141983154 983151983142 983139983148983137983155983155983141983155

ndash 983150983157983149983138983141983154 983151983142 983149983151983140983157983148983141983155

ndash 983149983151983140983157983148983141 983145983150983156983141983154983139983151983150983150983141983139983156983145983151983150983155 983137983150983140 983140983141983152983141983150983140983141983150983139983145983141983155 ndash 983156983145983149983141 983156983151 983157983150983140983141983154983155983156983137983150983140

ndash 983151983142 983137983157983156983144983151983154983155

ndash 991270 983149983137983150983161 983149983151983154983141

Windows Server 2003 50 MSLoC

Debian 50 324 MSLoC

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 638

983112983151983159 983138983145983143 983145983155 983091983090983092 983117983123983116983151983107983103

bull 50 983148983145983150983141983155983152983137983143983141rArr 65983117 983152983137983143983141983155

bull 1983115 983152983137983143983141983155983154983141983137983149rArr 65983115 983154983141983137983149983155bull 2 983145983150983139983144983141983155983154983141983137983149rArr 13983115 983145983150983139983144983141983155

bull 13983115 983145983150983139983144983141983155 asymp 13983160 983156983144983141 983144983141983145983143983144983156 983151983142 983156983144983141 A983148983148983141983150 983107983141983150983156983141983154

bull 5 983159983151983154983140983155983116983151983107 50 983159983152983149rArr 32983117 983149983145983150 asymp 61 983161983141983137983154983155

983114983157983155983156 983156983151 983156983161983152983141

983118983151 983138983154983141983137983147983155 983137983150983140 983150983151 983156983144983145983150983147983145983150983143 983137983148983148983151983159983141983140

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 838

Outline

bull What is a software development lifecycle

bull Why do we need a lifecycle processbull Lifecycle models and their tradeoffs

ndash ldquoCode-and-fixrdquo

ndash Waterfall

ndash Spiral

ndash Evolutionary prototyping ndash Staged delivery

ndash Agile (XP scrum )

many others

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 938

983116983145983142983141983139983161983139983148983141 983155983156983137983143983141983155

bull 983126983145983154983156983157983137983148983148983161 983137983148983148 983148983145983142983141983139983161983139983148983141983155 983155983144983137983154983141 983156983144983141983155983141 983155983156983141983152983155983155983156983137983143983141983155983152983144983137983155983141983155

ndash 983122983141983153983157983145983154983141983149983141983150983156983155

ndash 983108983141983155983145983143983150

ndash 983113983149983152983148983141983149983141983150983156983137983156983145983151983150

ndash 983124983141983155983156983145983150983143 ndash 983117983137983145983150983156983141983150983137983150983139983141

bull 983115983141983161 983153983157983141983155983156983145983151983150 983144983151983159 983140983151 983161983151983157 983139983151983149983138983145983150983141 983156983144983141983149 983137983150983140 983145983150

983159983144983137983156 983151983154983140983141983154

9

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1038

Ad-hoc development

bull Ad-hoc development creating software without any formal

guidelines or process

bull Advantage easy to learn and use

bull Disadvantages

ndash may ignore some important tasks (testing design)

ndash not clear when to start or stop doing each task ndash scales poorly to multiple people

ndash hard to review or evaluate ones work

ndash code may not match users needs (no requirements)

ndash code was not planned for modification not flexible

The later a problem is found in software

the more costly it is to fix

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1138

The software lifecycle

bull Software lifecycle series of steps phases

through which software is produced

ndash from conception to end-of-life

ndash can take months or years to complete

bull Goals of each phase

ndash mark out a clear set of steps to perform

ndash produce a tangible item

ndash allow for review of work

ndash specify actions to perform in the next phase

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1238

983123983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983139983151983140983141983085983137983150983140983085983142983145983160 983159983154983145983156983141 983155983151983149983141 983139983151983140983141 983140983141983138983157983143 983145983156983154983141983152983141983137983156 (983145983141 983137983140983085983144983151983139)

bull 983159983137983156983141983154983142983137983148983148 983155983156983137983150983140983137983154983140 983152983144983137983155983141983155 (983154983141983153 983140983141983155983145983143983150 983139983151983140983141983156983141983155983156) 983145983150 983151983154983140983141983154

bull 983155983152983145983154983137983148 983137983155983155983141983155983155 983154983145983155983147983155 983137983156 983141983137983139983144 983155983156983141983152 983140983151 983149983151983155983156

983139983154983145983156983145983139983137983148 983137983139983156983145983151983150 983142983145983154983155983156

bull 983141983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983138983157983145983148983140 983137983150 983145983150983145983156983145983137983148983155983149983137983148983148 983154983141983153983157983145983154983141983149983141983150983156 983155983152983141983139 983139983151983140983141 983145983156 983156983144983141983150 983141983158983151983148983158983141983156983144983141 983155983152983141983139 983137983150983140 983139983151983140983141 983137983155 983150983141983141983140983141983140

bull 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983138983157983145983148983140 983145983150983145983156983145983137983148 983154983141983153983157983145983154983141983149983141983150983156983155983152983141983139983155 983142983151983154 983155983141983158983141983154983137983148 983154983141983148983141983137983155983141983155 983156983144983141983150 983140983141983155983145983143983150983085983137983150983140983085983139983151983140983141 983141983137983139983144 983145983150 983155983141983153983157983141983150983139983141

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1338

Benefits of using a lifecycle

bull It provides us with a structure in which to

work

bull It forces us to think of the ldquobig picturerdquo and

follow steps so that we reach it withoutglaring deficiencies

bull Without it you may make decisions that are

individually on target but collectivelymisdirected

bull It is a management tool Drawbacks

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1438

983116983145983149983145983156983137983156983145983151983150983155 983151983142 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983107983137983150 983148983141983137983140 983156983151 983139983151983149983152983154983151983149983145983155983141983155 983137983150983140 983137983154983156983145983142983145983139983145983137983148

983139983151983150983155983156983154983137983145983150983156983155

bull 983122983145983155983147 983151983142 983151983158983141983154983141983149983152983144983137983155983145983162983145983150983143 983152983154983151983139983141983155983155 (983150983151983156 983156983144983141 983141983150983140

983145983150 983145983156983155983141983148983142)

bull 983127983137983161983155 983151983142 983141983158983137983148983157983137983156983145983150983143 983149983151983140983141983148983155

ndash 983154983145983155983147 983149983137983150983137983143983141983149983141983150983156 983153983157983137983148983145983156983161983139983151983155983156 983139983151983150983156983154983151983148 983152983154983141983140983145983139983156983137983138983145983148983145983156983161

983158983145983155983145983138983145983148983145983156983161 983151983142 983152983154983151983143983154983141983155983155 983139983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156983142983141983141983140983138983137983139983147

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1538

Are there analogies outside of SE

Consider the process

of building the Paul Allen Center

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1638

Project with little attention to process

Survival Guide

McConnell p24

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1838

983116983141983156991257983155 983156983137983148983147 983137983138983151983157983156 983155983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1938

Code-and-fix model

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2038

Code-and-fix model

Advantagesbull Little or no overhead

ndash just dive in and develop and see progress quicklybull Applicable sometimes for very small projects and

short-lived prototypes

But DANGEROUS for most projectsbull No way to assess progress quality or risks

bull Unlikely to accommodate changes without a major

design overhaulbull Unclear delivery features (scope) timing and support

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2138

Waterfall model

Software

Requirements

Validation

System

Requirements

Validation

Preliminary

Design

Validation

Detailed

DesignValidation

Operations amp

Maintenance

Revalidation

Test

Validation test

Code amp

Debug

Development test

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2238

Waterfall model advantages

bull Can work well for projects that are very

well understood but complex

ndash Tackles all planning upfront

ndash The ideal of no midstream changes equates

to an efficient software development process

bull Supports inexperienced teams

ndash Orderly easy-to-follow sequential model

ndash Reviews at each stage determine if the

product is ready to advance

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 6: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 638

983112983151983159 983138983145983143 983145983155 983091983090983092 983117983123983116983151983107983103

bull 50 983148983145983150983141983155983152983137983143983141rArr 65983117 983152983137983143983141983155

bull 1983115 983152983137983143983141983155983154983141983137983149rArr 65983115 983154983141983137983149983155bull 2 983145983150983139983144983141983155983154983141983137983149rArr 13983115 983145983150983139983144983141983155

bull 13983115 983145983150983139983144983141983155 asymp 13983160 983156983144983141 983144983141983145983143983144983156 983151983142 983156983144983141 A983148983148983141983150 983107983141983150983156983141983154

bull 5 983159983151983154983140983155983116983151983107 50 983159983152983149rArr 32983117 983149983145983150 asymp 61 983161983141983137983154983155

983114983157983155983156 983156983151 983156983161983152983141

983118983151 983138983154983141983137983147983155 983137983150983140 983150983151 983156983144983145983150983147983145983150983143 983137983148983148983151983159983141983140

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 838

Outline

bull What is a software development lifecycle

bull Why do we need a lifecycle processbull Lifecycle models and their tradeoffs

ndash ldquoCode-and-fixrdquo

ndash Waterfall

ndash Spiral

ndash Evolutionary prototyping ndash Staged delivery

ndash Agile (XP scrum )

many others

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 938

983116983145983142983141983139983161983139983148983141 983155983156983137983143983141983155

bull 983126983145983154983156983157983137983148983148983161 983137983148983148 983148983145983142983141983139983161983139983148983141983155 983155983144983137983154983141 983156983144983141983155983141 983155983156983141983152983155983155983156983137983143983141983155983152983144983137983155983141983155

ndash 983122983141983153983157983145983154983141983149983141983150983156983155

ndash 983108983141983155983145983143983150

ndash 983113983149983152983148983141983149983141983150983156983137983156983145983151983150

ndash 983124983141983155983156983145983150983143 ndash 983117983137983145983150983156983141983150983137983150983139983141

bull 983115983141983161 983153983157983141983155983156983145983151983150 983144983151983159 983140983151 983161983151983157 983139983151983149983138983145983150983141 983156983144983141983149 983137983150983140 983145983150

983159983144983137983156 983151983154983140983141983154

9

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1038

Ad-hoc development

bull Ad-hoc development creating software without any formal

guidelines or process

bull Advantage easy to learn and use

bull Disadvantages

ndash may ignore some important tasks (testing design)

ndash not clear when to start or stop doing each task ndash scales poorly to multiple people

ndash hard to review or evaluate ones work

ndash code may not match users needs (no requirements)

ndash code was not planned for modification not flexible

The later a problem is found in software

the more costly it is to fix

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1138

The software lifecycle

bull Software lifecycle series of steps phases

through which software is produced

ndash from conception to end-of-life

ndash can take months or years to complete

bull Goals of each phase

ndash mark out a clear set of steps to perform

ndash produce a tangible item

ndash allow for review of work

ndash specify actions to perform in the next phase

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1238

983123983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983139983151983140983141983085983137983150983140983085983142983145983160 983159983154983145983156983141 983155983151983149983141 983139983151983140983141 983140983141983138983157983143 983145983156983154983141983152983141983137983156 (983145983141 983137983140983085983144983151983139)

bull 983159983137983156983141983154983142983137983148983148 983155983156983137983150983140983137983154983140 983152983144983137983155983141983155 (983154983141983153 983140983141983155983145983143983150 983139983151983140983141983156983141983155983156) 983145983150 983151983154983140983141983154

bull 983155983152983145983154983137983148 983137983155983155983141983155983155 983154983145983155983147983155 983137983156 983141983137983139983144 983155983156983141983152 983140983151 983149983151983155983156

983139983154983145983156983145983139983137983148 983137983139983156983145983151983150 983142983145983154983155983156

bull 983141983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983138983157983145983148983140 983137983150 983145983150983145983156983145983137983148983155983149983137983148983148 983154983141983153983157983145983154983141983149983141983150983156 983155983152983141983139 983139983151983140983141 983145983156 983156983144983141983150 983141983158983151983148983158983141983156983144983141 983155983152983141983139 983137983150983140 983139983151983140983141 983137983155 983150983141983141983140983141983140

bull 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983138983157983145983148983140 983145983150983145983156983145983137983148 983154983141983153983157983145983154983141983149983141983150983156983155983152983141983139983155 983142983151983154 983155983141983158983141983154983137983148 983154983141983148983141983137983155983141983155 983156983144983141983150 983140983141983155983145983143983150983085983137983150983140983085983139983151983140983141 983141983137983139983144 983145983150 983155983141983153983157983141983150983139983141

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1338

Benefits of using a lifecycle

bull It provides us with a structure in which to

work

bull It forces us to think of the ldquobig picturerdquo and

follow steps so that we reach it withoutglaring deficiencies

bull Without it you may make decisions that are

individually on target but collectivelymisdirected

bull It is a management tool Drawbacks

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1438

983116983145983149983145983156983137983156983145983151983150983155 983151983142 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983107983137983150 983148983141983137983140 983156983151 983139983151983149983152983154983151983149983145983155983141983155 983137983150983140 983137983154983156983145983142983145983139983145983137983148

983139983151983150983155983156983154983137983145983150983156983155

bull 983122983145983155983147 983151983142 983151983158983141983154983141983149983152983144983137983155983145983162983145983150983143 983152983154983151983139983141983155983155 (983150983151983156 983156983144983141 983141983150983140

983145983150 983145983156983155983141983148983142)

bull 983127983137983161983155 983151983142 983141983158983137983148983157983137983156983145983150983143 983149983151983140983141983148983155

ndash 983154983145983155983147 983149983137983150983137983143983141983149983141983150983156 983153983157983137983148983145983156983161983139983151983155983156 983139983151983150983156983154983151983148 983152983154983141983140983145983139983156983137983138983145983148983145983156983161

983158983145983155983145983138983145983148983145983156983161 983151983142 983152983154983151983143983154983141983155983155 983139983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156983142983141983141983140983138983137983139983147

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1538

Are there analogies outside of SE

Consider the process

of building the Paul Allen Center

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1638

Project with little attention to process

Survival Guide

McConnell p24

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1838

983116983141983156991257983155 983156983137983148983147 983137983138983151983157983156 983155983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1938

Code-and-fix model

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2038

Code-and-fix model

Advantagesbull Little or no overhead

ndash just dive in and develop and see progress quicklybull Applicable sometimes for very small projects and

short-lived prototypes

But DANGEROUS for most projectsbull No way to assess progress quality or risks

bull Unlikely to accommodate changes without a major

design overhaulbull Unclear delivery features (scope) timing and support

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2138

Waterfall model

Software

Requirements

Validation

System

Requirements

Validation

Preliminary

Design

Validation

Detailed

DesignValidation

Operations amp

Maintenance

Revalidation

Test

Validation test

Code amp

Debug

Development test

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2238

Waterfall model advantages

bull Can work well for projects that are very

well understood but complex

ndash Tackles all planning upfront

ndash The ideal of no midstream changes equates

to an efficient software development process

bull Supports inexperienced teams

ndash Orderly easy-to-follow sequential model

ndash Reviews at each stage determine if the

product is ready to advance

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 7: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 838

Outline

bull What is a software development lifecycle

bull Why do we need a lifecycle processbull Lifecycle models and their tradeoffs

ndash ldquoCode-and-fixrdquo

ndash Waterfall

ndash Spiral

ndash Evolutionary prototyping ndash Staged delivery

ndash Agile (XP scrum )

many others

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 938

983116983145983142983141983139983161983139983148983141 983155983156983137983143983141983155

bull 983126983145983154983156983157983137983148983148983161 983137983148983148 983148983145983142983141983139983161983139983148983141983155 983155983144983137983154983141 983156983144983141983155983141 983155983156983141983152983155983155983156983137983143983141983155983152983144983137983155983141983155

ndash 983122983141983153983157983145983154983141983149983141983150983156983155

ndash 983108983141983155983145983143983150

ndash 983113983149983152983148983141983149983141983150983156983137983156983145983151983150

ndash 983124983141983155983156983145983150983143 ndash 983117983137983145983150983156983141983150983137983150983139983141

bull 983115983141983161 983153983157983141983155983156983145983151983150 983144983151983159 983140983151 983161983151983157 983139983151983149983138983145983150983141 983156983144983141983149 983137983150983140 983145983150

983159983144983137983156 983151983154983140983141983154

9

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1038

Ad-hoc development

bull Ad-hoc development creating software without any formal

guidelines or process

bull Advantage easy to learn and use

bull Disadvantages

ndash may ignore some important tasks (testing design)

ndash not clear when to start or stop doing each task ndash scales poorly to multiple people

ndash hard to review or evaluate ones work

ndash code may not match users needs (no requirements)

ndash code was not planned for modification not flexible

The later a problem is found in software

the more costly it is to fix

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1138

The software lifecycle

bull Software lifecycle series of steps phases

through which software is produced

ndash from conception to end-of-life

ndash can take months or years to complete

bull Goals of each phase

ndash mark out a clear set of steps to perform

ndash produce a tangible item

ndash allow for review of work

ndash specify actions to perform in the next phase

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1238

983123983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983139983151983140983141983085983137983150983140983085983142983145983160 983159983154983145983156983141 983155983151983149983141 983139983151983140983141 983140983141983138983157983143 983145983156983154983141983152983141983137983156 (983145983141 983137983140983085983144983151983139)

bull 983159983137983156983141983154983142983137983148983148 983155983156983137983150983140983137983154983140 983152983144983137983155983141983155 (983154983141983153 983140983141983155983145983143983150 983139983151983140983141983156983141983155983156) 983145983150 983151983154983140983141983154

bull 983155983152983145983154983137983148 983137983155983155983141983155983155 983154983145983155983147983155 983137983156 983141983137983139983144 983155983156983141983152 983140983151 983149983151983155983156

983139983154983145983156983145983139983137983148 983137983139983156983145983151983150 983142983145983154983155983156

bull 983141983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983138983157983145983148983140 983137983150 983145983150983145983156983145983137983148983155983149983137983148983148 983154983141983153983157983145983154983141983149983141983150983156 983155983152983141983139 983139983151983140983141 983145983156 983156983144983141983150 983141983158983151983148983158983141983156983144983141 983155983152983141983139 983137983150983140 983139983151983140983141 983137983155 983150983141983141983140983141983140

bull 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983138983157983145983148983140 983145983150983145983156983145983137983148 983154983141983153983157983145983154983141983149983141983150983156983155983152983141983139983155 983142983151983154 983155983141983158983141983154983137983148 983154983141983148983141983137983155983141983155 983156983144983141983150 983140983141983155983145983143983150983085983137983150983140983085983139983151983140983141 983141983137983139983144 983145983150 983155983141983153983157983141983150983139983141

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1338

Benefits of using a lifecycle

bull It provides us with a structure in which to

work

bull It forces us to think of the ldquobig picturerdquo and

follow steps so that we reach it withoutglaring deficiencies

bull Without it you may make decisions that are

individually on target but collectivelymisdirected

bull It is a management tool Drawbacks

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1438

983116983145983149983145983156983137983156983145983151983150983155 983151983142 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983107983137983150 983148983141983137983140 983156983151 983139983151983149983152983154983151983149983145983155983141983155 983137983150983140 983137983154983156983145983142983145983139983145983137983148

983139983151983150983155983156983154983137983145983150983156983155

bull 983122983145983155983147 983151983142 983151983158983141983154983141983149983152983144983137983155983145983162983145983150983143 983152983154983151983139983141983155983155 (983150983151983156 983156983144983141 983141983150983140

983145983150 983145983156983155983141983148983142)

bull 983127983137983161983155 983151983142 983141983158983137983148983157983137983156983145983150983143 983149983151983140983141983148983155

ndash 983154983145983155983147 983149983137983150983137983143983141983149983141983150983156 983153983157983137983148983145983156983161983139983151983155983156 983139983151983150983156983154983151983148 983152983154983141983140983145983139983156983137983138983145983148983145983156983161

983158983145983155983145983138983145983148983145983156983161 983151983142 983152983154983151983143983154983141983155983155 983139983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156983142983141983141983140983138983137983139983147

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1538

Are there analogies outside of SE

Consider the process

of building the Paul Allen Center

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1638

Project with little attention to process

Survival Guide

McConnell p24

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1838

983116983141983156991257983155 983156983137983148983147 983137983138983151983157983156 983155983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1938

Code-and-fix model

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2038

Code-and-fix model

Advantagesbull Little or no overhead

ndash just dive in and develop and see progress quicklybull Applicable sometimes for very small projects and

short-lived prototypes

But DANGEROUS for most projectsbull No way to assess progress quality or risks

bull Unlikely to accommodate changes without a major

design overhaulbull Unclear delivery features (scope) timing and support

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2138

Waterfall model

Software

Requirements

Validation

System

Requirements

Validation

Preliminary

Design

Validation

Detailed

DesignValidation

Operations amp

Maintenance

Revalidation

Test

Validation test

Code amp

Debug

Development test

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2238

Waterfall model advantages

bull Can work well for projects that are very

well understood but complex

ndash Tackles all planning upfront

ndash The ideal of no midstream changes equates

to an efficient software development process

bull Supports inexperienced teams

ndash Orderly easy-to-follow sequential model

ndash Reviews at each stage determine if the

product is ready to advance

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 8: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 838

Outline

bull What is a software development lifecycle

bull Why do we need a lifecycle processbull Lifecycle models and their tradeoffs

ndash ldquoCode-and-fixrdquo

ndash Waterfall

ndash Spiral

ndash Evolutionary prototyping ndash Staged delivery

ndash Agile (XP scrum )

many others

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 938

983116983145983142983141983139983161983139983148983141 983155983156983137983143983141983155

bull 983126983145983154983156983157983137983148983148983161 983137983148983148 983148983145983142983141983139983161983139983148983141983155 983155983144983137983154983141 983156983144983141983155983141 983155983156983141983152983155983155983156983137983143983141983155983152983144983137983155983141983155

ndash 983122983141983153983157983145983154983141983149983141983150983156983155

ndash 983108983141983155983145983143983150

ndash 983113983149983152983148983141983149983141983150983156983137983156983145983151983150

ndash 983124983141983155983156983145983150983143 ndash 983117983137983145983150983156983141983150983137983150983139983141

bull 983115983141983161 983153983157983141983155983156983145983151983150 983144983151983159 983140983151 983161983151983157 983139983151983149983138983145983150983141 983156983144983141983149 983137983150983140 983145983150

983159983144983137983156 983151983154983140983141983154

9

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1038

Ad-hoc development

bull Ad-hoc development creating software without any formal

guidelines or process

bull Advantage easy to learn and use

bull Disadvantages

ndash may ignore some important tasks (testing design)

ndash not clear when to start or stop doing each task ndash scales poorly to multiple people

ndash hard to review or evaluate ones work

ndash code may not match users needs (no requirements)

ndash code was not planned for modification not flexible

The later a problem is found in software

the more costly it is to fix

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1138

The software lifecycle

bull Software lifecycle series of steps phases

through which software is produced

ndash from conception to end-of-life

ndash can take months or years to complete

bull Goals of each phase

ndash mark out a clear set of steps to perform

ndash produce a tangible item

ndash allow for review of work

ndash specify actions to perform in the next phase

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1238

983123983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983139983151983140983141983085983137983150983140983085983142983145983160 983159983154983145983156983141 983155983151983149983141 983139983151983140983141 983140983141983138983157983143 983145983156983154983141983152983141983137983156 (983145983141 983137983140983085983144983151983139)

bull 983159983137983156983141983154983142983137983148983148 983155983156983137983150983140983137983154983140 983152983144983137983155983141983155 (983154983141983153 983140983141983155983145983143983150 983139983151983140983141983156983141983155983156) 983145983150 983151983154983140983141983154

bull 983155983152983145983154983137983148 983137983155983155983141983155983155 983154983145983155983147983155 983137983156 983141983137983139983144 983155983156983141983152 983140983151 983149983151983155983156

983139983154983145983156983145983139983137983148 983137983139983156983145983151983150 983142983145983154983155983156

bull 983141983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983138983157983145983148983140 983137983150 983145983150983145983156983145983137983148983155983149983137983148983148 983154983141983153983157983145983154983141983149983141983150983156 983155983152983141983139 983139983151983140983141 983145983156 983156983144983141983150 983141983158983151983148983158983141983156983144983141 983155983152983141983139 983137983150983140 983139983151983140983141 983137983155 983150983141983141983140983141983140

bull 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983138983157983145983148983140 983145983150983145983156983145983137983148 983154983141983153983157983145983154983141983149983141983150983156983155983152983141983139983155 983142983151983154 983155983141983158983141983154983137983148 983154983141983148983141983137983155983141983155 983156983144983141983150 983140983141983155983145983143983150983085983137983150983140983085983139983151983140983141 983141983137983139983144 983145983150 983155983141983153983157983141983150983139983141

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1338

Benefits of using a lifecycle

bull It provides us with a structure in which to

work

bull It forces us to think of the ldquobig picturerdquo and

follow steps so that we reach it withoutglaring deficiencies

bull Without it you may make decisions that are

individually on target but collectivelymisdirected

bull It is a management tool Drawbacks

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1438

983116983145983149983145983156983137983156983145983151983150983155 983151983142 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983107983137983150 983148983141983137983140 983156983151 983139983151983149983152983154983151983149983145983155983141983155 983137983150983140 983137983154983156983145983142983145983139983145983137983148

983139983151983150983155983156983154983137983145983150983156983155

bull 983122983145983155983147 983151983142 983151983158983141983154983141983149983152983144983137983155983145983162983145983150983143 983152983154983151983139983141983155983155 (983150983151983156 983156983144983141 983141983150983140

983145983150 983145983156983155983141983148983142)

bull 983127983137983161983155 983151983142 983141983158983137983148983157983137983156983145983150983143 983149983151983140983141983148983155

ndash 983154983145983155983147 983149983137983150983137983143983141983149983141983150983156 983153983157983137983148983145983156983161983139983151983155983156 983139983151983150983156983154983151983148 983152983154983141983140983145983139983156983137983138983145983148983145983156983161

983158983145983155983145983138983145983148983145983156983161 983151983142 983152983154983151983143983154983141983155983155 983139983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156983142983141983141983140983138983137983139983147

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1538

Are there analogies outside of SE

Consider the process

of building the Paul Allen Center

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1638

Project with little attention to process

Survival Guide

McConnell p24

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1838

983116983141983156991257983155 983156983137983148983147 983137983138983151983157983156 983155983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1938

Code-and-fix model

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2038

Code-and-fix model

Advantagesbull Little or no overhead

ndash just dive in and develop and see progress quicklybull Applicable sometimes for very small projects and

short-lived prototypes

But DANGEROUS for most projectsbull No way to assess progress quality or risks

bull Unlikely to accommodate changes without a major

design overhaulbull Unclear delivery features (scope) timing and support

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2138

Waterfall model

Software

Requirements

Validation

System

Requirements

Validation

Preliminary

Design

Validation

Detailed

DesignValidation

Operations amp

Maintenance

Revalidation

Test

Validation test

Code amp

Debug

Development test

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2238

Waterfall model advantages

bull Can work well for projects that are very

well understood but complex

ndash Tackles all planning upfront

ndash The ideal of no midstream changes equates

to an efficient software development process

bull Supports inexperienced teams

ndash Orderly easy-to-follow sequential model

ndash Reviews at each stage determine if the

product is ready to advance

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 9: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 938

983116983145983142983141983139983161983139983148983141 983155983156983137983143983141983155

bull 983126983145983154983156983157983137983148983148983161 983137983148983148 983148983145983142983141983139983161983139983148983141983155 983155983144983137983154983141 983156983144983141983155983141 983155983156983141983152983155983155983156983137983143983141983155983152983144983137983155983141983155

ndash 983122983141983153983157983145983154983141983149983141983150983156983155

ndash 983108983141983155983145983143983150

ndash 983113983149983152983148983141983149983141983150983156983137983156983145983151983150

ndash 983124983141983155983156983145983150983143 ndash 983117983137983145983150983156983141983150983137983150983139983141

bull 983115983141983161 983153983157983141983155983156983145983151983150 983144983151983159 983140983151 983161983151983157 983139983151983149983138983145983150983141 983156983144983141983149 983137983150983140 983145983150

983159983144983137983156 983151983154983140983141983154

9

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1038

Ad-hoc development

bull Ad-hoc development creating software without any formal

guidelines or process

bull Advantage easy to learn and use

bull Disadvantages

ndash may ignore some important tasks (testing design)

ndash not clear when to start or stop doing each task ndash scales poorly to multiple people

ndash hard to review or evaluate ones work

ndash code may not match users needs (no requirements)

ndash code was not planned for modification not flexible

The later a problem is found in software

the more costly it is to fix

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1138

The software lifecycle

bull Software lifecycle series of steps phases

through which software is produced

ndash from conception to end-of-life

ndash can take months or years to complete

bull Goals of each phase

ndash mark out a clear set of steps to perform

ndash produce a tangible item

ndash allow for review of work

ndash specify actions to perform in the next phase

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1238

983123983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983139983151983140983141983085983137983150983140983085983142983145983160 983159983154983145983156983141 983155983151983149983141 983139983151983140983141 983140983141983138983157983143 983145983156983154983141983152983141983137983156 (983145983141 983137983140983085983144983151983139)

bull 983159983137983156983141983154983142983137983148983148 983155983156983137983150983140983137983154983140 983152983144983137983155983141983155 (983154983141983153 983140983141983155983145983143983150 983139983151983140983141983156983141983155983156) 983145983150 983151983154983140983141983154

bull 983155983152983145983154983137983148 983137983155983155983141983155983155 983154983145983155983147983155 983137983156 983141983137983139983144 983155983156983141983152 983140983151 983149983151983155983156

983139983154983145983156983145983139983137983148 983137983139983156983145983151983150 983142983145983154983155983156

bull 983141983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983138983157983145983148983140 983137983150 983145983150983145983156983145983137983148983155983149983137983148983148 983154983141983153983157983145983154983141983149983141983150983156 983155983152983141983139 983139983151983140983141 983145983156 983156983144983141983150 983141983158983151983148983158983141983156983144983141 983155983152983141983139 983137983150983140 983139983151983140983141 983137983155 983150983141983141983140983141983140

bull 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983138983157983145983148983140 983145983150983145983156983145983137983148 983154983141983153983157983145983154983141983149983141983150983156983155983152983141983139983155 983142983151983154 983155983141983158983141983154983137983148 983154983141983148983141983137983155983141983155 983156983144983141983150 983140983141983155983145983143983150983085983137983150983140983085983139983151983140983141 983141983137983139983144 983145983150 983155983141983153983157983141983150983139983141

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1338

Benefits of using a lifecycle

bull It provides us with a structure in which to

work

bull It forces us to think of the ldquobig picturerdquo and

follow steps so that we reach it withoutglaring deficiencies

bull Without it you may make decisions that are

individually on target but collectivelymisdirected

bull It is a management tool Drawbacks

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1438

983116983145983149983145983156983137983156983145983151983150983155 983151983142 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983107983137983150 983148983141983137983140 983156983151 983139983151983149983152983154983151983149983145983155983141983155 983137983150983140 983137983154983156983145983142983145983139983145983137983148

983139983151983150983155983156983154983137983145983150983156983155

bull 983122983145983155983147 983151983142 983151983158983141983154983141983149983152983144983137983155983145983162983145983150983143 983152983154983151983139983141983155983155 (983150983151983156 983156983144983141 983141983150983140

983145983150 983145983156983155983141983148983142)

bull 983127983137983161983155 983151983142 983141983158983137983148983157983137983156983145983150983143 983149983151983140983141983148983155

ndash 983154983145983155983147 983149983137983150983137983143983141983149983141983150983156 983153983157983137983148983145983156983161983139983151983155983156 983139983151983150983156983154983151983148 983152983154983141983140983145983139983156983137983138983145983148983145983156983161

983158983145983155983145983138983145983148983145983156983161 983151983142 983152983154983151983143983154983141983155983155 983139983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156983142983141983141983140983138983137983139983147

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1538

Are there analogies outside of SE

Consider the process

of building the Paul Allen Center

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1638

Project with little attention to process

Survival Guide

McConnell p24

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1838

983116983141983156991257983155 983156983137983148983147 983137983138983151983157983156 983155983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1938

Code-and-fix model

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2038

Code-and-fix model

Advantagesbull Little or no overhead

ndash just dive in and develop and see progress quicklybull Applicable sometimes for very small projects and

short-lived prototypes

But DANGEROUS for most projectsbull No way to assess progress quality or risks

bull Unlikely to accommodate changes without a major

design overhaulbull Unclear delivery features (scope) timing and support

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2138

Waterfall model

Software

Requirements

Validation

System

Requirements

Validation

Preliminary

Design

Validation

Detailed

DesignValidation

Operations amp

Maintenance

Revalidation

Test

Validation test

Code amp

Debug

Development test

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2238

Waterfall model advantages

bull Can work well for projects that are very

well understood but complex

ndash Tackles all planning upfront

ndash The ideal of no midstream changes equates

to an efficient software development process

bull Supports inexperienced teams

ndash Orderly easy-to-follow sequential model

ndash Reviews at each stage determine if the

product is ready to advance

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 10: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1038

Ad-hoc development

bull Ad-hoc development creating software without any formal

guidelines or process

bull Advantage easy to learn and use

bull Disadvantages

ndash may ignore some important tasks (testing design)

ndash not clear when to start or stop doing each task ndash scales poorly to multiple people

ndash hard to review or evaluate ones work

ndash code may not match users needs (no requirements)

ndash code was not planned for modification not flexible

The later a problem is found in software

the more costly it is to fix

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1138

The software lifecycle

bull Software lifecycle series of steps phases

through which software is produced

ndash from conception to end-of-life

ndash can take months or years to complete

bull Goals of each phase

ndash mark out a clear set of steps to perform

ndash produce a tangible item

ndash allow for review of work

ndash specify actions to perform in the next phase

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1238

983123983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983139983151983140983141983085983137983150983140983085983142983145983160 983159983154983145983156983141 983155983151983149983141 983139983151983140983141 983140983141983138983157983143 983145983156983154983141983152983141983137983156 (983145983141 983137983140983085983144983151983139)

bull 983159983137983156983141983154983142983137983148983148 983155983156983137983150983140983137983154983140 983152983144983137983155983141983155 (983154983141983153 983140983141983155983145983143983150 983139983151983140983141983156983141983155983156) 983145983150 983151983154983140983141983154

bull 983155983152983145983154983137983148 983137983155983155983141983155983155 983154983145983155983147983155 983137983156 983141983137983139983144 983155983156983141983152 983140983151 983149983151983155983156

983139983154983145983156983145983139983137983148 983137983139983156983145983151983150 983142983145983154983155983156

bull 983141983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983138983157983145983148983140 983137983150 983145983150983145983156983145983137983148983155983149983137983148983148 983154983141983153983157983145983154983141983149983141983150983156 983155983152983141983139 983139983151983140983141 983145983156 983156983144983141983150 983141983158983151983148983158983141983156983144983141 983155983152983141983139 983137983150983140 983139983151983140983141 983137983155 983150983141983141983140983141983140

bull 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983138983157983145983148983140 983145983150983145983156983145983137983148 983154983141983153983157983145983154983141983149983141983150983156983155983152983141983139983155 983142983151983154 983155983141983158983141983154983137983148 983154983141983148983141983137983155983141983155 983156983144983141983150 983140983141983155983145983143983150983085983137983150983140983085983139983151983140983141 983141983137983139983144 983145983150 983155983141983153983157983141983150983139983141

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1338

Benefits of using a lifecycle

bull It provides us with a structure in which to

work

bull It forces us to think of the ldquobig picturerdquo and

follow steps so that we reach it withoutglaring deficiencies

bull Without it you may make decisions that are

individually on target but collectivelymisdirected

bull It is a management tool Drawbacks

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1438

983116983145983149983145983156983137983156983145983151983150983155 983151983142 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983107983137983150 983148983141983137983140 983156983151 983139983151983149983152983154983151983149983145983155983141983155 983137983150983140 983137983154983156983145983142983145983139983145983137983148

983139983151983150983155983156983154983137983145983150983156983155

bull 983122983145983155983147 983151983142 983151983158983141983154983141983149983152983144983137983155983145983162983145983150983143 983152983154983151983139983141983155983155 (983150983151983156 983156983144983141 983141983150983140

983145983150 983145983156983155983141983148983142)

bull 983127983137983161983155 983151983142 983141983158983137983148983157983137983156983145983150983143 983149983151983140983141983148983155

ndash 983154983145983155983147 983149983137983150983137983143983141983149983141983150983156 983153983157983137983148983145983156983161983139983151983155983156 983139983151983150983156983154983151983148 983152983154983141983140983145983139983156983137983138983145983148983145983156983161

983158983145983155983145983138983145983148983145983156983161 983151983142 983152983154983151983143983154983141983155983155 983139983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156983142983141983141983140983138983137983139983147

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1538

Are there analogies outside of SE

Consider the process

of building the Paul Allen Center

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1638

Project with little attention to process

Survival Guide

McConnell p24

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1838

983116983141983156991257983155 983156983137983148983147 983137983138983151983157983156 983155983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1938

Code-and-fix model

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2038

Code-and-fix model

Advantagesbull Little or no overhead

ndash just dive in and develop and see progress quicklybull Applicable sometimes for very small projects and

short-lived prototypes

But DANGEROUS for most projectsbull No way to assess progress quality or risks

bull Unlikely to accommodate changes without a major

design overhaulbull Unclear delivery features (scope) timing and support

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2138

Waterfall model

Software

Requirements

Validation

System

Requirements

Validation

Preliminary

Design

Validation

Detailed

DesignValidation

Operations amp

Maintenance

Revalidation

Test

Validation test

Code amp

Debug

Development test

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2238

Waterfall model advantages

bull Can work well for projects that are very

well understood but complex

ndash Tackles all planning upfront

ndash The ideal of no midstream changes equates

to an efficient software development process

bull Supports inexperienced teams

ndash Orderly easy-to-follow sequential model

ndash Reviews at each stage determine if the

product is ready to advance

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 11: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1138

The software lifecycle

bull Software lifecycle series of steps phases

through which software is produced

ndash from conception to end-of-life

ndash can take months or years to complete

bull Goals of each phase

ndash mark out a clear set of steps to perform

ndash produce a tangible item

ndash allow for review of work

ndash specify actions to perform in the next phase

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1238

983123983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983139983151983140983141983085983137983150983140983085983142983145983160 983159983154983145983156983141 983155983151983149983141 983139983151983140983141 983140983141983138983157983143 983145983156983154983141983152983141983137983156 (983145983141 983137983140983085983144983151983139)

bull 983159983137983156983141983154983142983137983148983148 983155983156983137983150983140983137983154983140 983152983144983137983155983141983155 (983154983141983153 983140983141983155983145983143983150 983139983151983140983141983156983141983155983156) 983145983150 983151983154983140983141983154

bull 983155983152983145983154983137983148 983137983155983155983141983155983155 983154983145983155983147983155 983137983156 983141983137983139983144 983155983156983141983152 983140983151 983149983151983155983156

983139983154983145983156983145983139983137983148 983137983139983156983145983151983150 983142983145983154983155983156

bull 983141983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983138983157983145983148983140 983137983150 983145983150983145983156983145983137983148983155983149983137983148983148 983154983141983153983157983145983154983141983149983141983150983156 983155983152983141983139 983139983151983140983141 983145983156 983156983144983141983150 983141983158983151983148983158983141983156983144983141 983155983152983141983139 983137983150983140 983139983151983140983141 983137983155 983150983141983141983140983141983140

bull 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983138983157983145983148983140 983145983150983145983156983145983137983148 983154983141983153983157983145983154983141983149983141983150983156983155983152983141983139983155 983142983151983154 983155983141983158983141983154983137983148 983154983141983148983141983137983155983141983155 983156983144983141983150 983140983141983155983145983143983150983085983137983150983140983085983139983151983140983141 983141983137983139983144 983145983150 983155983141983153983157983141983150983139983141

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1338

Benefits of using a lifecycle

bull It provides us with a structure in which to

work

bull It forces us to think of the ldquobig picturerdquo and

follow steps so that we reach it withoutglaring deficiencies

bull Without it you may make decisions that are

individually on target but collectivelymisdirected

bull It is a management tool Drawbacks

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1438

983116983145983149983145983156983137983156983145983151983150983155 983151983142 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983107983137983150 983148983141983137983140 983156983151 983139983151983149983152983154983151983149983145983155983141983155 983137983150983140 983137983154983156983145983142983145983139983145983137983148

983139983151983150983155983156983154983137983145983150983156983155

bull 983122983145983155983147 983151983142 983151983158983141983154983141983149983152983144983137983155983145983162983145983150983143 983152983154983151983139983141983155983155 (983150983151983156 983156983144983141 983141983150983140

983145983150 983145983156983155983141983148983142)

bull 983127983137983161983155 983151983142 983141983158983137983148983157983137983156983145983150983143 983149983151983140983141983148983155

ndash 983154983145983155983147 983149983137983150983137983143983141983149983141983150983156 983153983157983137983148983145983156983161983139983151983155983156 983139983151983150983156983154983151983148 983152983154983141983140983145983139983156983137983138983145983148983145983156983161

983158983145983155983145983138983145983148983145983156983161 983151983142 983152983154983151983143983154983141983155983155 983139983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156983142983141983141983140983138983137983139983147

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1538

Are there analogies outside of SE

Consider the process

of building the Paul Allen Center

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1638

Project with little attention to process

Survival Guide

McConnell p24

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1838

983116983141983156991257983155 983156983137983148983147 983137983138983151983157983156 983155983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1938

Code-and-fix model

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2038

Code-and-fix model

Advantagesbull Little or no overhead

ndash just dive in and develop and see progress quicklybull Applicable sometimes for very small projects and

short-lived prototypes

But DANGEROUS for most projectsbull No way to assess progress quality or risks

bull Unlikely to accommodate changes without a major

design overhaulbull Unclear delivery features (scope) timing and support

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2138

Waterfall model

Software

Requirements

Validation

System

Requirements

Validation

Preliminary

Design

Validation

Detailed

DesignValidation

Operations amp

Maintenance

Revalidation

Test

Validation test

Code amp

Debug

Development test

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2238

Waterfall model advantages

bull Can work well for projects that are very

well understood but complex

ndash Tackles all planning upfront

ndash The ideal of no midstream changes equates

to an efficient software development process

bull Supports inexperienced teams

ndash Orderly easy-to-follow sequential model

ndash Reviews at each stage determine if the

product is ready to advance

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 12: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1238

983123983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983139983151983140983141983085983137983150983140983085983142983145983160 983159983154983145983156983141 983155983151983149983141 983139983151983140983141 983140983141983138983157983143 983145983156983154983141983152983141983137983156 (983145983141 983137983140983085983144983151983139)

bull 983159983137983156983141983154983142983137983148983148 983155983156983137983150983140983137983154983140 983152983144983137983155983141983155 (983154983141983153 983140983141983155983145983143983150 983139983151983140983141983156983141983155983156) 983145983150 983151983154983140983141983154

bull 983155983152983145983154983137983148 983137983155983155983141983155983155 983154983145983155983147983155 983137983156 983141983137983139983144 983155983156983141983152 983140983151 983149983151983155983156

983139983154983145983156983145983139983137983148 983137983139983156983145983151983150 983142983145983154983155983156

bull 983141983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983138983157983145983148983140 983137983150 983145983150983145983156983145983137983148983155983149983137983148983148 983154983141983153983157983145983154983141983149983141983150983156 983155983152983141983139 983139983151983140983141 983145983156 983156983144983141983150 983141983158983151983148983158983141983156983144983141 983155983152983141983139 983137983150983140 983139983151983140983141 983137983155 983150983141983141983140983141983140

bull 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983138983157983145983148983140 983145983150983145983156983145983137983148 983154983141983153983157983145983154983141983149983141983150983156983155983152983141983139983155 983142983151983154 983155983141983158983141983154983137983148 983154983141983148983141983137983155983141983155 983156983144983141983150 983140983141983155983145983143983150983085983137983150983140983085983139983151983140983141 983141983137983139983144 983145983150 983155983141983153983157983141983150983139983141

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1338

Benefits of using a lifecycle

bull It provides us with a structure in which to

work

bull It forces us to think of the ldquobig picturerdquo and

follow steps so that we reach it withoutglaring deficiencies

bull Without it you may make decisions that are

individually on target but collectivelymisdirected

bull It is a management tool Drawbacks

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1438

983116983145983149983145983156983137983156983145983151983150983155 983151983142 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983107983137983150 983148983141983137983140 983156983151 983139983151983149983152983154983151983149983145983155983141983155 983137983150983140 983137983154983156983145983142983145983139983145983137983148

983139983151983150983155983156983154983137983145983150983156983155

bull 983122983145983155983147 983151983142 983151983158983141983154983141983149983152983144983137983155983145983162983145983150983143 983152983154983151983139983141983155983155 (983150983151983156 983156983144983141 983141983150983140

983145983150 983145983156983155983141983148983142)

bull 983127983137983161983155 983151983142 983141983158983137983148983157983137983156983145983150983143 983149983151983140983141983148983155

ndash 983154983145983155983147 983149983137983150983137983143983141983149983141983150983156 983153983157983137983148983145983156983161983139983151983155983156 983139983151983150983156983154983151983148 983152983154983141983140983145983139983156983137983138983145983148983145983156983161

983158983145983155983145983138983145983148983145983156983161 983151983142 983152983154983151983143983154983141983155983155 983139983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156983142983141983141983140983138983137983139983147

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1538

Are there analogies outside of SE

Consider the process

of building the Paul Allen Center

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1638

Project with little attention to process

Survival Guide

McConnell p24

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1838

983116983141983156991257983155 983156983137983148983147 983137983138983151983157983156 983155983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1938

Code-and-fix model

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2038

Code-and-fix model

Advantagesbull Little or no overhead

ndash just dive in and develop and see progress quicklybull Applicable sometimes for very small projects and

short-lived prototypes

But DANGEROUS for most projectsbull No way to assess progress quality or risks

bull Unlikely to accommodate changes without a major

design overhaulbull Unclear delivery features (scope) timing and support

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2138

Waterfall model

Software

Requirements

Validation

System

Requirements

Validation

Preliminary

Design

Validation

Detailed

DesignValidation

Operations amp

Maintenance

Revalidation

Test

Validation test

Code amp

Debug

Development test

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2238

Waterfall model advantages

bull Can work well for projects that are very

well understood but complex

ndash Tackles all planning upfront

ndash The ideal of no midstream changes equates

to an efficient software development process

bull Supports inexperienced teams

ndash Orderly easy-to-follow sequential model

ndash Reviews at each stage determine if the

product is ready to advance

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 13: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1338

Benefits of using a lifecycle

bull It provides us with a structure in which to

work

bull It forces us to think of the ldquobig picturerdquo and

follow steps so that we reach it withoutglaring deficiencies

bull Without it you may make decisions that are

individually on target but collectivelymisdirected

bull It is a management tool Drawbacks

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1438

983116983145983149983145983156983137983156983145983151983150983155 983151983142 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983107983137983150 983148983141983137983140 983156983151 983139983151983149983152983154983151983149983145983155983141983155 983137983150983140 983137983154983156983145983142983145983139983145983137983148

983139983151983150983155983156983154983137983145983150983156983155

bull 983122983145983155983147 983151983142 983151983158983141983154983141983149983152983144983137983155983145983162983145983150983143 983152983154983151983139983141983155983155 (983150983151983156 983156983144983141 983141983150983140

983145983150 983145983156983155983141983148983142)

bull 983127983137983161983155 983151983142 983141983158983137983148983157983137983156983145983150983143 983149983151983140983141983148983155

ndash 983154983145983155983147 983149983137983150983137983143983141983149983141983150983156 983153983157983137983148983145983156983161983139983151983155983156 983139983151983150983156983154983151983148 983152983154983141983140983145983139983156983137983138983145983148983145983156983161

983158983145983155983145983138983145983148983145983156983161 983151983142 983152983154983151983143983154983141983155983155 983139983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156983142983141983141983140983138983137983139983147

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1538

Are there analogies outside of SE

Consider the process

of building the Paul Allen Center

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1638

Project with little attention to process

Survival Guide

McConnell p24

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1838

983116983141983156991257983155 983156983137983148983147 983137983138983151983157983156 983155983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1938

Code-and-fix model

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2038

Code-and-fix model

Advantagesbull Little or no overhead

ndash just dive in and develop and see progress quicklybull Applicable sometimes for very small projects and

short-lived prototypes

But DANGEROUS for most projectsbull No way to assess progress quality or risks

bull Unlikely to accommodate changes without a major

design overhaulbull Unclear delivery features (scope) timing and support

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2138

Waterfall model

Software

Requirements

Validation

System

Requirements

Validation

Preliminary

Design

Validation

Detailed

DesignValidation

Operations amp

Maintenance

Revalidation

Test

Validation test

Code amp

Debug

Development test

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2238

Waterfall model advantages

bull Can work well for projects that are very

well understood but complex

ndash Tackles all planning upfront

ndash The ideal of no midstream changes equates

to an efficient software development process

bull Supports inexperienced teams

ndash Orderly easy-to-follow sequential model

ndash Reviews at each stage determine if the

product is ready to advance

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 14: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1438

983116983145983149983145983156983137983156983145983151983150983155 983151983142 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

bull 983107983137983150 983148983141983137983140 983156983151 983139983151983149983152983154983151983149983145983155983141983155 983137983150983140 983137983154983156983145983142983145983139983145983137983148

983139983151983150983155983156983154983137983145983150983156983155

bull 983122983145983155983147 983151983142 983151983158983141983154983141983149983152983144983137983155983145983162983145983150983143 983152983154983151983139983141983155983155 (983150983151983156 983156983144983141 983141983150983140

983145983150 983145983156983155983141983148983142)

bull 983127983137983161983155 983151983142 983141983158983137983148983157983137983156983145983150983143 983149983151983140983141983148983155

ndash 983154983145983155983147 983149983137983150983137983143983141983149983141983150983156 983153983157983137983148983145983156983161983139983151983155983156 983139983151983150983156983154983151983148 983152983154983141983140983145983139983156983137983138983145983148983145983156983161

983158983145983155983145983138983145983148983145983156983161 983151983142 983152983154983151983143983154983141983155983155 983139983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156983142983141983141983140983138983137983139983147

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1538

Are there analogies outside of SE

Consider the process

of building the Paul Allen Center

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1638

Project with little attention to process

Survival Guide

McConnell p24

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1838

983116983141983156991257983155 983156983137983148983147 983137983138983151983157983156 983155983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1938

Code-and-fix model

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2038

Code-and-fix model

Advantagesbull Little or no overhead

ndash just dive in and develop and see progress quicklybull Applicable sometimes for very small projects and

short-lived prototypes

But DANGEROUS for most projectsbull No way to assess progress quality or risks

bull Unlikely to accommodate changes without a major

design overhaulbull Unclear delivery features (scope) timing and support

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2138

Waterfall model

Software

Requirements

Validation

System

Requirements

Validation

Preliminary

Design

Validation

Detailed

DesignValidation

Operations amp

Maintenance

Revalidation

Test

Validation test

Code amp

Debug

Development test

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2238

Waterfall model advantages

bull Can work well for projects that are very

well understood but complex

ndash Tackles all planning upfront

ndash The ideal of no midstream changes equates

to an efficient software development process

bull Supports inexperienced teams

ndash Orderly easy-to-follow sequential model

ndash Reviews at each stage determine if the

product is ready to advance

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 15: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1538

Are there analogies outside of SE

Consider the process

of building the Paul Allen Center

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1638

Project with little attention to process

Survival Guide

McConnell p24

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1838

983116983141983156991257983155 983156983137983148983147 983137983138983151983157983156 983155983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1938

Code-and-fix model

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2038

Code-and-fix model

Advantagesbull Little or no overhead

ndash just dive in and develop and see progress quicklybull Applicable sometimes for very small projects and

short-lived prototypes

But DANGEROUS for most projectsbull No way to assess progress quality or risks

bull Unlikely to accommodate changes without a major

design overhaulbull Unclear delivery features (scope) timing and support

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2138

Waterfall model

Software

Requirements

Validation

System

Requirements

Validation

Preliminary

Design

Validation

Detailed

DesignValidation

Operations amp

Maintenance

Revalidation

Test

Validation test

Code amp

Debug

Development test

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2238

Waterfall model advantages

bull Can work well for projects that are very

well understood but complex

ndash Tackles all planning upfront

ndash The ideal of no midstream changes equates

to an efficient software development process

bull Supports inexperienced teams

ndash Orderly easy-to-follow sequential model

ndash Reviews at each stage determine if the

product is ready to advance

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 16: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1638

Project with little attention to process

Survival Guide

McConnell p24

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1838

983116983141983156991257983155 983156983137983148983147 983137983138983151983157983156 983155983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1938

Code-and-fix model

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2038

Code-and-fix model

Advantagesbull Little or no overhead

ndash just dive in and develop and see progress quicklybull Applicable sometimes for very small projects and

short-lived prototypes

But DANGEROUS for most projectsbull No way to assess progress quality or risks

bull Unlikely to accommodate changes without a major

design overhaulbull Unclear delivery features (scope) timing and support

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2138

Waterfall model

Software

Requirements

Validation

System

Requirements

Validation

Preliminary

Design

Validation

Detailed

DesignValidation

Operations amp

Maintenance

Revalidation

Test

Validation test

Code amp

Debug

Development test

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2238

Waterfall model advantages

bull Can work well for projects that are very

well understood but complex

ndash Tackles all planning upfront

ndash The ideal of no midstream changes equates

to an efficient software development process

bull Supports inexperienced teams

ndash Orderly easy-to-follow sequential model

ndash Reviews at each stage determine if the

product is ready to advance

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 17: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1738

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1838

983116983141983156991257983155 983156983137983148983147 983137983138983151983157983156 983155983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1938

Code-and-fix model

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2038

Code-and-fix model

Advantagesbull Little or no overhead

ndash just dive in and develop and see progress quicklybull Applicable sometimes for very small projects and

short-lived prototypes

But DANGEROUS for most projectsbull No way to assess progress quality or risks

bull Unlikely to accommodate changes without a major

design overhaulbull Unclear delivery features (scope) timing and support

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2138

Waterfall model

Software

Requirements

Validation

System

Requirements

Validation

Preliminary

Design

Validation

Detailed

DesignValidation

Operations amp

Maintenance

Revalidation

Test

Validation test

Code amp

Debug

Development test

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2238

Waterfall model advantages

bull Can work well for projects that are very

well understood but complex

ndash Tackles all planning upfront

ndash The ideal of no midstream changes equates

to an efficient software development process

bull Supports inexperienced teams

ndash Orderly easy-to-follow sequential model

ndash Reviews at each stage determine if the

product is ready to advance

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 18: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1838

983116983141983156991257983155 983156983137983148983147 983137983138983151983157983156 983155983151983149983141 983148983145983142983141983139983161983139983148983141 983149983151983140983141983148983155

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1938

Code-and-fix model

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2038

Code-and-fix model

Advantagesbull Little or no overhead

ndash just dive in and develop and see progress quicklybull Applicable sometimes for very small projects and

short-lived prototypes

But DANGEROUS for most projectsbull No way to assess progress quality or risks

bull Unlikely to accommodate changes without a major

design overhaulbull Unclear delivery features (scope) timing and support

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2138

Waterfall model

Software

Requirements

Validation

System

Requirements

Validation

Preliminary

Design

Validation

Detailed

DesignValidation

Operations amp

Maintenance

Revalidation

Test

Validation test

Code amp

Debug

Development test

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2238

Waterfall model advantages

bull Can work well for projects that are very

well understood but complex

ndash Tackles all planning upfront

ndash The ideal of no midstream changes equates

to an efficient software development process

bull Supports inexperienced teams

ndash Orderly easy-to-follow sequential model

ndash Reviews at each stage determine if the

product is ready to advance

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 19: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 1938

Code-and-fix model

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2038

Code-and-fix model

Advantagesbull Little or no overhead

ndash just dive in and develop and see progress quicklybull Applicable sometimes for very small projects and

short-lived prototypes

But DANGEROUS for most projectsbull No way to assess progress quality or risks

bull Unlikely to accommodate changes without a major

design overhaulbull Unclear delivery features (scope) timing and support

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2138

Waterfall model

Software

Requirements

Validation

System

Requirements

Validation

Preliminary

Design

Validation

Detailed

DesignValidation

Operations amp

Maintenance

Revalidation

Test

Validation test

Code amp

Debug

Development test

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2238

Waterfall model advantages

bull Can work well for projects that are very

well understood but complex

ndash Tackles all planning upfront

ndash The ideal of no midstream changes equates

to an efficient software development process

bull Supports inexperienced teams

ndash Orderly easy-to-follow sequential model

ndash Reviews at each stage determine if the

product is ready to advance

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 20: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2038

Code-and-fix model

Advantagesbull Little or no overhead

ndash just dive in and develop and see progress quicklybull Applicable sometimes for very small projects and

short-lived prototypes

But DANGEROUS for most projectsbull No way to assess progress quality or risks

bull Unlikely to accommodate changes without a major

design overhaulbull Unclear delivery features (scope) timing and support

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2138

Waterfall model

Software

Requirements

Validation

System

Requirements

Validation

Preliminary

Design

Validation

Detailed

DesignValidation

Operations amp

Maintenance

Revalidation

Test

Validation test

Code amp

Debug

Development test

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2238

Waterfall model advantages

bull Can work well for projects that are very

well understood but complex

ndash Tackles all planning upfront

ndash The ideal of no midstream changes equates

to an efficient software development process

bull Supports inexperienced teams

ndash Orderly easy-to-follow sequential model

ndash Reviews at each stage determine if the

product is ready to advance

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 21: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2138

Waterfall model

Software

Requirements

Validation

System

Requirements

Validation

Preliminary

Design

Validation

Detailed

DesignValidation

Operations amp

Maintenance

Revalidation

Test

Validation test

Code amp

Debug

Development test

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2238

Waterfall model advantages

bull Can work well for projects that are very

well understood but complex

ndash Tackles all planning upfront

ndash The ideal of no midstream changes equates

to an efficient software development process

bull Supports inexperienced teams

ndash Orderly easy-to-follow sequential model

ndash Reviews at each stage determine if the

product is ready to advance

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 22: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2238

Waterfall model advantages

bull Can work well for projects that are very

well understood but complex

ndash Tackles all planning upfront

ndash The ideal of no midstream changes equates

to an efficient software development process

bull Supports inexperienced teams

ndash Orderly easy-to-follow sequential model

ndash Reviews at each stage determine if the

product is ready to advance

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 23: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2338

Waterfall model limitations

bull Difficult to specify all reqs of a stage completely andcorrectly upfront

ndash requires a lot of planning up front (not always easy) ndash assumes requirements will be clear and well-understood

bull Rigid linear not adaptable to change in the product ndash costly to swim upstream back to a previous phase

bull No sense of progress until the very end ndash nothing to show until almost done (were 90 done I swear)

bull Integration occurs at the very end ndash Defies ldquointegrate early and oftenrdquo rule

ndash Solutions are inflexible no feedback until end ndash Delivered product may not match customer needs

bull Phase reviews are massive affairs ndash Inertia means change is costly

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 24: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2438

Spiral modelSpiral modelSpiral modelSpiral model ndash ndashndash ndash risk orientedrisk orientedrisk orientedrisk orientedbull Determine objectives and constraints

bull Identify and resolve risks

bull Evaluate options to resolve risks

bull Develop and verify deliverablesbull Plan next spiral

bull Commit (or not) to next spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 25: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2538

Spiral model

bull Oriented towards phased reduction of risk

bull Take on the big risks early make decisions

ndash are we building the right product

ndash do we have any customers for this product ndash is it possible to implement the product with the

technology that exists today tomorrow

bull Progresses carefully to a result

ndash tasks can be more clear each spiral

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 26: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2638

Spiral model

Advantages

bull Especially appropriate at the beginning of the

project when the requirements are still fluid

bull Provides early indication of unforeseen

problemsbull Accommodates change

bull As costs increase risks decrease

ndash Always addresses the biggest risk first

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 27: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2738

Spiral model disadvantages

bull A lot of planning and management

bull Frequent changes of task ndash But get to stick with one product featuregoal

bull Requires customer and contract flexibility

bull Developers must be able to assess risk

ndash Must address most important issues

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 28: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2838

Staged delivery model

Waterfall-like beginningsThen short release cycles

plan design execute test release

with delivery possible at the end of any cycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 29: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 2938

Staged delivery model advantages

bull Can ship at the end of any release cycle

ndash Looks like success to customers even if notoriginal goal

bull Intermediate deliveries show progress

satisfy customers and lead to feedback

bull Problems are visible early (eg integration)

bull Facilitates shorter more predictablerelease cycles

Very practical widely used and successful

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 30: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3038

Staged delivery model

disadvantages

bull Requires tight coordination with

documentation management marketing

bull Product must be decomposable

bull Extra releases cause overhead

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 31: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3138

Evolutionary prototyping model

Develop a skeleton system and evolve it for delivery

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 32: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3238

Evolutionary prototyping model

bull 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 ne 983141983158983151983148983157983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143

ndash 983123983156983137983143983141983140 983140983141983148983145983158983141983154983161 983154983141983153983157983145983154983141983149983141983150983156983155 983137983154983141 983147983150983151983159983150 983137983144983141983137983140 983151983142 983156983145983149983141

ndash 983109983158983137983148983157983156983145983151983150983137983154983161 983140983145983155983139983151983158983141983154983141983140 983138983161 983139983157983155983156983151983149983141983154 983142983141983141983140983138983137983139983147 983151983150 983141983137983139983144

983154983141983148983141983137983155983141

Advantagesbull Addresses risks early

bull Produces steady signs of progress builds customerconfidence

bull Useful when requirements are unknown or changing

bull 983107983157983155983156983151983149983141983154 983145983150983158983151983148983158983141983149983141983150983156 (983127983144983137983156 983140983151 983161983151983157 983156983144983145983150983147 983151983142 983156983144983145983155

983158983141983154983155983145983151983150)

Another popular and successful modelespecially for custom products

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 33: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3338

983109983158983151983148983157983156983145983151983150983137983154983161 983152983154983151983156983151983156983161983152983145983150983143 983148983145983149983145983156983137983156983145983151983150983155

bull Requires close customer involvement

bull Assumes users initial spec is flexible

bull Problems with planning ndash Especially if the developers are inexperienced

ndash Feature creep major design decisions use of time etc

ndash Hard to estimate completion schedule or feature set

ndash Unclear how many iterations will be needed to finish

bull Integration problems

ndash fails for separate pieces that must then be integrated

ndash bridging new software trying to gradually replace oldbull Temporary fixes become permanent constraints

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 34: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3438

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141

983108983141983155983145983143983150983085983156983151983085983155983139983144983141983140983157983148983141 ndash 983157983155983141983142983157983148 983159983144983141983150 983161983151983157 983137983138983155983151983148983157983156983141983148983161 983150983141983141983140 983156983151 983155983144983145983152 983138983161 983137 983139983141983154983156983137983145983150

983140983137983156983141 ndash 983155983145983149983145983148983137983154 983156983151 983156983144983141 983155983156983137983143983141983140 983140983141983148983145983158983141983154983161 983149983151983140983141983148bull 983138983157983156 983148983141983155983155 983142983148983141983160983145983138983148983141 983138983141983139983137983157983155983141 983151983142 983156983144983141 983142983145983160983141983140 983155983144983145983152983152983145983150983143 983140983137983156983141

ndash 983154983141983153983157983145983154983141983155 983139983137983154983141983142983157983148 983152983154983145983151983154983145983156983145983162983137983156983145983151983150 983151983142 983142983141983137983156983157983154983141983155 983137983150983140 983154983145983155983147983155 983156983151

983137983140983140983154983141983155983155983108983141983155983145983143983150983085983156983151983085983156983151983151983148983155

ndash 983137 983149983151983140983141983148 983159983144983141983154983141 983156983144983141 983152983154983151983146983141983139983156 983151983150983148983161 983145983150983139983151983154983152983151983154983137983156983141983155 983142983141983137983156983157983154983141983155983156983144983137983156 983137983154983141 983141983137983155983161 983156983151 983145983149983152983148983141983149983141983150983156 983138983161 983157983155983145983150983143 983151983154 983139983151983149983138983145983150983145983150983143

983141983160983145983155983156983145983150983143 983139983151983149983152983151983150983141983150983156983155 ndash 983154983141983140983157983139983141983155 983140983141983158983141983148983151983152983149983141983150983156 983156983145983149983141 983137983156 983139983151983155983156 983151983142 983148983151983155983145983150983143 983139983151983150983156983154983151983148 983151983142

983152983154983151983146983141983139983156

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 35: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3538

Why are there so many models

bull The choice of a model depends on theproject circumstances and requirements

bull A good choice of a model can result in avastly more productive environmentthan a bad choice

bull A cocktail of models is frequently usedin practice to get the best of all worldsModels are often combined or tailoredto environment

Choices are good

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 36: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3638

Whatrsquos the best model

Consider

bull The task at handbull Risk management

bull Quality cost control

bull Predictability

bull Visibility of progress

bull Customer involvement and feedback

Aim for good fast and cheap

But you cant have all three at the same time

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 37: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3738

37

983117983151983140983141983148 983139983137983156983141983143983151983154983161 983149983137983156983154983145983160

Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix

waterfall

spiral

evolutionaryprototyping

staged delivery

design-to-schedule

bull 983122983137983156983141 983141983137983139983144 983149983151983140983141983148 19830855 983145983150 983141983137983139983144 983151983142 983156983144983141 983139983137983156983141983143983151983154983145983141983155

983155983144983151983159983150 Risk

mgmt

Quality

cost ctrl

Predict-

ability

Visibility

of progress

Customer

involvementcode-and-fix 1 1 1 3 2waterfall 2 4 3 1 2spiral 5 5 3 3 3evolutionaryprototyping 3 3 2 5 5staged delivery 3 5 3 3 4design-to-schedule 4 3 5 3 2

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports

Page 38: Lecture02 LifecycleLecture02 Lifecycle

8142019 Lecture02 LifecycleLecture02 Lifecycle

httpslidepdfcomreaderfulllecture02-lifecyclelecture02-lifecycle 3838

Whatrsquos the best SW dev model

bull A system to control anti-lock braking in a car

bull A hospital accounting system that replaces an

existing system

bull An interactive system that allows airline

passengers to quickly find replacement flight

times (for missed or bumped reservations) fromterminals installed at airports