Cargando…

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...

Descripción completa

Detalles Bibliográficos
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.