0% found this document useful (0 votes)
9 views

031 - Software Process v1

The document discusses software process models and their phases. It introduces three generic process models: waterfall, evolutionary, and integration/configuration. The waterfall model involves separate and distinct phases from specification to development and maintenance. Evolutionary models interleave specification, development and validation. The integration model assembles a system from existing components. Specific process models discussed include waterfall, V-model, incremental development, rapid prototyping, extreme programming, and the spiral model.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

031 - Software Process v1

The document discusses software process models and their phases. It introduces three generic process models: waterfall, evolutionary, and integration/configuration. The waterfall model involves separate and distinct phases from specification to development and maintenance. Evolutionary models interleave specification, development and validation. The integration model assembles a system from existing components. Specific process models discussed include waterfall, V-model, incremental development, rapid prototyping, extreme programming, and the spiral model.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 23

CSC577

SOFTWARE ENGINEERING: THEORIES AND PRINCIPLES


LECTURE: 031 – SOFTWARE PROCESSES
2/23

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

BUILT AND FIX


 Problems
 No specifications
 No design
 Totally unsatisfactory
 Need life-cycle model
 “Game plan”
 Phases
 Deliverables
& Milestones
4/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

WATERFALL MODEL PHASES


 Requirements analysis Requirements
definition
and definition
System and
 System and software design software design

 Implementation and unit Implementa tion


and unit testing
testing
 Integration and system
Integration and
system testing

testing Oper ation and

 Operation and maintenance maintenance

 The main drawback of the waterfall model is the difficulty


of accommodating change after the process is underway.
One phase has to be complete before moving onto the
next phase
WATERFALL MODEL PROBLEMS
 Inflexible partitioning of the Requirements
definition
project into distinct stages
makes it difficult to respond to System and
software design
chang-
ing customer requirements
Implementa tion
 Therefore, this model is only and unit testing ap-
propriate when the requirements
Integration and

are well- understood


system testing

and changes will be fairly Oper lim-


ation and
maintenance
ited during the design process
 Few business systems have stable requirements
 The waterfall model is mostly used for large systems engineer-
ing projects where a system is developed at several sites
11/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

 Lack of process visibility Initial

Systems are often poorly


Specification version

structured Outline
description Development
Intermedia te
versions

 Special skills (e.g.


in languages for rapid
Final
Validation version

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

Develop system Validate Integrate Validate


increment increment increment system
Final
system
System incomplete

 Rather than deliver the system as a single delivery, the devel-


opment and delivery is broken down into increments with each
increment delivering part of the required functionality
 User requirements are prioritised and the highest priority re-
quirements are included in early increments
 Once the development of an increment is started, the require-
ments are frozen though requirements for later increments can
continue to evolve
15/23

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

ral rather than as a sequence of Risk


Risk
anal ysis

activities with backtracking


Oper a-
anal ysis
Pr ototype 3 tional
Pr ototype 2 pr otoype
Risk
anal ysis Pr oto-

 Each loop in the spiral


REVIEW type 1
Requir ements plan Simula tions , models , benchmar ks
Life-cy cle plan Concept of
Oper a tion

represents a phase in the


S/W
requir ements Product
design Detailed
Requir ement design
De velopment
plan validation Code

process Plan ne xt phase


Integ ra tion
and test plan
Design
V&V
Acceptance
Unit test
Integ ra tion
test

 No fixed phases such as specifica- Service test De velop , verify


ne xt-level pr oduct

tion or design - loops in the spiral are chosen depending


on what is required
 Risks are explicitly assessed and resolved throughout
the process
17/23

SPIRAL MODEL SECTORS


 Objective setting
Deter mine objecti ves,
alterna tives and
constr aints Risk
Evalua te alterna tives,
identify, resolv e risks

Specific objectives for the phase


anal ysis

 Risk
anal ysis

are identified
Risk
Oper a-
anal ysis
Pr ototype 3 tional
Pr ototype 2 pr otoype

 Risk assessment and re-


Risk
REVIEW anal ysis Pr oto-
type 1
Requir ements plan Simula tions , models , benchmar ks

duction
Life-cy cle plan Concept of
Oper a tion S/W
requir ements Product
design Detailed

 Risks are assessed and


Requir ement design
De velopment
plan validation Code

activities put in place to reduce


Unit test
Integ ra tion Design
V&V Integ ra tion
and test plan
Plan ne xt phase test
Acceptance

the key risks


Service test De velop , verify
ne xt-level pr oduct

 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
RATIONAL UNIFIED PROCESS 18/23

(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

RUP GOOD PRACTICE


 Develop software iteratively
 Manage requirements
 Use component-
based architectures
 Visually model software
 Verify software quality
 Control changes to software
INTEGRATION & CONFIGURA-
20/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

KEY POINTS 1/2


 Software processes are the activities involved in produc-
ing and evolving a software system
 Software process models are abstract representations of
these processes
 General activities are specification, design and imple-
mentation, 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/23

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…

You might also like