Chapter 3 Software Process Model
Chapter 3 Software Process Model
Informal
Requirements
Process
Product
Quality?
Uncertain /
Incomplete
requirement
In the beginning
Problems
The assumption is that requirements can
be fully understood prior to development
Interaction with the customer occurs
only at the beginning (requirements)
and end (after delivery)
Unfortunately the assumption almost
never holds
Process as a "white box"
Informal
Requirements
Process
Product
feedback
Advantages
Reduce risks by improving visibility
Allow project changes as the project progresses
based on feedback from the customer
Prescriptive Model
Prescriptive process models advocate an orderly approach to software
engineering
Organize framework activities in a certain order
Process framework activity with set of software engineering actions.
Each action in terms of a task set that identifies the work to be
accomplished to meet the goals.
The resultant process model should be adapted to accommodate the
nature of the specific project, people doing the work, and the work
environment.
Software engineer choose process framework that includes activities like;
Communication
Planning
Modeling
Construction
Deployment
Prescriptive Model
Calling this model as Prescribe
because it recommend a set of
process elements, activities, action
task, work product & quality.
Each elements are inter related to
one another (called workflow).
Waterfall Model or Classic Life
Cycle
Waterfall Model or Classic Life
Cycle
Requirement Analysis and Definition: What - The systems services, constraints
and goals are defined by customers with system users.
Scheduling tracking -
Assessing progress against the project plan.
Require action to maintain schedule.
System and Software Design: How It establishes and overall system
architecture. Software design involves fundamental system abstractions and their
relationships.
Integration and system testing: The individual program unit or programs are
integrated and tested as a complete system to ensure that the software
requirements have been met. After testing, the software system is delivered to
the customer.
Operation and Maintenance: Normally this is the longest phase of the software
life cycle. The system is installed and put into practical use. Maintenance involves
correcting errors which were not discovered in earlier stages of the life-cycle.
Advantages
This model is simple and easy to understand
and use.
It is easy to manage due to the rigidity of the
model each phase has specific deliverables
and a review process.
In this model phases are processed and
completed one at a time. Phases do not
overlap.
Waterfall model works well for smaller projects
where requirements are very well understood.
Disadvantages
Once an application is in the testing stage, it is very
difficult to go back and change something that was
not well-thought out in the concept stage.
No working software is produced until late during
the life cycle.
High amounts of risk and uncertainty.
Not a good model for complex and object-oriented
projects.
Poor model for long and ongoing projects.
Not suitable for the projects where requirements
are at a moderate to high risk of changing.
Incremental Process Model
C- Communication
P - Planning
M Modeling
C - Construction
D - Deployment
Problem Areas:
Customer cries foul and demand that a few fixes be applied to make
the prototype a working product, due to that software quality suffers as
a result.
Developer often makes implementation in order to get a prototype
working quickly without considering other factors in mind like OS,
Programming language, etc.
Customer and developer both must be agree that the prototype is built to
serve as a mechanism for defining requirement.
Evolutionary Model: Spiral
Model
Spiral Model
Couples iterative nature of prototyping with the controlled and
systematic aspects of the linear sequential model
It provide potential for rapid development of increasingly more
complete version of the software.
Using spiral, software developed in as series of evolutionary
release.
Early iteration, release might be on paper or prototype.
Later iteration, more complete version of software.
Divided into framework activities (C,P,M,C,D). Each activity
represent one segment.
Evolutionary process begins in a clockwise direction, beginning at
the center risk.
First circuit around the spiral might result in development of a
product specification. Subsequently, develop a prototype and then
progressively more sophisticated version of software.
Unlike other process models that end when software is delivered.
It can be adapted to apply throughout the life of software.
Spiral Model
Spiral Model (cont.)
Concept Development Project:
Start at the core and continues for multiple iterations until it is
complete.
If concept is developed into an actual product, the process
proceeds outward on the spiral.
New Product Development Project:
New product will evolve through a number of iterations around
the spiral.
Later, a circuit around spiral might be used to represent a
Product Enhancement Project
Product Enhancement Project:
There are times when process is dormant or software team not
developing new things but change is initiated, process start at
appropriate entry point.
Spiral models uses prototyping as a risk reduction
mechanism but, more important, enables the developer
to apply the prototyping approach at each stage in the
evolution of the product.