Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Software Development Lifecycle
The Power of Process
CSE 403, Spring 2008, Alverson
OutlineWhat is a software development lifecycle?Why do we need a lifecycle process?Lifecycle models and their tradeoffsyo “Code-and-fix”o Waterfallo Spiralo Evolutionary prototyping
St d d lio Staged delivery…there are many others (XP, scrum, …)!
Main recurring themes (Agile processes)CSE 403, Spring 2008, Alverson
Main recurring themes (Agile processes)
Ad-hoc developmentpad-hoc development: creating software without any formal guidelines or process
Some disadvantages of ad-hoc development:o some important actions (testing, design) may go ignored
t l h t t t t d i h t ko not clear when to start or stop doing each tasko does not scale well to multiple peopleo not easy to review or evaluate one's worko not easy to review or evaluate one s work
A common observation: The later a problem isCSE 403, Spring 2008, Alverson
A common observation: The later a problem is found in software, the more costly it is to fix.
The software lifecycleySoftware lifecycle: series of steps / phases, through which software is producedwhich software is producedo from conception to end-of-lifeo can take months or years to completeo can take months or years to complete
Goals of each phase:Goals of each phase:o mark out a clear set of steps to perform
d t ibl ito produce a tangible itemo allow for review of work
CSE 403, Spring 2008, Alverson
o specify actions to perform in the next phase
Benefits of using a lifecycleg y
CSE 403, Spring 2008, Alverson
Benefits of using a lifecycleg y
It provides us with a structure in which to workIt provides us with a structure in which to workIt forces us to think of the “big picture” and follow steps so that we reach it without glaringsteps so that we reach it without glaring deficienciesWithout it you may make decisions that areWithout it you may make decisions that are individually on target but collectively misdirectedIt is a management toolg
CSE 403, Spring 2008, Alverson
Benefits of using a lifecycleg y
It provides us with a structure in which to workIt provides us with a structure in which to workIt forces us to think of the “big picture” and follow steps so that we reach it without glaringsteps so that we reach it without glaring deficienciesWithout it you may make decisions that areWithout it you may make decisions that are individually on target but collectively misdirectedIt is a management toolg
Drawbacks?
CSE 403, Spring 2008, Alverson
Are there analogies outside of SE?e t e e a a og es outs de o SConsider the process of
building the Paul Allen Center
CSE 403, Spring 2008, Alverson
Project with little attention on processProject with little attention on process
CSE 403, Spring 2008, AlversonSurvival Guide: McConnell p24
Project with early attention on processProject with early attention on process
CSE 403, Spring 2008, Alverson Survival Guide: McConnell p25
“Code-and-fix” model
CSE 403, Spring 2008, Alverson
“Code-and-fix” modelAdvantages
Little or no overhead just dive in and develop andLittle or no overhead - just dive in and develop, and see progress quicklyApplicable sometimes for very small projects and short-lived prototypesshort-lived prototypes
But DANGEROUS for most projectsp jNo way to assess progress, quality or risksUnlikely to accommodate changes without a major design overhaulgUnclear delivery features (scope), timing, and support
CSE 403, Spring 2008, Alverson
Classic waterfall model
CSE 403, Spring 2008, AlversonComputerworld
Classic waterfall advantagesgCan work well for projects very well understood but complex o Tackles all planning upfronto The ideal of no midstream changes equates
to an efficient software development process
Can provide support for an inexperienced teamo Orderly sequential model that is easy to followo Reviews at each stage determine if the
CSE 403, Spring 2008, Alverson
product is ready to advance
Classic waterfall limitations
CSE 403, Spring 2008, Alverson
Classic waterfall limitationsDifficult to specify all reqs of a stage completely
d tl f tand correctly upfrontNo sense of progress until the very endIntegration occurs at the very endo Defies integrate early and often ruleo Solutions are inflexible, no feedback until end o What is delivered may not match customer real
needsPhase reviews are massive affairs
CSE 403, Spring 2008, Alverson
o It takes a lot of inertia ($$) to make any change
Spiral model – risk oriented
• Determine objectivesj• Identify and resolve risks• Evaluate alternatives• Develop and verify deliverables• Plan next spiral• Commit (or not) to next spiral
CSE 403, Spring 2008, Alverson
Spiral modelpOriented towards phased reduction of risk
Take on the big risks early and make some decisionsdecisionso are we building the right product?o do we have any customers for this product?y po is it possible to implement the product with the
technology that exists today? tomorrow?
Walks carefully to a result -- tasks can be more l h i l
CSE 403, Spring 2008, Alverson
clear each spiral
Spiral modelpOriented towards phased reduction of risk
Take on the big risks early and make some decisionsdecisionso are we building the right product?o do we have any customers for this product?y po is it possible to implement the product with the
technology that exists today? tomorrow?
Walks carefully to a result -- tasks can be more l h i l
CSE 403, Spring 2008, Alverson
clear each spiralCompute Node Linux
Spiral modelpAdvantages
Especially appropriate at the beginning of theEspecially appropriate at the beginning of the project when the requirements are still fluidProvides early indication of unforeseen problemsProvides early indication of unforeseen problems and allows for changeAs costs increase risks decrease!As costs increase, risks decrease!o Always addresses the biggest risk first
CSE 403, Spring 2008, Alverson
Spiral modelpAdvantages
Especially appropriate at the beginning of theEspecially appropriate at the beginning of the project when the requirements are still fluidProvides early indication of unforeseen problemsProvides early indication of unforeseen problems and allows for changeAs costs increase risks decrease!As costs increase, risks decrease!o Always addresses the biggest risk first
Limitations?Limitations?
CSE 403, Spring 2008, Alverson
Staged delivery modelg y
Waterfall-like beginnings, then develop in short release cycles:plan, design, execute, test, release
fCSE 403, Spring 2008, Alverson
with delivery possible at the end of any cycle
Staged delivery modelg y
Ad tVery practical in practice, widely used and successful
AdvantagesCan ship at the end of any release-cycle While not feature complete intermediate deliveriesWhile not feature complete, intermediate deliveries show progress, satisfy customers, and provide opportunity for feedbackProblems are visible early (ie. integration)Facilitates shorter, more predictable release cycles
CSE 403, Spring 2008, Alverson
Staged delivery modelg y
Ad tVery practical in practice, widely used and successful
AdvantagesCan ship at the end of any release-cycle While not feature complete intermediate deliveriesWhile not feature complete, intermediate deliveries show progress, satisfy customers, and provide opportunity for feedbackProblems are visible early (ie. integration)Facilitates shorter, more predictable release cycles
Limitations?
CSE 403, Spring 2008, Alverson
Evolutionary prototyping modelEvolutionary prototyping model
Develop a skeleton system and evolve it for delivery
CSE 403, Spring 2008, Alverson
Evolutionary prototyping modelAnother popular and successful model, especially for custom products
AdvantagesAddresses risks early
especially for custom products
Addresses risks earlyProduces steady signs of progressUseful when requirements are changing rapidly or customer is non committalcustomer is non-committal
CSE 403, Spring 2008, Alverson
Evolutionary prototyping modelAnother popular and successful model, especially for custom products
AdvantagesAddresses risks early
especially for custom products
Addresses risks earlyProduces steady signs of progressUseful when requirements are changing rapidly or customer is non committalor customer is non-committal
LimitationsR i l i l• Requires close customer involvement
• May spell trouble if the developers are inexperienced• Feature creep major design decisions use of time etc
CSE 403, Spring 2008, Alverson
• Feature creep, major design decisions, use of time, etc.• Hard to estimate completion schedule or feature set
Why are there so many models?y a e t e e so a y ode sChoices are good!
The choice of a model depends on the project circumstances and requirementscircumstances and requirements
A good choice of a model can result in a gvastly more productive environment than a bad choice
A cocktail of models is frequently used in practice to get the best of all worlds Models
CSE 403, Spring 2008, Alverson
practice to get the best of all worlds. Models are often combined or tailored to environment
How do you evaluate models?yConsidero The task at hando Risk managemento Quality / cost controlo Predictability
Visibility of progresso Visibility of progresso Customer involvement and feedback
Theme: Overall aim for good, fast, and cheap.But you can't have all three at the same time.
CSE 403, Spring 2008, Alverson
y
Sp07 exam questionp qSuggest the most appropriate SW dev model that
might be used as a basis for managing the devmight be used as a basis for managing the dev of the following systems - justify:
CSE 403, Spring 2008, Alverson
Sp07 exam questionp qSuggest the most appropriate SW dev model that
might be used as a basis for managing the devmight be used as a basis for managing the dev of the following systems - justify:A system to control anti lock braking in a carA system to control anti-lock braking in a car
CSE 403, Spring 2008, Alverson
Sp07 exam questionp qSuggest the most appropriate SW dev model that
might be used as a basis for managing the devmight be used as a basis for managing the dev of the following systems - justify:A system to control anti lock braking in a carA system to control anti-lock braking in a carA hospital accounting system that replaces an existing systemexisting system
CSE 403, Spring 2008, Alverson
Sp07 exam questionp qSuggest the most appropriate SW dev model that
might be used as a basis for managing the devmight be used as a basis for managing the dev of the following systems - justify:A system to control anti lock braking in a carA system to control anti-lock braking in a carA hospital accounting system that replaces an existing systemexisting systemAn interactive system that allows airline passengers to quickly find replacement flightpassengers to quickly find replacement flight times (for missed or bumped reservations) from terminals installed at airports
CSE 403, Spring 2008, Alverson