Spiral Model SPEAKER : KAI-JIA CHANG ADVISER : QUINCY WU DATA : 2010-03-17 Outline Introduction The spiral model Evaluation Conclusions References 2 Introduction A Risk-Driven Approach Different idea of software development. How does this project affect the developers and the clients? How does each step in the project affect its overall development? Not used in previous development models. – Usually code-driven or document-driven. 3 Introduction Background on software process models 1950 :Code-and-fix model 1956 : Stagewise model (Bengington ) 1970 : Waterfall model (Royce) 1971 : Incremental model(Mills) 1977 : Prototyping model(Bally and others) 1988 : Spiral model(Boehm) 4 Introduction Code-and-fix model First, elementary model Write code now; fix it later No planning involved Problems: – Code is poorly structured. – The software developed was usually a poor match for the users’ needs. 5 Introduction Waterfall model Introduced: – Feedback loops across multiple stages: Validation and verification steps. – Prototyping via a “build it twice” step alongside of requirements and design. Difficulties exposed even as revisions were made to the model. – Required elaborated documents. (Document-driven) – Led to pursuing stages of development in the wrong order. 6 The spiral model A Typical Cycle of the spiral Risk Analysis Prototype Design/Validation Planning Alternatives And repeat Measure of Cumulative Cost and Progress 7 The spiral model Initiating and terminating the spiral Four fundamental questions arise in considering this presentation of the spiral model: (1) How does the spiral ever get started? (2) How do you get off the spiral when it is appropriate to terminate a project early? (3) Why does the spiral end so abruptly? (4) What happens to software enhancement (or maintenance)? 8 The spiral model Initiating and terminating the spiral Initiating the process: – The spiral gets started by a hypothesis that a particular operational mission (or set of missions) could be improved by a software effort. Terminating the process: – The spiral process then involves a test of this hypothesis: At any time, if the hypothesis fails the test, the spiral is terminated. 9 The spiral model 10 The spiral model 11 The spiral model Cycle Requirements Each cycle is completed by a review by the people concerned with the project. Plans for the next cycle should be introduced. With each succeeding level in the spiral the level of detail increases. 12 13 14 The spiral model Prototype Throwaway prototyping Throwaway or Rapid Prototyping refers to the creation of a model that will eventually be discarded rather than becoming part of the final delivered software. Evolutionary prototyping The main goal when using Evolutionary Prototyping is to build a very robust prototype in a structured manner and constantly refine it. Incremental prototyping The final product is built as separate prototypes. At the end the separate prototypes are merged in an overall design. Extreme prototyping It is a development process is used especially for developing web applications. 15 The spiral model Advantages of prototyping Reduced time and costs Improved and increased user involvement Disadvantages of prototyping Insufficient analysis User confusion of prototype and finished system Developer misunderstanding of user objectives Developer attachment to prototype Excessive development time of the prototype Expense of implementing prototyping 16 Risk item Risk management techniques Personnel shortfalls Staffing with top talent, job matching; teambuilding; morale building; cross-training; pre-scheduling key people Unrealistic schedules and Budgets Detailed, multisource cost and schedule estimation; design to cost; incremental development; software reuse; requirements scrubbing Developing the wrong software Functions Organization analysis; mission analysis; ops-concept formulation; user surveys; prototyping; early users’manuals Developing the wrong user Interface Task analysis; prototyping; scenarios; user characterization (functionality, style, workload) Gold plating Requirements scrubbing; prototyping; cost-benefit analysis; design to cost Continuing stream of requirement Changes High change threshold; information hiding; incremental development (defer changes to later increments) Shortfalls in externally furnished Components Benchmarking; inspections; reference checking; compatibility analysis Shortfalls in externally performed tasks Reference checking; pre-award audits; award-fee contracts; competitive design or prototyping;Teambuilding Real-time performance Shortfalls Simulation; benchmarking; modeling; prototyping; instrumentation; tuning Straining computerscience Capabilities Technical analysis; cost-benefit analysis; prototyping; reference checking 17 The spiral model The Risk Management Plan Identify the project’s top 10 risk items. Present a plan for resolving each risk item. Update list of top risk items, plan, and results monthly. Highlight risk-item status in monthly project reviews. Compare with previous month’s rankings, status. Initiate appropriate corrective actions. 18 Spiral model usage: TRW Software Productivity System, Round 0. --Feasibility study. 19 Spiral model usage: TRW Software Productivity System, Round 1.--Concept of operations. 20 Spiral model usage: TRW Software Productivity System, Round 2.--Top-level requirements specification. 21 Evaluation Advantages Estimates become more realistic as work progresses, because important issues are discovered earlier. It is more able to cope with the changes that software development generally entails. Software engineers can get their hands in and start working on a project earlier. Disadvantages Highly customized limiting re-usability Applied differently for each application Risk of not meeting budget or schedule 22 Conclusions The risk-driven nature provides adaptability for a full range of software projects. The model has been successful in a large application, the TRW-SPS. The model is not yet fully elaborated. Even partial implementations of the model, such as the risk management plan, are compatible with the other process models. 23 References Rapid Prototyping Tools Revisited Alan M. Davis, "Operational Prototyping: A new Development Approach. IEEE Software, September 1992. Page 70-78. Wikipedia: Software Prototyping B. Boehm, " A Spiral Model of Software Development and Enhancement, ACM SIGSOFT Software Engineering Notes, Volume 11 , Issue 4 (August 1986) Pages: 14 - 24. Barry Boehm et al., "Using the WinWin Spiral Model: A Case Study, IEEE Computer, July 1998 (vol. 31 no. 7) pp. 33-44. 24