lecture02 lifecyclelecture02 lifecycle
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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