Lecture 3
Lecture 3
Lecture 3
Process Models
Muhammad Noman
1
Process Models
Process
In Chapter 1, a process was defined as a collection of work
activities, actions, and tasks that are performed when some
work product is to be created. Each of these activities, actions,
and tasks reside within a framework or model that defines their
relationship with the process and with one another.
2
A Generic Process Model
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.
A linear process flow executes each of the five framework activities in
sequence, beginning with communication and culminating with
deployment (Figure 2.2a).
An iterative process flow repeats one or more of the activities before
proceeding to the next (Figure 2.2b).
An evolutionary process flow executes the activities in a “circular”
manner. Each circuit through the five activities leads to a more complete
version of the software (Figure 2.2c).
A parallel process flow (Figure 2.2d) executes one or more activities in
parallel with other activities (e.g., modeling for one aspect of the
software might be executed in parallel with construction of another aspect
of the software).
3
A Generic Process Model
4
Process Flow
5
Defining a Framework Activity
A software team would need significantly more information before it could
properly execute any one of these activities as part of the software
process. Therefore, you are faced with a key question.
What actions are appropriate for a framework activity, given the nature of
the problem to be solved?
The characteristics of the people doing the work, and the stakeholders
who are sponsoring the project?
For a small software project with simple, straightforward requirements, the
communication activity might encompass little more than a phone call with
the appropriate stakeholder. Therefore, the only necessary action is
phone conversation and work tasks (the task set) that this action
encompasses are:
1. Make contact with stakeholder via telephone.
2. Discuss requirements and take notes.
3. Organize notes into a brief written statement of requirements.
4. E-mail to stakeholder for review and approval.
If the project was considerably more complex. The communication activity
might have six distinct actions inception, elicitation, elaboration, 6
negotiation, specification, and validation (Ch 5)
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
7
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.
8
Process Pattern
Pattern Name. The pattern is given a meaningful name
describing it within the context of the software process (e.g.,
TechnicalReviews).
Forces. The environment in which the pattern is
encountered and the issues that make the problem visible
and may affect its solution.
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.
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 effect of any defined software process. [ISO08]
10
Prescriptive Models
Prescriptive process models advocate an orderly
approach to software engineering.
All software process models can accommodate the
generic framework activities described in Chapter 1, but
each applies a different emphasis to these activities and
defines a process flow that invokes each framework
activity (as well as software engineering actions and
tasks) in a different manner .
11
The Waterfall Model
• The waterfall model is also called as 'Linear sequential
model' or 'Classic life cycle model'.
• In this model, each phase is fully completed before the
beginning of the next phase.
• This model is used for the small projects.
• In this model, feedback is taken after each phase to ensure
that the project is on the right path.
• Testing part starts only after the development is complete.
Communicat ion
project init iat ion Planning
requirement gat hering estimating Modeling
scheduling
analysis Const ruct ion
tracking
design Deployment
code
t est delivery
support
f eedback
12
The V-Model
A variation in the representation of the waterfall model is called the V-
model. The V-model represents the relationship of quality assurance
actions to the actions associated with communication, modeling, and
early construction activities.
As a software team moves down the left side of the V, basic problem
requirements are refined into progressively more detailed and technical
representations of the problem and its solution. Once code has been
generated, the team moves up the right side of the V, essentially
performing a series of tests (quality assurance actions) that validate
each of the models created as the team moved down the left side.
14
Waterfall Model
Advantages of waterfall model
15
Waterfall Model
Disadvantages of the waterfall model
16
The Incremental Model
• The incremental model combines the elements of
waterfall model and they are applied in an iterative
fashion.
• The first increment in this model is generally a core
product.
• Each increment builds the product and submits it to the
customer for any suggested modifications.
• The next increment implements on the customer's
suggestions and add additional requirements in the
previous increment.
• This process is repeated until the product is finished.
For example, the word-processing software is developed
using the incremental model.
17
The Incremental Model
18
The Incremental Model
Advantages of incremental model
19
The Incremental Model
Disadvantages of the incremental model
• The cost of the final product may cross the cost estimated
initially.
• This model requires a very clear and complete planning.
• The planning of design is required before the whole system is
broken into small increments.
• The demands of customer for the additional functionalities
after every increment causes problem during the system
architecture.
20
Evolutionary Models
Evolutionary models
Evolutionary models are iterative type models.
They allow to develop more complete versions of the software.
21
Evolutionary Models: Prototyping
• Prototype is defined as first or preliminary form using which
other forms are copied or derived.
• Prototype model is a set of general objectives for software.
• It does not identify the requirements like detailed input,
output.
• It is software working model of limited functionality.
• In this model, working programs are quickly produced.
Construction
of prototype
22
Evolutionary Models: Prototyping
Q u i ck p l an
Quick
Com m unicat ion plan
communication
Mo d e l i n g
Modeling
Q u i ck d e si g n
Quick design
Deployment
Deployment Construction
De live r y
delivery
& Fe e dback& of Const
prototype
r uct ion
feedback Construction
of
of ot
pr prototype
ot ype
23
Evolutionary Models: Prototyping
Phases of Prototyping Model
1. Communication
In this phase, developer and customer meet and discuss the overall
objectives of the software.
2. Quick design
• Quick design is implemented when requirements are known.
It includes only the important aspects like input and output format of the
software.
• It focuses on those aspects which are visible to the user rather than the
Construction
of prototype
detailed plan.
• It helps to construct a prototype.
3. Modeling quick design
• This phase gives the clear idea about the development of software
because the software is now built.
• It allows the developer to better understand the exact requirements.
24
.
Evolutionary Models: Prototyping
4. Construction of prototype
The prototype is evaluated by the customer itself.
25
Evolutionary Models: Prototyping
Advantages of Prototyping Model
26
Evolutionary Models: Prototyping
Disadvantages of Prototyping Model
Construction
of prototype
27
Evolutionary Models: The Spiral
• Spiral model is a risk driven process model.
• It is used for generating the software projects.
• In spiral model, an alternate solution is provided if
the risk is found in the risk analysis, then alternate
solutions are suggested and implemented.
• It is a combination of prototype and sequential model
or waterfall model.
• In one iteration all activities are done, for large
project's the output is small.
28
Evolutionary Models: The Spiral
planning
estimation
scheduling
risk analysis
communication
modeling
analysis
design
start
deployment
construction
delivery code
feedback test
29
Evolutionary Models: The Spiral
Advantages of Spiral Model
31
Evolutionary Models: Concurrent
none
Await ing
changes
Under review
Under
revision
Baselined
Done
32
Evolutionary Models: Concurrent
Advantages of the concurrent development model
33
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)
34
The Unified Process (UP)
Elaborat ion
elaboration
Incept ion
inception
product ion
35
UP Phases
UP Phases
Incept ion Elaborat ion Const ruct ion Transit ion Product ion
Workflows
Requirements
Analysis
Design
Implementation
Test
Support
Iterations #1 #2 #n-1 #n
36
UP Work Products
Incept ion phase
37
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.
38
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.
39