Contributors |
|
xv | |
About the Editors |
|
xvii | |
Foreword |
|
xix | |
|
Foreword |
|
xxi | |
|
Foreword |
|
xxv | |
|
Foreword |
|
xxix | |
|
Preface |
|
xxxi | |
|
Chapter 1 Managing Trade-Offs in Adaptable Software Architectures |
|
|
1 | (16) |
|
|
1 | (1) |
|
|
2 | (1) |
|
1.3 Trade-Offs in Adaptive Systems Design |
|
|
3 | (1) |
|
1.4 Runtime Trade-Offs in Self-Adaptive Systems |
|
|
4 | (4) |
|
1.5 Challenges and the Road Ahead |
|
|
8 | (3) |
|
1.5.1 How to Architect for Adaptability? |
|
|
8 | (1) |
|
1.5.2 Adaptability in Modern Systems |
|
|
9 | (2) |
|
|
11 | (6) |
Part I Concepts And Models For Self-Adaptive Software Architectures |
|
|
Chapter 2 Architecting Software Systems for Runtime Self-Adaptation: Concepts, Models, and Challenges |
|
|
17 | (28) |
|
|
17 | (1) |
|
2.2 Motivation: A Web-Mashup Application |
|
|
18 | (2) |
|
2.3 Adaptation vs. Self-Adaptation |
|
|
20 | (5) |
|
|
20 | (1) |
|
2.3.2 Architecting Software for Adaptation and Self-Adaptation |
|
|
21 | (4) |
|
2.4 Foundational Concepts for Architecting Self-Adaptive Software |
|
|
25 | (6) |
|
2.4.1 Fundamental Dimensions of Self-Adaptive Software |
|
|
25 | (2) |
|
2.4.2 Self-Adaptation Goals |
|
|
27 | (1) |
|
2.4.3 Self-Adaptation Fundamental Properties |
|
|
28 | (1) |
|
2.4.4 Sensors and Effectors |
|
|
29 | (1) |
|
2.4.5 Uncertainty and Dynamic Context |
|
|
30 | (1) |
|
2.5 Reference Models for Architecting Self-Adaptive Software |
|
|
31 | (9) |
|
2.5.1 The Feedback Loop Model of Control Theory |
|
|
31 | (1) |
|
|
32 | (2) |
|
2.5.3 Kramer and Magee's Self-Management Reference Model |
|
|
34 | (2) |
|
2.5.4 The DYNAMICO Reference Model |
|
|
36 | (3) |
|
2.5.5 The Autonomic Computing Reference Architecture (ACRA) |
|
|
39 | (1) |
|
2.6 Major Architectural Challenges in Self-Adaptation |
|
|
40 | (1) |
|
|
41 | (1) |
|
|
41 | (4) |
|
Chapter 3 A Classification Framework of Uncertainty in Architecture-Based Self-Adaptive Systems With Multiple Quality Requirements |
|
|
45 | (34) |
|
|
45 | (4) |
|
|
46 | (2) |
|
|
48 | (1) |
|
|
49 | (6) |
|
|
49 | (1) |
|
|
50 | (3) |
|
|
53 | (1) |
|
|
54 | (1) |
|
3.2.5 Quality Assessment of Selected Papers |
|
|
55 | (1) |
|
|
55 | (11) |
|
3.3.1 Quality of Selected Papers |
|
|
55 | (1) |
|
3.3.2 RQ1: What Are the Current Architecture-Based Approaches Tackling Uncertainty in Self-Adaptive Systems With Multiple Requirements? |
|
|
56 | (1) |
|
3.3.3 RQ2: What Are the Different Uncertainty Dimensions Which Are Explored by These Approaches? |
|
|
57 | (2) |
|
3.3.4 RQ3: What Sources of Uncertainties Are Addressed by These Approaches? |
|
|
59 | (1) |
|
3.3.5 RQ4: How Are the Current Approaches Classified According to the Proposed Uncertainty Classification Framework? |
|
|
59 | (7) |
|
|
66 | (5) |
|
3.4.1 Analysis of Derived Sources of Uncertainty Based on Uncertainty Dimensions |
|
|
67 | (1) |
|
3.4.2 Main Findings and Implications for Researchers |
|
|
68 | (2) |
|
3.4.3 Limitations of the Review and Threats to Validity |
|
|
70 | (1) |
|
3.5 Conclusion and Future Work |
|
|
71 | (1) |
|
|
71 | (4) |
|
|
75 | (4) |
|
Chapter 4 An Architecture Viewpoint for Modeling Dynamically Configurable Software Systems |
|
|
79 | (20) |
|
|
79 | (1) |
|
4.2 Architecture Viewpoints |
|
|
80 | (1) |
|
4.3 Case Study: DDSCM Systems |
|
|
81 | (2) |
|
4.4 Metamodel for Runtime Adaptability Viewpoint |
|
|
83 | (3) |
|
4.5 Runtime Adaptability Viewpoint |
|
|
86 | (4) |
|
4.5.1 Method for Applying the Adaptability Viewpoint |
|
|
89 | (1) |
|
4.6 Case StudyAdaptability View of the SCM Software Architecture |
|
|
90 | (3) |
|
|
93 | (2) |
|
4.7.1 Quality Concerns in Software Architecture Modeling |
|
|
93 | (1) |
|
4.7.2 Architectural Approaches for Runtime Adaptability |
|
|
94 | (1) |
|
|
95 | (1) |
|
|
95 | (4) |
|
Chapter 5 Adaptive Security for Software Systems |
|
|
99 | (32) |
|
|
99 | (1) |
|
|
100 | (1) |
|
5.3 Security Engineering State-of-the-Art |
|
|
101 | (5) |
|
5.3.1 Design-Time Security Engineering |
|
|
101 | (3) |
|
5.3.2 Security Retrofitting |
|
|
104 | (1) |
|
5.3.3 Adaptive Application Security |
|
|
105 | (1) |
|
5.4 Runtime Security Adaptation |
|
|
106 | (8) |
|
5.4.1 Supporting Manual Adaptation Using MDSE@R |
|
|
107 | (2) |
|
5.4.2 Automated Adaptation Using Vulnerability Analysis and Mitigation |
|
|
109 | (5) |
|
|
114 | (4) |
|
5.5.1 Task 1Model Galactic System DescriptionOne-Time Task |
|
|
114 | (1) |
|
5.5.2 Task 2Model Swinburne Security Needs |
|
|
114 | (2) |
|
5.5.3 Task 3System-Security Weaving |
|
|
116 | (1) |
|
5.5.4 Task 4Galactic Security Testing |
|
|
116 | (1) |
|
5.5.5 Task 5Galactic Continuous Vulnerability Analysis and Mitigation |
|
|
117 | (1) |
|
|
118 | (2) |
|
|
120 | (1) |
|
|
120 | (4) |
|
|
120 | (1) |
|
MDSE@R: Model-Driven Security Engineering at Runtime |
|
|
120 | (3) |
|
Vulnerability Analysis and Mitigation |
|
|
123 | (1) |
|
|
124 | (7) |
Part II Analyzing And Evaluating Trade-Offs In Self-Adaptive Software Architectures |
|
|
Chapter 6 Automated Inference Techniques to Assist With the Construction of Self-Adaptive Software |
|
|
131 | (24) |
|
|
131 | (2) |
|
6.2 Motivating Application |
|
|
133 | (1) |
|
6.3 Shortcomings With the State-of-the-Art |
|
|
134 | (2) |
|
|
134 | (1) |
|
|
135 | (1) |
|
6.4 Overview of Inference-Based Techniques |
|
|
136 | (1) |
|
6.5 Learning-Based Approach for Goal Management |
|
|
137 | (6) |
|
|
138 | (1) |
|
|
139 | (1) |
|
6.5.3 Experimental Results |
|
|
140 | (2) |
|
6.5.4 Noteworthy Research Challenges and Risks |
|
|
142 | (1) |
|
6.6 Mining-Based Approach for Change Management |
|
|
143 | (6) |
|
6.6.1 Mining for Runtime Dependencies |
|
|
144 | (1) |
|
6.6.2 Using the Mined Dependencies |
|
|
145 | (1) |
|
6.6.3 Experimental Results |
|
|
146 | (2) |
|
6.6.4 Noteworthy Research Challenges and Risks |
|
|
148 | (1) |
|
|
149 | (1) |
|
|
149 | (1) |
|
|
150 | (1) |
|
|
150 | (5) |
|
Chapter 7 Evaluating Trade-Offs of Human Involvement in Self-Adaptive Systems |
|
|
155 | (26) |
|
|
155 | (1) |
|
|
156 | (2) |
|
|
157 | (1) |
|
7.2.2 Adaptation Mechanisms |
|
|
158 | (1) |
|
|
158 | (2) |
|
7.4 Analyzing Trade-Offs in Self-Adaptation |
|
|
160 | (5) |
|
|
160 | (4) |
|
7.4.2 Adaptation Strategy Selection |
|
|
164 | (1) |
|
7.5 Analyzing Trade-Offs of Involving Humans in Adaptation |
|
|
165 | (3) |
|
|
166 | (1) |
|
7.5.2 Integrating Human and Adaptation Models |
|
|
167 | (1) |
|
7.6 Reasoning About Human-in-the-Loop Adaptation |
|
|
168 | (9) |
|
7.6.1 Model Checking Stochastic Multiplayer Games |
|
|
168 | (1) |
|
|
169 | (4) |
|
|
173 | (4) |
|
|
177 | (1) |
|
|
178 | (1) |
|
|
178 | (3) |
|
Chapter 8 Principled Eliciting and Evaluation of Trade-Offs When Designing Self-Adaptive Systems Architectures |
|
|
181 | (22) |
|
|
181 | (2) |
|
8.2 Requirements for Automated Architecture Design and Analysis |
|
|
183 | (1) |
|
8.3 The DuSE Approach for Automated Architecture Design and Analysis |
|
|
184 | (7) |
|
|
185 | (1) |
|
|
186 | (3) |
|
|
189 | (2) |
|
8.4 Automating the Design and Analysis of Self-Adaptive Systems Architectures |
|
|
191 | (5) |
|
|
194 | (2) |
|
|
196 | (3) |
|
8.6 Conclusions and Future Work |
|
|
199 | (1) |
|
|
200 | (3) |
|
Chapter 9 Analyzing the Architectures of Software-Intensive Ecosystems |
|
|
203 | (20) |
|
|
203 | (2) |
|
9.1.1 The Challenge of "Wickedness" |
|
|
204 | (1) |
|
9.1.2 Analyzing Complementarity Within Ecosystems |
|
|
205 | (1) |
|
9.2 The Metropolis Model and Core-Periphery Structures |
|
|
205 | (2) |
|
9.3 The Challenge to Architecture Analysis |
|
|
207 | (3) |
|
9.3.1 Multisided Interactions |
|
|
209 | (1) |
|
9.4 Extending Architectural Analysis |
|
|
210 | (5) |
|
9.4.1 Eliciting Models of Multisidedness |
|
|
211 | (1) |
|
|
212 | (3) |
|
|
215 | (5) |
|
9.5.1 Example Indirect Scenarios |
|
|
216 | (1) |
|
9.5.2 Performing the Analysis |
|
|
217 | (2) |
|
|
219 | (1) |
|
9.6 Conclusions/Future Research |
|
|
220 | (1) |
|
|
220 | (3) |
|
Chapter 10 Architectural Perspective for Design and Analysis of Scalable Software as a Service Architectures |
|
|
223 | (26) |
|
|
223 | (1) |
|
10.2 Software as a Service Architecture |
|
|
224 | (2) |
|
10.3 Software Architecture Perspective |
|
|
226 | (2) |
|
|
228 | (1) |
|
10.5 Software Architecture Perspective for Scalability |
|
|
229 | (12) |
|
|
230 | (1) |
|
10.5.2 Activities for Applying Scalability Perspective |
|
|
231 | (9) |
|
10.5.3 Problems and Pitfalls |
|
|
240 | (1) |
|
|
241 | (2) |
|
|
243 | (1) |
|
|
243 | (6) |
Part III Managing Trade-Offs In Self-Adaptive Software Architectures |
|
|
Chapter 11 Managing Trade-Offs in Self-Adaptive Software Architectures: A Systematic Mapping Study |
|
|
249 | (50) |
|
|
249 | (2) |
|
|
251 | (1) |
|
11.3 Systematic Mapping Protocol |
|
|
252 | (2) |
|
11.4 Systematic Mapping Process |
|
|
254 | (8) |
|
11.4.1 Step 1: Systematic Mapping Planning |
|
|
254 | (3) |
|
11.4.2 Step 2: Search Execution |
|
|
257 | (1) |
|
11.4.3 Step 3: Selection of Primary Studies |
|
|
258 | (1) |
|
11.4.4 Step 4: Data Extraction and Classification |
|
|
259 | (2) |
|
11.4.5 Step 5: Analysis and Mapping |
|
|
261 | (1) |
|
11.5 Results and Discussions |
|
|
262 | (17) |
|
11.5.1 RQ1. What Are the Studies That Explicitly Addressed Trade-Offs Management for Self-Adaptive Software Architectures? |
|
|
262 | (3) |
|
11.5.2 RQ2. What Are the Types of Research and Contribution Presented in These Studies? |
|
|
265 | (1) |
|
11.5.3 RQ3. What Are the Publication Types of These Studies, and Their Chronological Distribution? Which Research Groups Are Actively Contributing Into This Topic? |
|
|
266 | (3) |
|
11.5.4 RQ4. Which Self-* Properties Have Driven Trade-Offs Management for Self-Adaptive Software Architectures? |
|
|
269 | (1) |
|
11.5.5 RQ5. Which Software Paradigms Have Been Considered in Architectures Trade-Offs Management? |
|
|
270 | (3) |
|
11.5.6 RQ6. Which Quality Attributes Are Investigated in Trade-Offs Management? |
|
|
273 | (1) |
|
11.5.7 RQ7. Which Mechanisms Were Used to Manage Trade-Offs for Self-Adaptive Software Architectures? What Is the Time Dimension of the Trade-Off Management Approaches? |
|
|
274 | (3) |
|
11.5.8 Limitations of the Study |
|
|
277 | (2) |
|
|
279 | (1) |
|
11.7 Challenges and Research Directions |
|
|
279 | (3) |
|
11.8 Conclusions and Future Work |
|
|
282 | (1) |
|
Appendix A Primary Studies |
|
|
283 | (7) |
|
Appendix B Classification and Data Extraction of Primary Studies |
|
|
290 | (3) |
|
|
293 | (6) |
|
Chapter 12 The Many Facets of Mediation: A Requirements-Driven Approach for Trading Off Mediation Solutions |
|
|
299 | (26) |
|
|
299 | (2) |
|
12.2 The Different Perspectives on Mediation |
|
|
301 | (1) |
|
12.3 The Software Architecture Perspective: Mediators as Connectors |
|
|
302 | (2) |
|
12.3.1 Connector Synthesis |
|
|
303 | (1) |
|
12.3.2 Connector Synthesis in Dynamic Environments |
|
|
304 | (1) |
|
|
304 | (1) |
|
12.4 The Middleware Perspective: Mediators as Middleware |
|
|
304 | (5) |
|
12.4.1 Universal Middleware |
|
|
306 | (1) |
|
12.4.2 Middleware Bridges |
|
|
307 | (1) |
|
|
308 | (1) |
|
|
309 | (1) |
|
12.5 The Formal Methods Perspective: Mediators as Controllers |
|
|
309 | (3) |
|
12.5.1 Controller Synthesis Using a Specification of the Composed System |
|
|
310 | (1) |
|
12.5.2 Controller Synthesis Using a Partial Specification |
|
|
311 | (1) |
|
|
312 | (1) |
|
12.6 The Semantic Web Perspective: Mediators as Translators |
|
|
312 | (2) |
|
12.6.1 Semantic Web Services |
|
|
313 | (1) |
|
12.6.2 Semantic Mediation Bus |
|
|
313 | (1) |
|
|
314 | (1) |
|
12.7 Mediator Synthesis as a Service |
|
|
314 | (3) |
|
12.8 Requirements and Mediation |
|
|
317 | (2) |
|
|
319 | (1) |
|
|
320 | (1) |
|
|
320 | (5) |
Part IV Quality Assurance In Self-Adaptive Software Architectures |
|
|
Chapter 13 An Overview on Quality Evaluation of Self-Adaptive Systems |
|
|
325 | (28) |
|
|
325 | (1) |
|
13.2 Evaluation of Self-Adaptive Systems |
|
|
326 | (3) |
|
13.2.1 Presentation of the Available Evaluation Approaches |
|
|
327 | (1) |
|
13.2.2 Selection of the Available Evaluation Approaches |
|
|
328 | (1) |
|
13.3 Evaluation Based on Quality Attributes |
|
|
329 | (5) |
|
13.3.1 Evaluation in Autonomic Systems |
|
|
329 | (2) |
|
13.3.2 Quality-Driven Evaluation of Self-Healing Systems |
|
|
331 | (1) |
|
13.3.3 Quality-Driven Evaluation of Self-Adaptive Systems |
|
|
331 | (2) |
|
|
333 | (1) |
|
13.4 Evaluation Based on Software Metrics |
|
|
334 | (15) |
|
13.4.1 Evaluating the Adaptivity of Computing Systems |
|
|
335 | (2) |
|
13.4.2 Criteria and Metrics for Evaluating Self-Adaptive Systems |
|
|
337 | (9) |
|
13.4.3 Software Adaptability at the Architectural Level |
|
|
346 | (1) |
|
|
346 | (3) |
|
13.5 Trade-Offs in Evaluation of Self-Adaptive Systems |
|
|
349 | (1) |
|
13.6 Conclusions and Further Work |
|
|
350 | (1) |
|
|
351 | (2) |
|
Chapter 14 Identifying and Handling Uncertainties in the Feedback Control Loop |
|
|
353 | (16) |
|
|
353 | (1) |
|
|
354 | (4) |
|
|
355 | (1) |
|
|
356 | (1) |
|
14.2.3 Uncertainty Propagation in the MAPE-K Loop |
|
|
357 | (1) |
|
|
358 | (2) |
|
14.3.1 Identifying Sources of Uncertainty |
|
|
359 | (1) |
|
14.3.2 Handling Uncertainty |
|
|
359 | (1) |
|
14.3.3 Analyzing Propagation of Uncertainty |
|
|
360 | (1) |
|
14.4 Case Study: Identification of Uncertainties |
|
|
360 | (4) |
|
14.4.1 Smartphone Application |
|
|
361 | (1) |
|
14.4.2 Identifying Sources of Uncertainty |
|
|
361 | (3) |
|
|
364 | (1) |
|
|
365 | (1) |
|
|
366 | (3) |
Glossary |
|
369 | (4) |
Author Index |
|
373 | (12) |
Subject Index |
|
385 | |