Sie sind auf Seite 1von 21

1

Reliability Reliability Reliability Reliability


Reliability Reliability Reliability Reliability
Block Diagrams Block Diagrams Block Diagrams Block Diagrams
Block Diagrams Block Diagrams Block Diagrams Block Diagrams
Analysis and Tactics Analysis and Tactics Analysis and Tactics Analysis and Tactics
Analysis and Tactics Analysis and Tactics Analysis and Tactics Analysis and Tactics
M.R.V. Chaudron
M.R.V.Chaudron@tue.nl
www.win.tue.nl/~mchaudro/sa2007
Technische Universiteit Eindhoven
System Architecture and Networking Group
No model is correct, but some are useful
Albert Einstein
2
3
Predict, Plan, Measure, Adapt
4
Design of Software Architecture
Functional
Requirements
Functional
Requirements
Extra-Functional
Requirements
Extra-Functional
Requirements
Domain
Requirements
Domain
Requirements
User
Requirements
User
Requirements
Group Functionality
in subsystems
Group Functionality
in subsystems
Design approach for
realizing extra-functional
quality properties
Design approach for
realizing extra-functional
quality properties
Synthesize
Synthesize
Analyze
Analyze
refine
RBD, QN, RMA,
ATAM, prototype
RBD, QN, RMA,
ATAM, prototype
S.M.A.R.T.
Design Metrics
Design Metrics
Model/Describe
Model/Describe
UML, Views
UML, Views
Identify
Trade-offs
Sensitivity points
Identify
Trade-offs
Sensitivity points
Select
Architectural Style
Reference Architecture
Architecture Tactics
Select
Architectural Style
Reference Architecture
Architecture Tactics
5
Reliability
Reliability is a measure of the continuous delivery
of correct service
(Laprie)
6
Reliability Block Diagrams (RBD)
Blocks represent system components.
Lines describe the connections between components.
93%
90%
80%
97%
A RBD is a graphical depiction of the systems
components and connectors which can be used to
determine the overall system reliability
If any path through the system is successful, then
the system succeeds, otherwise it fails.
7
RBD 2: Assumptions
Lines have reliability 1
Failures of blocks are statistically independent
Blocks are bi-modal / fail-stop
either their operate correctly or they fail and do nothing
8
RBD 3: How to express reliability?
Assuming a homogeneous failure rate,
a failure rate of (per unit of time t )
constitutes a reliability over a period T of
R = e
-
T/t
If a component has a failure rate of 10 failures per
1000 hours, then its reliability over a 24 hour period
is app. 79%.
9
Common RBD Patterns:
Chain of Components

=
=
n
i
i R R
1
R
1
R
2
R
3
R
0.95 0.99 0.89
R = 0.95*0.99*0.89
= 0.84
For example
10
Common RBD Patterns:
Alternative (Parallel) Components
) 1 ( 1
1

=
=
n
i
i R R
R
R
1
R
2
R
n
11
Example Parallel Components
) 1 ( 1
1

=
=
n
i
i R R
R = 1 (1-0.95)*(1-0.99)*(1-0.89)
= 1 0.05*0.01*0.11
= 1 5.5*10
-5
= 0.99
0.95
0.99
0.89
12
C CC C
S SS S
K KK K L LL L M MM M
Example Reliability: Structural View
component-diagram
with uses-relations
C CC C
S SS S
K KK K L LL L M MM M
typical flow of control
for procedure-call style
C S K L M
reliability block diagram ?
All components are needed All components are needed All components are needed All components are needed
13
C CC C
S SS S
K KK K
1 11 1
K KK K
2 22 2
K KK K
3 33 3
Example Reliability: Structural View
component-diagram
with uses-relations
C CC C
S SS S
K KK K
1 11 1
K KK K
2 22 2
K KK K
3 33 3
typical flow of control
for procedure-call style
reliability block
diagram ?
C S
K
3
K
2
K
1
components are alternatives components are alternatives components are alternatives components are alternatives
Dont forget the
outgoing arrow
14
C CC C
S SS S
K KK K L LL L M MM M
Example Reliability: Deployment View
C CC C
S SS S
K KK K L LL L M MM M
typical flow of control
for procedure-call style
Server DB K DB L DB M Client
deployment diagram
component-diagram
with uses-relations
15
Example Reliability: Deployment View
Server DB A DB B DB C Client
Assume Server, DBs are in constant use and share CPU equally.
P
Q

P
= (
DB A
+
DB B
+
DB C
+
S
) / 4

Q
=
Client

P+Q
=
P
+
Q
If number of clients grows to n, then
P+Q
=
P
+ n
Q
processor X
processor Y
16
RBD Application Heuristics
Not all systems can be reduced to series/parallel graphs.
Hence, you may need to simplify the design.
For instance by
consider only the critical paths through the system
Consider fragment of time spent per component
There are tools available that help you compute
reliability of RBDs
17
Research Question
How can we determine the reliability of a piece of
software?
Not all defects threaten reliability
18
Summary
Use analytical methods to support architectural
decision making
Reliability Reliability Block Diagrams
Throughput Queuing networks
Timeliness Rate Monotonic Analysis
Many analyses are of back of the envelope size.
little effort, lots of value
even if your model is not perfect (which they never are)
If you havent analyzed it, dont build it.
If you havent analyzed it, dont build it.
19
Thank you for your attention
Questions
20
References Reliability & RBD
J.-C. Laprie. Dependable Computing and Fault Tolerance: Concepts and
Terminology. In Proceedings of the 15th International Symposium on Fault-
Tolerant Computing (FTCS-15), pages 211, 1985.
Abd-Allah, A., "Extending Reliability Block Diagrams to Software
Architectures," USC Technical Report USC-CSE-97-501, Center for Software
Engineering, University of Southern California, March 1997.
21
Summary of key architecting practices
Get stakeholder involvement early and frequently
Understand the drivers for the project (business, politics)
Understand the requirements incl. quality properties
SMART & prioritized
Develop iteratively and incrementally
Describe architecture using multiple views
abstract, but precise, design decisions & rationale
Design for change (modularity, low coupling, inform. hiding)
Analyze in an early stage (use maths! and scenarios)
Simplify, simplify, simplify Simplify, simplify, simplify Simplify, simplify, simplify Simplify, simplify, simplify
Regularly update planning and risk analysis
Monitor that architecture is implemented
Get good people, make them happy, set them loose

Das könnte Ihnen auch gefallen