You are on page 1of 24

Chapter 2

 Process Models
Slide Set to accompany
Software Engineering: A Practitioner’s
Approach, 7/e
by Roger S. Pressman

Slides copyright © 1996, 2001, 2005, 2009 by Roger S. Pressman

For non-profit educational use only


May be reproduced ONLY for student use at the university level when used in conjunction
with Software Engineering: A Practitioner's Approach, 7/e. Any other reproduction or use is
prohibited without the express written permission of the author.

All copyright information MUST appear if these slides are posted on a website for student
use.

These slides are designed to accompany Software Engineering: A


Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 1
A Generic Process
Model

These slides are designed to accompany Software Engineering: A


Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 2
Generic process framework for
software engineering defines
five framework activities
 communication, planning, modeling,
construction, and deployment.
a set of umbrella activities
 Project tracking and control, risk
management, quality assurance,
configuration management, technical
reviews, and others

These slides are designed to accompany Software Engineering: A


Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 3
Process Flow

process flow :
describes how the
framework activities
and the actions and
tasks that occur within
each framework
activity are organized
with respect to
sequence and time

These slides are designed to accompany Software Engineering: A


Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 4
Identifying a Task Set
 A task set defines the actual work to be done to
accomplish the objectives of a software
engineering action.
 A list of the task to be accomplished
 A list of the work products to be produced
 A list of the quality assurance filters to be applied

These slides are designed to accompany Software Engineering: A


Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 5
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 [Amb98]—a
consistent method for describing problem
solutions within the context of the software
process.
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 6
Process Pattern Types
 Stage patterns—defines a problem associated
with a framework activity for the process.
 Task patterns—defines a problem associated
with a software engineering action or work
task and relevant to successful software
engineering practice
 Phase patterns—define the sequence of
framework activities that occur with the
process, even when the overall flow of
activities is iterative in nature.

These slides are designed to accompany Software Engineering: A


Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 7
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 8
An Example of Process
Pattern
Describes an approach that may be applicable when stakeholders have a general idea
of
what must be done but are unsure of specific software requirements.
 Pattern name. RequiremetnsUnclear
 Intent. This pattern describes an approach for building a model that can be
assessed iteratively by stakeholders in an effort to identify or solidify software
requirements.
 Type. Phase pattern
 Initial context. Conditions must be met (1) stakeholders have been identified;
(2) a mode of communication between stakeholders and the software team has
been established; (3) the overriding software problem to be solved has been
identified by stakeholders ; (4) an initial understanding of project scope, basic
business requirements and project constraints has been developed.
Problem. Requirements are hazy or nonexistent. stakeholders are unsure of
what they want.
Solution. A description of the prototyping process would be presented here.
Resulting context. A software prototype that identifies basic requirements.
(modes of interaction, computational features, processing functions) is
approved by stakeholders. Following this, 1. This prototype may evolve through
a series of increments to become the production software or 2. the prototype
may be discarded.
Related patterns. CustomerCommunication, IterativeDesign,
IterativeDevelopment,
CustomerAssessment, RequirementExtraction.

These slides are designed to accompany Software Engineering: A


Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 9
Process Assessment and
Improvement
 Standard CMMI Assessment Method for Process Improvement
(SCAMPI) — provides a five step process assessment model that incorporates
five phases: initiating, diagnosing, establishing, acting and learning.
 CMM-Based Appraisal for Internal Process Improvement (CBA IPI)
—provides a diagnostic technique for assessing the relative maturity of
a software organization; uses the SEI CMM as the basis for the
assessment [Dun01]
 SPICE—The SPICE (ISO/IEC15504) standard defines a set of
requirements for software process assessment. The intent of the
standard is to assist organizations in developing an objective
evaluation of the efficacy of any defined software process. [ISO08]
 ISO 9001:2000 for Software—a generic standard that applies to any
organization that wants to improve the overall quality of the products,
systems, or services that it provides. Therefore, the standard is directly
applicable to software organizations and companies. [Ant06]

These slides are designed to accompany Software Engineering: A


Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 10
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?

These slides are designed to accompany Software Engineering: A


Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 12
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

These slides are designed to accompany Software Engineering: A


Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 13
The V-Model

These slides are designed to accompany Software Engineering: A


Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 14
The Incremental
Model
incre m e nt # n
Co m m u n i c a t i o n
Pla n n in g

Mo d e lin g
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 n in g

