SlideShare a Scribd company logo
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1
Software Processes

Coherent sets of activities for
specifying, designing, implementing
and testing software systems
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 2
Objectives

To introduce software process models

To describe a number of different process models
and when they may be used

To describe outline process models for
requirements engineering, software development,
testing and evolution

To introduce CASE technology to support
software process activities
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 3
Topics covered

Software process models

Process iteration

Software specification

Software design and implementation

Software validation

Software evolution

Automated process support
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 4
The software process

A structured set of activities required to develop a
software system
• Specification
• Design
• Validation
• Evolution

A software process model is an abstract
representation of a process. It presents a description
of a process from some particular perspective
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 5
Generic software process models

The waterfall model
• Separate and distinct phases of specification and development

Evolutionary development
• Specification and development are interleaved

Formal systems development
• A mathematical system model is formally transformed to an
implementation

Reuse-based development
• The system is assembled from existing components
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 6
Waterfall model
R
e
q
u
i
r
e
m
e
n
t
s
d
e
f
i
n
i
t
i
o
n
S
y
s
t
e
m
a
n
d
s
o
f
t
w
a
r
e
d
e
s
i
g
n
I
m
p
l
e
m
e
n
t
a
t
i
o
n
a
n
d
u
n
i
t
t
e
s
t
i
n
g
I
n
t
e
g
r
a
t
i
o
n
a
n
d
s
y
s
t
e
m
t
e
s
t
i
n
g
O
p
e
r
a
t
i
o
n
a
n
d
m
a
i
n
t
e
n
a
n
c
e
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 7
Waterfall model phases

Requirements analysis and definition

System and software design

Implementation and unit testing

Integration and system testing

Operation and maintenance

The drawback of the waterfall model is the
difficulty of accommodating change after the
process is underway
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 8
Waterfall model problems

Inflexible partitioning of the project into distinct
stages

This makes it difficult to respond to changing
customer requirements

Therefore, this model is only appropriate when
the requirements are well-understood
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 9
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

Throw-away prototyping
• Objective is to understand the system requirements. Should
start with poorly understood requirements
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 10
Evolutionary development
V
a
l
i
d
a
t
i
o
n F
i
n
a
l
v
e
r
s
i
o
n
D
e
v
e
l
o
p
m
e
n
t I
n
t
e
r
m
e
d
i
a
t
e
v
e
r
s
i
o
n
s
S
p
e
c
i
f
i
c
a
t
i
o
nI
n
i
t
i
a
l
v
e
r
s
i
o
n
O
u
t
l
i
n
e
d
e
s
c
r
i
p
t
i
o
n
C
o
n
c
u
r
r
e
n
t
a
c
t
i
v
i
t
i
e
s
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 11
Evolutionary development

Problems
• Lack of process visibility
• Systems are often poorly structured
• Special skills (e.g. in languages for rapid prototyping) may be
required

Applicability
• For small or medium-size interactive systems
• For parts of large systems (e.g. the user interface)
• For short-lifetime systems
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 12
Formal systems development

Based on the transformation of a mathematical
specification through different representations to
an executable program

Transformations are ‘correctness-preserving’ so it
is straightforward to show that the program
conforms to its specification

Embodied in the ‘Cleanroom’ approach to
software development
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 13
Formal systems development
R
e
q
u
i
r
e
m
e
n
t
s
d
e
f
i
n
i
t
i
o
nF
o
r
m
a
l
s
p
e
c
i
f
i
c
a
t
i
o
nF
o
r
m
a
l
t
r
a
n
s
f
o
r
m
a
t
i
o
nI
n
t
e
g
r
a
t
i
o
n
a
n
d
s
y
s
t
e
m
t
e
s
t
i
n
g
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 14
Formal transformations
R
2
F
o
r
m
a
l
s
p
e
c
i
f
i
c
a
t
i
o
n R
3E
x
e
c
u
t
a
b
l
e
p
r
o
g
r
a
m
P
2P
3P
4
T
1T
2T
3T
4
P
r
o
o
f
s
o
f
t
r
a
n
s
f
o
r
m
a
t
i
o
n
c
o
r
r
e
c
t
n
e
s
s
F
o
r
m
a
l
t
r
a
n
s
f
o
r
m
a
t
i
o
n
s
R
1
P
1
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 15
Formal systems development

Problems
• Need for specialised skills and training to apply the technique
• Difficult to formally specify some aspects of the system such as
the user interface

Applicability
• Critical systems especially those where a safety or security case
must be made before the system is put into operation
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 16
Reuse-oriented 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 more important but still
limited experience with it
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 17
Reuse-oriented development
R
e
q
u
i
r
e
m
e
n
t
s
s
p
e
c
i
f
i
c
a
t
i
o
nC
o
m
p
o
n
e
n
t
a
n
a
l
y
s
i
s D
e
v
e
l
o
p
m
e
n
t
a
n
d
i
n
t
e
g
r
a
t
i
o
n
S
y
s
t
e
m
d
e
s
i
g
n
w
i
t
h
r
e
u
s
e
R
e
q
u
i
r
e
m
e
n
t
s
m
o
d
i
f
i
c
a
t
i
o
n S
y
s
t
e
m
v
a
l
i
d
a
t
i
o
n
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 18
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 development
• Spiral development
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 19
Incremental development

