Details

An Introduction to Self-adaptive Systems


An Introduction to Self-adaptive Systems

A Contemporary Software Engineering Perspective
IEEE Press 1. Aufl.

von: Danny Weyns

97,99 €

Verlag: Wiley
Format: EPUB
Veröffentl.: 19.10.2020
ISBN/EAN: 9781119574927
Sprache: englisch
Anzahl Seiten: 288

DRM-geschütztes eBook, Sie benötigen z.B. Adobe Digital Editions und eine Adobe ID zum Lesen.

Beschreibungen

<p><b>A concise and practical introduction to the foundations and engineering principles of self-adaptation</b></p> <p>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, <i>An Introduction to Self-adaptive Systems: A Contemporary Software Engineering Perspective</i> provides readers with an accessible set of basic principles, engineering foundations, and applications of self-adaptation in software-intensive systems.</p> <p>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.</p> <p>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:</p> <ul> <li>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</li> <li>End-of-chapter exercises at four different levels of complexity and difficulty</li> <li>An accompanying author-hosted website with slides, selected exercises and solutions, models, and code</li> </ul> <p>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.</p>
<p>Foreword xi</p> <p>Acknowledgments xv</p> <p>Acronyms xvii</p> <p>Introduction xix</p> <p><b>1 Basic Principles of Self-Adaptation and Conceptual Model </b><b>1</b></p> <p>1.1 Principles of Self-Adaptation 2</p> <p>1.2 Other Adaptation Approaches 4</p> <p>1.3 Scope of Self-Adaptation 5</p> <p>1.4 Conceptual Model of a Self-Adaptive System 5</p> <p>1.4.1 Environment 5</p> <p>1.4.2 Managed System 7</p> <p>1.4.3 Adaptation Goals 8</p> <p>1.4.4 Feedback Loop 8</p> <p>1.4.5 Conceptual Model Applied 10</p> <p>1.5 A Note on Model Abstractions 11</p> <p>1.6 Summary 11</p> <p>1.7 Exercises 12</p> <p>1.8 Bibliographic Notes 14</p> <p><b>2 Engineering Self-Adaptive Systems: A Short Tour in Seven Waves </b><b>17</b></p> <p>2.1 Overview of the Waves 18</p> <p>2.2 Contributions Enabled by the Waves 20</p> <p>2.3 Waves Over Time with Selected Work 20</p> <p>2.4 Summary 22</p> <p>2.5 Bibliographic Notes 23</p> <p><b>3 Internet-of-Things Application </b><b>25</b></p> <p>3.1 Technical Description 25</p> <p>3.2 Uncertainties 28</p> <p>3.3 Quality Requirements and Adaptation Problem 29</p> <p>3.4 Summary 29</p> <p>3.5 Exercises 30</p> <p>3.6 Bibliographic Notes 31</p> <p><b>4 Wave I: Automating Tasks </b><b>33</b></p> <p>4.1 Autonomic Computing 34</p> <p>4.2 Utility Functions 35</p> <p>4.3 Essential Maintenance Tasks for Automation 37</p> <p>4.3.1 Self-Optimization 37</p> <p>4.3.2 Self-Healing 38</p> <p>4.3.3 Self-Protection 40</p> <p>4.3.4 Self-Configuration 42</p> <p>4.4 Primary Functions of Self-Adaptation 43</p> <p>4.4.1 Knowledge 44</p> <p>4.4.2 Monitor 46</p> <p>4.4.3 Analyzer 47</p> <p>4.4.4 Planner 49</p> <p>4.4.5 Executor 51</p> <p>4.5 Software Evolution and Self-Adaptation 52</p> <p>4.5.1 Software Evolution Management 53</p> <p>4.5.2 Self-Adaptation Management 54</p> <p>4.5.3 Integrating Software Evolution and Self-Adaptation 55</p> <p>4.6 Summary 56</p> <p>4.7 Exercises 59</p> <p>4.8 Bibliographic Notes 60</p> <p><b>5 Wave II: Architecture-based Adaptation </b><b>63</b></p> <p>5.1 Rationale for an Architectural Perspective 64</p> <p>5.2 Three-Layer Model for Self-Adaptive Systems 66</p> <p>5.2.1 Component Control 67</p> <p>5.2.2 Change Management 67</p> <p>5.2.3 Goal Management 68</p> <p>5.2.4 Three-Layer Model Applied to DeltaIoT 68</p> <p>5.2.5 Mapping Between the Three-Layer Model and the Conceptual Model for Self-Adaptation 70</p> <p>5.3 Reasoning about Adaptation using an Architectural Model 70</p> <p>5.3.1 Runtime Architecture of Architecture-based Adaptation 71</p> <p>5.3.2 Architecture-based Adaptation of the Web-based Client-Server System 73</p> <p>5.4 Comprehensive Reference Model for Self-Adaptation 75</p> <p>5.4.1 Reflection Perspective on Self-Adaptation 76</p> <p>5.4.2 MAPE-K Perspective on Self-Adaptation 78</p> <p>5.4.3 Distribution Perspective on Self-Adaptation 79</p> <p>5.5 Summary 83</p> <p>5.6 Exercises 84</p> <p>5.7 Bibliographic Notes 87</p> <p><b>6 Wave III: Runtime Models </b><b>89</b></p> <p>6.1 What is a Runtime Model? 90</p> <p>6.2 Causality and Weak Causality 90</p> <p>6.3 Motivations for Runtime Models 91</p> <p>6.4 Dimensions of Runtime Models 92</p> <p>6.4.1 Structural versus Behavioral 93</p> <p>6.4.2 Declarative versus Procedural 94</p> <p>6.4.3 Functional versus Qualitative 95</p> <p>6.4.3.1 Functional Models 95</p> <p>6.4.3.2 Quality Models 95</p> <p>6.4.4 Formal versus Informal 98</p> <p>6.5 Principal Strategies for Using Runtime Models 101</p> <p>6.5.1 MAPE Components Share K Models 101</p> <p>6.5.2 MAPE Components Exchange K Models 103</p> <p>6.5.2.1 Runtime Models 103</p> <p>6.5.2.2 Components of the Managing System 104</p> <p>6.5.3 MAPE Models Share K Models 105</p> <p>6.6 Summary 108</p> <p>6.7 Exercises 109</p> <p>6.8 Bibliographic Notes 114</p> <p><b>7 Wave IV: Requirements-driven Adaptation </b><b>115</b></p> <p>7.1 Relaxing Requirements for Self-Adaptation 116</p> <p>7.1.1 Specification Language to Relax Requirements 116</p> <p>7.1.1.1 Language Operators for Handling Uncertainty 116</p> <p>7.1.1.2 Semantics of Language Primitives 118</p> <p>7.1.2 Operationalization of Relaxed Requirements 118</p> <p>7.1.2.1 Handing Uncertainty 118</p> <p>7.1.2.2 Requirements Reflection and Mitigation Mechanisms 119</p> <p>7.1.2.3 A Note on the Realization of Requirements Reflection 121</p> <p>7.2 Meta-Requirements for Self-Adaptation 122</p> <p>7.2.1 Awareness Requirements 123</p> <p>7.2.2 Evolution Requirements 124</p> <p>7.2.3 Operationalization of Meta-requirements 126</p> <p>7.3 Functional Requirements of Feedback Loops 127</p> <p>7.3.1 Design and Verify Feedback Loop Model 128</p> <p>7.3.2 Deploy and Execute Verified Feedback Loop Model 130</p> <p>7.4 Summary 131</p> <p>7.5 Exercises 132</p> <p>7.6 Bibliographic Notes 134</p> <p><b>8 Wave V: Guarantees Under Uncertainties </b><b>137</b></p> <p>8.1 Uncertainties in Self-Adaptive Systems 139</p> <p>8.2 Taming Uncertainty with Formal Techniques 141</p> <p>8.2.1 Analysis of Adaptation Options 141</p> <p>8.2.2 Selection of Best Adaptation Option 143</p> <p>8.3 Exhaustive Verification to Provide Guarantees for Adaptation Goals 144</p> <p>8.4 Statistical Verification to Provide Guarantees for Adaptation Goals 149</p> <p>8.5 Proactive Decision-Making using Probabilistic Model Checking 154</p> <p>8.6 A Note on Verification and Validation 160</p> <p>8.7 Integrated Process to Tame Uncertainty 160</p> <p>8.7.1 Stage I: Implement and Verify the Managing System 161</p> <p>8.7.2 Stage II: Deploy the Managing System 162</p> <p>8.7.3 Stage III: Verify Adaptation Options, Decide, and Adapt 163</p> <p>8.7.4 Stage IV: Evolve Adaptation Goals and Managing System 163</p> <p>8.8 Summary 164</p> <p>8.9 Exercises 165</p> <p>8.10 Bibliographic Notes 168</p> <p><b>9 Wave VI: Control-based Software Adaptation </b><b>171</b></p> <p>9.1 A Brief Introduction to Control Theory 173</p> <p>9.1.1 Controller Design 174</p> <p>9.1.2 Control Properties 175</p> <p>9.1.3 SISO and MIMO Control Systems 176</p> <p>9.1.4 Adaptive Control 177</p> <p>9.2 Automatic Construction of SISO Controllers 177</p> <p>9.2.1 Phases of Controller Construction and Operation 178</p> <p>9.2.2 Model Updates 179</p> <p>9.2.3 Formal Guarantees 181</p> <p>9.2.4 Example: Geo-Localization Service 183</p> <p>9.3 Automatic Construction of MIMO Controllers 184</p> <p>9.3.1 Phases of Controller Construction and Operation 184</p> <p>9.3.2 Formal Guarantees 186</p> <p>9.3.3 Example: Unmanned Underwater Vehicle 186</p> <p>9.4 Model Predictive Control 189</p> <p>9.4.1 Controller Construction and Operation 189</p> <p>9.4.2 Formal Assessment 191</p> <p>9.4.3 Example: Video Compression 192</p> <p>9.5 A Note on Control Guarantees 194</p> <p>9.6 Summary 194</p> <p>9.7 Exercises 196</p> <p>9.8 Bibliographic Notes 199</p> <p><b>10 Wave VII: Learning from Experience </b><b>201</b></p> <p>10.1 Keeping Runtime Models Up-to-Date Using Learning 203</p> <p>10.1.1 Runtime Quality Model 204</p> <p>10.1.2 Overview of Bayesian Approach 205</p> <p>10.2 Reducing Large Adaptation Spaces Using Learning 208</p> <p>10.2.1 Illustration of the Problem 208</p> <p>10.2.2 Overview of the Learning Approach 210</p> <p>10.3 Learning and Improving Scaling Rules of a Cloud Infrastructure 213</p> <p>10.3.1 Overview of the Fuzzy Learning Approach 214</p> <p>10.3.1.1 Fuzzy Logic Controller 214</p> <p>10.3.1.2 Fuzzy Q-learning 217</p> <p>10.3.1.3 Experiments 221</p> <p>10.4 Summary 223</p> <p>10.5 Exercises 225</p> <p>10.6 Bibliographic Notes 226</p> <p><b>11 Maturity of the Field and Open Challenges </b><b>227</b></p> <p>11.1 Analysis of the Maturity of the Field 227</p> <p>11.1.1 Basic Research 227</p> <p>11.1.2 Concept Formulation 228</p> <p>11.1.3 Development and Extension 229</p> <p>11.1.4 Internal Enhancement and Exploration 229</p> <p>11.1.5 External Enhancement and Exploration 230</p> <p>11.1.6 Popularization 230</p> <p>11.1.7 Conclusion 231</p> <p>11.2 Open Challenges 231</p> <p>11.2.1 Challenges Within the Current Waves 231</p> <p>11.2.1.1 Evidence for the Value of Self-Adaptation 231</p> <p>11.2.1.2 Decentralized Settings 232</p> <p>11.2.1.3 Domain-Specific Modeling Languages 232</p> <p>11.2.1.4 Changing Goals at Runtime 233</p> <p>11.2.1.5 Complex Types of Uncertainties 233</p> <p>11.2.1.6 Control Properties versus Quality Properties 234</p> <p>11.2.1.7 Search-based Techniques 234</p> <p>11.2.2 Challenges Beyond the Current Waves 235</p> <p>11.2.2.1 Exploiting Artificial Intelligence 235</p> <p>11.2.2.2 Dealing with Unanticipated Change 236</p> <p>11.2.2.3 Trust and Humans in the Loop 236</p> <p>11.2.2.4 Ethics for Self-Adaptive Systems 237</p> <p>11.3 Epilogue 239</p> <p>Bibliography 241</p> <p>Index 263</p>
<p><b>DANNY WEYNS, P<small>H</small>D,</b> is a Professor at Katholieke Universiteit (KU) Leuven, Department of Computer Science, Leuven, Belgium. He obtained his doctorate from KU Leuven. He focuses on software engineering of trustworthy self-adaptive systems, exploiting design models and verification techniques at runtime.
<p><b>A CONCISE AND PRACTICAL INTRODUCTION TO THE FOUNDATIONS AND ENGINEERING PRINCIPLES OF SELF-ADAPTATION</b> <p>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, <i>An Introduction to Self-adaptive Systems: A Contemporary Software Engineering Perspective</i> provides readers with an accessible set of basic principles, engineering foundations, and applications of self-adaptation in software-intensive systems. <p>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. <p>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: <ul> <li>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</li> <li>End-of-chapter exercises at four different levels of complexity and difficulty</li> <li>An accompanying author-hosted website with slides, selected exercises and solutions, models, and code</li> </ul> <p>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.

Diese Produkte könnten Sie auch interessieren:

Bandwidth Efficient Coding
Bandwidth Efficient Coding
von: John B. Anderson
PDF ebook
114,99 €
Bandwidth Efficient Coding
Bandwidth Efficient Coding
von: John B. Anderson
EPUB ebook
114,99 €