Mo d e lin g
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 n n in g
Mo d e lin g
a n a ly s is Co n s t ru c t i o n
d e s ig n c ode
t est
De p l o y m e n t
d e l i v e ry d e liv e ry o f
fe e d b a c k

1 st in cre me n t

These slides are designed to accompany Software Engineering: A


project calendar t ime
Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 15
The Incremental Model

These slides are designed to accompany Software Engineering: A


Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 16
Evolutionary Models:
Prototyping
Quick
Qu i c k p la n

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

These slides are designed to accompany Software Engineering: A


Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 17
Evolutionary Models: The
Spiral planning
estimation
scheduling
risk analysis

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. 18
Evolutionary Models:
Concurrent
none

Mode ling a c t ivit y

rep res ents the s tate


Unde r o f a s o ftware eng ineering
activity o r task
de ve lopm e nt

Awa it ing
c ha nge s

Unde r re vie w

Unde r
re vis ion

Ba s e line d

Done

These slides are designed to accompany Software Engineering: A


Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 19
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
 AOSD—provides a process and methodological
approach for defining, specifying, designing,
and constructing aspects
 Unified Process—a “use-case driven,
architecture-centric, iterative and incremental”
software process closely aligned with the
Unified Modeling Language (UML)

These slides are designed to accompany Software Engineering: A


Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 20
The Unified Process (UP)
elaboration
Ela b o ra t io n

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. 21
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

These slides are designed to accompany Software Engineering: A


Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 22
UP Work Products
Ince pt ion phase

Elaborat ion phase


Visio n d o cu me n t
In it ial u se -case mo d e l
In it ial p ro je ct g lo ssary
Const ruct ion phase
Use -case mo d e l
In it ial b u sin e ss case Su p p le me n t ary re q u ire me n t s
In it ial risk asse ssme n t . in clu d in g n o n -fu n ct io n al De sig n mo d e l
Transit ion phase
Pro je ct p lan , An aly sis mo d e l So ft ware co mp o n e n t s
p h ase s an d it e rat io n s. So ft ware arch it e ct u re De liv e re d so ft ware in cre me n t
In t e g rat e d so ft ware
Bu sin e ss mo d e l, De scrip t io n . in cre me n t Be t a t e st re p o rt s
if n e ce ssary . Exe cu t ab le arch it e ct u ral Ge n e ral u se r fe e d b ack
Te st p lan an d p ro ce d u re
On e o r mo re p ro t o t y p e s p ro t o t y p e .
In c e p t i o
Te st case s
n Pre limin ary d e sig n mo d e l Su p p o rt d o cu me n t at io n
Re v ise d risk list u se r man u als
Pro je ct p lan in clu d in g in st allat io n man u als
it e rat io n p lan d e scrip t io n o f cu rre n t
ad ap t e d wo rkflo ws in cre me n t
mile st o n e s
t e ch n ical wo rk p ro d u ct s
Pre limin ary u se r man u al

These slides are designed to accompany Software Engineering: A


Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 23
Personal Software Process
(PSP)
 Planning. This activity isolates requirements and develops both size and
resource estimates. In addition, a defect estimate (the number of defects
projected for the work) is made. All metrics are recorded on worksheets or
templates. Finally, development tasks are identified and a project schedule is
created.
 High-level design. External specifications for each component to be constructed
are developed and a component design is created. Prototypes are built when
uncertainty exists. All issues are recorded and tracked.
 High-level design review. Formal verification methods (Chapter 21) are applied
to uncover errors in the design. Metrics are maintained for all important tasks
and work results.
 Development. The component level design is refined and reviewed. Code is
generated, reviewed, compiled, and tested. Metrics are maintained for all
important tasks and work results.
 Postmortem. Using the measures and metrics collected (this is a substantial
amount of data that should be analyzed statistically), the effectiveness of the
process is determined. Measures and metrics should provide guidance for
modifying the process to improve its effectiveness.

These slides are designed to accompany Software Engineering: A


Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 24
Team Software Process
(TSP)
 Build self-directed teams that plan and track their work,
establish goals, and own their processes and plans.
These can be pure software teams or integrated product
teams (IPT) of three to about 20 engineers.
 Show managers how to coach and motivate their teams
and how to help them sustain peak performance.
 Accelerate software process improvement by making
CMM Level 5 behavior normal and expected.
 The Capability Maturity Model (CMM), a measure of the
effectiveness of a software process, is discussed in Chapter 30.
 Provide improvement guidance to high-maturity
organizations.
 Facilitate university teaching of industrial-grade team
skills.
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
Roger Pressman. 25

You might also like