Rather than deliver the system as a single delivery,
the development and delivery is broken down into
increments with each increment delivering part of the
required functionality

User requirements are prioritised and the highest
priority requirements are included in early increments

Once the development of an increment is started, the
requirements are frozen though requirements for later
increments can continue to evolve
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 20
Incremental development
V
a
l
i
d
a
t
e
i
n
c
r
e
m
e
n
t
D
e
v
e
l
o
p
s
y
s
t
e
m
i
n
c
r
e
m
e
n
t D
e
s
i
g
n
s
y
s
t
e
m
a
r
c
h
i
t
e
c
t
u
r
e
I
n
t
e
g
r
a
t
e
i
n
c
r
e
m
e
n
t V
a
l
i
d
a
t
e
s
y
s
t
e
m
D
e
f
i
n
e
o
u
t
l
i
n
e
r
e
q
u
i
r
e
m
e
n
t
sA
s
s
i
g
n
r
e
q
u
i
r
e
m
e
n
t
s
t
o
i
n
c
r
e
m
e
n
t
s
S
y
s
t
e
m
i
n
c
o
m
p
l
e
t
e F
i
n
a
l
s
y
s
t
e
m
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 21
Incremental development advantages

Customer value can be delivered with each
increment so system functionality is available
earlier

Early increments act as a prototype to help elicit
requirements for later increments

Lower risk of overall project failure

The highest priority system services tend to
receive the most testing
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 22
Extreme programming

New 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
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 23
Spiral development

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
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 24
Spiral model of the software process
R
i
s
k
a
n
a
l
y
s
i
s
R
i
s
k
a
n
a
l
y
s
i
s
R
i
s
k
a
n
a
l
y
s
i
s
Risk
anal
ysis
P
r
o
t
o
-
t
y
p
e
1
P
r
o
t
o
t
y
p
e
2
P
r
o
t
o
t
y
p
e
3
O
p
e
r
a
-
t
i
o
n
a
l
p
r
o
t
o
y
p
e
C
o
n
c
e
p
t
o
f
O
p
e
r
a
t
i
o
n
S
i
m
u
l
a
t
i
o
n
s
,
m
o
d
e
l
s
,
b
e
n
c
h
m
a
r
k
s
S
/
W
r
e
q
u
i
r
e
m
e
n
t
s
R
e
q
u
i
r
e
m
e
n
t
v
a
l
i
d
a
t
i
o
n
D
e
s
i
g
n
V
&
V
P
r
o
d
u
c
t
d
e
s
i
g
n
D
e
t
a
i
l
e
d
d
e
s
i
g
n
C
o
d
e
U
n
i
t
t
e
s
t
I
n
t
e
g
r
a
t
i
o
n
t
e
s
t
A
c
c
e
p
t
a
n
c
e
t
e
s
t
S
e
r
v
i
c
e D
e
v
e
l
o
p
,
v
e
r
i
f
y
n
e
x
t
-
l
e
v
e
l
p
r
o
d
u
c
t
E
v
a
l
u
a
t
e
a
l
t
e
r
n
a
t
i
v
e
s
i
d
e
n
t
i
f
y
,
r
e
s
o
l
v
e
r
i
s
k
s
D
e
t
e
r
m
i
n
e
o
b
j
e
c
t
i
v
e
s
a
l
t
e
r
n
a
t
i
v
e
s
a
n
d
c
o
n
s
t
r
a
i
n
t
s
P
l
a
n
n
e
x
t
p
h
a
s
eI
n
t
e
g
r
a
t
i
o
n
a
n
d
t
e
s
t
p
l
a
n
D
e
v
e
l
o
p
m
e
n
t
p
l
a
n
R
e
q
u
i
r
e
m
e
n
t
s
p
l
a
n
L
i
f
e
-
c
y
c
l
e
p
l
a
n
R
E
V
I
E
W
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 25
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
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 26
Software specification

The process of establishing what services are
required and the constraints on the system’s
operation and development

Requirements engineering process
• Feasibility study
• Requirements elicitation and analysis
• Requirements specification
• Requirements validation
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 27
The requirements engineering process
F
e
a
s
i
b
i
l
i
t
y
s
t
u
d
yR
e
q
u
i
r
e
m
e
n
t
s
e
l
i
c
i
t
a
t
i
o
n
a
n
d
a
n
a
l
y
s
i
sR
e
q
u
i
r
e
m
e
n
t
s
s
p
e
c
i
f
i
c
a
t
i
o
n
R
e
q
u
i
r
e
m
e
n
t
s
v
a
l
i
d
a
t
i
o
n
F
e
a
s
i
b
i
l
i
t
y
r
e
p
o
r
t S
y
s
t
e
m
m
o
d
e
l
sU
s
e
r
a
n
d
s
y
s
t
e
m
r
e
q
u
i
r
e
m
e
n
t
sR
e
q
u
i
r
e
m
e
n
t
s
d
o
c
u
m
e
n
t
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 28
Software design and implementation

The process of converting the system
specification into an executable system

