031 - Software Process
031 - Software Process
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
requirements engineering, software
development, testing and evolution

4
SOFTWARE PROCESS
▪ A structured set of activities required to develop
a software system
▪ Analysis - Specification
▪ Desig - Design & Implementation
▪ Developmen - Design & Implementation
▪ Testin - Verification & Validation
▪ Deploymen - Evolution
▪ Maintenanc - Evolution

n
g
t
e
t
5
SDLC PHASES

6
WHAT IS A SOFTWARE PROCESS MODEL?
▪ A simplified representation of a
software process, presented from a
specific perspective
▪ Examples of process perspectives are
▪ Workflow perspective - sequence of
activities
▪ Data-flow perspective - information flow
▪ Role/action perspective - who does what

SOFTWARE PROCESS MODELS – AN 8
EXAMPLE
▪ Waterfall (Plan Based) Model
▪ Waterfall Model
▪ Rapid prototyping model
▪ V Model
▪ Evolutionary (Iteration) Model
▪ Incremental model
▪ Extreme programming (XP)
▪ Rational Unified Process (RUP)
▪ Spiral Model
▪ Integration and configuration (CBSE))
▪ Others
▪ Formal Method
▪ 4th Generation Technique (4GT)

9
WATERFALL MODEL PHASES
▪ Requirements analysis Requir ements
definition
and definition
▪ System and software design System and
software design
testing
Oper ationand
▪ Operation and maintenance maintenance
11
EVOLUTIONARY DEVELOPMENT
▪ Exploratory development
▪ Objective is to work with customers and to evolve a
final system from an initial outline specification.
Should start with well-understood requirements and
add new features as proposed by the customer
▪ Throw-away prototyping
▪ Objective is to understand the system
requirements. Should start with poorly understood
requirements to clarify what is really needed

12
EVOLUTIONARY DEVELOPMENT
▪ Problems Concurr ent
acti vities
13
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
INCREMENTAL DELIVERY
15
EXTREME PROGRAMMING
▪ An approach to development based on the
development and delivery of very small increments
of functionality
▪ Relies on constant code improvement, user
involvement in the development team and pairwise
programming

16
SPIRAL DEVELOPEMENT
▪ 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

17
SPIRAL MODEL SECTORS
▪ Objective setting
▪ Specific objectives for the phase are
identified
▪ Risk assessment and
reduction
▪ Risks are assessed and activities
put in place to reduce the key
risks
▪ Development and validation
▪ A development model for the system Is chosen which can be
any of the generic models
▪ Planning
▪ The project is reviewed and the next phase of the spiral is
planned

18
RATIONAL UNIFIED PROCESS (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
RUP GOOD PRACTICE
▪ Develop software iteratively
▪ Manage requirements
▪ Use component-
based architectures
▪ Visually model software
▪ Verify software quality
▪ Control changes to software

DEVELOPMENT
▪ Based on systematic reuse where systems are integrated from
existing components or COTS (Commercial-off-the-shelf)
systems
▪ 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 integ ration validation

21
KEY POINTS 1/2
▪ Software processes are the activities involved in
producing and evolving a software system
▪ Software process models are abstract representations of
these processes
▪ General activities are specification, design and
implementation, validation and evolution
▪ Generic process models describe the organisation of
software processes. Examples include the waterfall
model, evolutionary development and component-based
software engineering
▪ Iterative process models describe the software process
as a cycle of activities

22
KEY POINTS 2/2
▪ Requirements engineering is the process of developing
a software specification
▪ Design and implementation processes transform the
specification to an executable program
▪ Validation involves checking that the system meets to its
specification and user needs
▪ Evolution is concerned with modifying the system after it
is in use
▪ CASE technology supports software process activities

THANK YOU…