Upload
lingesh1892
View
36
Download
1
Embed Size (px)
DESCRIPTION
Diagrams
Citation preview
1Reliability Reliability Reliability Reliability Reliability Reliability Reliability Reliability Block DiagramsBlock DiagramsBlock DiagramsBlock DiagramsBlock DiagramsBlock DiagramsBlock DiagramsBlock DiagramsAnalysis and TacticsAnalysis and TacticsAnalysis and TacticsAnalysis and TacticsAnalysis and TacticsAnalysis and TacticsAnalysis and TacticsAnalysis and Tactics
M.R.V. [email protected]
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
4Design of Software Architecture
FunctionalRequirements
FunctionalRequirements
Extra-FunctionalRequirements
Extra-FunctionalRequirements
DomainRequirements
DomainRequirements
UserRequirements
UserRequirements
Group Functionalityin subsystems
Group Functionalityin subsystems
Design approach forrealizing extra-functional
quality properties
Design approach forrealizing extra-functional
quality properties
SynthesizeSynthesize
Analyze Analyze refineRBD, QN, RMA,
ATAM, prototype
RBD, QN, RMA,ATAM, prototype
S.M.A.R.T.
Design MetricsDesign Metrics
Model/DescribeModel/DescribeUML, ViewsUML, Views
Identify Trade-offs Sensitivity points
Identify Trade-offs Sensitivity points
Select Architectural StyleReference ArchitectureArchitecture Tactics
Select Architectural StyleReference ArchitectureArchitecture Tactics
5Reliability
Reliability is a measure of the continuous delivery of correct service
(Laprie)
6Reliability 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.
7RBD 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
8RBD 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%.
9Common RBD Patterns:Chain of Components
=
=
n
iiRR
1
R1 R2 R3
R
0.95 0.99 0.89R = 0.95*0.99*0.89
= 0.84
For example
10
Common RBD Patterns:Alternative (Parallel) Components
)1(11
=
=
n
iiRR
RR1
R2
Rn
11
Example Parallel Components
)1(11
=
=
n
iiRR
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
CCCC
SSSS
KKKK LLLL MMMM
Example Reliability: Structural View
component-diagramwith uses-relations
CCCC
SSSS
KKKK LLLL MMMM
typical flow of controlfor procedure-call style
C S K L M
reliability block diagram ?
All components are neededAll components are neededAll components are neededAll components are needed
13
CCCC
SSSS
KKKK1111 KKKK2222 KKKK3333
Example Reliability: Structural View
component-diagramwith uses-relations
CCCC
SSSS
KKKK1111 KKKK2222 KKKK3333
typical flow of controlfor procedure-call style
reliability blockdiagram ? C S
K3
K2
K1
components are alternativescomponents are alternativescomponents are alternativescomponents are alternatives
Dont forget the outgoing arrow
14
CCCC
SSSS
KKKK LLLL MMMM
Example Reliability: Deployment View
CCCC
SSSS
KKKK LLLL MMMM
typical flow of controlfor procedure-call style
ServerDB K DB L DB M Client
deployment diagram
component-diagramwith uses-relations
15
Example Reliability: Deployment View
ServerDB 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 ) / 4Q = ClientP+Q = P + QIf 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 & RBDJ.-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, simplifySimplify, simplify, simplifySimplify, simplify, simplifySimplify, simplify, simplify
Regularly update planning and risk analysis
Monitor that architecture is implemented
Get good people, make them happy, set them loose