Software Engineering
Chapter 2 Process Models
(Continue)
1
Evolutionary Models
◼ Software system evolves over time as requirements often change
as development proceeds. Thus, a straight line to a complete end
product is not possible. However, a limited version must be
delivered to meet competitive pressure.
◼ Usually a set of core product or system requirements is well
understood, but the details and extension have yet to be defined.
◼ You need a process model that has been explicitly designed to
accommodate a product that evolved over time.
◼ It is iterative that enables you to develop increasingly more
complete version of the software.
◼ Two types are introduced, namely Prototyping and Spiral models.
2
3. Evolutionary Models: Prototyping Model
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
◼ Requires considerable expertise in risk assessment
◼ Serves as a realistic model for large-scale software
development
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