Software Process Models
Software Process Models
10
Advantages of incremental
development
Customers get usable functionality earlier than
with waterfall
Getting early feedback improves likelihood of
producing a product that satisfies customers
Reduces market risk: if customers hate the product, find
out early before investing too much effort and
money
The quality of the final product is better
The core functionality is developed early and tested
multiple times (during each release)
Only a relatively small amount of functionality added in
each release: easier to get it right and test it thoroughly
Detect design problems early and get a chance to
redesign
The Limitations
As product is delivered in parts total
development cost is higher.
Well defined interfaces are required
to connect modules developed with
each phase.
The model requires well defined
project planning schedule to
distribute the work properly.
Prototyping model
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
14
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)
15
Spiral Model
The Spiral Model is an evolutionary software
process model that couples the iterative
nature of prototyping with the controlled
and systematic aspects of the Linear
Sequential Model.
Using the Spiral Model the software is developed
in a series of incremental releases. Unlike the
Iteration Model where in the first product is a core
product, in the Spiral Model the early iterations
could result in a paper model or a prototype.
However, during later iterations more complex
functionalities could be added.
The Spiral Model
Advantages of the Spiral
Model
Realistic approach to the development because the
software evolves as the process progresses. In
addition, the developer and the client better
understand and react to risks at each evolutionary
level.
The model uses prototyping as a risk reduction
mechanism and allows for the development of
prototypes at any stage of the evolutionary
development.
It maintains a systematic stepwise approach, like the
classic waterfall model, and also incorporates into it
an iterative framework that more reflect the real
world.
Disadvantages of the Spiral
Model
Construction
Construction
Team # 2 component reuse
component reuse
Modeling automatic code
Modeling automatic code
Communication business modeling generation
Communication generation
business modeling testing
data modeling testing
data modeling
process modeling
process modeling
Planning
Planning Construction
Construction Deployment
Team # 1 component reuse Deployment
component reuse integration
Modeling automatic code integration
Modeling automatic code delivery
business modeling generation delivery
generation
business modeling testing feedback
data modeling testing feedback
data modeling
process modeling
process modeling
Construction
Construction
component reuse
component reuse
automatic code
automatic code
generation
generation
testing
testing
21
60 – 90 days
The RAD Model
The time constraints imposed on a
RAD project demand “scalable
scope”
The application should be
modularized and addressed by
separate RAD teams
22
Unified Process Model
The Unified Process (UP) is a process for
building object-oriented systems.
The goal of the UP is to enable the production of
high quality software that meets users needs
within predictable schedules and budgets.
A software process that is:
use-case driven
architecture-centric
iterative and incremental
Closely aligned with the Unified Modeling
Language (UML)
The system grows incrementally over time,
iteration by iteration.
The system may not be eligible for production
deployment until after many iterations.
UP process
stakeholders
Drawing the customer onto the team
32
Choosing a process model
Waterfall approach is OK for small projects,
and when requirements & design can be
done near-perfectly upfront
Most complex real-world projects these days
use an incremental approach with multiple
phases
We can borrow ideas from different process
models and create an approach that is suited
to the characteristics of our particular project