Atjaunināt sīkdatņu piekrišanu

Managing Trade-offs in Adaptable Software Architectures [Mīkstie vāki]

Edited by (Senior Lecturer, University of Brighton, UK), Edited by , Edited by (Professor at the University of Hawaii and a Principal Researcher at the Software Engineering, Institute of Carnegie Mellon), Edited by (Systems Engineering Researcher/Consultant, Heidelberg, Germany), Edited by
  • Formāts: Paperback / softback, 430 pages, height x width: 235x191 mm, weight: 910 g
  • Izdošanas datums: 11-Aug-2016
  • Izdevniecība: Morgan Kaufmann Publishers In
  • ISBN-10: 0128028556
  • ISBN-13: 9780128028551
Citas grāmatas par šo tēmu:
  • Mīkstie vāki
  • Cena: 110,64 €
  • Grāmatu piegādes laiks ir 3-4 nedēļas, ja grāmata ir uz vietas izdevniecības noliktavā. Ja izdevējam nepieciešams publicēt jaunu tirāžu, grāmatas piegāde var aizkavēties.
  • Daudzums:
  • Ielikt grozā
  • Piegādes laiks - 4-6 nedēļas
  • Pievienot vēlmju sarakstam
  • Formāts: Paperback / softback, 430 pages, height x width: 235x191 mm, weight: 910 g
  • Izdošanas datums: 11-Aug-2016
  • Izdevniecība: Morgan Kaufmann Publishers In
  • ISBN-10: 0128028556
  • ISBN-13: 9780128028551
Citas grāmatas par šo tēmu:

Managing Trade-Offs in Adaptable Software Architectures explores the latest research on adapting large complex systems to changing requirements. To be able to adapt a system, engineers must evaluate different quality attributes, including trade-offs to balance functional and quality requirements to maintain a well-functioning system throughout the lifetime of the system.

This comprehensive resource brings together research focusing on how to manage trade-offs and architect adaptive systems in different business contexts. It presents state-of-the-art techniques, methodologies, tools, best practices, and guidelines for developing adaptive systems, and offers guidance for future software engineering research and practice.

Each contributed chapter considers the practical application of the topic through case studies, experiments, empirical validation, or systematic comparisons with other approaches already in practice. Topics of interest include, but are not limited to, how to architect a system for adaptability, software architecture for self-adaptive systems, understanding and balancing the trade-offs involved, architectural patterns for self-adaptive systems, how quality attributes are exhibited by the architecture of the system, how to connect the quality of a software architecture to system architecture or other system considerations, and more.

  • Explains software architectural processes and metrics supporting highly adaptive and complex engineering
  • Covers validation, verification, security, and quality assurance in system design
  • Discusses domain-specific software engineering issues for cloud-based, mobile, context-sensitive, cyber-physical, ultra-large-scale/internet-scale systems, mash-up, and autonomic systems
  • Includes practical case studies of complex, adaptive, and context-critical systems

Recenzijas

Contributions Include:  · Norha M. Villegas (Universidad Icesi, Colombia) discusses architecting software systems for runtime self-adaptation: concepts, models, instrumentation and challenges  · Mohamed Almorsy Abdelrazek (Deakin University, Australia) explores adaptive security for software systems  · Sam Malek (University of California, Irvine, USA) delves into automated inference techniques to assist with construction of adaptable software architectures  · Javier Camara (Carnegie Mellon University, USA) evaluates trade-offs of human involvement in self-adaptive systems  · Maria Salama (University of Birmingham, UK) presents a systematic mapping study on managing trade-offs in self-adaptive architectures  · Amel Bennaceur (The Open University, UK) examines the many facets of mediation: a requirements-driven approach for trading-off mediation solutions  · Claudia Raibulet (University of Milano-Bicocca, Italy) proposes an overview of quality evaluation mechanisms for self-adaptive systems   Plus Forewords from:    · David Garlan (Carnegie Mellon University, USA)  · Nenad Medvidovic (University of Southern California, USA) on the Golden Age of software architecture, that continues on in finding solutions to the problem of how quality trade-offs are managed in adaptable software architectures.  · Paris Avgeriou (University of Groningen, Netherlands) on the current problems and potential solutions in managing tradeoffs of quality attributes in self-adaptive architectures  · Rogerio De Lemos (University of Kent, UK)  