Software design
• Design a software structure that realises the specification

Implementation
• Translate this structure into an executable program

The activities of design and implementation are
closely related and may be inter-leaved
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 29
Design process activities

Architectural design

Abstract specification

Interface design

Component design

Data structure design

Algorithm design
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 30
The software design process
Ar
chitectur
al
design
Abstr
act
specific
tion
Interfa
design
Com
desig
Da
ta
stru
e
des
A
d
System
ar
chitectur
eSoftw
ar
e
specific
tion
Interfa
specifi
tion
Com
spec
tion
Da
ta
stru
e
spe
tio
A
sp
ti
R
equir
ements
specifica
tion
Desig
vitie
Desig
oduc
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 31
Design methods

Systematic approaches to developing a software
design

The design is usually documented as a set of
graphical models

Possible models
• Data-flow model
• Entity-relation-attribute model
• Structural model
• Object models
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 32
Programming and debugging

Translating a design into a program and removing
errors from that program

Programming is a personal activity - there is no
generic programming process

Programmers carry out some program testing to
discover faults in the program and remove these
faults in the debugging process
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 33
The debugging process
L
o
c
a
t
e
e
r
r
o
r D
e
s
i
g
n
e
r
r
o
r
r
e
p
a
i
rR
e
p
a
i
r
e
r
r
o
r R
e
-
t
e
s
t
p
r
o
g
r
a
m
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 34
Software validation

Verification and validation is intended to show
that a system conforms to its specification and
meets the requirements of the system customer

Involves checking and review processes and
system testing

System testing involves executing the system
with test cases that are derived from the
specification of the real data to be processed by
the system
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 35
The testing process
S
u
b
-
s
y
s
t
e
m
t
e
s
t
i
n
g
M
o
d
u
l
e
t
e
s
t
i
n
g
U
n
i
t
t
e
s
t
i
n
g S
y
s
t
e
m
t
e
s
t
i
n
gA
c
c
e
p
t
a
n
c
e
t
e
s
t
i
n
g
C
o
m
p
o
n
e
n
t
t
e
s
t
i
n
gI
n
t
e
g
r
a
t
i
o
n
t
e
s
t
i
n
gU
s
e
r
t
e
s
t
i
n
g
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 36
Testing stages

Unit testing
• Individual components are tested

Module testing
• Related collections of dependent components are tested

Sub-system testing
• Modules are integrated into sub-systems and tested. The focus here should
be on interface testing

System testing
• Testing of the system as a whole. Testing of emergent properties

Acceptance testing
• Testing with customer data to check that it is acceptable
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 37
Testing phases
R
e
q
u
i
r
e
m
e
n
t
s
s
p
e
c
i
f
i
c
a
t
i
o
nS
y
s
t
e
m
s
p
e
c
i
f
i
c
a
t
i
o
nS
y
s
t
e
m
d
e
s
i
g
nD
e
t
a
i
l
e
d
d
e
s
i
g
nM
o
d
u
l
e
a
n
d
u
n
i
t
c
o
d
e
a
n
d
t
e
s
s
S
u
b
-
s
y
s
t
e
m
i
n
t
e
g
r
a
t
i
o
n
t
e
s
t
p
l
a
n
S
y
s
t
e
m
i
n
t
e
g
r
a
t
i
o
n
t
e
s
t
p
l
a
n
A
c
c
e
p
t
a
n
c
e
t
e
s
t
p
l
a
n
S
e
r
v
i
c
eA
c
c
e
p
t
a
n
c
e
t
e
s
t S
y
s
t
e
m
i
n
t
e
g
r
a
t
i
o
n
t
e
s
tS
u
b
-
s
y
s
t
e
m
i
n
t
e
g
r
a
t
i
o
n
t
e
s
t
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 38
Software evolution

Software is inherently flexible and can change.

As requirements change through changing
business circumstances, the software that
supports the business must also evolve and
change

Although there has been a demarcation between
development and evolution (maintenance) this is
increasingly irrelevant as fewer and fewer
systems are completely new
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 39
System evolution
A
s
s
e
s
s
e
x
i
s
t
i
n
g
s
y
s
t
e
m
s
D
e
f
i
n
e
s
y
s
t
e
m
r
e
q
u
i
r
e
m
e
n
t
s P
r
o
p
o
s
e
s
y
s
t
e
m
c
h
a
n
g
e
sM
o
d
i
f
y
s
y
s
t
e
m
s
N
e
w
s
y
s
t
e
m
E
x
i
s
t
i
n
g
s
y
s
t
e
m
s
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 40
Automated process support (CASE)

Computer-aided software engineering (CASE) is
software to support software development and
evolution processes

Activity automation
• Graphical editors for system model development
• Data dictionary to manage design entities
• Graphical UI builder for user interface construction
• Debuggers to support program fault finding
• Automated translators to generate new versions of a program
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 41
Case technology

Case technology has led to significant
improvements in the software process though not
the order of magnitude improvements that were
once predicted
• Software engineering requires creative thought - this is not
readily automatable
• Software engineering is a team activity and, for large projects,
much time is spent in team interactions. CASE technology does
not really support these
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 42
CASE classification

Classification helps us understand the different types
of CASE tools and their support for process activities

