iv Contents 1 Introduction 1 2 Basic Concepts 5 2.1 Dependability Concepts and Terminology. . . . .

download iv Contents 1 Introduction 1 2 Basic Concepts 5 2.1 Dependability Concepts and Terminology. . . . .

of 325

  • date post

    11-Jul-2020
  • Category

    Documents

  • view

    0
  • download

    0

Embed Size (px)

Transcript of iv Contents 1 Introduction 1 2 Basic Concepts 5 2.1 Dependability Concepts and Terminology. . . . .

  • Pattern and Component-based Development of Dependable Systems

    Der Fakultät für Ingenieurwissenschaften,

    Abteilung Informatik und Angewandte Kognitionswissenschaft Universität Duisburg-Essen

    zur Erlangung des akademischen Grades eines

    Doktors der Ingenieurwissenschaften (Doktor-Ingenieur - Dr.-Ing.)

    vorgelegte Dissertation

    von Denis Hatebur

    geboren am 27.09.1977 in Datteln

    Datum der Einreichung: 08.05.2012

  • ii

  • iv

    Contents

    1 Introduction 1

    2 Basic Concepts 5 2.1 Dependability Concepts and Terminology . . . . . . . . . . . . . . . . . . . . . . 5

    2.2 Agenda Concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    2.3 Context Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    2.4 Problem Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    2.5 UML Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    2.6 UMLsec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    2.7 OCL – Object Constraint Language . . . . . . . . . . . . . . . . . . . . . . . . . 11

    2.8 Architectures and Architectural Styles . . . . . . . . . . . . . . . . . . . . . . . . 12

    3 Basic Development Process 15 3.1 Extended ADIT overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    3.1.1 Analysis Phases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    3.1.2 Design Phases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    3.1.3 Implementation Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    3.1.4 Test Phases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    3.2 Case Study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    3.3 Related work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    3.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    4 UML Profile for Requirements Engineering 23 4.1 UML extension for Jackson Diagrams . . . . . . . . . . . . . . . . . . . . . . . . 24

    4.1.1 Diagram Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    4.1.2 Associations and Interface Classes . . . . . . . . . . . . . . . . . . . . . . 25

    4.1.3 Context Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    4.1.4 Problem Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    4.1.5 Checking the Consistency between Problem Diagrams and Context Diagram 31

    4.1.6 Problem Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    4.1.7 Checking the Correct Instantiation of Problem Frames . . . . . . . . . . . 34

    4.1.8 General OCL Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

    4.2 UML4PF - Tool Realization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    4.3 CACC Case Study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    4.4 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    4.5 Conclusions and Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    5 Expressing Dependability Requirements 53 5.1 Profile Extension to Describe Dependability . . . . . . . . . . . . . . . . . . . . . 54

    5.1.1 Confidentiality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    5.1.2 Integrity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

  • Contents v

    5.1.3 Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

    5.1.4 Reliability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

    5.1.5 Authenticity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

    5.1.6 Security Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

    5.1.7 Secret Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

    5.2 Procedure to Use the Dependability Extension . . . . . . . . . . . . . . . . . . . 72

    5.3 CACC Case Study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    5.3.1 Identify Hazards and Threats, Perform Risk Analysis . . . . . . . . . . . 72

    5.3.2 Describe Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    5.3.3 Describe Dependability Requirements . . . . . . . . . . . . . . . . . . . . 72

    5.4 Relation to Security Problem Frames . . . . . . . . . . . . . . . . . . . . . . . . . 75

    5.5 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

    5.6 Conclusions and Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

    6 Analysis of Dependability Requirements 81 6.1 Construction System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

    6.1.1 Confidentiality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

    6.1.2 Integrity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

    6.1.3 Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

    6.1.4 Reliability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

    6.1.5 Authenticity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

    6.1.6 Security Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

    6.1.7 Secret Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

    6.2 Working with Dependability Requirement Patterns . . . . . . . . . . . . . . . . . 90

    6.3 CACC Case Study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

    6.3.1 Select Appropriate Generic Mechanisms . . . . . . . . . . . . . . . . . . . 92

    6.3.2 Inspect Possible Interactions . . . . . . . . . . . . . . . . . . . . . . . . . 92

    6.3.3 Introduce or Consider Additional Domains . . . . . . . . . . . . . . . . . 92

    6.3.4 Inspect Necessary Conditions . . . . . . . . . . . . . . . . . . . . . . . . . 93

    6.3.5 Consider all Relevant Domains . . . . . . . . . . . . . . . . . . . . . . . . 95

    6.3.6 Select Appropriate Generic Mechanisms (to Fulfill Conditions) . . . . . . 96

    6.3.7 Introduce or Consider Additional Domains (to Fulfill Conditions) . . . . . 96

    6.3.8 Inspect Necessary Conditions (to Fulfill Conditions) . . . . . . . . . . . . 97

    6.3.9 Consider all Relevant Domains (to Fulfill Conditions) . . . . . . . . . . . 97

    6.3.10 Extended Environment Description . . . . . . . . . . . . . . . . . . . . . . 97

    6.4 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

    6.5 Conclusions and Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

    7 Development of Specifications for Dependable Systems 101 7.1 Derive and Verify Specification for Functional Requirements . . . . . . . . . . . . 102

    7.2 Express Specifications and Functional Requirements . . . . . . . . . . . . . . . . 104

    7.3 From Security Requirements to UMLsec Specifications . . . . . . . . . . . . . . . 111

    7.3.1 UMLsec Deployment Diagrams for Environment Descriptions . . . . . . . 111

    7.3.2 UMLsec Class and Sequence Diagrams for Security Mechanism Descriptions114

    7.3.3 Tool Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

    7.4 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

    7.5 Conclusions and Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

    8 Systematic Architectural Design based on Problem Patterns 121 8.1 Architectural Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

  • vi Contents

    8.2 Deriving Architectures from Problem Descriptions . . . . . . . . . . . . . . . . . 123 8.2.1 Starting Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 8.2.2 Initial Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 8.2.3 Implementable Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 129 8.2.4 Layered Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

    8.3 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 8.4 Conclusions and Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

    9 Development of Architectures for Dependable Systems 137 9.1 Deriving quality-based Architectures . . . . . . . . . . . . . . . . . . . . . . . . . 138

    9.1.1 Choose Design Alternative . . . . . . . . . . . . . . . . . . . . . . . . . . 138 9.1.2 Split Problem Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 9.1.3 Split Quality Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . 139 9.1.4 Initial Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 9.1.5 Concretized Quality Problem Diagrams . . . . . . . . . . . . . . . . . . . 141 9.1.6 Implementable Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 141

    9.1.6.1 Merge Components . . . . . . . . . . . . . . . . . . . . . . . . . 141 9.1.6.2 Apply Design Patterns and Quality Patterns . . . . . . . . . . . 141

    9.1.7 Layered Archit