031 - Software Process v1
031 - Software Process v1
TOPIC OUTCOME(S)
To introduce software process models
To describe three generic process models
and when they may be used
To describe outline process models for re-
quirements engineering, software develop-
ment, testing and evolution
3/23
SOFTWARE PROCESS
A structured set of activities required to develop
a software system
Analysis - Specification
Design - Design & Implementation
Development - Design & Implementa-
tion
Testing - Verification & Validation
Deployment - Evolution
Maintenance - Evolution
5/23
SDLC PHASES
WHAT IS A SOFTWARE PROCESS
6/23
MODEL?
A simplified representation of a software
process, presented from a specific per-
spective
Examples of process perspectives are
Workflow perspective - sequence of ac-
tivities
Data-flow perspective - information flow
Role/action perspective - who does what
7/23
GENERIC SOFTWARE PROCESS
MODELS
The waterfall (plan based) model
Separate and distinct phases of specification and develop-
ment
Evolutionary (iteration) model
Specification, development and validation are interleaved
Integration and configuration (CBSE)
The system is assembled from existing components
There are many variants of these models e.g. formal de-
velopment where a waterfall-like process is used but the
specification is a formal specification that is refined
through several stages to an implementable design
SOFTWARE PROCESS MODELS 8/23
–
AN EXAMPLE
Waterfall (Plan Based) Model
Waterfall Model
V Model
Evolutionary (Iteration) Model
Incremental model
Rapid prototyping model
Extreme programming (XP)
Rational Unified Process (RUP)
Spiral Model
Integration and configuration (CBSE))
Others
Formal Method
4th Generation Technique (4GT)
9/23
EVOLUTIONARY DEVELOPMENT
Exploratory development
Objective is to work with customers and to
evolve a final system from an initial outline spec-
ification. Should start with well-understood re-
quirements and add new features as proposed
by the customer
Throw-away prototyping
Objective is to understand the system require-
ments. Should start with poorly understood re-
quirements to clarify what is really needed
12/23
EVOLUTIONARY DEVELOPMENT
Problems Concurrent
acti vities
proto-
typing) may be required
Applicability
For small or medium-size interactive systems
For parts of large systems (e.g. the user inter-
face)
13/23
PROCESS ITERATION
System requirements ALWAYS evolve in the
course of a project so process iteration where
earlier stages are reworked is always part of the
process for large systems
Iteration can be applied to any of the generic
process models
Two (related) approaches
Incremental delivery
Spiral development
14/23
INCREMENTAL DELIVERY
Define outline Assign requirements Design system
requirements to increments architecture
EXTREME PROGRAMMING
An approach to development based on the devel-
opment and delivery of very small increments of
functionality
Relies on constant code improvement, user in-
volvement in the development team and pairwise
programming
16/23
SPIRAL DEVELOPEMENT
Process is represented as a alterna tives and
constr aints spi-
Deter mine objecti ves,
Risk
anal ysis
Evalua te alterna tives,
identify, resolv e risks
Risk
anal ysis
are identified
Risk
Oper a-
anal ysis
Pr ototype 3 tional
Pr ototype 2 pr otoype
duction
Life-cy cle plan Concept of
Oper a tion S/W
requir ements Product
design Detailed
(RUP)
A modern process model
derived from the work on
the UML and
associated process
Normally described
from 3 perspectives
A dynamic perspective that shows phases over time
A static perspective that shows process activities
A practice perspective that suggests good practice
19/23
TION DEVELOPMENT
Based on systematic reuse where systems are integrated from
existing components or COTS (Commercial-off-the-shelf) sys-
tems
Process stages
Component analysis
Requirements modification
System design with reuse
Development and integration
This approach is becoming increasingly used as component
standards have emerged
Requirements Component Requirements System design
specification analysis modification with reuse
Development System
and integration validation
21/23