Software Engineering - Chapter 2 Process Models (Continue)
Software Engineering - Chapter 2 Process Models (Continue)
1
Evolutionary Models
Construction
of prototype
3
Prototyping Model (Description)
◼ Follows an evolutionary and iterative approach
◼ Used when requirements are not well understood
◼ Serves as a mechanism for identifying software
requirements
◼ Focuses on those aspects of the software that are
visible to the customer/user
◼ Feedback is used to refine the prototype
4
Prototyping Model (Potential Problems)
◼ The customer sees a "working version" of the
software, wants to stop all development and then
buy the prototype after a "few fixes" are made
◼ Developers often make implementation
compromises to get the software running quickly
(e.g., language choice, user interface, operating
system choice, inefficient algorithms)
◼ Lesson learned
◼ Define the rules up front on the final disposition
of the prototype before it is built
◼ In most circumstances, plan to discard the
prototype and engineer the actual production
software with a goal toward quality
5
Spiral Model (Diagram)
6
Spiral Model (Description)
◼ Follows an evolutionary approach
◼ Used when requirements are not well understood
and risks are high
◼ Inner spirals focus on identifying software
requirements and project risks; may also incorporate
prototyping
◼ Outer spirals take on a classical waterfall approach
after requirements have been defined, but permit
iterative growth of the software
7
Spiral Model (Description)…
◼ Operates as a risk-driven model…a go/no-go
decision occurs after each complete spiral in order
to react to risk determinations
8
General Weaknesses of Evolutionary
Process Models
1) Prototyping poses a problem to project planning
because of the uncertain number of iterations required
to construct the product
2) Evolutionary software processes do not establish the
maximum speed of the evolution
• If too fast, the process will fall into chaos
• If too slow, productivity could be affected
3) Software processes should focus first on flexibility
and extensibility, and second on high quality
• We should prioritize the speed of the development
over zero defects
• Extending the development in order to reach higher
quality could result in late delivery
9