Lecture 02: Software Lifecycle Models Valentin Razmov 22 Jun 2005
22 Slides186.50 KB
Lecture 02: Software Lifecycle Models Valentin Razmov 22 Jun 2005 CSE403, Summer'05, Lecture 02
Resources “Rapid Development”, Steve McConnell Chapters 7, 20, 21, 25, 35, 36 22 Jun 2005 CSE403, Summer'05, Lecture 02
Outline Lifecycle – definition and stages Lifecycle models and their tradeoffs “Code-and-fix” Waterfall Spiral Evolutionary prototyping Staged delivery “Design-to-schedule” Main recurring themes 22 Jun 2005 CSE403, Summer'05, Lecture 02
Software Lifecycle The stages that a product goes through in “life” “from womb to tomb” from the time it was first conceived as an idea to the time when it’s no longer used by any customer) Typical stages in software are: Requirements analysis/specification (High-level) architectural design Detailed design Coding & debugging Testing Maintenance 22 Jun 2005 CSE403, Summer'05, Lecture 02
Software Lifecycle Models Different lifecycle models can be created by varying the order and frequency in which these stages occur. “Code-and-fix” Waterfall Spiral Evolutionary prototyping Staged delivery “Design-to-schedule” etc. Q: Which model is the right one to use? A: It depends on the project circumstances and requirements. 22 Jun 2005 CSE403, Summer'05, Lecture 02
What is the Value of a Model? Decomposing workflow Understanding and managing the process A management tool 22 Jun 2005 CSE403, Summer'05, Lecture 02
Limitation of Models A model is just a model Artificial constraints Compromises with model are often necessary It abstracts away some aspects and highlights others (as with almost everything else in SE) Risk of overemphasizing the process The process is not the end in itself Product delivery is 22 Jun 2005 CSE403, Summer'05, Lecture 02
“Code-and-fix” Model 22 Jun 2005 CSE403, Summer'05, Lecture 02
“Code-and-fix” Model No planning whatsoever Applicable for very small projects and short-lived prototypes Dangerous for long-term or high-risk projects So there’s little or no management “overhead” Unlikely to accommodate changes to specification without a major design overhaul Would you pick this model for your project and why? 22 Jun 2005 CSE403, Summer'05, Lecture 02
Classic Waterfall Model 22 Jun 2005 CSE403, Summer'05, Lecture 02
Classic Waterfall Model Applicable to complex but well-explored tasks Every detail must be known upfront, at the specification stage Can’t move to the next stage until the current one is finished and verified Swimming upstream is possible but costs dearly No sense of progress until the very end where surprises are few “so far so good” Nothing to show to anxious customers (“we’re 90% done”) Project burns cash, not knowing what comes back in return Limited overhead from planning and management May end up very far from the original goal Would you pick this model for your project and why? 22 Jun 2005 CSE403, Summer'05, Lecture 02
Spiral Model 22 Jun 2005 CSE403, Summer'05, Lecture 02
Spiral Model Breaks up the project into mini-projects based on risk levels Purpose: risk reduction Cost: more planning involved, more management involvement/oversight Benefit: provides early indication of unforeseen problems As costs increase, risks decrease! Great when charting new territories (with high risks) Always addresses the biggest risk first Would you pick this model for your project and why? 22 Jun 2005 CSE403, Summer'05, Lecture 02
Staged Delivery Model 22 Jun 2005 CSE403, Summer'05, Lecture 02
Staged Delivery Model Waterfall-like beginnings, then develop in short stages Requires tight coordination with documentation, management, and marketing Can ship at any time during implementation From the outside (to customers) it looks like a successful delivery even if it is not the final goal the development team may have aimed for Would you pick this model for your project and why? 22 Jun 2005 CSE403, Summer'05, Lecture 02
Evolutionary Prototyping Model 22 Jun 2005 CSE403, Summer'05, Lecture 02
Evolutionary Prototyping Model Produces steady signs of progress Useful when requirements are changing rapidly or customer is non-committing Requires close customer involvement May spell trouble if the developers are inexperienced Not applicable if customers aren’t available on a short notice to give feedback Feature creep, major design decisions, use of prototyping time, etc. Would you pick this model for your project and why? 22 Jun 2005 CSE403, Summer'05, Lecture 02
“Design-to-schedule” Model 22 Jun 2005 CSE403, Summer'05, Lecture 02
“Design-to-schedule” Model Useful when you absolutely need to ship by a certain (immovable) date Similar to the Staged Delivery model But less flexible because of the fixed shipping date Requires careful prioritization of features Would you pick this model for your project and why? 22 Jun 2005 CSE403, Summer'05, Lecture 02
Which Model to Use? The choice of a model depends on the project circumstances and requirements. A good choice of a model can result in a vastly more productive environment than a bad choice. A cocktail of models is frequently used in practice to get the best of all worlds. But care must be applied – some models can’t intermix easily or at all. 22 Jun 2005 CSE403, Summer'05, Lecture 02
Which Model to Use? Which model or mix of models would you use for your quarter-long project where you work as part of a relatively large team? Why? 22 Jun 2005 CSE403, Summer'05, Lecture 02
Main Recurring Themes / Concerns Risk reduction Prioritization Based on risks, schedule, etc. Customer involvement and feedback Visibility of progress 22 Jun 2005 CSE403, Summer'05, Lecture 02