30
General Idea of General Idea of Iterative Models- Iterative Models- Spiral Model Spiral Model CS 641 13 September 2001 Presented by Matt Heusser & Tabrez Sait

50500113 spiral-model

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 50500113 spiral-model

General Idea of Iterative General Idea of Iterative Models- Spiral ModelModels- Spiral Model

CS 641

13 September 2001

Presented byMatt Heusser & Tabrez Sait

Page 2: 50500113 spiral-model

What is “Process”?What is “Process”?

Page 3: 50500113 spiral-model

Waterfall Model – RevisitedWaterfall Model – Revisited

• Disadvantages of Waterfall Model– 1. Real projects are rarely so straightforward and sequential – 2. It is generally not possible to completely define (and

freeze) all the requirements at the start of the project – 3. Problem is discovered in testing?

– 4. Freight-Train Effect, or Late, or Over-Budget

Page 4: 50500113 spiral-model

What is “Wicked Problem”What is “Wicked Problem”

• Problems we can’t really understand until we’ve developed a solution.

• “That is not what I want ... but now I know what I do want!”

Page 5: 50500113 spiral-model

The Mythical Man Month- The Mythical Man Month- Dr. Frederick BrooksDr. Frederick Brooks

• In software projects, what will take one person ten months can not be solved by ten people in one month.

• Throwing people onto a late project will just make it later

• Because of Wicked Problems, “Plan to the throw one away”

Page 6: 50500113 spiral-model

• Put together a team of “Smart Guys” from multiple disciplines

• Develop the GUI on Paper

• Code the GUI in a fast language (Make it look like it’s working)

• Show it to the USERS (A Picture is worth a 1,000 words)

• Get Feedback

Rapid PrototypingRapid Prototyping

<=Requirements=>

**<=Prototype=>**

<=Design=>

<=Code=>

<=Test=>

<=Deploy=>

Page 7: 50500113 spiral-model

Case Study- RAD Case Study- RAD Grand Community Calendar ProjectGrand Community Calendar Project

– Project Manager, Developer, Community Members write user requirements

– Coder writes sample HTML– Shows the web page; heads bob, some

changes to navigation– DBA, Coder, Project Manager determine the

architecture (Design)– Coding & Review– Shifting Requirements priced project out-of-

budget

Page 8: 50500113 spiral-model

Problems With PrototypingProblems With Prototyping

• No “Current” Documents

• Functional Spec is Prototype +

Feedback

• Prototype is not “baseline”

functionality

• Same problems with Functional Spec as waterfall!

Page 9: 50500113 spiral-model

Prototyping Part II: Prototyping Part II: The Rigged DemoThe Rigged Demo

• Re-Visit and improve the prototype to serve as a “baseline”

• Turns prototype into a “rigged demo”

• Show that to the customer

Listen To Customer

Build/Revise Mockup

Customer Test Drives Mockup

Page 10: 50500113 spiral-model

At the At the DemoDemo DialogueDialogue

• Customer:“This looks great, and it looks like you’re about done. When can we have it?”

• Developer: “Uh, it’s only a prototype – we plan to throw it away and start over.”

• Customer: “No – this is exactly what we need, and we need it now! We’ll take 50 prototypes!”

– The Sales Guy begins to see $$ signs.

– Under Rigged Demo scenarios, there is either a lot of wasted effort, or prototypes that were never intended to ship end up shoved into production.

Page 11: 50500113 spiral-model

Case StudiesCase StudiesMulti-Stage PrototypingMulti-Stage Prototyping

• Telecommunication– The prototype made the sale!– Was pushed into production– From user requirements to “Ship”ing in 4 month– Errors, Bugs, High Turn-Over– Had to support bug fixes plus “incremental” change

• Visual Product Explorer– Prototype created for internal consumption – Feedback Cycle– Modified for trade demo– Next step: How do we write the spec?– Product is the spec; shove it into production!

Page 12: 50500113 spiral-model

Iterative ModelsIterative Models What’s an Iteration?What’s an Iteration?

• Iterative Design: Code as much as you can questions surface, then start over.

• Every model we’ll talk about below is a variation on the Iterative Model.

Page 13: 50500113 spiral-model

Spiral ModelSpiral Model

Determine objectives, alternatives, constraints

Evaluate alternatives, identify and resolve risks

Develop verify next level product

Plan next phases

Page 14: 50500113 spiral-model

Risk AssessmentRisk Assessment• Spiral Model – risk driven rather

than document driven• The "risk" inherent in an activity is

a measure of the uncertainty of the outcome of that activity

• High-risk activities cause schedule and cost overruns

• Risk is related to the amount and quality of available information. The less information, the higher the risk

• What happened with Denver Airport Luggage System?

Page 15: 50500113 spiral-model

Spiral ModelSpiral ModelStrength and WeaknessesStrength and Weaknesses

• Strengths– Introduces risk management– Prototyping controls costs– Evolutionary development– Release builds for beta testing– Marketing advantage

• Weaknesses– Lack of risk management experience– Lack of milestones– Management is dubious of spiral process– Change in Management – Prototype Vs Production

Page 16: 50500113 spiral-model

Win Win Spiral ModelWin Win Spiral Model

• Win-Win Spiral Process Model is a model of a process based on Theory W, which is a management theory and approach "based on making winners of all of the system's key stakeholders as a necessary and sufficient condition for project success."

Page 17: 50500113 spiral-model

WinWin Spiral ModelWinWin Spiral Model•Identify Next Level Stake holders•Identify Stake holders win conditions•Validate product & process definitions•Review, commitment•Reconcile Win conditions•Evaluate Product & Process Alternatives•Define next level of product and process

