Automated Improvement of Software Architecture Models for Performance and Other Quality Attributes
Total Page:16
File Type:pdf, Size:1020Kb
Automated Improvement of Software Architecture Models for Performance and Other Quality Attributes Zur Erlangung des akademischen Grades eines Doktors der Ingenieurwissenschaften von der Fakultät für Informatik des Karlsruher Instituts für Technologie (KIT) genehmigte Dissertation von Anne Koziolek geb. Martens aus Oldenburg Tag der mündlichen Prüfung: 14.07.2011 Erster Gutachter: Prof. Dr. Ralf Reussner Zweiter Gutachter: Prof. Dr. Andreas Oberweis KIT – Universität des Landes Baden-Württemberg und nationales Forschungszentrum der Helmholtz-Gemeinschaft www.kit.edu Automated Improvement of Software Architecture Models for Performance and Other Quality Attributes PhD thesis to gain the degree “Doktor der Ingenieurwissenschaften” at the Department of Informatics of the Karlsruhe Institute of Technology (KIT) Dissertation by Anne Koziolek neé Martens Oldenburg Day of defence: 14.07.2011 Referees: Prof. Dr. Ralf Reussner Prof. Dr. Andreas Oberweis KIT – University of the State of Baden-Wuerttemberg and National Laboratory of the Helmholtz Association www.kit.edu Contents Abstract xi Zusammenfassung xiii Danksagungen xvii 1. Introduction 1 1.1. Motivation . 1 1.2. Problem . 4 1.3. Existing Solutions . 5 1.4. Contributions . 6 1.5. Outline . 9 I. Foundations and Related Work 11 2. Component-based Software Architectures and Quality 13 2.1. Component-based Software Architecture . 13 2.1.1. Definitions . 13 2.1.2. Component-based Software Development Process . 17 2.2. Quality of Software Architectures . 18 2.2.1. Quality Attributes of Software Architecture . 18 2.2.2. Quantitative Quality Properties . 21 2.3. Modelling Concepts . 24 2.3.1. Models and Metamodels . 24 2.3.2. Essential Meta Object Facility . 26 2.4. Model-based Quality Prediction . 28 2.4.1. General Concepts . 28 2.4.2. Performance . 29 2.4.3. Other Quality Attributes . 30 2.4.4. Quality Completions . 31 2.4.5. Integration in the CB Development Process . 32 2.5. Palladio Component Model . 33 2.5.1. Example PCM Model . 33 2.5.2. PCM Metamodel . 37 2.5.3. Performance Analysis . 37 2.5.4. Reliability Analysis . 38 2.5.5. Cost Model . 38 2.6. Other CBA Models With Predictive Capabilities . 40 2.6.1. CBML . 40 2.6.2. ROBOCOP . 42 v vi Contents 3. Multi-Criteria Optimization 45 3.1. Optimization . 45 3.2. Handling Multiple Criteria . 46 3.2.1. Preference Articulation . 46 3.2.2. Pareto Optimality . 48 3.3. Classical Methods . 50 3.4. Multi-objective Metaheuristics . 50 3.5. Evolutionary Algorithms . 51 3.5.1. Basic Algorithm . 51 3.5.2. Reproduction . 52 3.5.3. Selection . 54 3.5.4. Elitism . 56 3.5.5. Comparing Multi-objective Evolutionary Optimization Techniques . 56 4. Related Work 61 4.1. Supporting Software Architects to Improve CBA . 61 4.1.1. Scope of this Survey . 62 4.1.2. Criteria for Automated Improvement Support Comparison . 62 4.1.3. Performance Improvement Methods . 66 4.1.4. Improvement Methods for Multiple Quality Attributes . 71 4.1.5. Summary . 79 4.2. Problem-specific Knowledge in Metaheuristics . 80 II. Automated Architecture Improvement 83 5. Supporting the Architect to Improve Component-based Architecture Models 85 5.1. Goal of Automated Improvement Support . 85 5.2. Process . 87 5.2.1. Component-based Development Process with Quality Exploration . 88 5.2.2. Quality Analysis Workflow . 88 5.2.3. Architecture Exploration Workflow . 90 5.2.4. Decision Making . 91 5.3. Model-based Improvement . 92 5.4. Scenarios . 93 5.5. Assumptions and Limitations . 96 5.6. Summary . 97 6. Formalization of the Design Space 99 6.1. Requirements for Automated Improvement . 100 6.2. Overview and PCM Example . 101 6.2.1. Valid Changes in the Example . 101 6.2.2. Illustration of Change Constraints . 102 6.2.3. Degree of Freedom Examples in the PCM . 103 6.2.4. Degrees of Freedom Instances in the Example . 103 6.2.5. Design Space of the Example . 104 6.3. Degrees of Freedom . 106 6.3.1. Change Definitions . 106 6.3.2. Degree of Freedom Definitions . 114 6.3.3. Degrees of Freedom in EMOF . 122 6.4. Design Space . 126 6.4.1. Derive Degree of Freedom Instances for a System . 126 6.4.2. Unconstrained Design Space . 129 vi Contents vii 6.4.3. Constraints . 132 6.4.4. Discussion of Other Representations of the Design Space . 133 6.5. Assumptions and Limitations . 134 6.5.1. Assumptions . 134 6.5.2. Limitations . 134 6.6. Summary . 135 7. Degrees of Freedom in Component-based Software Architecture Models 137 7.1. Degree of Freedom Description Schema . 137 7.2. Software-related Degrees of Freedom . 139 7.2.1. Selection of Components . 139 7.2.2. Non-functional Component Configuration Parameters . 142 7.2.3. Passive Resources Multiplicity . 143 7.2.4. Priorities . 144 7.3. Deployment-related Degrees of Freedom . 145 7.3.1. Allocation . 145 7.3.2. Allocation with Replication . 147 7.3.3. Server Replication . 150 7.3.4. Resource Selection . 151 7.3.5. Resource Property Change . 153 7.3.6. Further Configuration of the Software Stack . 154 7.3.7. Quality Completion Configuration . 156 7.4. Custom Degrees of Freedom . 157 7.4.1. Metamodel-specific Degrees of Freedom . 158 7.4.2. System-specific Degrees of Freedom . 158 7.5. Limitations . 160 7.6. Summary . 161 8. Optimization 163 8.1. Optimization Problem . 163 8.1.1. Formalization of the Optimization Problem . 163 8.1.2. Properties of the Optimization Problem . 165 8.1.3. Applicable Optimization Techniques . 167 8.2. Evolutionary Optimization . 170 8.2.1. Outline . 170 8.2.2. Candidate Representation . 173 8.2.3. Candidate Evaluation . 175 8.2.4. Candidate Reproduction . 178 8.2.5. Candidate Selection . 179 8.2.6. Stop Criteria . 182 8.3. Informed Quality Improvement . 182 8.3.1. Improvement Tactics . 183 8.3.2. Tactics Operators . 192 8.3.3. Intensification using Tactics . 194 8.3.4. Starting Population Heuristics . 195 8.4. CBA Optimization Framework . ..