Managing Trade-offs in Adaptable Software Architectures

Book description

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

Table of contents

  1. Cover image
  2. Title page
  3. Table of Contents
  4. Copyright
  5. Contributors
  6. About the Editors
  7. Foreword by David Garlan
  8. Foreword by Nenad Medvidovic Behold the Golden Age of Software Architecture
  9. Foreword by Paris Avgeriou
  10. Foreword by Rogério de Lemos
  11. Preface
    1. Introduction
    2. Part I: Concepts and Models for Self-Adaptive Software Architectures
    3. Part II: Analyzing and Evaluating Trade-offs in Self-Adaptive Software Architectures
    4. Part III: Managing Trade-offs in Self-Adaptive Software Architectures
    5. Part IV: Quality Assurance in Self-Adaptive Software Architectures
  12. Chapter 1: Managing Trade-Offs in Adaptable Software Architectures
    1. Abstract
    2. 1.1 Introduction
    3. 1.2 Background
    4. 1.3 Trade-Offs in Adaptive Systems Design
    5. 1.4 Runtime Trade-Offs in Self-Adaptive Systems
    6. 1.5 Challenges and the Road Ahead
  13. Part I: Concepts and Models for Self-Adaptive Software Architectures
    1. Chapter 2: Architecting Software Systems for Runtime Self-Adaptation: Concepts, Models, and Challenges
      1. Abstract
      2. 2.1 Introduction
      3. 2.2 Motivation: A Web-Mashup Application
      4. 2.3 Adaptation vs. Self-Adaptation
      5. 2.4 Foundational Concepts for Architecting Self-Adaptive Software
      6. 2.5 Reference Models for Architecting Self-Adaptive Software
      7. 2.6 Major Architectural Challenges in Self-Adaptation
      8. 2.7 Summary
    2. Chapter 3: A Classification Framework of Uncertainty in Architecture-Based Self-Adaptive Systems With Multiple Quality Requirements
      1. Abstract
      2. 3.1 Introduction
      3. 3.2 Study Design
      4. 3.3 Results
      5. 3.4 Discussion
      6. 3.5 Conclusion and Future Work
    3. Chapter 4: An Architecture Viewpoint for Modeling Dynamically Configurable Software Systems
      1. Abstract
      2. 4.1 Introduction
      3. 4.2 Architecture Viewpoints
      4. 4.3 Case Study: DDSCM Systems
      5. 4.4 Metamodel for Runtime Adaptability Viewpoint
      6. 4.5 Runtime Adaptability Viewpoint
      7. 4.6 Case Study—Adaptability View of the SCM Software Architecture
      8. 4.7 Related Work
      9. 4.8 Conclusion
    4. Chapter 5: Adaptive Security for Software Systems
      1. Abstract
      2. 5.1 Introduction
      3. 5.2 Motivation
      4. 5.3 Security Engineering State-of-the-Art
      5. 5.4 Runtime Security Adaptation
      6. 5.5 Usage Example
      7. 5.6 Discussion
      8. 5.7 Chapter Summary
      9. Appendix
  14. Part II: Analyzing and Evaluating Trade-Offs in Self-Adaptive Software Architectures
    1. Chapter 6: Automated Inference Techniques to Assist With the Construction of Self-Adaptive Software
      1. Abstract
      2. Acknowledgments
      3. 6.1 Introduction
      4. 6.2 Motivating Application
      5. 6.3 Shortcomings With the State-of-the-Art
      6. 6.4 Overview of Inference-Based Techniques
      7. 6.5 Learning-Based Approach for Goal Management
      8. 6.6 Mining-Based Approach for Change Management
      9. 6.7 Related Work
      10. 6.8 Conclusion
    2. Chapter 7: Evaluating Trade-Offs of Human Involvement in Self-Adaptive Systems
      1. Abstract
      2. Acknowledgments
      3. 7.1 Introduction
      4. 7.2 Motivating Scenario
      5. 7.3 Related Work
      6. 7.4 Analyzing Trade-Offs in Self-Adaptation
      7. 7.5 Analyzing Trade-Offs of Involving Humans in Adaptation
      8. 7.6 Reasoning About Human-in-the-Loop Adaptation
      9. 7.7 Conclusion
    3. Chapter 8: Principled Eliciting and Evaluation of Trade-Offs When Designing Self-Adaptive Systems Architectures
      1. Abstract
      2. 8.1 Introduction
      3. 8.2 Requirements for Automated Architecture Design and Analysis
      4. 8.3 The DuSE Approach for Automated Architecture Design and Analysis
      5. 8.4 Automating the Design and Analysis of Self-Adaptive Systems Architectures
      6. 8.5 Evaluation
      7. 8.6 Conclusions and Future Work
    4. Chapter 9: Analyzing the Architectures of Software-Intensive Ecosystems
      1. Abstract
      2. 9.1 Introduction
      3. 9.2 The Metropolis Model and Core-Periphery Structures
      4. 9.3 The Challenge to Architecture Analysis
      5. 9.4 Extending Architectural Analysis
      6. 9.5 An Example Analysis
      7. 9.6 Conclusions/Future Research
    5. Chapter 10: Architectural Perspective for Design and Analysis of Scalable Software as a Service Architectures
      1. Abstract
      2. 10.1 Introduction
      3. 10.2 Software as a Service Architecture
      4. 10.3 Software Architecture Perspective
      5. 10.4 Case Study
      6. 10.5 Software Architecture Perspective for Scalability
      7. 10.6 Related Work
      8. 10.7 Conclusion
  15. Part III: Managing Trade-Offs in Self-Adaptive Software Architectures
    1. Chapter 11: Managing Trade-offs in Self-Adaptive Software Architectures: A Systematic Mapping Study
      1. Abstract
      2. 11.1 Introduction
      3. 11.2 Background
      4. 11.3 Systematic Mapping Protocol
      5. 11.4 Systematic Mapping Process
      6. 11.5 Results and Discussions
      7. 11.6 Related Surveys
      8. 11.7 Challenges and Research Directions
      9. 11.8 Conclusions and Future Work
      10. Appendix A Primary Studies
      11. Appendix B Classification and Data Extraction of Primary Studies
    2. Chapter 12: The Many Facets of Mediation: A Requirements-Driven Approach for Trading Off Mediation Solutions
      1. Abstract
      2. Acknowledgments
      3. 12.1 Introduction
      4. 12.2 The Different Perspectives on Mediation
      5. 12.3 The Software Architecture Perspective: Mediators as Connectors
      6. 12.4 The Middleware Perspective: Mediators as Middleware
      7. 12.5 The Formal Methods Perspective: Mediators as Controllers
      8. 12.6 The Semantic Web Perspective: Mediators as Translators
      9. 12.7 Mediator Synthesis as a Service
      10. 12.8 Requirements and Mediation
      11. 12.9 Summary
  16. Part IV: Quality Assurance in Self-Adaptive Software Architectures
    1. Chapter 13: An Overview on Quality Evaluation of Self-Adaptive Systems
      1. Abstract
      2. 13.1 Introduction
      3. 13.2 Evaluation of Self-Adaptive Systems
      4. 13.3 Evaluation Based on Quality Attributes
      5. 13.4 Evaluation Based on Software Metrics
      6. 13.5 Trade-offs in Evaluation of Self-Adaptive Systems
      7. 13.6 Conclusions and Further Work
    2. Chapter 14: Identifying and Handling Uncertainties in the Feedback Control Loop
      1. Abstract
      2. 14.1 Introduction
      3. 14.2 Motivation
      4. 14.3 Methodology
      5. 14.4 Case Study: Identification of Uncertainties
      6. 14.5 Related Work
      7. 14.6 Conclusions
  17. Glossary
  18. Author Index
  19. Subject Index

Product information

  • Title: Managing Trade-offs in Adaptable Software Architectures
  • Author(s): Ivan Mistrik, Nour Ali, Rick Kazman, John Grundy, Bradley Schmerl
  • Release date: August 2016
  • Publisher(s): Morgan Kaufmann
  • ISBN: 9780128028919