Critical System Development
Critical System Development
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide1
Objectives
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide2
Topics covered
Dependable processes
Dependable programming
Fault tolerance
Fault tolerant architectures
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide3
Software dependability
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide4
Dependability achievement
Fault avoidance
Fault detection
Fault tolerance
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide5
Redundancy
Diversity
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide6
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide7
Fault-free software
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide8
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide9
Man
yNum
F
e
w
V
e
w
r
esid
rors
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide10
Dependable processes
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide11
The process should have a defined process model that sets out
the activities in the process and the documentation that is to be
produced during these activities.
Standardised
Auditable
Diverse
Robust
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide12
Validation activities
Requirements inspections.
Requirements management.
Model checking.
Design and code inspection.
Static analysis.
Test planning and management.
Configuration management, discussed in
Chapter 29, is also essential.
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide13
Dependable programming
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide14
Information protection
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide15
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide16
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide17
Safe programming
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide18
Structured programming
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide19
Error-prone constructs
Floating-point numbers
Pointers
Parallelism
Recursion
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide20
Error-prone constructs
Interrupts
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide21
Exception handling
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide22
Exceptions in Java 1
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide23
Exceptions in Java 2
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide24
A temperature controller
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide25
Freezer controller 1
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide26
Freezer controller 2
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide27
Fault tolerance
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide28
Fault detection
Damage assessment
Fault recovery
Fault repair
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide29
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide30
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide31
Fault detection
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide32
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide33
PositiveEvenInteger 1
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide34
PositiveEvenInteger 2
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide35
Damage assessment
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide36
Robust array 1
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide37
Robust array 2
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide38
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide39
Forward recovery
Backward recovery
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide40
Forward recovery
Redundant pointers
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide41
Backward recovery
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide42
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide43
Safe sort 1
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide44
Safe sort 2
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide45
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide46
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide47
A1
Ou
A2
co
a
t
o
A3
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide48
Output selection
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide49
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide50
Design diversity
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide51
N-version programming
Recovery blocks
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide52
V
e
rsio
Input
Ou
V
e
rsio
co
a
t
o
A
r
e
V
e
rsio
F
a
u
ma
N-v
ersio
N-version programming
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide53
Output comparison
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide54
N-version programming
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide55
T
e
or
st
f
T
r1y
algo
succ
Acc
Algor
Co
ue
x
e
c
test
ac
Sig
c
e
a
alg
R
e
try
Accep
fails
etry
R
e
-t
R
e
-te
Algo
Alg
R
e
v
eco
ry
Recovery blocks
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide56
Recovery blocks
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide57
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide58
Specification dependency
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide59
Key points
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide60
Key points
IanSommerville2004
SoftwareEngineering,7thedition.Chapter20Slide61