And much more...

Papildus informācija

This comprehensive book brings together research focusing on how to manage trade-offs to help engineers architect adaptive systems in different business contexts, including state-of-the-art techniques, methodologies, tools, best practices, guidelines and guidance on future software engineering research and practice.
Contributors xv
About the Editors xvii
Foreword xix
David Garlan
Foreword xxi
Nenad Medvidovic
Foreword xxv
Paris Avgeriou
Foreword xxix
Rogerio de Lemos
Preface xxxi
Chapter 1 Managing Trade-Offs in Adaptable Software Architectures
1(16)
1.1 Introduction
1(1)
1.2 Background
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)
References
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)
2.1 Introduction
17(1)
2.2 Motivation: A Web-Mashup Application
18(2)
2.3 Adaptation vs. Self-Adaptation
20(5)
2.3.1 Basic Definitions
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)
2.5.2 The MAPE-K Model
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)
2.7 Summary
41(1)
References
41(4)
Chapter 3 A Classification Framework of Uncertainty in Architecture-Based Self-Adaptive Systems With Multiple Quality Requirements
45(34)
3.1 Introduction
45(4)
3.1.1 Background
46(2)
3.1.2 Related Work
48(1)
3.2 Study Design
49(6)
3.2.1 Research Questions
49(1)
3.2.2 Search Strategy
50(3)
3.2.3 Data Extraction
53(1)
3.2.4 Data Items
54(1)
3.2.5 Quality Assessment of Selected Papers
55(1)
3.3 Results
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)
3.4 Discussion
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)
Appendix
71(4)
References
75(4)
Chapter 4 An Architecture Viewpoint for Modeling Dynamically Configurable Software Systems
79(20)
4.1 Introduction
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 Study—Adaptability View of the SCM Software Architecture
90(3)
4.7 Related Work
93(2)
4.7.1 Quality Concerns in Software Architecture Modeling
93(1)
4.7.2 Architectural Approaches for Runtime Adaptability
94(1)
4.8 Conclusion
95(1)
References
95(4)
Chapter 5 Adaptive Security for Software Systems
99(32)
5.1 Introduction
99(1)
5.2 Motivation
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)
5.5 Usage Example
114(4)
5.5.1 Task 1—Model Galactic System Description—One-Time Task
114(1)
5.5.2 Task 2—Model Swinburne Security Needs
114(2)
5.5.3 Task 3—System-Security Weaving
116(1)
5.5.4 Task 4—Galactic Security Testing
116(1)
5.5.5 Task 5—Galactic Continuous Vulnerability Analysis and Mitigation
117(1)
5.6 Discussion
118(2)
5.7
Chapter Summary
120(1)
Appendix
120(4)
Platform Implementation
120(1)
MDSE@R: Model-Driven Security Engineering at Runtime
120(3)
Vulnerability Analysis and Mitigation
123(1)
References
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)
6.1 Introduction
131(2)
6.2 Motivating Application
133(1)
6.3 Shortcomings With the State-of-the-Art
134(2)
6.3.1 Goal Management
134(1)
6.3.2 Change Management
135(1)
6.4 Overview of Inference-Based Techniques
136(1)
6.5 Learning-Based Approach for Goal Management
137(6)
6.5.1 Learning Cycle
138(1)
6.5.2 Adaptation Cycle
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)
6.7 Related Work
149(1)
6.8 Conclusion
149(1)
Acknowledgment
150(1)
References
150(5)
Chapter 7 Evaluating Trade-Offs of Human Involvement in Self-Adaptive Systems
155(26)
7.1 Introduction
155(1)
7.2 Motivating Scenario
156(2)
7.2.1 System Objectives
157(1)
7.2.2 Adaptation Mechanisms
158(1)
7.3 Related Work
158(2)
7.4 Analyzing Trade-Offs in Self-Adaptation
160(5)
7.4.1 Adaptation Model
160(4)
7.4.2 Adaptation Strategy Selection
164(1)
7.5 Analyzing Trade-Offs of Involving Humans in Adaptation
165(3)
7.5.1 Human Model
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)
7.6.2 Formal Model
169(4)
7.6.3 Analysis
173(4)
7.7 Conclusion
177(1)
Acknowledgment
178(1)
References
178(3)
Chapter 8 Principled Eliciting and Evaluation of Trade-Offs When Designing Self-Adaptive Systems Architectures
181(22)
8.1 Introduction
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)
8.3.1 The Rationale
185(1)
8.3.2 The Approach
186(3)
8.3.3 Tool Support
189(2)
8.4 Automating the Design and Analysis of Self-Adaptive Systems Architectures
191(5)
8.4.1 Running Examples
194(2)
8.5 Evaluation
196(3)
8.6 Conclusions and Future Work
199(1)
References
200(3)
Chapter 9 Analyzing the Architectures of Software-Intensive Ecosystems
203(20)
9.1 Introduction
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)
9.4.2 Multisided ATAM
212(3)
9.5 An Example Analysis
215(5)
9.5.1 Example Indirect Scenarios
216(1)
9.5.2 Performing the Analysis
217(2)
9.5.3 Discussion
219(1)
9.6 Conclusions/Future Research
220(1)
References
220(3)
Chapter 10 Architectural Perspective for Design and Analysis of Scalable Software as a Service Architectures
223(26)
10.1 Introduction
223(1)
10.2 Software as a Service Architecture
224(2)
10.3 Software Architecture Perspective
226(2)
10.4 Case Study
228(1)
10.5 Software Architecture Perspective for Scalability
229(12)
10.5.1 Concerns
230(1)
10.5.2 Activities for Applying Scalability Perspective
231(9)
10.5.3 Problems and Pitfalls
240(1)
10.6 Related Work
241(2)
10.7 Conclusion
243(1)
References
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)
11.1 Introduction
249(2)
11.2 Background
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)
11.6 Related Surveys
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)
References
293(6)
Chapter 12 The Many Facets of Mediation: A Requirements-Driven Approach for Trading Off Mediation Solutions
299(26)
12.1 Introduction
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)
12.3.3 Analysis
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)
12.4.3 Service Buses
308(1)
12.4.4 Analysis
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)
12.5.3 Analysis
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)
12.6.3 Analysis
314(1)
12.7 Mediator Synthesis as a Service
314(3)
12.8 Requirements and Mediation
317(2)
12.9 Summary
319(1)
Acknowledgments
320(1)
References
320(5)
Part IV Quality Assurance In Self-Adaptive Software Architectures
Chapter 13 An Overview on Quality Evaluation of Self-Adaptive Systems
325(28)
13.1 Introduction
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)
13.3.4 Findings
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)
13.4.4 Findings
346(3)
13.5 Trade-Offs in Evaluation of Self-Adaptive Systems
349(1)
13.6 Conclusions and Further Work
350(1)
References
351(2)
Chapter 14 Identifying and Handling Uncertainties in the Feedback Control Loop
353(16)
14.1 Introduction
353(1)
14.2 Motivation
354(4)
14.2.1 Feedback Loop
355(1)
14.2.2 Uncertainty
356(1)
14.2.3 Uncertainty Propagation in the MAPE-K Loop
357(1)
14.3 Methodology
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)
14.5 Related Work
364(1)
14.6 Conclusions
365(1)
References
366(3)
Glossary 369(4)
Author Index 373(12)
Subject Index 385
Ivan Mistrik is a computer scientist who is interested in system and software engineering (SE/SWE) and in system and software architecture (SA/SWA), in particular: life cycle system/software engineering, requirements engineering, relating software requirements and architectures, knowledge management in software development, rationale-based software development, aligning enterprise/system/software architectures, and collaborative system/software engineering. He has more than forty years experience in the field of computer systems engineering as an information systems developer, R&D leader, SE/SA research analyst, educator in computer sciences, and ICT management consultant.

