Professional Documents
Culture Documents
Process Models
Slide Set to accompany
Software Engineering: A Practitioner’s
Approach, 7/e
by Roger S. Pressman
1
What / who / why is
Process Models?
What: Go through a series of predictable steps--- a road map
that helps you create a timely, high-quality results.
Who: Software engineers and their managers, clients also.
People adapt the process to their needs and follow it.
Why: Provides stability, control, and organization to an
activity that can if left uncontrolled, become quite chaotic.
However, modern software engineering approaches must be
agile and demand ONLY those activities, controls and work
products that are appropriate.
What Work products: Programs, documents, and data
What are the steps: The process you adopt depends on the
software that you are building. One process might be good
for aircraft avionic system, while an entirely different
process would be used for website creation.
How to ensure right: A number of software process
assessment mechanisms that enable us to determine the
maturity of the software process. However, the quality,
timeliness and long-term viability of the software are the 2
best indicators of the efficacy of the process you use.
Definition of Software
Process
A framework for the activities, actions, and
tasks that are required to build high-quality
software.
8
Process Patterns
A process pattern
describes a process-related problem that is
encountered during software engineering work,
identifies the environment in which the problem has
been encountered, and
suggests one or more proven solutions to the
problem.
Stated in more general terms, a process pattern provides
you with a template
a consistent method for describing problem solutions
within the context of the software process.
9
proposed a template for describing a
process pattern:
Pattern Name.
The pattern is given a meaningful name describing it
within the context of the software process.
Forces.
The environment in which the pattern is encountered
and the
issues that make the problem visible and may affect
its solution.
Type.
The pattern type is specified. There are three types:
11
Process Assessment and
Improvement
13
Prescriptive Models
Prescriptive process models advocate an orderly
approach to software engineering
That leads to a few questions …
If prescriptive process models strive for structure
and order, are they inappropriate for a software
world that thrives on change?
Yet, if we reject traditional process models (and
the order they imply) and replace them with
something less structured, do we make it
impossible to achieve coordination and coherence
in software work?
14
1. The Waterfall
Model
Co m m u nic a t io n
p ro je c t in it ia t io n Planning
re qu ire m e n t g a t he rin g estimating Mo d e lin g
scheduling
a na lys is Co n s t ru c t io n
tracking
de s ign De plo y m e nt
c ode
t es t d e liv e ry
s u pp o rt
f e e d ba c k
15
The Waterfall Model…..
when the requirements for a problem are well understood—
when work flows from communication through deployment
in a reasonably linear fashion
The waterfall model, sometimes called the classic life
cycle, suggests a systematic, sequential approach to
software development that begins with customer
specification of requirements and progresses through
planning, modeling, construction, and deployment,
culminating in ongoing support of the completed software .
The waterfall model is the oldest paradigm for software
engineering. However Among the problems that are
sometimes encountered when the waterfall model is
applied are:
16
The Waterfall Model…..
1.The main drawback of the waterfall is the difficulty of accommodating change after
the process is underway.
2. Real projects rarely follow the sequential flow that the model proposes.
Although the linear model can accommodate iteration, it does so
indirectly. As a result, changes can cause confusion as the project team
proceeds.
3. It is often difficult for the customer to state all requirements explicitly.
The
waterfall model requires this and has difficulty accommodating the
natural
uncertainty that exists at the beginning of many projects.
4. The customer must have patience. A working version of the program(s)
will
not be available until late in the project time span. A major blunder, if
undetected
until the working program is reviewed, can be disastrous.
The waterfall model is mostly used for large system engineering project
where a system is developed at several sites
. 17
The classic life cycle leads to “blocking states” in
which some project team members must wait for
other members of the team to complete dependent
tasks. In fact, the time spent waiting can exceed the
time spent on productive work.
Today, software work is fast-paced and subject to a
never-ending stream of changes (to features,
functions, and information content). The waterfall
model is often inappropriate for such work.
. 19
A variation of waterfall model
depicts the relationship of
The V-Model quality assurance actions to
the actions associated with
communication, modeling and
early code construction
activates.
20
2. The Incremental
Model
incre m e nt # n
Co m m u n i c a t i o n
Pla n ning
Mo de ling
a n a ly s is Co n s t ru c t i o n
d e s ig n
c ode De p l o y m e n t
t est d e l i v e ry
fe e d b a c k
d e liv e ry o f
incre m e nt # 2 n t h in cre me n t
Co m m u n i c a t i o n
Pla n ning
Mo d e ling
a n a ly s is Co n s t ru c t i o n
d e s ig n c ode De p l o y m e n t
t est d e l i v e ry
fe e d b a c k
d e liv e ry o f
incre m e nt # 1 2 n d in cre me n t
Co m m u n i c a t i o n
Pla nnin g
Mo de ling
a n a ly s is Co n s t ru c t i o n
d e s ig n c ode
d e liv e ry o f
De p l o y m e n t
t est d e l i v e ry
fe e d b a c k
1 st in cre me n t
projectEngineering:
These slides are designed to accompany Software calendar tAime
Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 21
The Incremental Model
When initial requirements are reasonably well defined,
but the overall scope of the development effort
preclude a purely linear process. A compelling need to
expand a limited set of new functions to a later system
release.
It combines elements of linear and parallel process
flows. Each linear sequence produces deliverable
increments of the software.
The first increment is often a core product with many
supplementary features. Users use it and evaluate it
with more modifications to better meet the needs.
Early increments are stripped-down versions of the
final product, but they do provide capability that
serves the user and also provide platform for
evaluation by the user.
The Incremental Model
For example, word-processing software developed using
the incremental paradigm might deliver basic file
management, editing, and document production functions
in the first increment; more sophisticated editing and
document production
Capabilities in the second increment; spelling and grammar
checking in the third increment; and advanced page layout
capability in the fourth increment.
.
Co m m u n ic a t io n plan
communication
Modeling
Mo d e lin g
Qu ic k d e s i g n
Quick design
De p loym e n t
Deployment Construction
De liv e ry
delivery
& Fe e d b a&
ck
of prototype
Co n s t ru c t io n
feedback Construction
of
ofp ro
prototype
t o t yp e
communication
modeling
analysis
design
start
deployment
construction
delivery code
feedback test
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 27
Evolutionary Models: The
Spiral
It couples the iterative nature of prototyping with the controlled and
systematic aspects of the waterfall model and is a risk-driven process model
generator that is used to guide multi-stakeholder concurrent engineering of
software intensive systems.
Two main distinguishing features: one is cyclic approach for incrementally
growing a system’s degree of definition and implementation while decreasing
its degree of risk. The other is a set of anchor point milestones for ensuring
stakeholder commitment to feasible and mutually satisfactory system
solutions.
A series of evolutionary releases are delivered. During the early iterations, the
release might be a model or prototype. During later iterations, increasingly
more complete version of the engineered system are produced.
The first circuit in the clockwise direction might result in the product
specification; subsequent passes around the spiral might be used to develop a
prototype and then progressively more sophisticated versions of the software.
Each pass results in adjustments to the project plan. Cost and schedule are
adjusted based on feedback. Also, the number of iterations will be adjusted by
project manager.
Good to develop large-scale system as software evolves as the process
28
progresses and risk should be understood and properly reacted to. Prototyping
is used to reduce risk.
However, it may be difficult to convince customers that it is controllable as it
demands considerable risk assessment expertise.
Evolutionary Models:
Concurrent
none
Awa it ing
c ha nge s
Unde r re vie w
Unde r
re vis ion
Ba s e line d
Done
Inc e p t io n
inception
c o ns t ruc t io n
Releas e
t ra ns it io n
s oft ware inc rem ent
p ro d uc t io n
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 31
UP
Phases
UP Phases
Ince pt ion Elaborat ion Const ruct ion Transit ion Product ion
Workflows
Requirements
Analysis
Design
Implementation
Test
Support
Iterations #1 #2 #n-1 #n