spiral model

Download spiral model

Post on 24-Nov-2014




0 download

Embed Size (px)


<p>General Idea of Iterative ModelsModels- Spiral ModelCS 641 13 September 2001 Presented by Matt Heusser &amp; Tabrez Sait</p> <p>What is Process?</p> <p>Waterfall Model Revisited</p> <p> 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</p> <p>What is Wicked Problem Problems we cant really understand until weve developed a solution. That is not what I want ... but now I know what I do want!</p> <p>The Mythical Man MonthMonthDr. 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</p> <p>Rapid Prototyping 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 its working) Show it to the USERS (A Picture is worth a 1,000 words) Get Feedback</p> <p> **** </p> <p>Case Study- RAD StudyGrand 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 &amp; Review Shifting Requirements priced project out-ofbudget</p> <p>Problems With Prototyping No Current Documents Functional Spec is Prototype + Feedback Prototype is not baseline functionality Same problems with Functional Spec as waterfall!</p> <p>Prototyping Part II: The Rigged Demo Re-Visit and improve the prototype to serve as a baseline Turns prototype into a rigged demo Show that to the customer Customer Test Drives Mockup Listen To Customer</p> <p>Build/Revise Mockup</p> <p>At the Demo Dialogue Customer:This looks great, and it looks like youre about done. When can we have it? Developer: Uh, its 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! Well 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.</p> <p>Case Studies MultiMulti-Stage Prototyping Telecommunication The prototype made the sale! Was pushed into production From user requirements to Shiping 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!</p> <p>Iterative ModelsWhats an Iteration?</p> <p>Iterative Design: Code as much as you can questions surface, then start over. Every model well talk about below is a variation on the Iterative Model.</p> <p>Spiral ModelDetermine objectives, alternatives, constraints Evaluate alternatives, identify and resolve risks</p> <p>Plan next phases</p> <p>Develop verify next level product</p> <p>Risk 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?</p> <p>Spiral Model Strength and Weaknesses Strengths Introduces risk management Prototyping controls costs Evolutionary development Release builds for beta testing Marketing advantage</p> <p> Weaknesses Lack of risk management experience Lack of milestones Management is dubious of spiral process Change in Management Prototype Vs Production</p> <p>Win Win Spiral Model</p> <p> 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."</p> <p>WinWin Spiral ModelIdentify NextProduct &amp; process definitions Identify Stake holders Process and process Evaluate commitment holders Reconcile Level Stake conditions Define next level of win Review, Win conditions Validate product &amp; product Alternatives</p> <p>Win 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</p> <p>WinWin SpiralSpiralAnchor Points Life Cycle Objective(LCO) What should the system accomplish?</p> <p> Life Cycle Architecture(LCA) What is the structure of the system?</p> <p> Initial Operational Capability(IOC) The first released version</p> <p>Contents of LCO and LCA milestones</p> <p>Key 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</p> <p> Site preparation including facilities, equipment, supplies and vendor support</p> <p> User, Operator and Maintenance preparation including selection team building training</p> <p>Win 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 Dont finish negotiations before prototyping Client acceptance</p> <p>Another ExtremeCleanRoom Methodologies 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 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.</p> <p>Clean Room Continued</p> <p> REAL Peer Review Mathematical proof of correctness (Challenges associated with it?) Functional Specifications as Box Diagrams (State, Black, Clear)</p> <p>Yet Another Extreme: Hacking Hacking: Code n Fix More Common than you thought</p> <p> 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</p> <p> Problem: Why not just re-use Hack X here with change Y Hack Code is hard to maintain, but appealing from a management perspective.</p> <p> Case Study: Im guessing just about every project you ever did as an undergraduate.</p> <p>S u Summary m</p> <p>m</p> <p>a</p> <p>r y</p> <p> Waterfall good for budgeting, but doesnt analyze risk or have a good way to manage errors found later in the process.</p> <p> 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</p> <p>S</p> <p>u</p> <p>m</p> <p>m</p> <p>a</p> <p>r</p> <p> Spiral: Addresses Risk at every stage &amp; let the stakeholders determine the outcome.</p> <p> Win/Win Seeks ways to provide customer feedback through anchor points, manages risk for management, and provides win conditions for developers.</p> <p> Cleanroom / Hacking Are alternative models that work for large projects that must work right the first time, and small projects with little risk.</p> <p>Resources 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</p> <p> Mythical Man Month (http://www.amazon.com/exec/obidos/ASIN/0201835959/ref=bxgy_ sr_text_a/002-7413073-4868053)</p> <p> Code Complete (http://www.amazon.com/exec/obidos/ASIN/1556154844/ref=bxgy_ sr_text_a/002-7413073-4868053)</p> <p> Joel Spolsky on Real-World Software Development http://www.joelonsoftware.com</p> <p> Software Engineering, A Practitioners Approach http://www.mhhe.com/engcs/compsci/pressman/</p> <p>Resources (2) Spiral Model Using the WinWin Spiral Model: A case study, Boehm Barry, July 1998, Computer</p> <p> Spiral Development workshop www.sei.cmu.edu/cbs/spiral2000/february2000/BoehmSR.html</p> <p> Anchoring the Software Process, Boehm Barry http://www.csis.gvsu.edu/~ferguson/classes/cs641/papers/ASP.pdf</p> <p> Denver Airport Project http://www.time.com/time/magazine/archive/1994/940516/940516.tr ansportation.html</p> <p> Cleanroom Model http://www.cleansoft.com/cleansoft_mgrguide.html http://www.sei.cmu.edu/pub/documents/96.reports/pdf/tr022.96.pdf</p> <p>Hacking http://www.plethora.net/~seebs/faqs/hacker.html</p> <p>Homework 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?</p>