Upload
eng-ahmed-hagras
View
214
Download
0
Embed Size (px)
Citation preview
8/3/2019 L04-Lifecycles
1/4
1
University of Toronto Department of Computer Science
2001, Steve Easterbrook
Lecture 4:Software Lifecycles
The Software ProcessWaterfall model
Rapid Prototyping Cycle
Phased Models: Incremental Development
Evolutionary Development
Spiral Model
V-model and Systems Engineering
The essential software process
Verification and Validation
2
University of Toronto Department of Computer Science
2001, Steve Easterbrook
Waterfall Model
requirements
design
code
integrate
test
Source: Adapted from Dorfman, 1997, p7
see also: van Vliet 1999, p50
maintain
3
University of Toronto Department of Computer Science
2001, Steve Easterbrook
Why not a waterfall?
Waterfall model describes a process of stepwiserefinement Based on hardware engineering models
Widely used in defense and aerospace industries
But software is different:No fabrication step
Program code is just another design level
Hence, no commit step - software can always be changed!
No body of experience for design analysis (yet) Most analysis (testing) is done on program code
Hence, problems not detected until late in the process
Waterfall model takes a static view of requirements ignores changing needs
Lack of user involvement once specification is written
Unrealistic separation of specification from design
Doesnt accommodate prototyping, reuse, etc.
Source: Adapted from Blum 1992, pp28-31
see also: van Vliet 1999, p50-1
4
University of Toronto Department of Computer Science
2001, Steve Easterbrook
Prototyping lifecycle
Prototyping is used for: understanding the requirements for the user interface
examining feasibility of a proposed design approach
exploring system performance issues
Problems: users treat the prototype as the solution
a prototype is only a partial specification
Source: Adapted from
van Vliet 1999, p53
documentrequire-ments
design code test integrate
require-ments
designprototype
buildprototype
testprototype
8/3/2019 L04-Lifecycles
2/4
5
University of Toronto Department of Computer Science
2001, Steve Easterbrook
design code test integrate O&Mreqts
Phased Lifecycle Models
Req
uirements
design code test integrate O&M
Source:Adapted from Dorfman, 1997, p10
design code test integrate O&M
design code test integrate O&M
design code test integrate O&M
design code test integrate O&Mreqts
design code test integratereqts
version 1
version 2
version 3
Release 1
release 2
release 3
release 4
lessons learnt
lessons learnt
Incremental development(each release adds more
functionality)
Evolutionary development(each version incorporates
new requirements)
Source: Adapted from
Dorfman, 1997, p10
see also: van Vliet 1999, p56
6
University of Toronto Department of Computer Science
2001, Steve Easterbrook
The Spiral ModelDetermine goals,
alternatives,constraints
Evaluatealternatives
and risks
PlanDevelop
andtest
budget1budget2budget3budget4 prototype1 prototype2 prototype3 prototype4
alte
rnativ
es 4
alte
rnativ
es 3
Alt
ern
-
ativ
es 2
constr
aints4
constraint
s3
Constr
-
aints2
alterna
tives
cons
traint
s
riskanalysis4
riskanalysis3
riskanalysis2risk
analysis1
concept ofoperation
soft
ware
requir
emen
ts
validated
requirem
entssoft
ware
design
validated
,
verified
design
det
ail
ed
desig
n
code
unit
test
system
testacceptance
test
requirements,lifecycleplandevelopmentplanintegration
andtestplan
implementationplan
Source: Adapted from
Pfleeger, 1998, p57
see also: van Vliet 1999, p63
7
University of Toronto Department of Computer Science
2001, Steve Easterbrook
Comments on phased models
Incremental development avoids big bang implementation
but: assumes all requirements known up-front
Evolutionary development allows for lessons from each version to be incorporated into the next
but hard to plan for versions beyond the first;
lessons may be learnt too late
Spiral model incorporates prototyping and risk analysis
but cannot cope with unforeseen changes (e.g. new business objectives)
not clear how to analyze risk
8
University of Toronto Department of Computer Science
2001, Steve Easterbrook
V-Model
systemrequirements
softwarerequirements
preliminarydesign
detaileddesign
code and
debug
unit
test
componenttest
softwareintegration
acceptancetest
systemintegration
analyseand
design
testand
integrate
time
Levelof
abstraction
Source: Adapted from
Forsberg & Mooz 1997
8/3/2019 L04-Lifecycles
3/4
9
University of Toronto Department of Computer Science
2001, Steve Easterbrook
The essential software processSource: Adapted from Blum, 1992, p32
see also: van Vliet p11
ProblemStatement
Implementation
Statement
System
Correspondence
Correctness
Validation
Verification
Real World
10
University of Toronto Department of Computer Science
2001, Steve Easterbrook
Verification and Validation
For V&V, we need to worry about: The properties of the computer hardware (C)
The properties of the program (P)
The properties of the machine in the application domain (the specification, S)
The properties of the domain, independent of the machine (D)
The requirements for the machine (R)
Demonstrating that P satisfies R is then a two stepprocess: Do C and P imply S? (Verification)
Do S and D imply R? (Validation)
Application Domain Machine Domain
Source: Adapted from Jackson, 1995, p170-171
11
University of Toronto Department of Computer Science
2001, Steve Easterbrook
Validation Example
Requirement R: Reverse thrust shall only be enabled when the aircraft is moving on the
runway
Domain Properties D:Wheel pulses on if and only if wheels turning
Wheels turning if and only if moving on runway
Specification S: Reverse thrust enabled if and only if wheel pulses on
S + D imply R But what if the domain model is wrong?
Source: Adapted from Jackson, 1995, p172
12
University of Toronto Department of Computer Science
2001, Steve Easterbrook
Summary
Software is differentmany assumptions from other engineering models dont apply
there is no fabrication step
the underlying science of software behaviour is not well developed
(software engineering is still an immature discipline)
Many different views of the software process waterfall model is too rigid (doesnt allow for change)
other models incorporate prototyping, evolution, risk, etc.
no lifecycle model is perfect
Essential process: describe the problem
describe the solution verify (does the solution solve the stated problem?)
validate (did we solve the right problem?)
8/3/2019 L04-Lifecycles
4/4
13
University of Toronto Department of Computer Science
2001, Steve Easterbrook
References
van Vliet, H. Software Engineering: Principles and Practice (2nd Edition)Wiley, 1999.
Chapter 3 provides a very good overview of lifecycle models.
Blum, B. Software Engineering: A Holistic View. Oxford UniversityPress, 1992.
Dorfman, M. Requirements Engineering. In Thayer, R. H and Dorfman,M. (eds.) Software Requirements Engineering, Second Edition. IEEEComputer Society Press, 1997, p7-22
Forsberg, K and Mooz, H. System Engineering Overview. In Thayer, R.H and Dorfman, M. (eds.) Software Requirements Engineering, SecondEdition. IEEE Computer Society Press, 1997, p44-72
Jackson, M. Software Requirements & Specifications: A Lexicon ofPractice, Principles and Prejudices. Addison-Wesley, 1995.
Pfleeger, S. Software Engineering: Theory and Practice. Prentice Hall,1997.