Managing Trade-offs in Adaptable Software Architectures.
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...
Clasificación: | Libro Electrónico |
---|---|
Formato: | Electrónico eBook |
Idioma: | Inglés |
Publicado: |
Elsevier Science
2016.
|
Temas: | |
Acceso en línea: | Texto completo (Requiere registro previo con correo institucional) |
Tabla de Contenidos:
- Front Cover
- Managing Trade-offs in Adaptable Software Architectures
- Copyright
- Contents
- Contributors
- About the Editors
- Foreword by David Garlan
- Foreword by Nenad Medvidovic Behold the Golden Age of Software Architecture
- References
- Foreword by Paris Avgeriou
- Foreword by Rogério de Lemos
- Preface
- Introduction
- Part I: Concepts and Models for Self-Adaptive Software Architectures
- Part II: Analyzing and Evaluating Trade-offs in Self-Adaptive Software Architectures
- Part III: Managing Trade-offs in Self-Adaptive Software Architectures
- Part IV: Quality Assurance in Self-Adaptive Software Architectures
- Chapter 1: Managing Trade-Offs in Adaptable Software Architectures
- 1.1. Introduction
- 1.2. Background
- 1.3. Trade-Offs in Adaptive Systems Design
- 1.4. Runtime Trade-Offs in Self-Adaptive Systems
- 1.5. Challenges and the Road Ahead
- 1.5.1. How to Architect for Adaptability?
- 1.5.2. Adaptability in Modern Systems
- 1.5.2.1. Cloud computing
- 1.5.2.2. Service-based adaptation to QoS
- 1.5.2.3. Cyber-physical systems
- References
- Part I: Concepts and Models for Self-Adaptive Software Architectures
- Chapter 2: Architecting Software Systems for Runtime Self-Adaptation: Concepts, Models, and Challenges
- 2.1. Introduction
- 2.2. Motivation: A Web-Mashup Application
- 2.3. Adaptation vs. Self-Adaptation
- 2.3.1. Basic Definitions
- 2.3.2. Architecting Software for Adaptation and Self-Adaptation
- 2.3.2.1. Architecting for adaptation
- 2.3.2.2. Architecting for self-adaptation
- 2.3.2.3. Implications of self-adaptation
- 2.4. Foundational Concepts for Architecting Self-Adaptive Software
- 2.4.1. Fundamental Dimensions of Self-Adaptive Software
- 2.4.2. Self-Adaptation Goals
- 2.4.2.1. Self-properties as self-adaptation goals.
- 2.4.2.2. Nonfunctional requirements as self-adaptation goals
- 2.4.3. Self-Adaptation Fundamental Properties
- 2.4.4. Sensors and Effectors
- 2.4.5. Uncertainty and Dynamic Context
- 2.5. Reference Models for Architecting Self-Adaptive Software
- 2.5.1. The Feedback Loop Model of Control Theory
- 2.5.2. The MAPE-K Model
- 2.5.3. Kramer and Magees Self-Management Reference Model
- 2.5.4. The DYNAMICO Reference Model
- 2.5.4.1. The control objectives feedback loop (CO-FL)
- 2.5.4.2. The adaptation feedback loop (A-FL)
- 2.5.4.3. The context monitoring feedback loop (M-FL)
- 2.5.5. The Autonomic Computing Reference Architecture (ACRA)
- 2.6. Major Architectural Challenges in Self-Adaptation
- 2.7. Summary
- References
- Chapter 3: A Classification Framework of Uncertainty in Architecture-Based Self-Adaptive Systems With Multiple Quality Re...
- 3.1. Introduction
- 3.1.1. Background
- 3.1.1.1. Self-adaptive systems
- 3.1.1.2. Architecture-based self-adaptation
- 3.1.1.3. Architecture-based self-adaptive systems with multiple quality requirements
- 3.1.1.4. Uncertainty in architecture-based self-adaptive systems
- 3.1.2. Related Work
- 3.2. Study Design
- 3.2.1. Research Questions
- 3.2.2. Search Strategy
- 3.2.2.1. Search scope and automatic search
- 3.2.2.2. Overview of search process
- 3.2.2.3. Refining the search results
- 3.2.2.3.1. Inclusion criteria
- 3.2.2.3.2. Exclusion criteria
- 3.2.3. Data Extraction
- 3.2.4. Data Items
- 3.2.5. Quality Assessment of Selected Papers
- 3.3. Results
- 3.3.1. Quality of Selected Papers
- 3.3.2. RQ1: What Are the Current Architecture-Based Approaches Tackling Uncertainty in Self-Adaptive Systems With Multipl...
- 3.3.3. RQ2: What Are the Different Uncertainty Dimensions Which Are Explored by These Approaches?.
- 3.3.3.1. RQ2.a: What Are the Options for These Uncertainty Dimensions?
- 3.3.4. RQ3: What Sources of Uncertainties Are Addressed by These Approaches?
- 3.3.5. RQ4: How Are the Current Approaches Classified According to the Proposed Uncertainty Classification Framework?
- 3.4. Discussion
- 3.4.1. Analysis of Derived Sources of Uncertainty Based on Uncertainty Dimensions
- 3.4.1.1. Environment uncertainty
- 3.4.1.2. Goals uncertainty
- 3.4.1.3. Adaptation functions uncertainty
- 3.4.1.4. Model uncertainty
- 3.4.2. Main Findings and Implications for Researchers
- 3.4.2.1. Model uncertainty is investigated in both design and runtime
- 3.4.2.2. Uncertainty is often explored at scenario level regardless of emerging time
- 3.4.2.3. Uncertainty starting to get acknowledged in both design and runtime
- 3.4.2.4. Current approaches mainly focus on tackling uncertainty due to variability through approaches in both design and...
- 3.4.2.5. Most commonly addressed source of uncertainty is dynamicity of environment
- 3.4.2.6. Future goal changes is the second most important uncertainty source
- 3.4.3. Limitations of the Review and Threats to Validity
- 3.4.3.1. Bias
- 3.4.3.2. Domain of study
- 3.5. Conclusion and Future Work
- Appendix
- References
- Chapter 4: An Architecture Viewpoint for Modeling Dynamically Configurable Software Systems
- 4.1. Introduction
- 4.2. Architecture Viewpoints
- 4.3. Case Study: DDSCM Systems
- 4.4. Metamodel for Runtime Adaptability Viewpoint
- 4.5. Runtime Adaptability Viewpoint
- 4.5.1. Method for Applying the Adaptability Viewpoint
- 4.6. Case Study-Adaptability View of the SCM Software Architecture
- 4.7. Related Work
- 4.7.1. Quality Concerns in Software Architecture Modeling
- 4.7.2. Architectural Approaches for Runtime Adaptability
- 4.8. Conclusion
- References.
- Chapter 5: Adaptive Security for Software Systems
- 5.1. Introduction
- 5.2. Motivation
- 5.3. Security Engineering State-of-the-Art
- 5.3.1. Design-Time Security Engineering
- 5.3.1.1. Early-stage security engineering
- 5.3.1.2. Later-stage security engineering
- 5.3.2. Security Retrofitting
- 5.3.3. Adaptive Application Security
- 5.4. Runtime Security Adaptation
- 5.4.1. Supporting Manual Adaptation Using MDSE@R
- 5.4.2. Automated Adaptation Using Vulnerability Analysis and Mitigation
- 5.4.2.1. OCL-based vulnerability analyzer
- 5.4.2.2. Vulnerability mitigation
- 5.4.2.3. Vulnerability mitigation component
- 5.5. Usage Example
- 5.5.1. Task 1-Model Galactic System Description-One-Time Task
- 5.5.2. Task 2-Model Swinburne Security Needs
- 5.5.3. Task 3-System-Security Weaving
- 5.5.4. Task 4-Galactic Security Testing
- 5.5.5. Task 5-Galactic Continuous Vulnerability Analysis and Mitigation
- 5.6. Discussion
- 5.7. Chapter Summary
- Appendix
- Platform Implementation
- MDSE@R: Model-Driven Security Engineering at Runtime
- Vulnerability Analysis and Mitigation
- References
- 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
- 6.1. Introduction
- 6.2. Motivating Application
- 6.3. Shortcomings With the State-of-the-Art
- 6.3.1. Goal Management
- 6.3.2. Change Management
- 6.4. Overview of Inference-Based Techniques
- 6.5. Learning-Based Approach for Goal Management
- 6.5.1. Learning Cycle
- 6.5.2. Adaptation Cycle
- 6.5.3. Experimental Results
- 6.5.4. Noteworthy Research Challenges and Risks
- 6.5.4.1. Extraneous and confounding variables
- 6.5.4.2. Overhead of monitoring and learning
- 6.5.4.3. Adaptation in the presence of uncertainty.
- 6.5.4.4. Structure of learned model
- 6.6. Mining-Based Approach for Change Management
- 6.6.1. Mining for Runtime Dependencies
- 6.6.2. Using the Mined Dependencies
- 6.6.3. Experimental Results
- 6.6.4. Noteworthy Research Challenges and Risks
- 6.6.4.1. Long-living transactions and high workload
- 6.6.4.2. Overhead of mining and updating predictions
- 6.6.4.3. Transaction coverage and other forms of mining
- 6.7. Related Work
- 6.8. Conclusion
- References
- Chapter 7: Evaluating Trade-Offs of Human Involvement in Self-Adaptive Systems
- 7.1. Introduction
- 7.2. Motivating Scenario
- 7.2.1. System Objectives
- 7.2.2. Adaptation Mechanisms
- 7.3. Related Work
- 7.4. Analyzing Trade-Offs in Self-Adaptation
- 7.4.1. Adaptation Model
- 7.4.1.1. Tactic
- 7.4.1.2. Strategy
- 7.4.1.3. Utility profile
- 7.4.2. Adaptation Strategy Selection
- 7.5. Analyzing Trade-Offs of Involving Humans in Adaptation
- 7.5.1. Human Model
- 7.5.1.1. Opportunity
- 7.5.1.2. Willingness
- 7.5.1.3. Capability
- 7.5.2. Integrating Human and Adaptation Models
- 7.5.2.1. Tactics
- 7.5.2.2. Strategies
- 7.6. Reasoning About Human-in-the-Loop Adaptation
- 7.6.1. Model Checking Stochastic Multiplayer Games
- 7.6.2. Formal Model
- 7.6.2.1. Player definition
- 7.6.2.2. Environment
- 7.6.2.3. Human model
- 7.6.2.4. System
- 7.6.2.5. Adaptation logic
- 7.6.2.6. Utility profile
- 7.6.3. Analysis
- 7.6.3.1. Strategy utility
- 7.6.3.2. Strategy selection
- 7.7. Conclusion
- References
- Chapter 8: Principled Eliciting and Evaluation of Trade-Offs When Designing Self-Adaptive Systems Architectures
- 8.1. Introduction
- 8.2. Requirements for Automated Architecture Design and Analysis
- 8.3. The DuSE Approach for Automated Architecture Design and Analysis
- 8.3.1. The Rationale
- 8.3.2. The Approach
- 8.3.3. Tool Support.