{"product_id":"an-introduction-to-self-adaptive-systems-a-contemporary-software-engineering-perspective-hardback-9781119574941","title":"An Introduction to Self-adaptive Systems; A Contemporary Software Engineering Perspective (Hardback) 9781119574941","description":"\u003cfont face=\"Georgia\"\u003e\r\n\u003cp\u003e\u003cfont size=\"6\"\u003eAn Introduction to Self-adaptive Systems\u003c\/font\u003e\u003cbr\u003e\r\n\u003cfont size=\"5\"\u003eA Contemporary Software Engineering Perspective\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\r\n\r\n\r\n\u003cp\u003e\u003cfont size=\"4\"\u003eDanny Weyns (Author)\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e9781119574941, Wiley\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003eHardback, published 16 October 2020\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e288 pages\u003cbr\u003e24.4 x 17 x 2.1 cm, 0.652 kg\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\r\n\r\n\r\n\r\n\u003cp align=\"justify\"\u003e\u003cstrong\u003e\u003cfont size=\"3\"\u003e\u003cp\u003e\u003cb\u003eA concise and practical introduction to the foundations and engineering principles of self-adaptation\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThough 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, \u003ci\u003eAn Introduction to Self-adaptive Systems: A Contemporary Software Engineering Perspective\u003c\/i\u003e provides readers with an accessible set of basic principles, engineering foundations, and applications of self-adaptation in software-intensive systems.\u003c\/p\u003e \u003cp\u003eIt 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.\u003c\/p\u003e \u003cp\u003eThe 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:\u003c\/p\u003e \u003cul\u003e \u003cli\u003eAn 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\u003c\/li\u003e \u003cli\u003eEnd-of-chapter exercises at four different levels of complexity and difficulty\u003c\/li\u003e \u003cli\u003eAn accompanying author-hosted website with slides, selected exercises and solutions, models, and code\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003ePerfect 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.\u003c\/p\u003e\u003c\/font\u003e\u003c\/strong\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e\u003cp\u003eForeword xi\u003c\/p\u003e \u003cp\u003eAcknowledgments xv\u003c\/p\u003e \u003cp\u003eAcronyms xvii\u003c\/p\u003e \u003cp\u003eIntroduction xix\u003c\/p\u003e \u003cp\u003e\u003cb\u003e1 Basic Principles of Self-Adaptation and Conceptual Model \u003c\/b\u003e\u003cb\u003e1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e1.1 Principles of Self-Adaptation 2\u003c\/p\u003e \u003cp\u003e1.2 Other Adaptation Approaches 4\u003c\/p\u003e \u003cp\u003e1.3 Scope of Self-Adaptation 5\u003c\/p\u003e \u003cp\u003e1.4 Conceptual Model of a Self-Adaptive System 5\u003c\/p\u003e \u003cp\u003e1.4.1 Environment 5\u003c\/p\u003e \u003cp\u003e1.4.2 Managed System 7\u003c\/p\u003e \u003cp\u003e1.4.3 Adaptation Goals 8\u003c\/p\u003e \u003cp\u003e1.4.4 Feedback Loop 8\u003c\/p\u003e \u003cp\u003e1.4.5 Conceptual Model Applied 10\u003c\/p\u003e \u003cp\u003e1.5 A Note on Model Abstractions 11\u003c\/p\u003e \u003cp\u003e1.6 Summary 11\u003c\/p\u003e \u003cp\u003e1.7 Exercises 12\u003c\/p\u003e \u003cp\u003e1.8 Bibliographic Notes 14\u003c\/p\u003e \u003cp\u003e\u003cb\u003e2 Engineering Self-Adaptive Systems: A Short Tour in Seven Waves \u003c\/b\u003e\u003cb\u003e17\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e2.1 Overview of the Waves 18\u003c\/p\u003e \u003cp\u003e2.2 Contributions Enabled by the Waves 20\u003c\/p\u003e \u003cp\u003e2.3 Waves Over Time with Selected Work 20\u003c\/p\u003e \u003cp\u003e2.4 Summary 22\u003c\/p\u003e \u003cp\u003e2.5 Bibliographic Notes 23\u003c\/p\u003e \u003cp\u003e\u003cb\u003e3 Internet-of-Things Application \u003c\/b\u003e\u003cb\u003e25\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e3.1 Technical Description 25\u003c\/p\u003e \u003cp\u003e3.2 Uncertainties 28\u003c\/p\u003e \u003cp\u003e3.3 Quality Requirements and Adaptation Problem 29\u003c\/p\u003e \u003cp\u003e3.4 Summary 29\u003c\/p\u003e \u003cp\u003e3.5 Exercises 30\u003c\/p\u003e \u003cp\u003e3.6 Bibliographic Notes 31\u003c\/p\u003e \u003cp\u003e\u003cb\u003e4 Wave I: Automating Tasks \u003c\/b\u003e\u003cb\u003e33\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e4.1 Autonomic Computing 34\u003c\/p\u003e \u003cp\u003e4.2 Utility Functions 35\u003c\/p\u003e \u003cp\u003e4.3 Essential Maintenance Tasks for Automation 37\u003c\/p\u003e \u003cp\u003e4.3.1 Self-Optimization 37\u003c\/p\u003e \u003cp\u003e4.3.2 Self-Healing 38\u003c\/p\u003e \u003cp\u003e4.3.3 Self-Protection 40\u003c\/p\u003e \u003cp\u003e4.3.4 Self-Configuration 42\u003c\/p\u003e \u003cp\u003e4.4 Primary Functions of Self-Adaptation 43\u003c\/p\u003e \u003cp\u003e4.4.1 Knowledge 44\u003c\/p\u003e \u003cp\u003e4.4.2 Monitor 46\u003c\/p\u003e \u003cp\u003e4.4.3 Analyzer 47\u003c\/p\u003e \u003cp\u003e4.4.4 Planner 49\u003c\/p\u003e \u003cp\u003e4.4.5 Executor 51\u003c\/p\u003e \u003cp\u003e4.5 Software Evolution and Self-Adaptation 52\u003c\/p\u003e \u003cp\u003e4.5.1 Software Evolution Management 53\u003c\/p\u003e \u003cp\u003e4.5.2 Self-Adaptation Management 54\u003c\/p\u003e \u003cp\u003e4.5.3 Integrating Software Evolution and Self-Adaptation 55\u003c\/p\u003e \u003cp\u003e4.6 Summary 56\u003c\/p\u003e \u003cp\u003e4.7 Exercises 59\u003c\/p\u003e \u003cp\u003e4.8 Bibliographic Notes 60\u003c\/p\u003e \u003cp\u003e\u003cb\u003e5 Wave II: Architecture-based Adaptation \u003c\/b\u003e\u003cb\u003e63\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e5.1 Rationale for an Architectural Perspective 64\u003c\/p\u003e \u003cp\u003e5.2 Three-Layer Model for Self-Adaptive Systems 66\u003c\/p\u003e \u003cp\u003e5.2.1 Component Control 67\u003c\/p\u003e \u003cp\u003e5.2.2 Change Management 67\u003c\/p\u003e \u003cp\u003e5.2.3 Goal Management 68\u003c\/p\u003e \u003cp\u003e5.2.4 Three-Layer Model Applied to DeltaIoT 68\u003c\/p\u003e \u003cp\u003e5.2.5 Mapping Between the Three-Layer Model and the Conceptual Model for Self-Adaptation 70\u003c\/p\u003e \u003cp\u003e5.3 Reasoning about Adaptation using an Architectural Model 70\u003c\/p\u003e \u003cp\u003e5.3.1 Runtime Architecture of Architecture-based Adaptation 71\u003c\/p\u003e \u003cp\u003e5.3.2 Architecture-based Adaptation of the Web-based Client-Server System 73\u003c\/p\u003e \u003cp\u003e5.4 Comprehensive Reference Model for Self-Adaptation 75\u003c\/p\u003e \u003cp\u003e5.4.1 Reflection Perspective on Self-Adaptation 76\u003c\/p\u003e \u003cp\u003e5.4.2 MAPE-K Perspective on Self-Adaptation 78\u003c\/p\u003e \u003cp\u003e5.4.3 Distribution Perspective on Self-Adaptation 79\u003c\/p\u003e \u003cp\u003e5.5 Summary 83\u003c\/p\u003e \u003cp\u003e5.6 Exercises 84\u003c\/p\u003e \u003cp\u003e5.7 Bibliographic Notes 87\u003c\/p\u003e \u003cp\u003e\u003cb\u003e6 Wave III: Runtime Models \u003c\/b\u003e\u003cb\u003e89\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e6.1 What is a Runtime Model? 90\u003c\/p\u003e \u003cp\u003e6.2 Causality and Weak Causality 90\u003c\/p\u003e \u003cp\u003e6.3 Motivations for Runtime Models 91\u003c\/p\u003e \u003cp\u003e6.4 Dimensions of Runtime Models 92\u003c\/p\u003e \u003cp\u003e6.4.1 Structural versus Behavioral 93\u003c\/p\u003e \u003cp\u003e6.4.2 Declarative versus Procedural 94\u003c\/p\u003e \u003cp\u003e6.4.3 Functional versus Qualitative 95\u003c\/p\u003e \u003cp\u003e6.4.3.1 Functional Models 95\u003c\/p\u003e \u003cp\u003e6.4.3.2 Quality Models 95\u003c\/p\u003e \u003cp\u003e6.4.4 Formal versus Informal 98\u003c\/p\u003e \u003cp\u003e6.5 Principal Strategies for Using Runtime Models 101\u003c\/p\u003e \u003cp\u003e6.5.1 MAPE Components Share K Models 101\u003c\/p\u003e \u003cp\u003e6.5.2 MAPE Components Exchange K Models 103\u003c\/p\u003e \u003cp\u003e6.5.2.1 Runtime Models 103\u003c\/p\u003e \u003cp\u003e6.5.2.2 Components of the Managing System 104\u003c\/p\u003e \u003cp\u003e6.5.3 MAPE Models Share K Models 105\u003c\/p\u003e \u003cp\u003e6.6 Summary 108\u003c\/p\u003e \u003cp\u003e6.7 Exercises 109\u003c\/p\u003e \u003cp\u003e6.8 Bibliographic Notes 114\u003c\/p\u003e \u003cp\u003e\u003cb\u003e7 Wave IV: Requirements-driven Adaptation \u003c\/b\u003e\u003cb\u003e115\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e7.1 Relaxing Requirements for Self-Adaptation 116\u003c\/p\u003e \u003cp\u003e7.1.1 Specification Language to Relax Requirements 116\u003c\/p\u003e \u003cp\u003e7.1.1.1 Language Operators for Handling Uncertainty 116\u003c\/p\u003e \u003cp\u003e7.1.1.2 Semantics of Language Primitives 118\u003c\/p\u003e \u003cp\u003e7.1.2 Operationalization of Relaxed Requirements 118\u003c\/p\u003e \u003cp\u003e7.1.2.1 Handing Uncertainty 118\u003c\/p\u003e \u003cp\u003e7.1.2.2 Requirements Reflection and Mitigation Mechanisms 119\u003c\/p\u003e \u003cp\u003e7.1.2.3 A Note on the Realization of Requirements Reflection 121\u003c\/p\u003e \u003cp\u003e7.2 Meta-Requirements for Self-Adaptation 122\u003c\/p\u003e \u003cp\u003e7.2.1 Awareness Requirements 123\u003c\/p\u003e \u003cp\u003e7.2.2 Evolution Requirements 124\u003c\/p\u003e \u003cp\u003e7.2.3 Operationalization of Meta-requirements 126\u003c\/p\u003e \u003cp\u003e7.3 Functional Requirements of Feedback Loops 127\u003c\/p\u003e \u003cp\u003e7.3.1 Design and Verify Feedback Loop Model 128\u003c\/p\u003e \u003cp\u003e7.3.2 Deploy and Execute Verified Feedback Loop Model 130\u003c\/p\u003e \u003cp\u003e7.4 Summary 131\u003c\/p\u003e \u003cp\u003e7.5 Exercises 132\u003c\/p\u003e \u003cp\u003e7.6 Bibliographic Notes 134\u003c\/p\u003e \u003cp\u003e\u003cb\u003e8 Wave V: Guarantees Under Uncertainties \u003c\/b\u003e\u003cb\u003e137\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e8.1 Uncertainties in Self-Adaptive Systems 139\u003c\/p\u003e \u003cp\u003e8.2 Taming Uncertainty with Formal Techniques 141\u003c\/p\u003e \u003cp\u003e8.2.1 Analysis of Adaptation Options 141\u003c\/p\u003e \u003cp\u003e8.2.2 Selection of Best Adaptation Option 143\u003c\/p\u003e \u003cp\u003e8.3 Exhaustive Verification to Provide Guarantees for Adaptation Goals 144\u003c\/p\u003e \u003cp\u003e8.4 Statistical Verification to Provide Guarantees for Adaptation Goals 149\u003c\/p\u003e \u003cp\u003e8.5 Proactive Decision-Making using Probabilistic Model Checking 154\u003c\/p\u003e \u003cp\u003e8.6 A Note on Verification and Validation 160\u003c\/p\u003e \u003cp\u003e8.7 Integrated Process to Tame Uncertainty 160\u003c\/p\u003e \u003cp\u003e8.7.1 Stage I: Implement and Verify the Managing System 161\u003c\/p\u003e \u003cp\u003e8.7.2 Stage II: Deploy the Managing System 162\u003c\/p\u003e \u003cp\u003e8.7.3 Stage III: Verify Adaptation Options, Decide, and Adapt 163\u003c\/p\u003e \u003cp\u003e8.7.4 Stage IV: Evolve Adaptation Goals and Managing System 163\u003c\/p\u003e \u003cp\u003e8.8 Summary 164\u003c\/p\u003e \u003cp\u003e8.9 Exercises 165\u003c\/p\u003e \u003cp\u003e8.10 Bibliographic Notes 168\u003c\/p\u003e \u003cp\u003e\u003cb\u003e9 Wave VI: Control-based Software Adaptation \u003c\/b\u003e\u003cb\u003e171\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e9.1 A Brief Introduction to Control Theory 173\u003c\/p\u003e \u003cp\u003e9.1.1 Controller Design 174\u003c\/p\u003e \u003cp\u003e9.1.2 Control Properties 175\u003c\/p\u003e \u003cp\u003e9.1.3 SISO and MIMO Control Systems 176\u003c\/p\u003e \u003cp\u003e9.1.4 Adaptive Control 177\u003c\/p\u003e \u003cp\u003e9.2 Automatic Construction of SISO Controllers 177\u003c\/p\u003e \u003cp\u003e9.2.1 Phases of Controller Construction and Operation 178\u003c\/p\u003e \u003cp\u003e9.2.2 Model Updates 179\u003c\/p\u003e \u003cp\u003e9.2.3 Formal Guarantees 181\u003c\/p\u003e \u003cp\u003e9.2.4 Example: Geo-Localization Service 183\u003c\/p\u003e \u003cp\u003e9.3 Automatic Construction of MIMO Controllers 184\u003c\/p\u003e \u003cp\u003e9.3.1 Phases of Controller Construction and Operation 184\u003c\/p\u003e \u003cp\u003e9.3.2 Formal Guarantees 186\u003c\/p\u003e \u003cp\u003e9.3.3 Example: Unmanned Underwater Vehicle 186\u003c\/p\u003e \u003cp\u003e9.4 Model Predictive Control 189\u003c\/p\u003e \u003cp\u003e9.4.1 Controller Construction and Operation 189\u003c\/p\u003e \u003cp\u003e9.4.2 Formal Assessment 191\u003c\/p\u003e \u003cp\u003e9.4.3 Example: Video Compression 192\u003c\/p\u003e \u003cp\u003e9.5 A Note on Control Guarantees 194\u003c\/p\u003e \u003cp\u003e9.6 Summary 194\u003c\/p\u003e \u003cp\u003e9.7 Exercises 196\u003c\/p\u003e \u003cp\u003e9.8 Bibliographic Notes 199\u003c\/p\u003e \u003cp\u003e\u003cb\u003e10 Wave VII: Learning from Experience \u003c\/b\u003e\u003cb\u003e201\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e10.1 Keeping Runtime Models Up-to-Date Using Learning 203\u003c\/p\u003e \u003cp\u003e10.1.1 Runtime Quality Model 204\u003c\/p\u003e \u003cp\u003e10.1.2 Overview of Bayesian Approach 205\u003c\/p\u003e \u003cp\u003e10.2 Reducing Large Adaptation Spaces Using Learning 208\u003c\/p\u003e \u003cp\u003e10.2.1 Illustration of the Problem 208\u003c\/p\u003e \u003cp\u003e10.2.2 Overview of the Learning Approach 210\u003c\/p\u003e \u003cp\u003e10.3 Learning and Improving Scaling Rules of a Cloud Infrastructure 213\u003c\/p\u003e \u003cp\u003e10.3.1 Overview of the Fuzzy Learning Approach 214\u003c\/p\u003e \u003cp\u003e10.3.1.1 Fuzzy Logic Controller 214\u003c\/p\u003e \u003cp\u003e10.3.1.2 Fuzzy Q-learning 217\u003c\/p\u003e \u003cp\u003e10.3.1.3 Experiments 221\u003c\/p\u003e \u003cp\u003e10.4 Summary 223\u003c\/p\u003e \u003cp\u003e10.5 Exercises 225\u003c\/p\u003e \u003cp\u003e10.6 Bibliographic Notes 226\u003c\/p\u003e \u003cp\u003e\u003cb\u003e11 Maturity of the Field and Open Challenges \u003c\/b\u003e\u003cb\u003e227\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e11.1 Analysis of the Maturity of the Field 227\u003c\/p\u003e \u003cp\u003e11.1.1 Basic Research 227\u003c\/p\u003e \u003cp\u003e11.1.2 Concept Formulation 228\u003c\/p\u003e \u003cp\u003e11.1.3 Development and Extension 229\u003c\/p\u003e \u003cp\u003e11.1.4 Internal Enhancement and Exploration 229\u003c\/p\u003e \u003cp\u003e11.1.5 External Enhancement and Exploration 230\u003c\/p\u003e \u003cp\u003e11.1.6 Popularization 230\u003c\/p\u003e \u003cp\u003e11.1.7 Conclusion 231\u003c\/p\u003e \u003cp\u003e11.2 Open Challenges 231\u003c\/p\u003e \u003cp\u003e11.2.1 Challenges Within the Current Waves 231\u003c\/p\u003e \u003cp\u003e11.2.1.1 Evidence for the Value of Self-Adaptation 231\u003c\/p\u003e \u003cp\u003e11.2.1.2 Decentralized Settings 232\u003c\/p\u003e \u003cp\u003e11.2.1.3 Domain-Specific Modeling Languages 232\u003c\/p\u003e \u003cp\u003e11.2.1.4 Changing Goals at Runtime 233\u003c\/p\u003e \u003cp\u003e11.2.1.5 Complex Types of Uncertainties 233\u003c\/p\u003e \u003cp\u003e11.2.1.6 Control Properties versus Quality Properties 234\u003c\/p\u003e \u003cp\u003e11.2.1.7 Search-based Techniques 234\u003c\/p\u003e \u003cp\u003e11.2.2 Challenges Beyond the Current Waves 235\u003c\/p\u003e \u003cp\u003e11.2.2.1 Exploiting Artificial Intelligence 235\u003c\/p\u003e \u003cp\u003e11.2.2.2 Dealing with Unanticipated Change 236\u003c\/p\u003e \u003cp\u003e11.2.2.3 Trust and Humans in the Loop 236\u003c\/p\u003e \u003cp\u003e11.2.2.4 Ethics for Self-Adaptive Systems 237\u003c\/p\u003e \u003cp\u003e11.3 Epilogue 239\u003c\/p\u003e \u003cp\u003eBibliography 241\u003c\/p\u003e \u003cp\u003eIndex 263\u003c\/p\u003e\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003eSubject Areas: Electronics \u0026amp; communications engineering [\u003ca title=\"See our other books on Electronics \u0026amp; communications engineering\" href=\"https:\/\/freshlyprintedbooks.co.uk\/search?q=%22Electronics%20\u0026amp;%20communications%20engineering%20%5BTJ%5D%22\"\u003eTJ\u003c\/a\u003e]\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\r\n\u003c\/font\u003e","brand":"Wiley-IEEE Computer Society Pr","offers":[{"title":"Brand New","offer_id":52173688242456,"sku":"9781119574941","price":83.39,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0730\/2037\/5320\/files\/9781119574941.jpg?v=1781167126","url":"https:\/\/freshlyprintedbooks.co.uk\/products\/an-introduction-to-self-adaptive-systems-a-contemporary-software-engineering-perspective-hardback-9781119574941","provider":"Freshly Printed Books","version":"1.0","type":"link"}