Software Process
Models
Software Process model
A simplified representation of a software
process, presented from a specific
perspective
Process model describes the workflow
How the process elements interact together.
Software Development Life-
Cycle (SDLC)
The steps through which the product
progresses
Requirements Specification phase
Design phase
Implementation phase
Integration phase
Maintenance phase
Retirement
Process Models
Waterfall model
Incremental Process Models
Rapid application development model
Incremental model
Evolutionary Process Models
Prototyping model
Spiral model
Specialized Process Models
Component-Based Development
Formal Method model
Comparison of life-cycle models
Waterfall model
Consists of a number of dependent phases
that are executed in a sequential order with
no feedback loops. The complete solution is
not released until the final phase.
Waterfall model
Requirements are reasonably understood.
When work flow is linear in fashion
Systematic sequential approach
( or) r)
del le (o el
ll Mo cyc Mod
t e rfa l Life ntial
Wa ssica eque
Cla ear S
Lin
Process Models
Waterfall model
Incremental Process Models
Rapid application development model
Incremental model
Evolutionary Process Models
Prototyping model
Spiral model
Specialized Process Models
Component-Based Development
Formal Method model
Unified Process
Comparison of life-cycle models
Incremental model
Evolution of waterfall model
New features added to 1st Increment(core
product)
Incremental software development model
may be applicable to projects where:
Software Requirements are well defined, but
realization may be delayed.
The basic software functionality are required early
SW Functionality and features
Time
Inc 1
Inc 2
Inc 3
Incremental Model’s Use
Each increment product is to be delivered.
When team has few people by the deadline
of the project.
RAD Model
Rapid Application Development
Short development cycle
Faster development (60-90) days
High quality results
Use of (CASE) Tools
Component based construction
System delivered in short time (2 to 3 months)
Useful where requirements are well understood and
scope is limited
RAD
RAD Model (four phases)
Process Models
Waterfall model
Incremental Process Models
Rapid application development model
Incremental model
Evolutionary Process Models
Prototyping model
Spiral model
Specialized Process Models
Component-Based Development
Formal Method model
Unified Process
Comparison of life-cycle models
Evolutionary Development
Waterfall model
Prototyping
Early approximation of a final system
Linear and iterative
Customer is unable to define the system
Requirements are not freezed
a prototype is built to understand the requirements
Communication
Communication
Quick
Deployment QuickPlan
Plan
DeploymentDelivery
Delivery&&
Feedback
Feedback
Modeling
ModelingQuick
QuickDesign
Design
Construction
ConstructionofofPrototype
Prototype
Spiral Model
Simplified form
Waterfall model plus risk analysis
Precede each phase by
Alternatives
Risk analysis
Follow each phase by
Evaluation
Planning of next phase
Progress through steps
Determine Evaluate
Objectives, Alternatives, identify
Alternatives, Resolve risks
Constraints
1 2
p1 p2 Operational prototype
4 3
Develop, verify
Plan
Next level Product
nextphase
Process Models
Waterfall model
Incremental Process Models
Rapid application development model
Incremental model
Evolutionary Process Models
Prototyping model
Spiral model
Specialized Process Models
Component-Based Development
Formal Method model
Unified Process
Comparison of life-cycle models
Component Based Development
COTS
Commercial off-the-shelf software components
developed by vendors who offer them as
products.
Decomposition of the engineered systems
into functional or logical components with
well-defined interfaces used for
communication across the components.
Co
De mp
Mo sig one
Co dul n ar nt in
mp e I chi teg
re nte tec rat
he ge tur io
ns ra e n
ive tio
tes n.
tin
g.
Formal Methods Model
Mathematically based techniques for
representing and analysis of software.
Formal methods include
Formal specification
Specification analysis and proof
Transformational development
Program verification
Formal Methods Model
Reduces requirements errors as it forces a detailed
analysis of the requirements
Incompleteness and inconsistencies can be
discovered and resolved
Currently very time consuming and expensive
Extensive training required
Difficult to use this model to communicate with the
customer.
Unified Process
Contains features of OOA and OOD.
UML- Unified Modeling Language
It was created to support the OO design and
modeling.
iterative and incremental process
Phases of Unified process
All the phases are concurrent in nature
Inception
Elaboration
Construction
Transition
Production
UP (contd)
Inception
Customer communication
Planning
Identify resources, assess risks, defines schedule
Business requirements are identified
In the form of use cases.
Rough architecture
A tentative outline of major sub-systems, functions and
features that populate them.
UP (contd)
Elaboration
Customer communication
Modeling activity
Expands the use cases.
Expands the architecture to:
Use case model, analysis model, design model,
implementation model and deployment model.
Review plan and make modifications
Evaluate scope, risks, project delivery dates
UP (contd)
Construction
Develop software components (that make the use
cases operational).
Complete the analysis and design models.
Implement all functions and features for that
increment.
Conduct unit testing for the components
Integrate components.
UP (contd)
Transition
Create user manuals, guidelines, installation
procedures.
Software is given to users for beta testing.
Get user feedback
The increment is now a useable software release.
UP (contd)
Production
On going use of the software is monitored.
Provide support
Defect reports and request for changes are
submitted and evaluated.
Few Differences..
Waterfall Model:
Good for project management
Well constructed product.
Evolutionary Models:
All activities are in iterative fashion
Incremental Models:
Requirements are established initially
development activities are iterative.
Unified Process:
Dealing with objects
References
Chapter 1 ,2,3, Roger S. Pressman
“Software Engineering- A practitioner’s
approach”, 6th Ed.
WCB/McGraw-Hill, 2002, Object-Oriented
and Classical Software Engineering 5th
Edition