– The major cause of the software crisis is that the machines have become several orders of magnitude more powerful! – … as long as there were no machines, programming was no problem at all; – when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem. Methodology
• Working software is the outcome
of a team effort – Calls for process discipline • Methodology – A blueprint to execute the stages of an SDLC
Image Courtesy: Wikimedia
Waterfall
Image Source: Winston Royce
• Linear execution with feedback loops
Prescription
• Complete design before analysis and coding begins
– Not feasible for most systems • Documentation must be current and complete – Wishful thinking • Do the job twice if possible – Prototyping reveals risks early on • Testing must be planned, controlled and monitored • Involve the customer Spiral
• The Waterfall model failed to
take root – Implementations got delayed, teams were unhappy • Iterative approaches were the way forward – Spiral model was risk-driven – Prototyping at each stage Image Courtesy: Conan Unified
• USDP - Unified Software
Development Process – Model-driven development • Models built around use cases – UML: Unified Modeling Language • Software engineering tools – Rational suite Reference: Jacobson et al (1998) Use cases
Reference: Cockburn (2000)
• Sequences of actions a system performs that yields value to an actor
– Captures the voice of the customer • Transits well to all other phases in the Unified Process Iterative
• Unified Process fosters iterative
and incremental development – Time-boxed iterations create working software • Emphasis varies across the stages of the SDLC