33
Software Development Lifecycle The Power of Process CSE 403, Spring 2008, Alverson

Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

Software Development Lifecycle

The Power of Process

CSE 403, Spring 2008, Alverson

Page 2: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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)

Page 3: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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.

Page 4: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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

Page 5: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

Benefits of using a lifecycleg y

CSE 403, Spring 2008, Alverson

Page 6: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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

Page 7: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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

Page 8: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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

Page 9: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

Project with little attention on processProject with little attention on process

CSE 403, Spring 2008, AlversonSurvival Guide: McConnell p24

Page 10: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

Project with early attention on processProject with early attention on process

CSE 403, Spring 2008, Alverson Survival Guide: McConnell p25

Page 11: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

“Code-and-fix” model

CSE 403, Spring 2008, Alverson

Page 12: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

“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

Page 13: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

Classic waterfall model

CSE 403, Spring 2008, AlversonComputerworld

Page 14: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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

Page 15: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

Classic waterfall limitations

CSE 403, Spring 2008, Alverson

Page 16: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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

Page 17: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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

Page 18: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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

Page 19: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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

Page 20: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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

Page 21: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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

Page 22: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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

Page 23: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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

Page 24: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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

Page 25: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

Evolutionary prototyping modelEvolutionary prototyping model

Develop a skeleton system and evolve it for delivery

CSE 403, Spring 2008, Alverson

Page 26: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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

Page 27: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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

Page 28: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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

Page 29: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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

Page 30: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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

Page 31: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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

Page 32: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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

Page 33: Software Development Lifecyclecourses.cs.washington.edu/.../08sp/lectures/Lifecycles.pdf · 2008-04-02 · Ad-hoc development yad-hoc development: creating software without any formal

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