Software Process Models
The slides and the material of this chapter is adopted from:
1. “Software Engineering”, by I. Somerville, 7th Ed., 2004.
2. “Software Engineering: A Practitioner’s Approach,” by R.S. Pressman, 6th Ed., 2005.
Objective
To introduce software process models
To describe the generic process models and when
they may be used
SWE 418 (062) Software Process Models 2
Topics covered
Software process models
The waterfall model
Incremental model
Evolutionary development
Specialized process models
SWE 418 (062) Software Process Models 3
The software process
A structured set of activities required to develop a
software system
Specification;
Design;
implementation
Validation;
Evolution.
A software process model is an abstract
representation of a process. It presents a
description of a process from some particular
perspective.
SWE 418 (062) Software Process Models 4
Software process models
The waterfall model
Incremental model
Evolutionary development
Specialized process models
Agile processes
SWE 418 (062) Software Process Models 5
Waterfall model
Requir ements
definition
System and
software design
Implementa tion
and unit testing
Integ ration and
system testing
Oper ation and
maintenance
SWE 418 (062) Software Process Models 6
Incremental development
Define outline Assign requirements Design system
requirements to increments architectur e
Develop system Valida te Integ rate Validate
increment increment increment system
Final
system
System incomplete
SWE 418 (062) Software Process Models 7
Evolutionary development
Prototyping
Exploratory development
Throw-away prototyping
Spiral model
SWE 418 (062) Software Process Models 8
Prototyping
Quick
Qu ic k p la n
plan
Co m m u n ic at io n
communication
Modeling
Mo d e lin g
Qu icdesign
Quick k d e s ig n
De ploym e nt
Deployment
De live ry &
delivery
& Fe e d b ac k Co n s t ru c t io n
feedback Construction
of
of prototype
p ro t o t yp e
SWE 418 (062) Software Process Models 9
Still Other Process Models
Component based development—the process to
apply when reuse is a development objective
Formal methods—emphasizes the mathematical
specification of requirements
Unified Process—a “use-case driven,
architecture-centric, iterative and incremental”
software process closely aligned with the Unified
Modeling Language (UML)
SWE 418 (062) Software Process Models 10
Summary
Software processes are the activities involved in
producing and evolving a software system.
Software process models are abstract
representations of these processes.
General activities are specification, design and
implementation, validation and evolution.
Generic process models describe the organisation
of software processes.
Specialized software processes do exist
SWE 418 (062) Software Process Models 11