Functional perspective
• Tools are classified according to their specific function

Process perspective
• Tools are classified according to process activities that are supported

Integration perspective
• Tools are classified according to their organisation into integrated
units
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 43
Functional tool classification
Activity-based classification
R
e
e
n
g
i
n
e
e
r
i
n
g
t
o
o
ls
T
e
s
ti
n
g
t
o
o
ls
D
e
b
u
g
g
in
g
to
o
l
s
P
r
o
g
r
a
m
a
n
a
l
y
s
is
to
o
l
s
L
a
n
g
u
a
g
e
-
p
r
o
c
e
s
s
in
g
to
o
l
s
M
e
t
h
o
d
s
u
p
p
o
r
tto
o
l
s
P
r
o
t
o
t
y
p
in
g
t
o
o
ls
C
o
n
f
ig
u
r
a
ti
o
n
m
a
n
a
g
e
m
e
n
tto
o
l
s
C
h
a
n
g
e
m
a
n
a
g
e
m
e
n
tt
o
o
ls
D
o
c
u
m
e
n
t
a
ti
o
n
t
o
o
ls
E
d
i
ti
n
g
t
o
o
ls
P
la
n
n
i
n
g
t
o
o
ls
S
p
e
c
if
i
c
a
ti
o
n D
e
s
i
g
n I
m
p
le
m
e
n
ta
ti
o
nV
e
r
i
f
ic
a
ti
o
n
a
n
d
V
a
li
d
a
t
io
n
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 45
CASE integration

Tools
• Support individual process tasks such as design consistency
checking, text editing, etc.

Workbenches
• Support a process phase such as specification or design,
Normally include a number of integrated tools

Environments
• Support all or a substantial part of an entire software process.
Normally include several integrated workbenches
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 46
Tools, workbenches, environments
S
i
n
g
l
e
-
m
e
t
h
o
d
w
o
r
k
b
e
n
c
h
e
sG
e
n
e
r
a
l
-
p
u
r
p
o
s
e
w
o
r
k
b
e
n
c
h
e
s
M
u
l
t
i
-
m
e
t
h
o
d
w
o
r
k
b
e
n
c
h
e
s L
a
n
g
u
a
g
e
-
s
p
e
c
i
f
i
c
w
o
r
k
b
e
n
c
h
e
s
P
r
o
g
r
a
m
m
i
n
gT
e
s
t
i
n
g
A
n
a
l
y
s
i
s
a
n
d
d
e
s
i
g
n
I
n
t
e
g
r
a
t
e
d
e
n
v
i
r
o
n
m
e
n
t
sP
r
o
c
e
s
s
-
c
e
n
t
r
e
d
e
n
v
i
r
o
n
m
e
n
t
s
F
i
l
e
c
o
m
p
a
r
a
t
o
r
s
C
o
m
p
i
l
e
r
s
E
d
i
t
o
r
s E
n
v
i
r
o
n
m
e
n
t
s
W
o
r
k
b
e
n
c
h
e
s
T
o
o
l
s
C
A
S
E
t
e
c
h
n
o
l
o
g
y
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 47
Key points

Software processes are the activities involved in
producing and evolving a software system. They
are represented in a software process model

General activities are specification, design and
implementation, validation and evolution

Generic process models describe the organisation
of software processes

Iterative process models describe the software
process as a cycle of activities
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 48
Key points

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

More Related Content

Similar to Software Process Models in Software Engineering (20)

PPT
2. Software process
Ashis Kumar Chanda
 
PPT
Ian Sommerville, Software Engineering, 9th Edition Ch2
Mohammed Romi
 
PPT
Software Processes
Mayuran Ramanathan
 
PPTX
04_Materi Software Proses-Models(1).pptx
MarwondoMarwondo
 
PPSX
Process model rup
Aryan Ajmer
 
PPT
software requirement engineering process part II
luanvtse171436
 
PPTX
The Software Process in Software Engineering
ROZLINABINTIMOHAMED
 
PPTX
Ch 2 Software Engineering
Imran Mirza
 
PPTX
SOFTWARE ENGINEERING PART 1
ravi gupta
 
PPT
chapter o6 lecture sre ppt for downloadd
sagar222612
 
PPT
SE2.ppt
AaMir519591
 
PDF
CS 123 Lecture 02 2023-2024.pdf take it s
flyinimohamed
 
PPTX
SE Sumerville 9th Chp 2
Kashif Sohail
 
PDF
Software Process Models
Atul Karmyal
 
PPTX
Ch2-Software Engineering 9
Ian Sommerville
 
PPT
Introduction to software engineering-introduction.ppt
DurreShahwar38
 
PPTX
Software Generic Design Process.
Syed Hassan Ali
 
PPTX
SE - Lecture 2 - SW Devl Process.pptx
TangZhiSiang
 
PPT
UML
Niit
 
2. Software process
Ashis Kumar Chanda
 
Ian Sommerville, Software Engineering, 9th Edition Ch2
Mohammed Romi
 
Software Processes
Mayuran Ramanathan
 
04_Materi Software Proses-Models(1).pptx
MarwondoMarwondo
 
Process model rup
Aryan Ajmer
 