In the past 40 years, he has been primarily working at various R&D institutions and has done consulting on a variety of large international projects sponsored by ESA, EU, NASA, NATO, and UN. He has also taught university-level computer sciences courses in software engineering, software architecture, distributed information systems, and human-computer interaction. He is the author or co-author of more than 80 articles and papers in international journals, conferences, books and workshops, most recently a chapter Capture of Software Requirements and Rationale through Collaborative Software Development, a paper Knowledge Management in the Global Software Engineering Environment, and a paper Architectural Knowledge Management in Global Software Development.

He has written a number of editorials and prefaces, most recently for the book on Aligning Enterprise, System, and Software Architecture and the book on Agile Software Architecture. He has also written over 120 technical reports and presented over 70 scientific/technical talks. He has served in many program committees and panels of reputable international conferences and organized a number of scientific workshops, most recently two workshops on Knowledge Engineering in Global Software and Development at International Conference on Global Software Engineering 2009 and 2010 and IEEE International Workshop on the Future of Software Engineering for/in the Cloud (FoSEC) held in conjunction with IEEE Cloud 2011.He has been the guest-editor of IEE Proceedings Software: A special Issue on Relating Software Requirements and Architectures published by IEE in 2005 and the lead-editor of the book Rationale Management in Software Engineering published by Springer in 2006. He has been the co-author of the book Rationale-Based Software Engineering published by Springer in May 2008. He has been the lead-editor of the book Collaborative Software Engineering published by Springer in 2010, the book on Relating Software Requirements and Architectures published by Springer in 2011 and the lead-editor of the book on Aligning Enterprise, System, and Software Architectures published by IGI Global in 2012. He was the lead-editor of the Expert Systems Special Issue on Knowledge Engineering in Global Software Development and the co-editor of the JSS Special Issue on the Future of Software Engineering for/in the Cloud, both published in 2013. He was the co-editor for the book on Agile Software Architecture published in 2013. Currently, he is the lead-editor for the book on Economics-driven Software Architecture to be published in 2014.

