A Reasoning Framework for Dependability in Software Architectures Tacksoo Im Clemson University, [email protected]
Total Page:16
File Type:pdf, Size:1020Kb
Clemson University TigerPrints All Dissertations Dissertations 12-2010 A Reasoning Framework for Dependability in Software Architectures Tacksoo Im Clemson University, [email protected] Follow this and additional works at: https://tigerprints.clemson.edu/all_dissertations Part of the Computer Sciences Commons Recommended Citation Im, Tacksoo, "A Reasoning Framework for Dependability in Software Architectures" (2010). All Dissertations. 618. https://tigerprints.clemson.edu/all_dissertations/618 This Dissertation is brought to you for free and open access by the Dissertations at TigerPrints. It has been accepted for inclusion in All Dissertations by an authorized administrator of TigerPrints. For more information, please contact [email protected]. A Reasoning Framework for Dependability in Software Architectures A Dissertation Presented to the Graduate School of Clemson University In Partial Fulfillment of the Requirements for the Degree Doctor of Philosophy Computer Science by Tacksoo Im August 2010 Accepted by: Dr. John D. McGregor, Committee Chair Dr. Harold C. Grossman Dr. Jason O. Hallstrom Dr. Pradip K. Srimani Abstract The degree to which a software system possesses specified levels of software quality at- tributes, such as performance and modifiability, often have more influence on the success and failure of those systems than the functional requirements. One method of improving the level of a software quality that a product possesses is to reason about the structure of the software architecture in terms of how well the structure supports the quality. This is accomplished by reasoning through software quality attribute scenarios while designing the software architecture of the system. As society relies more heavily on software systems, the dependability of those systems be- comes critical. In this study, a framework for reasoning about the dependability of a software system is presented. Dependability is a multi-faceted software quality attribute that encompasses reliabil- ity, availability, confidentiality, integrity, maintainability and safety. This makes dependability more complex to reason about than other quality attributes. The goal of this reasoning framework is to help software architects build dependable software systems by using quantitative and qualitative techniques to reason about dependability in software architectures. ii Dedication To my father Chungun Im and my mother Youngsoon Ji. iii Acknowledgments I would like to thank the following individuals who have helped me greatly in writing this dissertation: Dr. John D. McGregor, Kyungsoo Im, Changsoo Im, Andres Diaz-Pace, Soujanya Vullam, Sebastien Gagne, and the students of CPSC 875 (Software Architecture) in spring 2010. iv Table of Contents Title Page ............................................ i Abstract ............................................. ii Dedication ........................................... iii Acknowledgments ....................................... iv List of Tables ..........................................viii List of Figures ......................................... ix 1 Introduction......................................... 1 2 Background ......................................... 4 2.1 Quality Attributes ..................................... 4 2.2 Software Architecture ................................... 8 2.3 Reasoning Frameworks................................... 11 2.4 ArchE Architecture Design Assistant........................... 14 2.5 Qualitative Reasoning ................................... 17 3 Related Work ........................................20 4 Quantitative Reasoning Frameworks ..........................22 4.1 Reliability.......................................... 24 4.1.1 Analytic Theory .................................. 24 4.1.2 Model Representation ............................... 26 4.1.3 Interpretation.................................... 28 4.1.4 Evaluation Procedure ............................... 29 4.1.5 Implementation................................... 32 4.2 Availability......................................... 38 4.2.1 Problem Description................................ 38 4.2.2 Analytic Theory .................................. 38 4.2.3 Analytic Constraints................................ 39 4.2.4 Model Representation ............................... 39 4.2.5 Interpretation.................................... 39 4.2.6 Evaluation Procedure ............................... 40 4.2.7 Discussion of Technique.............................. 41 4.2.8 Related Work.................................... 42 4.3 Maintainability....................................... 43 4.3.1 Problem Description................................ 43 4.3.2 Analytic Theory .................................. 43 v 4.3.3 Anaytic Constraints ................................ 44 4.3.4 Model Representation ............................... 44 4.3.5 Interpretation.................................... 44 4.3.6 Evaluation Procedure ............................... 45 4.3.7 Example Application of Technique........................ 45 4.3.8 Discussion of Technique.............................. 46 4.3.9 Related Work.................................... 46 5 Qualitative Reasoning Frameworks ...........................48 5.1 Confidentiality & Integrity................................. 48 5.1.1 Problem Description................................ 50 5.1.2 Analytic Theory .................................. 51 5.1.3 Analytic Constraints................................ 52 5.1.4 Model Representation ............................... 52 5.1.5 Interpretation.................................... 53 5.1.6 Evaluation Procedure ............................... 54 5.2 Safety ............................................ 57 5.2.1 Initial Safety Analyses............................... 58 5.2.2 Problem Description................................ 59 5.2.3 Analytic Theory .................................. 60 5.2.4 Analytic Constraints................................ 61 5.2.5 Model Representation ............................... 62 5.2.6 Interpretation.................................... 62 5.2.7 Evaluation Procedure ............................... 62 5.2.8 Summary...................................... 64 5.2.9 Example Application of Technique........................ 64 5.2.9.1 Perform Initial Safety Analyses..................... 64 5.2.9.2 Translate into Safety Scenarios..................... 65 5.2.9.3 Apply the Constituent Reasoning Frameworks............ 66 5.2.9.4 Apply the Safety Reasoning Framework................ 67 5.2.10 Related Work.................................... 68 5.3 Conclusion ......................................... 70 6 Assembling the Reasoning Frameworks ........................71 6.1 Background......................................... 72 6.2 Attribute Architectures .................................. 73 6.3 Combining Attribute Architectures............................ 75 6.3.1 Connection Types and Compositions....................... 75 6.3.2 Composition Operator Defined.......................... 76 6.3.3 Effects of Combining Attribute Architectures.................. 79 6.3.4 Summary...................................... 80 6.4 Example with AADL.................................... 81 6.5 Summary .......................................... 84 6.6 Assembling the Results from the Reasoning Frameworks................ 84 7 Case Study on Apache ..................................89 7.1 Apache in AADL...................................... 89 7.2 Parameters for Dependability analysis .......................... 90 7.3 Dependability analysis of Apache............................. 94 7.3.1 Reliability...................................... 95 7.3.2 Availability..................................... 97 vi 7.3.3 Confidentiality & Integrity ............................ 99 7.3.4 Maintainability................................... 100 7.3.5 Safety........................................ 101 7.4 Combination of attrbitue architectures in Apache.................... 102 7.5 Conclusion ......................................... 103 8 Implementation & Evaluation ..............................104 8.1 Implementation Issues................................... 104 8.1.1 Quantitative Reasoning Frameworks....................... 105 8.1.2 Qualitative Reasoning Frameworks........................ 106 8.2 Evaluation.......................................... 109 8.2.1 Introduction .................................... 109 8.2.2 Efficacy of the Dependability Reasoning Framework . 110 8.2.3 Usability of the Dependability Reasoning Framework . 112 8.2.4 Suggestions for the Dependability Reasoning Framework . 112 8.3 Conclusion ......................................... 112 9 Conclusions and Future Work ..............................113 Bibliography ..........................................115 vii List of Tables 2.1 Definition of Some Quality Attributes .......................... 5 2.2 Quality Priorities by market ............................... 7 2.3 Architectures and its affected Quality Attributes .................... 10 4.1 A Reliability Scenario ................................... 26 4.2 Responsibilities and Reliability .............................. 30 4.3 Reliability Rate for the Responsibilities in Scenario................... 34 4.4 Responsibilities and Availability ............................. 40 4.5 Information of a Maintenance Scenario.......................... 46 5.1 Satisficing Authorization Level for CTAS ........................ 52 5.2 Some Quality Attributes Used to Analyze Safety ...................