software requirement engineering process part II
luanvtse171436
 
The Software Process in Software Engineering
ROZLINABINTIMOHAMED
 
Ch 2 Software Engineering
Imran Mirza
 
SOFTWARE ENGINEERING PART 1
ravi gupta
 
chapter o6 lecture sre ppt for downloadd
sagar222612
 
SE2.ppt
AaMir519591
 
CS 123 Lecture 02 2023-2024.pdf take it s
flyinimohamed
 
SE Sumerville 9th Chp 2
Kashif Sohail
 
Software Process Models
Atul Karmyal
 
Ch2-Software Engineering 9
Ian Sommerville
 
Introduction to software engineering-introduction.ppt
DurreShahwar38
 
Software Generic Design Process.
Syed Hassan Ali
 
SE - Lecture 2 - SW Devl Process.pptx
TangZhiSiang
 
UML
Niit
 

More from Dr. Jasmine Beulah Gnanadurai (20)

PPTX
Chapter 4 Requirements Engineering2.pptx
Dr. Jasmine Beulah Gnanadurai
 
PPTX
Chapter 4 Requirement Engineering1 .pptx
Dr. Jasmine Beulah Gnanadurai
 
PPTX
Chapter 2 Software Processes Processes.pptx
Dr. Jasmine Beulah Gnanadurai
 
PPT
Programming in Python Lists and its methods .ppt
Dr. Jasmine Beulah Gnanadurai
 
PPT
Introduction to UML, class diagrams, sequence diagrams
Dr. Jasmine Beulah Gnanadurai
 
PPT
ch03-Data Modeling Using the Entity-Relationship (ER) Model.ppt
Dr. Jasmine Beulah Gnanadurai
 
PPT
Process Model in Software Engineering Concepts
Dr. Jasmine Beulah Gnanadurai
 
PPTX
Arrays and Detailed explanation of Array
Dr. Jasmine Beulah Gnanadurai
 
PPTX
Data Warehouse_Architecture.pptx
Dr. Jasmine Beulah Gnanadurai
 
PPTX
DMQL(Data Mining Query Language).pptx
Dr. Jasmine Beulah Gnanadurai
 
PPTX
Quick Sort.pptx
Dr. Jasmine Beulah Gnanadurai
 
PPTX
KBS Architecture.pptx
Dr. Jasmine Beulah Gnanadurai
 
PPTX
Knowledge Representation in AI.pptx
Dr. Jasmine Beulah Gnanadurai
 
PPTX
File allocation methods (1)
Dr. Jasmine Beulah Gnanadurai
 
PPTX
Segmentation in operating systems
Dr. Jasmine Beulah Gnanadurai
 
PPTX
Association rules apriori algorithm
Dr. Jasmine Beulah Gnanadurai
 
PPTX
Big data architecture
Dr. Jasmine Beulah Gnanadurai
 
Chapter 4 Requirements Engineering2.pptx
Dr. Jasmine Beulah Gnanadurai
 
Chapter 4 Requirement Engineering1 .pptx
Dr. Jasmine Beulah Gnanadurai
 
Chapter 2 Software Processes Processes.pptx
Dr. Jasmine Beulah Gnanadurai
 
Programming in Python Lists and its methods .ppt
Dr. Jasmine Beulah Gnanadurai
 
Introduction to UML, class diagrams, sequence diagrams
Dr. Jasmine Beulah Gnanadurai
 
ch03-Data Modeling Using the Entity-Relationship (ER) Model.ppt
Dr. Jasmine Beulah Gnanadurai
 
Process Model in Software Engineering Concepts
Dr. Jasmine Beulah Gnanadurai
 
Arrays and Detailed explanation of Array
Dr. Jasmine Beulah Gnanadurai
 
Data Warehouse_Architecture.pptx
Dr. Jasmine Beulah Gnanadurai
 
DMQL(Data Mining Query Language).pptx
Dr. Jasmine Beulah Gnanadurai
 
KBS Architecture.pptx
Dr. Jasmine Beulah Gnanadurai
 
Knowledge Representation in AI.pptx
Dr. Jasmine Beulah Gnanadurai
 
File allocation methods (1)
Dr. Jasmine Beulah Gnanadurai
 
Segmentation in operating systems
Dr. Jasmine Beulah Gnanadurai
 
Association rules apriori algorithm
Dr. Jasmine Beulah Gnanadurai
 
Big data architecture
Dr. Jasmine Beulah Gnanadurai
 
Ad

Recently uploaded (20)

PDF
IMP NAAC-Reforms-Stakeholder-Consultation-Presentation-on-Draft-Metrics-Unive...
BHARTIWADEKAR
 
PDF
Zoology (Animal Physiology) practical Manual
raviralanaresh2
 
PDF
community health nursing question paper 2.pdf
Prince kumar
 
PPTX
Gall bladder, Small intestine and Large intestine.pptx
rekhapositivity
 
PPTX
2025 Winter SWAYAM NPTEL & A Student.pptx
Utsav Yagnik
 
PPTX
Explorando Recursos do Summer '25: Dicas Essenciais - 02
Mauricio Alexandre Silva
 
