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. Managing Trade-Offs in Adaptable Software ArchitecturesPart I: Concepts and Models for Self-Adaptive Software Architectures2. Architecting Software Systems for Runtime Self-Adaptation: Concepts, Models, and Challenges3. A Classification Framework of Uncertainty in Architecture-Based Self-Adaptive Systems With Multiple Quality Requirements4. An Architecture Viewpoint for Modeling Dynamically Configurable Software Systems5. Adaptive Security for Software SystemsPart II: Analyzing and Evaluating Trade-Offs in Self-Adaptive Software Architectures6. Automated Inference Techniques to Assist With the Construction of Self-Adaptive Software7. Evaluating Trade-Offs of Human Involvement in Self-Adaptive Systems8. Principled Eliciting and Evaluation of Trade-Offs When Designing Self-Adaptive Systems Architectures9. Analyzing the Architectures of Software-Intensive Ecosystems10. Architectural Perspective for Design and Analysis of Scalable Software as a Service ArchitecturesPart III: Managing Trade-Offs in Self-Adaptive Software Architectures11. Managing Trade-offs in Self-Adaptive Software Architectures: A Systematic Mapping Study12. The Many Facets of Mediation: A Requirements-Driven Approach for Trading Off Mediation SolutionsPart IV: Quality Assurance in Self-Adaptive Software Architectures13. An Overview on Quality Evaluation of Self-Adaptive Systems14. Identifying and Handling Uncertainties in the Feedback Control Loop



