Slidesch02 Modeling The Process and Life Cycle
Slidesch02 Modeling The Process and Life Cycle
Modeling the
Process and Life
Cycle
ISBN 0-13-146913-4
Prentice-Hall, 2006
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.2
© 2006 Pearson/Prentice Hall
Chapter 2 Objectives
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.3
© 2006 Pearson/Prentice Hall
2.1 The Meaning of Process
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.4
© 2006 Pearson/Prentice Hall
2.1 The Meaning of Process
Process Characteristics
• Prescribes all major process activities
• Uses resources, subject to set of constraints (such as
schedule)
• Produces intermediate and final products
• May be composed of subprocesses with hierarchy or
links
• Each process activity has entry and exit criteria
• Activities are organized in sequence, so timing is clear
• Each process has guiding principles, including goals of
each activity
• Constraints may apply to an activity, resource or
product
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.5
© 2006 Pearson/Prentice Hall
2.1 The Meaning of Process
The Importance of Processes
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.6
© 2006 Pearson/Prentice Hall
2.1 The Meaning of Process
Stages in Software Development
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.7
© 2006 Pearson/Prentice Hall
2.2 Software Process Models
Reasons for Modeling a Process
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.8
© 2006 Pearson/Prentice Hall
2.2 Software Process Models
Software Development Process Models
• Waterfall model
• V model
• Prototyping model
• Operational specification
• Transformational model
• Phased development: increments and
iterations
• Spiral model
• Agile methods
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.9
© 2006 Pearson/Prentice Hall
2.2 Software Process Models
Waterfall Model
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.11
© 2006 Pearson/Prentice Hall
2.2 Software Process Models
Waterfall Model (continued)
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.12
© 2006 Pearson/Prentice Hall
2.2 Software Process Models
Sidebar 2.1 Drawbacks of The Waterfall Model
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.14
© 2006 Pearson/Prentice Hall
2.2 Software Process Models
Waterfall Model with Prototype (continued)
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.15
© 2006 Pearson/Prentice Hall
2.2 Software Process Models
V Model
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.17
© 2006 Pearson/Prentice Hall
2.2 Software Process Models
Prototyping Model
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.18
© 2006 Pearson/Prentice Hall
2.2 Software Process Models
Operational Specificiation Model
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.19
© 2006 Pearson/Prentice Hall
2.2 Software Process Models
Transformational Model
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.21
© 2006 Pearson/Prentice Hall
2.2 Software Process Models
Phased Development: Increments and Iterations
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.22
© 2006 Pearson/Prentice Hall
2.2 Software Process Models
Phased Development: Increments and Iterations
(continued)
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.23
© 2006 Pearson/Prentice Hall
2.2 Software Process Models
Phased Development: Increments and Iterations
(continued)
• Incremental development: starts with small functional
subsystem and adds functionality with each new release
• Iterative development: starts with full system, then
changes functionality of each subsystem with each new
release
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.24
© 2006 Pearson/Prentice Hall
2.2 Software Process Models
Phased Development: Increments and Iterations
(continued)
• Phased development is desirable for several
reasons
– Training can begin early, even though some
functions are missing
– Markets can be created early for functionality that
has never before been offered
– Frequent releases allow developers to fix
unanticipated problems globaly and quickly
– The development team can focus on different areas
of expertise with different releases
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.25
© 2006 Pearson/Prentice Hall
2.2 Software Process Models
Spiral Model
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.26
© 2006 Pearson/Prentice Hall
2.2 Software Process Models
Spiral Model (continued)
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.27
© 2006 Pearson/Prentice Hall
2.2 Software Process Models
Agile Methods
• Emphasis on flexibility in producing software
quickly and capably
• Agile manifesto
– Value individuals and interactions over process and
tools
– Prefer to invest time in producing working software
rather than in producing comprehensive
documentation
– Focus on customer collaboration rather than
contract negotiation
– Concentrate on responding to change rather than on
creating a plan and then following it
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.28
© 2006 Pearson/Prentice Hall
2.2 Software Process Models
Agile Methods: Examples of Agile Process
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.29
© 2006 Pearson/Prentice Hall
2.2 Software Process Models
Agile Methods: Extreme Programming
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.30
© 2006 Pearson/Prentice Hall
2.2 Software Process Models
Agile Methods: Twelve Facets of XP
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.31
© 2006 Pearson/Prentice Hall
2.2 Software Process Models
Sidebar 2.2 When is Extreme Too Extreme?
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.32
© 2006 Pearson/Prentice Hall
2.2 Software Process Models
Sidebar 2.3 Collections of Process Models
• Development process is a problem-solving
activity
• Curtis, Krasner, and Iscoe (1988) performed a
field study to determine which problem-solving
factors to captured in process model
• The results suggest a layered behavioral model
as supplement to the traditional model
• Process model should not only describe series
of tasks, but also should detail factors that
contribute to a project's inherent uncertainty
and risk
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.33
© 2006 Pearson/Prentice Hall
2.3 Tools and Techniques for Process
Modeling
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.34
© 2006 Pearson/Prentice Hall
2.3 Tools and Techniques for Process Modeling
Static Modeling: Lai Notation
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.35
© 2006 Pearson/Prentice Hall
2.3 Tools and Techniques for Process Modeling
Static Modeling: Lai Notation
Name Car
Synopsis This is the artifact that represents a class of cars.
Complexity type Composite
Data type (car_c, user-defined)
Artifact-state list
parked ((state_of(car.engine) = off) Car is not moving, and
(state_of(car.gear) = park) engine is not running.
(state_of(car.speed) =
stand))
initiated ((state_of(car.engine) = on) Car is not moving, but the
(state_of(car.key_hole) = engine is running
has-key)
(state_of(car-driver(car.))
= in-car)
(state_of(car.gear) = drive)
(state_of(car.speed) =
stand))
moving ((state_of(car.engine) = on) Car is moving forward or
(state_of(car.keyhole) = backward.
has-key)
(state_of(car-driver(car.))
= driving)
((state_of(car.gear) =
drive) or (state_of(car.gear)
= reverse))
((state_of(car.speed) =
stand) or
(state_of(car.speed) = slow)
or (state_of(car.speed) =
medium) or
(state_of(car.speed) =
high))
Sub-artifact list
doors The four doors of a car.
engine The engine of a car.
keyhole The ignition keyhole of a
car.
gear The gear of a car.
speed The speed of a car.
Relations list
car-key This is the relation between a car and a key.
car-driver This is the relation between a car and a driver.
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.36
© 2006 Pearson/Prentice Hall
2.3 Tools and Techniques for Process Modeling
Static Modeling: Lai Notation (continued)
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.37
© 2006 Pearson/Prentice Hall
2.3 Tools and Techniques for Process Modeling
Static Modeling: Lai Notation (continued)
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.38
© 2006 Pearson/Prentice Hall
2.3 Tools and Techniques for Process Modeling
Dynamic Modeling
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.39
© 2006 Pearson/Prentice Hall
2.3 Tools and Techniques for Process Modeling
Dynamic Modeling: System Dynamics
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.40
© 2006 Pearson/Prentice Hall
2.3 Tools and Techniques for Process Modeling
Dynamic Modeling: System Dynamics (continued)
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.41
© 2006 Pearson/Prentice Hall
2.3 Tools and Techniques for Process Modeling
Dynamic Modeling: System Dynamics (continued)
• A system
dynamic
model
containing
four major
areas
affecting
productivity
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.42
© 2006 Pearson/Prentice Hall
2.3 Tools and Techniques for Process Modeling
Sidebar 2.4 Process Programming
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.43
© 2006 Pearson/Prentice Hall
2.4 Practical Process Modeling
Marvel Case Studies
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.44
© 2006 Pearson/Prentice Hall
2.4 Practical Process Modeling
Marvel Case Studies (continued)
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.45
© 2006 Pearson/Prentice Hall
2.4 Practical Process Modeling
Marvel Case Studies (continued)
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.46
© 2006 Pearson/Prentice Hall
2.4 Practical Process Modeling
Example of Marvel Commands
TICKET:: superclass ENTITY
status : (initial, open, referred_out, referral_done,
closed, fixed) = initial; C lass
diagnostics : (terminal, non_terminal, none) = none; definition
level : integer; for trouble
description : text; tickets
referred_to : link WORKCENTER;
referrals : set_of link TICKET;
process : link PROC_INST;
end
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.47
© 2006 Pearson/Prentice Hall
2.4 Practical Process Modeling
Desirable Properties of Process Modeling Tools and
Techniques
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.48
© 2006 Pearson/Prentice Hall
2.5 Information System Example
Piccadilly Television Advertising System
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.49
© 2006 Pearson/Prentice Hall
2.5 Information System Example
Piccadilly System (continued)
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.50
© 2006 Pearson/Prentice Hall
2.5 Information System Example
Lai Artifact Table for Piccadilly System
Name Risk (problemX)
Synopsis This is the artifact that represents the risk that problem X
will occur and have a negative affect on some aspect of the
development process.
Complexity type Composite
Data type (risk_s, user_defined)
Artifact-state list
low ((state_of(probability.x) = low) Probability of problem is
(state_of(severity.x) = small)) low, severity problem
impact is small.
high-medium ((state_of(probability.x) = low) Probability of problem is
(state_of(severity.x) = large)) low, severity problem
impact is large.
low-medium ((state_of(probability.x) = high) Probability of problem is
(state_of(severity.x) = small)) high, severity problem
impact is small.
high ((state_of(probability.x) = high) Probability of problem is
(state_of(severity.x) = large)) high, severity problem
impact is large.
Sub-artifact list
probability.x The probability that
problem X will occur.
severity.x The severity of the
impact should problem
X occur on the project.
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.51
© 2006 Pearson/Prentice Hall
2.6 Real Time Example
Ariane-5 Software
• Involved reuse of software from Ariane-4
• The reuse process model
– Identify resuable subprocesses, describe them
and place them in a library
– Examine the requirements for the new software
and the reusable components from library and
produce revised set of requirements
– Use the revised requirements to design the
software
– Evaluate all reused design components to certify
the correctness and consistency
– Build or change the software
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.52
© 2006 Pearson/Prentice Hall
2.6 Real Time Example
Ariane-5 Software (continued)
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.53
© 2006 Pearson/Prentice Hall
2.7 What this Chapter Means for You
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 2.54
© 2006 Pearson/Prentice Hall