An Introduction to Self-adaptive Systems: A Contemporary Software Engineering Perspective
- Length: 288 pages
- Edition: 1
- Language: English
- Publisher: Wiley-IEEE Computer Society Pr
- Publication Date: 2020-10-05
- ISBN-10: 1119574943
- ISBN-13: 9781119574941
- Sales Rank: #2580271 (See Top 100 Books)
A concise and practical introduction to the foundations and engineering principles of self-adaptation
Though it has recently gained significant momentum, the topic of self-adaptation remains largely under-addressed in academic and technical literature. This book changes that. Using a systematic and holistic approach, An Introduction to Self-adaptive Systems: A Contemporary Software Engineering Perspective provides readers with an accessible set of basic principles, engineering foundations, and applications of self-adaptation in software-intensive systems.
It places self-adaptation in the context of techniques like uncertainty management, feedback control, online reasoning, and machine learning while acknowledging the growing consensus in the software engineering community that self-adaptation will be a crucial enabling feature in tackling the challenges of new, emerging, and future systems.
The author combines cutting-edge technical research with basic principles and real-world insights to create a practical and strategically effective guide to self-adaptation. He includes features such as:
- An analysis of the foundational engineering principles and applications of self-adaptation in different domains, including the Internet-of-Things, cloud computing, and cyber-physical systems
- End-of-chapter exercises at four different levels of complexity and difficulty
- An accompanying author-hosted website with slides, selected exercises and solutions, models, and code
Perfect for researchers, students, teachers, industry leaders, and practitioners in fields that directly or peripherally involve software engineering, as well as those in academia involved in a class on self-adaptivity, this book belongs on the shelves of anyone with an interest in the future of software and its engineering.
Cover Table of Contents Title Page Copyright Dedication Foreword Acknowledgments Acronyms Introduction 1 Basic Principles of Self‐Adaptation and Conceptual Model 1.1 Principles of Self‐Adaptation 1.2 Other Adaptation Approaches 1.3 Scope of Self‐Adaptation 1.4 Conceptual Model of a Self‐Adaptive System 1.5 A Note on Model Abstractions 1.6 Summary 1.7 Exercises 1.8 Bibliographic Notes 2 Engineering Self‐Adaptive Systems: A Short Tour in Seven Waves 2.1 Overview of the Waves 2.2 Contributions Enabled by the Waves 2.3 Waves Over Time with Selected Work 2.4 Summary 2.5 Bibliographic Notes 3 Internet‐of‐Things Application 3.1 Technical Description 3.2 Uncertainties 3.3 Quality Requirements and Adaptation Problem 3.4 Summary 3.5 Exercises 3.6 Bibliographic Notes 4 Wave I: Automating Tasks 4.1 Autonomic Computing 4.2 Utility Functions 4.3 Essential Maintenance Tasks for Automation 4.4 Primary Functions of Self‐Adaptation 4.5 Software Evolution and Self‐Adaptation 4.6 Summary 4.7 Exercises 4.8 Bibliographic Notes 5 Wave II: Architecture‐based Adaptation 5.1 Rationale for an Architectural Perspective 5.2 Three‐Layer Model for Self‐Adaptive Systems 5.3 Reasoning about Adaptation using an Architectural Model 5.4 Comprehensive Reference Model for Self‐Adaptation 5.5 Summary 5.6 Exercises 5.7 Bibliographic Notes 6 Wave III: Runtime Models 6.1 What is a Runtime Model? 6.2 Causality and Weak Causality 6.3 Motivations for Runtime Models 6.4 Dimensions of Runtime Models 6.5 Principal Strategies for Using Runtime Models 6.6 Summary 6.7 Exercises 6.8 Bibliographic Notes 7 Wave IV: Requirements‐driven Adaptation 7.1 Relaxing Requirements for Self‐Adaptation 7.2 Meta‐Requirements for Self‐Adaptation 7.3 Functional Requirements of Feedback Loops 7.4 Summary 7.5 Exercises 7.6 Bibliographic Notes 8 Wave V: Guarantees Under Uncertainties 8.1 Uncertainties in Self‐Adaptive Systems 8.2 Taming Uncertainty with Formal Techniques 8.3 Exhaustive Verification to Provide Guarantees for Adaptation Goals 8.4 Statistical Verification to Provide Guarantees for Adaptation Goals 8.5 Proactive Decision‐Making using Probabilistic Model Checking 8.6 A Note on Verification and Validation 8.7 Integrated Process to Tame Uncertainty 8.8 Summary 8.9 Exercises 8.10 Bibliographic Notes 9 Wave VI: Control‐based Software Adaptation 9.1 A Brief Introduction to Control Theory 9.2 Automatic Construction of SISO Controllers 9.3 Automatic Construction of MIMO Controllers 9.4 Model Predictive Control 9.5 A Note on Control Guarantees 9.6 Summary 9.7 Exercises 9.8 Bibliographic Notes 10 Wave VII: Learning from Experience 10.1 Keeping Runtime Models Up‐to‐Date Using Learning 10.2 Reducing Large Adaptation Spaces Using Learning 10.3 Learning and Improving Scaling Rules of a Cloud Infrastructure 10.4 Summary 10.5 Exercises 10.6 Bibliographic Notes 11 Maturity of the Field and Open Challenges 11.1 Analysis of the Maturity of the Field 11.2 Open Challenges 11.3 Epilogue Bibliography Index End User License Agreement
Donate to keep this site alive
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.