PPTX
PPT on the Development of Education in the Victorian England
Beena E S
 
PPTX
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
PPTX
Latest Features in Odoo 18 - Odoo slides
Celine George
 
PPTX
Nutri-QUIZ-Bee-Elementary.pptx...................
ferdinandsanbuenaven
 
PDF
IMP NAAC REFORMS 2024 - 10 Attributes.pdf
BHARTIWADEKAR
 
PPTX
Growth and development and milestones, factors
BHUVANESHWARI BADIGER
 
PPTX
A PPT on Alfred Lord Tennyson's Ulysses.
Beena E S
 
PDF
ARAL-Orientation_Morning-Session_Day-11.pdf
JoelVilloso1
 
PDF
The-Beginnings-of-Indian-Civilisation.pdf/6th class new ncert social/by k san...
Sandeep Swamy
 
PPTX
How to Create Rental Orders in Odoo 18 Rental
Celine George
 
PPTX
HEAD INJURY IN CHILDREN: NURSING MANAGEMENGT.pptx
PRADEEP ABOTHU
 
PDF
CEREBRAL PALSY: NURSING MANAGEMENT .pdf
PRADEEP ABOTHU
 
PPTX
Accounting Skills Paper-I, Preparation of Vouchers
Dr. Sushil Bansode
 
PPTX
How to Define Translation to Custom Module And Add a new language in Odoo 18
Celine George
 
IMP NAAC-Reforms-Stakeholder-Consultation-Presentation-on-Draft-Metrics-Unive...
BHARTIWADEKAR
 
Zoology (Animal Physiology) practical Manual
raviralanaresh2
 
community health nursing question paper 2.pdf
Prince kumar
 
Gall bladder, Small intestine and Large intestine.pptx
rekhapositivity
 
2025 Winter SWAYAM NPTEL & A Student.pptx
Utsav Yagnik
 
Explorando Recursos do Summer '25: Dicas Essenciais - 02
Mauricio Alexandre Silva
 
PPT on the Development of Education in the Victorian England
Beena E S
 
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
Latest Features in Odoo 18 - Odoo slides
Celine George
 
Nutri-QUIZ-Bee-Elementary.pptx...................
ferdinandsanbuenaven
 
IMP NAAC REFORMS 2024 - 10 Attributes.pdf
BHARTIWADEKAR
 
Growth and development and milestones, factors
BHUVANESHWARI BADIGER
 
A PPT on Alfred Lord Tennyson's Ulysses.
Beena E S
 
ARAL-Orientation_Morning-Session_Day-11.pdf
JoelVilloso1
 
The-Beginnings-of-Indian-Civilisation.pdf/6th class new ncert social/by k san...
Sandeep Swamy
 
How to Create Rental Orders in Odoo 18 Rental
Celine George
 
HEAD INJURY IN CHILDREN: NURSING MANAGEMENGT.pptx
PRADEEP ABOTHU
 
CEREBRAL PALSY: NURSING MANAGEMENT .pdf
PRADEEP ABOTHU
 
Accounting Skills Paper-I, Preparation of Vouchers
Dr. Sushil Bansode
 
How to Define Translation to Custom Module And Add a new language in Odoo 18
Celine George
 
Ad