Nour Ali is a Senior Lecturer at the University of Brighton since December, 2012. She holds a PhD in Software Engineering from the Polytechnic University of Valencia-Spain for her work in Ambients in Aspect-Oriented Software Architecture. Her research area encompasses service oriented architecture, software architecture, model driven engineering and mobile systems. In 2014, the University of Brighton have awarded her a Rising Stars project in Service Oriented Architecture Recovery and Consistency. Rick Kazman is a Professor at the University of Hawaii and a Principal Researcher at the Software Engineering Institute of Carnegie Mellon University. His primary research interests are software architecture, design and analysis tools, software visualization, and software engineering economics. He also has interests in human-computer interaction and information retrieval. Kazman has created several highly influential methods and tools for architecture analysis, including the SAAM (Software Architecture Analysis Method), the ATAM (Architecture Tradeoff Analysis Method), the CBAM (Cost-Benefit Analysis Method) and the Dali architecture reverse engineering tool. John Grundy is Professor of Software Engineering, Dean of Software and Electrical Engineering and Director of the Centre for Computing and Engineering Software Systems at the Swinburne University of Technology. Previously he was Professor of Software Engineering and Head of Department for Electrical and Computer Engineering at the University of Auckland, New Zealand. He is Assistant Editor in Chief of IEEE Transactions on Software Engineering, and Associate Editor for IEEE Software and Automated Software Engineering. He is on the Steering Committee of the IEEE/ACM International Conference on Automated Software Engineering. Bradley Schmerl is a Senior Systems Scientist in the School of Computer Science at Carnegie Mellon University, USA. He has been involved in research in self-adaptive systems for over 20 years, starting with his Ph.D. at Flinders University in South Australia, which investigated using configuration management techniques to manage dynamically changing systems. He was a Lecturer at Flinders University and an Assistant Professor at Clemson University in South Carolina before joining CMU in 2000. At CMU he has been involved in research using software architecture models as a basis for reasoning about self-adapting systems, including using utility theory to select appropriate strategies that balance multiple quality and business priorities.