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.
1. Cover image - p. iv 2. Title page - p. iv 3. Table of Contents - p. iv 4. Copyright - p. iv 5. Contributors - p. xv 6. About the Editors - p. xvii 7. Foreword by David Garlan - p. xix 8. Foreword by Nenad Medvidovic Behold the Golden Age of Software Architecture - p. xxi 9. Foreword by Paris Avgeriou - p. xxv 10. Foreword by Rogério de Lemos - p. xxix 11. Preface - p. xxxi 12. Chapter 1: Managing Trade-Offs in Adaptable Software Architectures - p. xxxvi 13. Part I: Concepts and Models for Self-Adaptive Software Architectures - p. 13 14. Chapter 2: Architecting Software Systems for Runtime Self-Adaptation: Concepts, Models, and Challenges - p. 13 15. Chapter 3: A Classification Framework of Uncertainty in Architecture-Based Self-Adaptive Systems With Multiple Quality Requirements - p. 19 16. Chapter 4: An Architecture Viewpoint for Modeling Dynamically Configurable Software Systems - p. 77 17. Chapter 5: Adaptive Security for Software Systems - p. 97 18. Part II: Analyzing and Evaluating Trade-Offs in Self-Adaptive Software Architectures - p. 127 19. Chapter 6: Automated Inference Techniques to Assist With the Construction of Self-Adaptive Software - p. 127 20. Chapter 7: Evaluating Trade-Offs of Human Involvement in Self-Adaptive Systems - p. 154 21. Chapter 8: Principled Eliciting and Evaluation of Trade-Offs When Designing Self-Adaptive Systems Architectures - p. 180 22. Chapter 9: Analyzing the Architectures of Software-Intensive Ecosystems - p. 202 23. Chapter 10: Architectural Perspective for Design and Analysis of Scalable Software as a Service Architectures - p. 222 24. Part III: Managing Trade-Offs in Self-Adaptive Software Architectures - p. 245 25. Chapter 11: Managing Trade-offs in Self-Adaptive Software Architectures: A Systematic Mapping Study - p. 245 26. Chapter 12: The Many Facets of Mediation: A Requirements-Driven Approach for Trading Off Mediation Solutions - p. 297 27. Part IV: Quality Assurance in Self-Adaptive Software Architectures - p. 322 28. Chapter 13: An Overview on Quality Evaluation of Self-Adaptive Systems - p. 322 29. Chapter 14: Identifying and Handling Uncertainties in the Feedback Control Loop - p. 352 30. Glossary - p. 369 31. Author Index - p. 373 32. Subject Index - p. 385
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.
1. Cover image - p. iv 2. Title page - p. iv 3. Table of Contents - p. iv 4. Copyright - p. iv 5. Contributors - p. xv 6. About the Editors - p. xvii 7. Foreword by David Garlan - p. xix 8. Foreword by Nenad Medvidovic Behold the Golden Age of Software Architecture - p. xxi 9. Foreword by Paris Avgeriou - p. xxv 10. Foreword by Rogério de Lemos - p. xxix 11. Preface - p. xxxi 12. Chapter 1: Managing Trade-Offs in Adaptable Software Architectures - p. xxxvi 13. Part I: Concepts and Models for Self-Adaptive Software Architectures - p. 13 14. Chapter 2: Architecting Software Systems for Runtime Self-Adaptation: Concepts, Models, and Challenges - p. 13 15. Chapter 3: A Classification Framework of Uncertainty in Architecture-Based Self-Adaptive Systems With Multiple Quality Requirements - p. 19 16. Chapter 4: An Architecture Viewpoint for Modeling Dynamically Configurable Software Systems - p. 77 17. Chapter 5: Adaptive Security for Software Systems - p. 97 18. Part II: Analyzing and Evaluating Trade-Offs in Self-Adaptive Software Architectures - p. 127 19. Chapter 6: Automated Inference Techniques to Assist With the Construction of Self-Adaptive Software - p. 127 20. Chapter 7: Evaluating Trade-Offs of Human Involvement in Self-Adaptive Systems - p. 154 21. Chapter 8: Principled Eliciting and Evaluation of Trade-Offs When Designing Self-Adaptive Systems Architectures - p. 180 22. Chapter 9: Analyzing the Architectures of Software-Intensive Ecosystems - p. 202 23. Chapter 10: Architectural Perspective for Design and Analysis of Scalable Software as a Service Architectures - p. 222 24. Part III: Managing Trade-Offs in Self-Adaptive Software Architectures - p. 245 25. Chapter 11: Managing Trade-offs in Self-Adaptive Software Architectures: A Systematic Mapping Study - p. 245 26. Chapter 12: The Many Facets of Mediation: A Requirements-Driven Approach for Trading Off Mediation Solutions - p. 297 27. Part IV: Quality Assurance in Self-Adaptive Software Architectures - p. 322 28. Chapter 13: An Overview on Quality Evaluation of Self-Adaptive Systems - p. 322 29. Chapter 14: Identifying and Handling Uncertainties in the Feedback Control Loop - p. 352 30. Glossary - p. 369 31. Author Index - p. 373 32. Subject Index - p. 385