1.4 Process Models
1.4 Process Models
1.4 Process Models
MODELS
Unit I
SOFTWARE PROCESS
Process is a framework for the tasks that
are required to build high-quality software.
A software process is a set of activities
and associated results, which produces a
software product.
Software engineers carry out these
activities.
SOFTWARE PROCESS
The common activities ca be categorized into the
following:
Software specification - the functionality of the software
and constraints on its operation must be defined.
Software development – the software to meet
the specification must be produced.
Software validation – the software must be
validated to ensure that it does what the
customer wants.
Software evolution – the software must be
evolved to meet the changing requirements of
customers.
SOFTWARE PROCESS
Different processes organize these activities in
different ways and are described at different levels
of detail.
Different organizations may use different processes
to produce the same types of product.
However, some processes are suitable than the
others for some types of applications.
If inappropriate process is used, this will probably
reduce the quality or the usefulness of the software
product to be developed.
PROCESS MODEL
Process Model
The process model is a description of a software
process.
Model is an abstraction (summary) of the actual
process.
Process model may include activities which are
part of software process, software product and
role of people involved in software engineering.
TYPES OF PROCESS MODELS
General types of software process models:
A workflow model. This shows the sequence of activities
in the process along with their inputs, outputs and
dependencies. The activities in this model represent
human-actions.
A dataflow model/ Activity model. This represents the
process as a set of activities each of which carries out
some data transformation. It shows how the input to the
process is transformed to an output.
A role/action model. This represents the role of the
people involved in the software process and the activities
for which they are responsible.
GENERAL PROCESS MODELS
Build & Fix Model
Waterfall Model (Linear Sequential Model)
Evolutionary Models
Prototyping Model
Spiral Model
Incremental Models
Iterative Model
RAD Model
Unified Process Model
A process model for software engineering is chosen
based on the nature of the project and application,
the method and tools to be used and the controls and
deliverables that are required.
BUILD & FIX MODEL
Build
Fix
BUILD & FIX MODEL
Product is constructed without any specifications or
any attempt to design.
The developer simple builds the product that is
reworked as many times as necessary to satisfy the
client.
This is an ad-hoc approach and not well defined.
Requirements
Definition
System &
Software Design
Implementation &
Unit Testing
Integration &
System Testing
Operation &
Maintenance
WATERFALL MODEL
Also known as software-life cycle, classical life
cycle and linear sequential model.
Derived from other engineering process.
I II
Go/ No Go
IV III
EVOLUTIONARY MODELS:
SPIRAL MODEL
The radial dimension of the model represents cumulative
costs
Each path around the spiral is indicative of increased costs.
The angular dimension represents the progress made in
completing each cycle.
Each loop of the spiral from X-axis clockwise through 360
degrees, represents one phase.
One phase is split roughly into four sectors:
Planning: determination of objectives, alternatives, &
constraints.
Risk Analysis: analyze alternatives & attempt to identify &
resolve the risks involved.
Development: product development & testing.
Assessment: customer evaluation.
EVOLUTIONARY MODELS:
SPIRAL MODEL
During the first phase:
Planning is done
Risks are analyzed
Prototypes are built
Customers evaluate the prototype.
During second phase:
A more refined prototype is built
Requirements are documented & validated
Customers are involved in assessing the new prototype.
By the time third phase begins,
Risks are known
A somewhat more traditional development approach is
taken up.
EVOLUTIONARY MODELS:
SPIRAL MODEL
It couples the iterative nature of prototyping with the controlled
and systematic aspects of the waterfall model.
It provides the potential for rapid development of increasingly
more complete versions of the software
Each phase is completed with a review by the people
concerned with the project.
It is a risk-driven process model.
It has two main distinguishing features
Cyclic approach: Incrementally growing a system’s degree of
definition and implementation while decreasing its degree of risk
A set of anchor point milestones: A combination of work
products and conditions that are attained along the path of the
spiral.
EVOLUTIONARY MODELS:
SPIRAL MODEL
Unlike other process models that end when software is
delivered, the spiral model can be adapted to apply
throughout the life of the computer s/w.
The circuits around the spiral might represent
Concept development project
New Product development project
Product enhancement project
The spiral model demands a direct consideration of
technical risks at all stages of the project
EVOLUTIONARY MODELS:
SPIRAL MODEL: DRAWBACKS
It may be difficult to convince customers (particularly
in contract situations) that the evolutionary approach
is controllable.
It demands considerable risk assessment expertise
and relies on this expertise for success.
If a major risk is not uncovered and managed,
problems will undoubtedly occur.
INCREMENTAL MODELS:
ITERATIVE ENHANCEMENT MODEL
Communication
Software Functionality and Features
Planning
increment # 1 delivery of
2nd
increment
delivery of
1st
increment
60-90 Days
INCREMENTAL MODELS:
RAPID APPLICATION DEVELOPMENT MODEL:
PHASES
Business modeling: The information flow among
business functions is modeled in a way that answers the
following questions:
What information drives the business process?
What information is generated?
Who generates it?
Where does the information go?
Who process it?
INCREMENTAL MODELS:
RAPID APPLICATION DEVELOPMENT MODEL:
PHASES
Data modeling. The information flow defined as part
of the business modeling phase is refined into a set
of data objects that are needed to support the
business.
The characteristics (called attributes) of each object are
identified and the relationship between these objects
defined.
Process modeling. The data objects defined in the data
modeling phase are transformed to achieve the
information flow necessary to implement a business
function.
Processing descriptions are created for adding, modifying,
deleting, or retrieving a data object.
INCREMENTAL MODELS:
RAPID APPLICATION DEVELOPMENT MODEL:
PHASES
Application generation. RAD assumes the use of fourth
generation techniques.
Rather than creating software using conventional third
generation programming languages.
TheRAD process works to reuse existing program
components (when possible) or create reusable
components (when necessary).
Inall the cases, automated tools are used to facilitate
construction of the software.
INCREMENTAL MODELS:
RAPID APPLICATION DEVELOPMENT MODEL:
PHASES
Testing and turnover. Since the RAD process
emphasize reuse, many of the program
components have already been tested.
This reduces overall testing time.
However, new components must be tested and all
interfaces must be fully exercised.
INCREMENTAL MODELS:
RAPID APPLICATION DEVELOPMENT MODEL:
DRAWBACKS
RAD requires sufficient human-resources to create
the right number of RAD teams in a large and
scalable projects.
RAD developers and costumers should be
committed to the rapid-fire activities.
Unsuitable cases:
A non-modularized system.
When technical risk is high.
UNIFIED PROCESS MODEL
Time
Installation procedures