Professional Documents
Culture Documents
C- Communication
P - Planning
M – Modeling
C - Construction
D - Deployment
Problem Areas:
Customer cries foul and demand that “a few fixes” be applied to make
the prototype a working product, due to that software quality suffers
as a result.
Developer often makes implementation in order to get a prototype
working quickly without considering other factors in mind like OS,
Programming language, etc.
Customer and developer both must be agree that the prototype is built to
serve as a mechanism for defining requirement.
Prototypes should be discarded after
development as they are not a good
basis for a production system:
It may be impossible to tune the system
to meet non-functional requirements;
Prototypes are normally undocumented;
The prototype structure is usually
degraded through rapid change;
The prototype probably will not meet
normal organizational quality standards.
Chapter 2 Software Processes 25
Throw away Prototype
With 'throw-away' prototyping a small part of the system
is developed and then given to the end user to try out
and evaluate. The user provides feedback which can
quickly be incorporated into the development of the
main system.
The prototype is then discarded or thrown away. This is
very different to the evolutionary approach.
The objective of throw-away prototyping is to ensure
that the system requirements are validated and that
they are clearly understood.
The throw-away prototype is NOT considered part of the
final system. It is simply there to aid understanding and
reduce the risk of poorly defined requirements. The full
system is being developed alongside the prototypes and
incorporates the changes needed.
Evolutionary Model: Spiral
Model
Boehm’s spiral model
Process is represented as a spiral rather
than as a sequence of activities with
backtracking.
Each loop in the spiral represents a
phase in the process.
No fixed phases such as specification or
design - loops in the spiral are chosen
depending on what is required.
Risks are explicitly assessed and
resolved throughout the process.
Chapter 2 Software Processes 28
Evolutionary Models: The Spiral
29
Spiral Model
Couples iterative nature of prototyping with the controlled and
systematic aspects of the linear sequential model
It provide potential for rapid development of increasingly more
complete version of the software.
Using spiral, software developed in as series of evolutionary
release.
Early iteration, release might be on paper or prototype.
Later iteration, more complete version of software.
Divided into framework activities (C,P,M,C,D). Each activity
represent one segment.
Evolutionary process begins in a clockwise direction, beginning
at the center risk.
First circuit around the spiral might result in development of a
product specification. Subsequently, develop a prototype and
then progressively more sophisticated version of software.
Unlike other process models that end when software is
delivered.
It can be adapted to apply throughout the life of software.
Spiral Model
Spiral Model (cont.)
Concept Development Project:
Start at the core and continues for multiple iterations until it
is complete.
If concept is developed into an actual product, the process
proceeds outward on the spiral.
New Product Development Project:
New product will evolve through a number of iterations
around the spiral.
Later, a circuit around spiral might be used to represent a
“Product Enhancement Project”
Product Enhancement Project:
There are times when process is dormant or software team
not developing new things but change is initiated, process
start at appropriate entry point.
Spiral models uses prototyping as a risk reduction
mechanism but, more important, enables the developer
to apply the prototyping approach at each stage in the
evolution of the product.
represent s t he st at e
Under of a sof t ware engineering
act ivit y or t ask
development
A wait ing
changes
Under review
Under
revision
Baselined
Done
34
Concurrent Development Model
Concurrent Development Model
It represented schematically as series of major technical
activities, tasks, and their associated states.
It is often more appropriate for system engineering projects
where different engineering teams are involved.
The activity-modeling may be in any one of the states for a
given time.
All activities exist concurrently but reside in different states.
E.g.
The analysis activity (existed in the none state while initial
customer communication was completed) now makes a
transition into the under development state.
Analysis activity moves from the under development state
into the awaiting changes state only if customer indicates
changes in requirements.
Series of event will trigger transition from state to state.
E.g. During initial stage there was inconsistency in design which
was uncovered. This will triggers the analysis action from the
Done state into Awaiting Changes state.
Concurrent Development (Cont.)
Visibility of current state of project
It define network of activities
Each activities, actions and tasks on
the network exists simultaneously
with other activities ,actions and
tasks.
Events generated at one point in the
process network trigger transitions
among the states.
SPECIALIZED 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)
39
UNIFIED PROCESS MODEL
Iterative and incremental. The Unified Process
is an iterative and incremental development
process. The Elaboration, Construction and
Transition phases are divided into a series of
timeboxed iterations. (The Inception phase
may also be divided into iterations for a large
project.)
The Unified Process (UP)
Elaborat ion
elaboration
Incept ion
inception
product ion
42
UP Phases
43
UP Work Products
44
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.
45
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.
46