Page 18: 50500113 spiral-model

Win Win Spiral ContWin Win Spiral Cont• Identifying the system's stakeholders and their

win conditions and• reconciling win conditions through negotiation to

arrive at a mutually satisfactory set of objectives, constraints, and alternatives for the next level.

• Evaluate Product and Process Alternatives. Resolve Risks

• Define next level of product and process - including partitions

• Validate Product and Process Definitions

• Review, commitment

Page 19: 50500113 spiral-model

WinWin Spiral- WinWin Spiral- Anchor PointsAnchor Points

• Life Cycle Objective(LCO)– What should the system accomplish?

• Life Cycle Architecture(LCA)– What is the structure of the system?

• Initial Operational Capability(IOC)– The first released version

Page 20: 50500113 spiral-model

Contents of Contents of LCO and LCO and

LCA LCA milestonesmilestones

Page 21: 50500113 spiral-model

Key Elements of IOC MilestoneKey Elements of IOC Milestone• Software preparation

– Including both operational and support software with appropriate commentary and documentation

– data preparation or conversion– the necessary licenses and rights

• Site preparation– including facilities, equipment, supplies and vendor

support

• User, Operator and Maintenance preparation– including selection– team building– training

Page 22: 50500113 spiral-model

Win Win Spiral - Case StudyWin Win Spiral - Case Study

• Extending USC Integrated Library System to access multimedia– Flexibility and Discipline let the projects teams adapt to

challenges while staying on schedule– Use of risk management helped team focus on CSF for their

projects– One cycle for each milestone– Communication and trust between stakeholders, shared vision– Don’t finish negotiations before prototyping– Client acceptance

Page 23: 50500113 spiral-model

Another ExtremeAnother ExtremeCleanRoom MethodologiesCleanRoom Methodologies

• Testing techniques that focus on measuring quality;

• Solution-oriented teams that encourage cooperation, reduce the dependence on "gurus," and promote flexibility

• Documentation structures that reveal the big picture and help team members maintain intellectual control.

• From Hardware Cleanrooms• An incremental process that encourages continuous improvement; • Technical reviews that prevent defects and significantly reduce

costs• Design and coding practices that make it easy to adapt as

requirements change

Page 24: 50500113 spiral-model

Clean Room ContinuedClean Room Continued

• REAL Peer Review Mathematical proof of correctness (Challenges associated with it?) • Functional Specifications as Box Diagrams (State, Black, Clear)

Page 25: 50500113 spiral-model

Yet Another Extreme: Hacking Yet Another Extreme: Hacking • Hacking:

– Code ‘n Fix– More Common than you thought

• Makes Sense for:– Low-Risk, Small Project– We know exactly what we want (not “Wicked”)– Use once, then throw away– Bugs can be tolerated/fixed

• Problem: – “Why not just re-use Hack X here with change Y …” – Hack Code is hard to maintain, but appealing from a

management perspective. 

• Case Study:– I’m guessing … just about every project you ever did as an

undergraduate.

Page 26: 50500113 spiral-model

SummarySummary

• Waterfall – good for budgeting, but doesn’t analyze risk or have a

good way to manage errors found later in the process.

• Iterative – Models attempt to solve this by coding “as far as

possible”, gathering feedback, and coding again..– Prototyping “Plan to throw one away”, then re-build it

“right.”– Incremental (“Staged”) Delivery Builds the software

by a series of waterfalls

Summary

Page 27: 50500113 spiral-model

• Spiral: – Addresses Risk at every stage & let the stakeholders

determine the outcome.

• Win/Win– Seeks ways to provide customer feedback through

anchor points, manages risk for management, and provides win conditions for developers.

• Cleanroom / Hacking – Are alternative models that work for large projects that

must work right the first time, and small projects with little risk.

Summary

Page 28: 50500113 spiral-model

ResourcesResources

• Generally Interesting Theories for REAL-WORLD Development:• Wicked Problems/State of Coding:

– http://www.unidata.ucar.edu/staff/caron/collab/wicked.html– http://www.chc-3.com/pub/beautifulsoftware.htm        

• Mythical Man Month – (

http://www.amazon.com/exec/obidos/ASIN/0201835959/ref=bxgy_sr_text_a/002-7413073-4868053)

• Code Complete– (

http://www.amazon.com/exec/obidos/ASIN/1556154844/ref=bxgy_sr_text_a/002-7413073-4868053)

• Joel Spolsky on Real-World Software Development– http://www.joelonsoftware.com

• Software Engineering, A Practitioner’s Approach– http://www.mhhe.com/engcs/compsci/pressman/

Page 29: 50500113 spiral-model

Resources (2)Resources (2)

• Spiral Model– Using the WinWin Spiral Model: A case study, Boehm Barry, July 1998,

Computer

• Spiral Development workshop– www.sei.cmu.edu/cbs/spiral2000/february2000/BoehmSR.html

• Anchoring the Software Process, Boehm Barry– http://www.csis.gvsu.edu/~ferguson/classes/cs641/papers/ASP.pdf

• Denver Airport Project– http://www.time.com/time/magazine/archive/

1994/940516/940516.transportation.html

• Cleanroom Model– http://www.cleansoft.com/cleansoft_mgrguide.html– http://www.sei.cmu.edu/pub/documents/96.reports/pdf/tr022.96.pdf

•  Hacking– http://www.plethora.net/~seebs/faqs/hacker.html

Page 30: 50500113 spiral-model

HomeworkHomework• Objective Question

– One major difference between the Waterfall and iterative models is that the iterative models address risk. How do they do that?

• Subjective Question– Which of these models is the

best for the Customer? The Seller? Why?