Software Process Models
Instructor: Mehroze Khan
1
Software Life Cycle
Software development usually involves the following stages:
• Requirements analysis and definition
• System design
• Program design
• Writing the programs (program implementation)
• Unit testing
• Integration testing
• System testing
• System delivery
• Maintenance
2
Software Development Process Models
•Waterfall model
•Classical
•With prototyping
•V model
•Prototyping model
•Phased development: increments and iterations
•Spiral model
•Unified process
•Rapid Application Development (RAD)
•Agile methods
•XP
•Scrum
•Kanban
3
The Spiral Model
•Suggested by Boehm (1988)
•Combines development activities with risk
management to minimize and control risks
•The model is presented as a spiral in which each
iteration is represented by a circuit around four major
activities
•Plan
•Determine goals, alternatives and constraints
•Evaluate alternatives and risks
•Develop and test
4
Evolutionary Process Model: The Spiral
Model
5
Evolutionary Process
Model: The Spiral Model
6
Evolutionary Process Model: The 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 waterfall model.
• Using the spiral model, software is developed in a series of
evolutionary releases. During early iterations, the release
might be a model or prototype. During later iterations,
increasingly more complete versions of the engineered
system are produced.
• Each of the framework activities represent one segment of
the spiral path. The software team performs activities that
are implied by a circuit around the spiral in a clockwise
direction, beginning at the center.
7
Evolutionary Process Model: The Spiral
Model
• Risk is considered as each revolution is made.
• Anchor point milestones—a combination of work products
and conditions that are attained along the path of the
spiral—are noted for each evolutionary pass.
• The first circuit around the spiral might result in the
development of a product specification
• Subsequent passes around the spiral might be used to
develop a prototype
• Then progressively more sophisticated versions of the
software.
8
Spiral Model
Pros:
• There is continuous customer involvement.
• Development risks are managed.
• It is suitable for large, complex projects.
• It works well for extensible products.
Cons:
• Risk analysis failures can doom the project.
• The project may be hard to manage.
• It requires an expert development team.
9
Unified Process Model
•Offered by Rational/IBM, UP developed by
Booch, Rumbaugh, and Jacobson
• UP should be tailored to organizational and
project needs
• Highly iterative life cycle
• Project will be use-case driven and modeled
using UML
10
Unified Process Model
• UP life cycle:
• Includes five phases which consist of iterations
• Iterations are “mini-projects”
Inception:
• Fundamental business requirements are described
through a set of preliminary use cases.
• Planning identifies resources, assesses major risks, and
defines a preliminary schedule for the software
increments.
Elaboration:
• Refines and expands the preliminary use cases and
creates an architectural baseline.
• Modifications to the plan are often made at this time.
11
Unified Process Model
Construction:
• All necessary and required features and functions for the
software increment (i.e., the release) are implemented in
source code.
• As components are being implemented, unit tests are
designed and executed for each.
• Integration activities (component assembly and
integration testing) are conducted.
• Use cases are used to derive a suite of acceptance tests.
Transition:
• Software and supporting documentation is given to end
users for beta testing
• User feedback reports both defects and necessary
changes.
12
Unified Process Model
Production:
• Ongoing use of the software is monitored.
• Support for the operating environment is provided
• Defect reports and requests for changes are submitted
and evaluated.
13
Unified Process Model
14
Unified Process Model
•It is likely that at the same time the
construction, transition, and production phases
are being conducted, work may have already
begun on the next software increment.
•This means that the five UP phases do not occur
in a sequence, but rather with staggered
concurrency.
15
Unified Process Model
Image Source: Systems Analysis and Design in a Changing World, 4th Edition
16
Unified Process Model
17
Unified Process Model
Pros:
•Quality documentation is emphasized.
•There is continuous customer involvement.
•It accommodates requirements changes.
•It works well for maintenance projects.
Cons:
•Use cases are not always precise.
•Overlapping phases can cause problems.
•It requires an expert development team.
18
Rapid Application Development (RAD)
Model
•RAD is a linear sequential software development
process model.
•It emphasizes a concise development cycle using an
element-based construction approach.
•If the requirements are well understood and described,
and the project scope is a constraint, the RAD process
enables a development team to create a fully functional
system within a concise time period.
19
RAD Model
20
RAD Model
21
Phases of RAD Model
1. Business Modelling: The business model for the product
under development is designed in terms of flow of
information and the distribution of information between
various business channels. A complete business analysis is
performed to find the vital information for business.
2. Data Modelling: The data collected from business modeling
is refined into a set of data objects (entities) that are needed
to support the business. The attributes (character of each
entity) are identified, and the relation between these data
objects (entities) is defined.
3. Process Modelling: The information object defined in the
data modeling phase are transformed to achieve the data
flow necessary to implement a business function. Processing
descriptions are created for adding, modifying, deleting, or
retrieving a data object.
22
Phases of RAD Model
4. Application Generation: The actual system is built and
coding is done by using automation tools to convert
process and data models into actual prototypes.
5. Testing & Turnover: The overall testing time is reduced in
the RAD model as the prototypes are independently
tested during every iteration. However, the data flow and
the interfaces between all the components need to be
thoroughly tested with complete test coverage. Since
most of the programming components have already been
tested, it reduces the risk of any major issues.
23
When to use RAD Model
• When the system should need to create the project that
modularizes in a short span time (2-3 months).
• When the requirements are well-known.
• When the technical risk is limited.
• Progress needs to be made visible
24
RAD Model
Pros:
• Encourages and prioritizes customer feedback.
• It reduced development time.
• It increases the reusability of features.
Cons:
• It requires highly skilled designers.
• Only suitable for projects which have a small development
time.
• Only systems which can be modularized can be developed
using Rapid application development.
• On the high technical risk, it's not suitable.
• Required user involvement.
25
References
1. Shari PFleeger, Joanne Atlee, Software Engineering: Theory
and Practice, 4th Edition
2. Roger S. Pressman, Software Engineering A Practitioner’s
Approach, 9th Edition. McGrawHill
26