Reliability Block Diagrams

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