Software Process Models in Software Engineering

  • 1. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes  Coherent sets of activities for specifying, designing, implementing and testing software systems
  • 2. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 2 Objectives  To introduce software process models  To describe a number of different process models and when they may be used  To describe outline process models for requirements engineering, software development, testing and evolution  To introduce CASE technology to support software process activities
  • 3. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 3 Topics covered  Software process models  Process iteration  Software specification  Software design and implementation  Software validation  Software evolution  Automated process support
  • 4. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 4 The software process  A structured set of activities required to develop a software system • Specification • Design • Validation • Evolution  A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective
  • 5. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 5 Generic software process models  The waterfall model • Separate and distinct phases of specification and development  Evolutionary development • Specification and development are interleaved  Formal systems development • A mathematical system model is formally transformed to an implementation  Reuse-based development • The system is assembled from existing components
  • 6. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 6 Waterfall model R e q u i r e m e n t s d e f i n i t i o n S y s t e m a n d s o f t w a r e d e s i g n I m p l e m e n t a t i o n a n d u n i t t e s t i n g I n t e g r a t i o n a n d s y s t e m t e s t i n g O p e r a t i o n a n d m a i n t e n a n c e
  • 7. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 7 Waterfall model phases  Requirements analysis and definition  System and software design  Implementation and unit testing  Integration and system testing  Operation and maintenance  The drawback of the waterfall model is the difficulty of accommodating change after the process is underway
  • 8. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 8 Waterfall model problems  Inflexible partitioning of the project into distinct stages  This makes it difficult to respond to changing customer requirements  Therefore, this model is only appropriate when the requirements are well-understood
  • 9. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 9 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  Throw-away prototyping • Objective is to understand the system requirements. Should start with poorly understood requirements
  • 10. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 10 Evolutionary development V a l i d a t i o n F i n a l v e r s i o n D e v e l o p m e n t I n t e r m e d i a t e v e r s i o n s S p e c i f i c a t i o nI n i t i a l v e r s i o n O u t l i n e d e s c r i p t i o n C o n c u r r e n t a c t i v i t i e s
  • 11. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 11 Evolutionary development  Problems • Lack of process visibility • Systems are often poorly structured • Special skills (e.g. in languages for rapid prototyping) may be required  Applicability • For small or medium-size interactive systems • For parts of large systems (e.g. the user interface) • For short-lifetime systems
  • 12. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 12 Formal systems development  Based on the transformation of a mathematical specification through different representations to an executable program  Transformations are ‘correctness-preserving’ so it is straightforward to show that the program conforms to its specification  Embodied in the ‘Cleanroom’ approach to software development
  • 13. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 13 Formal systems development R e q u i r e m e n t s d e f i n i t i o nF o r m a l s p e c i f i c a t i o nF o r m a l t r a n s f o r m a t i o nI n t e g r a t i o n a n d s y s t e m t e s t i n g
  • 14. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 14 Formal transformations R 2 F o r m a l s p e c i f i c a t i o n R 3E x e c u t a b l e p r o g r a m P 2P 3P 4 T 1T 2T 3T 4 P r o o f s o f t r a n s f o r m a t i o n c o r r e c t n e s s F o r m a l t r a n s f o r m a t i o n s R 1 P 1
  • 15. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 15 Formal systems development  Problems • Need for specialised skills and training to apply the technique • Difficult to formally specify some aspects of the system such as the user interface  Applicability • Critical systems especially those where a safety or security case must be made before the system is put into operation
  • 16. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 16 Reuse-oriented 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 more important but still limited experience with it
  • 17. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 17 Reuse-oriented development R e q u i r e m e n t s s p e c i f i c a t i o nC o m p o n e n t a n a l y s i s D e v e l o p m e n t a n d i n t e g r a t i o n S y s t e m d e s i g n w i t h r e u s e R e q u i r e m e n t s m o d i f i c a t i o n S y s t e m v a l i d a t i o n
  • 18. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 18 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 development • Spiral development
  • 19. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 19 Incremental development  Rather than deliver the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality  User requirements are prioritised and the highest priority requirements are included in early increments  Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve
  • 20. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 20 Incremental development V a l i d a t e i n c r e m e n t D e v e l o p s y s t e m i n c r e m e n t D e s i g n s y s t e m a r c h i t e c t u r e I n t e g r a t e i n c r e m e n t V a l i d a t e s y s t e m D e f i n e o u t l i n e r e q u i r e m e n t sA s s i g n r e q u i r e m e n t s t o i n c r e m e n t s S y s t e m i n c o m p l e t e F i n a l s y s t e m
  • 21. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 21 Incremental development advantages  Customer value can be delivered with each increment so system functionality is available earlier  Early increments act as a prototype to help elicit requirements for later increments  Lower risk of overall project failure  The highest priority system services tend to receive the most testing
  • 22. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 22 Extreme programming  New 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
  • 23. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 23 Spiral development  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
  • 24. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 24 Spiral model of the software process R i s k a n a l y s i s R i s k a n a l y s i s R i s k a n a l y s i s Risk anal ysis P r o t o - t y p e 1 P r o t o t y p e 2 P r o t o t y p e 3 O p e r a - t i o n a l p r o t o y p e C o n c e p t o f O p e r a t i o n S i m u l a t i o n s , m o d e l s , b e n c h m a r k s S / W r e q u i r e m e n t s R e q u i r e m e n t v a l i d a t i o n D e s i g n V & V P r o d u c t d e s i g n D e t a i l e d d e s i g n C o d e U n i t t e s t I n t e g r a t i o n t e s t A c c e p t a n c e t e s t S e r v i c e D e v e l o p , v e r i f y n e x t - l e v e l p r o d u c t E v a l u a t e a l t e r n a t i v e s i d e n t i f y , r e s o l v e r i s k s D e t e r m i n e o b j e c t i v e s a l t e r n a t i v e s a n d c o n s t r a i n t s P l a n n e x t p h a s eI n t e g r a t i o n a n d t e s t p l a n D e v e l o p m e n t p l a n R e q u i r e m e n t s p l a n L i f e - c y c l e p l a n R E V I E W
  • 25. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 25 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
  • 26. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 26 Software specification  The process of establishing what services are required and the constraints on the system’s operation and development  Requirements engineering process • Feasibility study • Requirements elicitation and analysis • Requirements specification • Requirements validation
  • 27. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 27 The requirements engineering process F e a s i b i l i t y s t u d yR e q u i r e m e n t s e l i c i t a t i o n a n d a n a l y s i sR e q u i r e m e n t s s p e c i f i c a t i o n R e q u i r e m e n t s v a l i d a t i o n F e a s i b i l i t y r e p o r t S y s t e m m o d e l sU s e r a n d s y s t e m r e q u i r e m e n t sR e q u i r e m e n t s d o c u m e n t
  • 28. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 28 Software design and implementation  The process of converting the system specification into an executable system  Software design • Design a software structure that realises the specification  Implementation • Translate this structure into an executable program  The activities of design and implementation are closely related and may be inter-leaved
  • 29. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 29 Design process activities  Architectural design  Abstract specification  Interface design  Component design  Data structure design  Algorithm design
  • 30. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 30 The software design process Ar chitectur al design Abstr act specific tion Interfa design Com desig Da ta stru e des A d System ar chitectur eSoftw ar e specific tion Interfa specifi tion Com spec tion Da ta stru e spe tio A sp ti R equir ements specifica tion Desig vitie Desig oduc
  • 31. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 31 Design methods  Systematic approaches to developing a software design  The design is usually documented as a set of graphical models  Possible models • Data-flow model • Entity-relation-attribute model • Structural model • Object models
  • 32. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 32 Programming and debugging  Translating a design into a program and removing errors from that program  Programming is a personal activity - there is no generic programming process  Programmers carry out some program testing to discover faults in the program and remove these faults in the debugging process
  • 33. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 33 The debugging process L o c a t e e r r o r D e s i g n e r r o r r e p a i rR e p a i r e r r o r R e - t e s t p r o g r a m
  • 34. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 34 Software validation  Verification and validation is intended to show that a system conforms to its specification and meets the requirements of the system customer  Involves checking and review processes and system testing  System testing involves executing the system with test cases that are derived from the specification of the real data to be processed by the system
  • 35. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 35 The testing process S u b - s y s t e m t e s t i n g M o d u l e t e s t i n g U n i t t e s t i n g S y s t e m t e s t i n gA c c e p t a n c e t e s t i n g C o m p o n e n t t e s t i n gI n t e g r a t i o n t e s t i n gU s e r t e s t i n g
  • 36. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 36 Testing stages  Unit testing • Individual components are tested  Module testing • Related collections of dependent components are tested  Sub-system testing • Modules are integrated into sub-systems and tested. The focus here should be on interface testing  System testing • Testing of the system as a whole. Testing of emergent properties  Acceptance testing • Testing with customer data to check that it is acceptable
  • 37. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 37 Testing phases R e q u i r e m e n t s s p e c i f i c a t i o nS y s t e m s p e c i f i c a t i o nS y s t e m d e s i g nD e t a i l e d d e s i g nM o d u l e a n d u n i t c o d e a n d t e s s S u b - s y s t e m i n t e g r a t i o n t e s t p l a n S y s t e m i n t e g r a t i o n t e s t p l a n A c c e p t a n c e t e s t p l a n S e r v i c eA c c e p t a n c e t e s t S y s t e m i n t e g r a t i o n t e s tS u b - s y s t e m i n t e g r a t i o n t e s t
  • 38. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 38 Software evolution  Software is inherently flexible and can change.  As requirements change through changing business circumstances, the software that supports the business must also evolve and change  Although there has been a demarcation between development and evolution (maintenance) this is increasingly irrelevant as fewer and fewer systems are completely new
  • 39. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 39 System evolution A s s e s s e x i s t i n g s y s t e m s D e f i n e s y s t e m r e q u i r e m e n t s P r o p o s e s y s t e m c h a n g e sM o d i f y s y s t e m s N e w s y s t e m E x i s t i n g s y s t e m s
  • 40. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 40 Automated process support (CASE)  Computer-aided software engineering (CASE) is software to support software development and evolution processes  Activity automation • Graphical editors for system model development • Data dictionary to manage design entities • Graphical UI builder for user interface construction • Debuggers to support program fault finding • Automated translators to generate new versions of a program
  • 41. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 41 Case technology  Case technology has led to significant improvements in the software process though not the order of magnitude improvements that were once predicted • Software engineering requires creative thought - this is not readily automatable • Software engineering is a team activity and, for large projects, much time is spent in team interactions. CASE technology does not really support these
  • 42. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 42 CASE classification  Classification helps us understand the different types of CASE tools and their support for process activities  Functional perspective • Tools are classified according to their specific function  Process perspective • Tools are classified according to process activities that are supported  Integration perspective • Tools are classified according to their organisation into integrated units
  • 43. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 43 Functional tool classification
  • 45. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 45 CASE integration  Tools • Support individual process tasks such as design consistency checking, text editing, etc.  Workbenches • Support a process phase such as specification or design, Normally include a number of integrated tools  Environments • Support all or a substantial part of an entire software process. Normally include several integrated workbenches
  • 46. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 46 Tools, workbenches, environments S i n g l e - m e t h o d w o r k b e n c h e sG e n e r a l - p u r p o s e w o r k b e n c h e s M u l t i - m e t h o d w o r k b e n c h e s L a n g u a g e - s p e c i f i c w o r k b e n c h e s P r o g r a m m i n gT e s t i n g A n a l y s i s a n d d e s i g n I n t e g r a t e d e n v i r o n m e n t sP r o c e s s - c e n t r e d e n v i r o n m e n t s F i l e c o m p a r a t o r s C o m p i l e r s E d i t o r s E n v i r o n m e n t s W o r k b e n c h e s T o o l s C A S E t e c h n o l o g y
  • 47. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 47 Key points  Software processes are the activities involved in producing and evolving a software system. They are represented in a software process model  General activities are specification, design and implementation, validation and evolution  Generic process models describe the organisation of software processes  Iterative process models describe the software process as a cycle of activities
  • 48. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 48 Key points  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