Post on 20-Feb-2018
transcript
7/24/2019 ch4 Software Processes.ppt
1/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1
Software Processes
7/24/2019 ch4 Software Processes.ppt
2/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 2
Objectives
To introduce software process models To describe three generic process models and
when they may be used
To describe outline process models forrequirements engineering, softwaredevelopment, testing and evolution
To explain the Rational nified Process model To introduce !"S# technology to support
software process activities
7/24/2019 ch4 Software Processes.ppt
3/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 3
Topics covered
Software process models
Process iteration
Process activities
The Rational nified Process
!omputer$aided software engineering
7/24/2019 ch4 Software Processes.ppt
4/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 4
The software process
" structured set of activities required to develop a
software system
% Specification&
% 'esign&
% (alidation&
% #volution)
" software process model is an abstract representation
of a process) *t presents a description of a process
from some particular perspective)
7/24/2019 ch4 Software Processes.ppt
5/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 5
+eneric software process models
The waterfall model
% Separate and distinct phases of specification anddevelopment)
#volutionary development
% Specification, development and validation areinterleaved)
!omponent$based software engineering
% The system is assembled from existing components) There are many variants of these models e)g) formal
development where a waterfall$lie process is used butthe specification is a formal specification that is refinedthrough several stages to an implementable design)
7/24/2019 ch4 Software Processes.ppt
6/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 6
-aterfall model
Requirements
defnition
System and
sotware design
Implementation
and unit testing
Integration and
system testing
Operation and
maintenance
7/24/2019 ch4 Software Processes.ppt
7/50Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 7
-aterfall model phases
Requirements analysis and definition System and software design *mplementation and unit testing *ntegration and system testing Operation and maintenance The main drawbac of the waterfall model is
the difficulty of accommodating change afterthe process is underway) One phase has to becomplete before moving onto the next phase)
7/24/2019 ch4 Software Processes.ppt
8/50Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 8
-aterfall model problems
*nflexible partitioning of the project into distinct stages
maes it difficult to respond to changing customer
requirements)
Therefore, this model is only appropriate when the
requirements are well$understood and changes will be
fairly limited during the design process)
.ew business systems have stable requirements)
The waterfall model is mostly used for large systems
engineering projects where a system is developed at
several sites)
7/24/2019 ch4 Software Processes.ppt
9/50Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 9
#volutionary development
#xploratory development
% Objective is to wor with customers and to evolve
a final system from an initial outline specification)
Should start with well$understood requirementsand add new features as proposed by the
customer)
Throw$away prototyping
% Objective is to understand the systemrequirements) Should start with poorly understood
requirements to clarify what is really needed)
7/24/2019 ch4 Software Processes.ppt
10/50Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 10
#volutionary development
Concurrentactivities
ValidationFinal
version
Development Intermediate
versions
Specifcation
Initial
version
Outlinedescription
7/24/2019 ch4 Software Processes.ppt
11/50Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 11
#volutionary development
Problems
% /ac of process visibility&
% Systems are often poorly structured&
% Special sills 0e)g) in languages for rapidprototyping1 may be required)
"pplicability
% .or small or medium$si2e interactive systems&
% .or parts of large systems 0e)g) the user interface1&
% .or short$lifetime systems)
7/24/2019 ch4 Software Processes.ppt
12/50Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 12
!omponent$based software engineering
3ased on systematic reuse where systems areintegrated from existing components or !OTS0!ommercial$off$the$shelf1 systems)
Process stages% !omponent analysis&
% Requirements modification&
% System design with reuse&
% 'evelopment and integration) This approach is becoming increasingly used
as component standards have emerged)
7/24/2019 ch4 Software Processes.ppt
13/50Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 13
Reuse$oriented development
Requirements
specifcation
Component
analysis
Development
and integration
System design
with reuse
Requirements
modifcation
System
validation
7/24/2019 ch4 Software Processes.ppt
14/50Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 14
Process iteration
System requirements "/-"4S evolve in the
course of a project so process iteration where
earlier stages are rewored is always part of
the process for large systems) *teration can be applied to any of the generic
process models)
Two 0related1 approaches
% *ncremental delivery&
% Spiral development)
7/24/2019 ch4 Software Processes.ppt
15/50Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 15
*ncremental delivery
Rather than deliver the system as a single delivery, the
development and delivery is broen down into
increments with each increment delivering part of the
required functionality)
ser requirements are prioritised and the highestpriority requirements are included in early increments)
Once the development of an increment is started, the
requirements are fro2en though requirements for later
increments can continue to evolve)
7/24/2019 ch4 Software Processes.ppt
16/50Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 16
*ncremental development
Validate
increment
Develop system
increment
Design system
architecture
Integrate
increment
Validate
system
Defne outlinerequirements
ssign requirements to increments
System incomplete
Finalsyste
7/24/2019 ch4 Software Processes.ppt
17/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 17
*ncremental development advantages
!ustomer value can be delivered with each
increment so system functionality is available
earlier)
#arly increments act as a prototype to helpelicit requirements for later increments)
/ower ris of overall project failure)
The highest priority system services tend toreceive the most testing)
7/24/2019 ch4 Software Processes.ppt
18/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 18
#xtreme programming
"n approach to development based on the
development and delivery of very small
increments of functionality)
Relies on constant code improvement, userinvolvement in the development team and
pairwise programming)
!overed in !hapter 56
7/24/2019 ch4 Software Processes.ppt
19/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 19
Spiral development
Process is represented as a spiral rather than
as a sequence of activities with bactracing)
#ach loop in the spiral represents a phase in
the process) 7o fixed phases such as specification or
design $ loops in the spiral are chosen
depending on what is required)
Riss are explicitly assessed and resolved
throughout the process)
7/24/2019 ch4 Software Processes.ppt
20/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 20
Spiral model of the software process
Ris!
analysis
Ris!
analysis
Ris!
analysis
Ris!
analysis"roto#
type $
"rototype %
"rototype &Opera#
tional
protoype
Concept o
Operation
Simulations' models' (enchmar!s
S)*
requirements
Requirement
validation
Design
V+V
"roduct
design Detailed
design
Code
,nit test
Integration
testcceptance
testService Develop' veriy
ne-t# level product
.valuate alternatives'
identiy' resolve ris!s
Determine o(/ectives'
alternatives and
constraints
"lan ne-t phase
Integration
and test plan
Development
plan
Requirements plan
0ie#cycle plan
R.VI.*
7/24/2019 ch4 Software Processes.ppt
21/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 21
Spiral model sectors
Objective setting
% Specific objectives for the phase are identified)
Ris assessment and reduction
% Riss are assessed and activities put in place to reducethe ey riss)
'evelopment and validation
% " development model for the system is chosen whichcan be any of the generic models)
Planning% The project is reviewed and the next phase of the spiral
is planned)
7/24/2019 ch4 Software Processes.ppt
22/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 22
Process activities
Software specification
Software design and implementation
Software validation
Software evolution
7/24/2019 ch4 Software Processes.ppt
23/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 23
Software specification
The process of establishing what services are
required and the constraints on the system8s
operation and development)
Requirements engineering process% .easibility study&
% Requirements elicitation and analysis&
% Requirements specification&
% Requirements validation)
7/24/2019 ch4 Software Processes.ppt
24/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 24
The requirements engineering process
Feasi(ility
study
Requirements
elicitation and
analysis
Requirements
specifcation
Requirements
validationFeasi(ility
report
System
models
,ser and system
requirements
Requirements
document
7/24/2019 ch4 Software Processes.ppt
25/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 25
Software design and implementation
The process of converting the systemspecification into an executable system)
Software design
% 'esign a software structure that realises thespecification&
*mplementation% Translate this structure into an executable
program&
The activities of design and implementationare closely related and may be inter$leaved)
7/24/2019 ch4 Software Processes.ppt
26/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 26
'esign process activities
"rchitectural design
"bstract specification
*nterface design
!omponent design
'ata structure design
"lgorithm design
7/24/2019 ch4 Software Processes.ppt
27/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 27
The software design process
rchitectural
design
(stract
specifcation
Interace
design
Component
design
Data
structure
design
lgorithm
design
Systemarchitecture
Sotwarespecifcation
Interacespecifcation
Componentspecifcation
Data
structure
specifcation
lgorithmspecifcation
Requirementsspecifcation
Design activities
Design products
7/24/2019 ch4 Software Processes.ppt
28/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 28
Structured methods
Systematic approaches to developing asoftware design)
The design is usually documented as a set of
graphical models) Possible models
% Object model&
% Sequence model&
% State transition model&% Structural model&
% 'ata$flow model)
7/24/2019 ch4 Software Processes.ppt
29/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 29
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)
7/24/2019 ch4 Software Processes.ppt
30/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 30
The debugging process
0ocate
error
Design
error repairRepair
error
Re#test
program
7/24/2019 ch4 Software Processes.ppt
31/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 31
Software validation
(erification and validation 0( 9 (1 is intendedto show that a system conforms to itsspecification and meets the requirements ofthe system customer)
*nvolves checing and review processes andsystem testing)
System testing involves executing the system
with test cases that are derived from thespecification of the real data to be processedby the system)
7/24/2019 ch4 Software Processes.ppt
32/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 32
The testing process
Componenttesting
Systemtesting
cceptanctesting
7/24/2019 ch4 Software Processes.ppt
33/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 33
Testing stages
!omponent or unit testing% *ndividual components are tested independently&
% !omponents may be functions or objects orcoherent groupings of these entities)
System testing% Testing of the system as a whole) Testing of
emergent properties is particularly important)
"cceptance testing
% Testing with customer data to chec that thesystem meets the customer8s needs)
7/24/2019 ch4 Software Processes.ppt
34/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 34
Testing phases
Requirements
specifcation
System
specifcation
System
design
Detailed
design
1odule and
unit codeand test
Su(#system
integrationtest plan
System
integrationtest plan
cceptance
test plan
Service cceptance
test
System
integration test
Su(#system
integration test
7/24/2019 ch4 Software Processes.ppt
35/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 35
Software evolution
Software is inherently flexible and can change)
"s requirements change through changing
business circumstances, the software that
supports the business must also evolve andchange)
"lthough there has been a demarcation
between development and evolution
0maintenance1 this is increasingly irrelevant as
fewer and fewer systems are completely new)
7/24/2019 ch4 Software Processes.ppt
36/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 36
System evolution
ssess e-istingsystems
Defne systemrequirements
"ropose systemchanges
1odiysystems
2ew
system
.-isting
systems
7/24/2019 ch4 Software Processes.ppt
37/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 37
The Rational nified Process
" modern process model derived from the
wor on the :/ and associated process)
7ormally described from ; perspectives
% " dynamic perspective that shows phases overtime&
% " static perspective that shows process activities&
% " practive perspective that suggests good
practice)
7/24/2019 ch4 Software Processes.ppt
38/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 38
RP phase model
Phase iteration
Inception Elaboration Construction Transition
7/24/2019 ch4 Software Processes.ppt
39/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 39
RP phases
*nception
% #stablish the business case for the system)
#laboration
% 'evelop an understanding of the problem domainand the system architecture)
!onstruction
% System design, programming and testing)
Transition
% 'eploy the system in its operating environment)
7/24/2019 ch4 Software Processes.ppt
40/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 40
RP good practice
'evelop software iteratively
:anage requirements
se component$based architectures
(isually model software
(erify software quality
!ontrol changes to software
7/24/2019 ch4 Software Processes.ppt
41/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 41
Static worflows
Workflow Description
Business modelling The business processes are modelled using business use cases.
Requirements Actors who interact with the system are identified and use cases are
developed to model the system requirements.
Analysis and design A design model is created and documented using architectural
models, component models, object models and sequence models.
Implementation The components in the system are implemented and structured intoimplementation sub-systems. Automatic code generation from design
models helps accelerate this process.
Test Testing is an iterative process that is carried out in conjunction with
implementation. System testing follows the completion of the
implementation.
Deployment A product release is created, distributed to users and installed in their
workplace.
Configuration and
change management
This supporting workflow managed changes to the system (see
Chapter 29).
Project management This supporting workflow manages the system development (see
Chapter 5).
Environment This workflow is concerned with making appropriate software tools
available to the software development team.
7/24/2019 ch4 Software Processes.ppt
42/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 42
!omputer$aided software engineering
!omputer$aided software engineering 0!"S#1 is
software to support software development and
evolution processes)
"ctivity automation
% +raphical editors for system model development&
% 'ata dictionary to manage design entities&
% +raphical * builder for user interface construction&
% 'ebuggers to support program fault finding&
% "utomated translators to generate new versions of a
program)
7/24/2019 ch4 Software Processes.ppt
43/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 43
!ase technology
!ase technology has led to significant
improvements in the software process)
7/24/2019 ch4 Software Processes.ppt
44/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 44
!"S# classification
!lassification helps us understand the different types
of !"S# tools and their support for process activities)
.unctional perspective
% Tools are classified according to their specific function)
Process perspective
% Tools are classified according to process activities that
are supported)
*ntegration perspective
% Tools are classified according to their organisation into
integrated units)
7/24/2019 ch4 Software Processes.ppt
45/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 45
.unctional tool classification
Tool type Examples
Planning tools PERT tools, estimation tools, spreadsheets
Editing tools Text editors, diagram editors, word processors
Change management tools Requirements traceability tools, change control systems
Configuration management tools Version management systems, system building tools
Prototyping tools Very h ighle!el languages, user interface generators
"ethodsupport tools #esign editors, data dictionaries, code generators
$anguageprocessing tools Compilers, interpreters
Program analysis tools Cross reference generators, static analysers, dynamic analysers
Testing tools Test data generators, file comparators
#ebugging tools %nteracti!e debugging systems
#ocumentation tools Page layout programs, image editors
Reengineering tools Crossreference systems, program restructuring systems
7/24/2019 ch4 Software Processes.ppt
46/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 46
"ctivity$based tool classification
Specifcation Design Implementation Verifcation
and
Validation
Re#engineering tools
3esting tools
De(ugging tools
"rogram analysis tools
0anguage#processing
tools
1ethod support tools
"rototyping tools
Confguration
management tools
Change management tools
Documentation tools
.diting tools
"lanning tools
7/24/2019 ch4 Software Processes.ppt
47/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 47
!"S# integration
Tools% Support individual process tass such as design
consistency checing, text editing, etc)
-orbenches% Support a process phase such as specification or
design, 7ormally include a number of integratedtools)
#nvironments
% Support all or a substantial part of an entiresoftware process) 7ormally include severalintegrated worbenches)
7/24/2019 ch4 Software Processes.ppt
48/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 48
Tools, worbenches, environments
Single#method
wor!(enches
4eneral#purpose
wor!(enches
1ulti#method
wor!(enches
0anguage#specifc
wor!(enches
"rogramming 3estingnalysis and
design
Integrated
environments
"rocess#centred
environments
File
comparatorsCompilers.ditors
.nvironments*or!(enches3ools
CS.
technology
7/24/2019 ch4 Software Processes.ppt
49/50
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 49
=ey points
Software processes are the activities involved inproducing and evolving a software system)
Software process models are abstract representationsof these processes)
+eneral activities are specification, design andimplementation, validation and evolution)
+eneric process models describe the organisation ofsoftware processes) #xamples include the waterfallmodel, evolutionary development and component$based
software engineering) *terative process models describe the software process
as a cycle of activities)
7/24/2019 ch4 Software Processes.ppt
50/50
=ey points
Requirements engineering is the process ofdeveloping a software specification)
'esign and implementation processes transform thespecification to an executable program)
(alidation involves checing that the system meets toits specification and user needs)
#volution is concerned with modifying the system afterit is in use)
The Rational nified Process is a generic processmodel that separates activities from phases) !"S# technology supports software process activities)