{"product_id":"software-technology-9781119174219","title":"Software Technology","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\u003cb\u003eA comprehensive collection of influential articles from one of \u003ci\u003eIEEE Computer\u003c\/i\u003e magazine's most popular columns\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThis book is a compendium of extended and revised publications that have appeared in the Software Technologies column of \u003ci\u003eIEEE Computer\u003c\/i\u003e magazine, which covers key topics in software engineering such as software development, software correctness and related techniques, cloud computing, self-managing software and self-aware systems. Emerging properties of software technology are also discussed in this book, which will help refine the developing framework for creating the next generation of software technologies and help readers predict future developments and challenges in the field.\u003c\/p\u003e \u003cp\u003e\u003ci\u003eSoftware Technology\u003c\/i\u003e provides guidance on the challenges of developing software today and points readers to where the best advances are being made. Filled with one insightful article after another, the book serves to inform the conversation about the next wav\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eForeword xv\u003c\/p\u003e \u003cp\u003ePreface xix\u003c\/p\u003e \u003cp\u003eAcknowledgments xxiii\u003c\/p\u003e \u003cp\u003eList of Contributors xxv\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart I The Software Landscape 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e1 Software Crisis 2.0 3\u003cbr\u003e\u003c\/b\u003e\u003ci\u003eBrian Fitzgerald\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e1.1 Software Crisis 1.0 3\u003c\/p\u003e \u003cp\u003e1.2 Software Crisis 2.0 5\u003c\/p\u003e \u003cp\u003e1.2.1 Hardware Advances 6\u003c\/p\u003e \u003cp\u003e1.2.2 “Big Data” 8\u003c\/p\u003e \u003cp\u003e1.2.3 Digital Natives Lifelogging and the Quantiﬁed Self 9\u003c\/p\u003e \u003cp\u003e1.2.4 Software-Deﬁned\u003csup\u003e∗\u003c\/sup\u003e 10\u003c\/p\u003e \u003cp\u003e1.3 Software Crisis 2.0: The Bottleneck 10\u003c\/p\u003e \u003cp\u003e1.3.1 Signiﬁcant Increase in Volume of Software Required 11\u003c\/p\u003e \u003cp\u003e1.3.2 New Skill Sets Required for Software Developers 12\u003c\/p\u003e \u003cp\u003e1.4 Conclusion 13\u003c\/p\u003e \u003cp\u003eReferences 14\u003c\/p\u003e \u003cp\u003e\u003cb\u003e2 Simplicity as a Driver for Agile Innovation 17\u003cbr\u003e\u003c\/b\u003e\u003ci\u003eTiziana Margaria and Bernhard Steffen\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e2.1 Motivation and Background 17\u003c\/p\u003e \u003cp\u003e2.2 Important Factors 20\u003c\/p\u003e \u003cp\u003e2.3 The Future 22\u003c\/p\u003e \u003cp\u003e2.4 Less Is More: The 80\/20 Principle 27\u003c\/p\u003e \u003cp\u003e2.5 Simplicity: A Never Ending Challenge 28\u003c\/p\u003e \u003cp\u003e2.6 IT Speciﬁcs 29\u003c\/p\u003e \u003cp\u003e2.7 Conclusions 29\u003c\/p\u003e \u003cp\u003eAcknowledgments 30\u003c\/p\u003e \u003cp\u003eReferences 30\u003c\/p\u003e \u003cp\u003e\u003cb\u003e3 Intercomponent Dependency Issues in Software Ecosystems 35\u003cbr\u003e\u003c\/b\u003e\u003ci\u003eMaëlick Claes, Alexandre Decan, and Tom Mens\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e3.1 Introduction 35\u003c\/p\u003e \u003cp\u003e3.2 Problem Overview 36\u003c\/p\u003e \u003cp\u003e3.2.1 Terminology 36\u003c\/p\u003e \u003cp\u003e3.2.2 Identifying and Retrieving Dependency Information 38\u003c\/p\u003e \u003cp\u003e3.2.3 Satisfying Dependencies and Conﬂicts 39\u003c\/p\u003e \u003cp\u003e3.2.4 Component Upgrade 40\u003c\/p\u003e \u003cp\u003e3.2.5 Inter-Project Cloning 41\u003c\/p\u003e \u003cp\u003e3.3 First Case Study: Debian 42\u003c\/p\u003e \u003cp\u003e3.3.1 Overview of Debian 42\u003c\/p\u003e \u003cp\u003e3.3.2 Aggregate Analysis of Strong Conﬂicts 44\u003c\/p\u003e \u003cp\u003e3.3.3 Package-Level Analysis of Strong Conﬂicts 45\u003c\/p\u003e \u003cp\u003e3.4 Second Case Study: The R Ecosystem 46\u003c\/p\u003e \u003cp\u003e3.4.1 Overview of R 46\u003c\/p\u003e \u003cp\u003e3.4.2 R Package Repositories 47\u003c\/p\u003e \u003cp\u003e3.4.3 Interrepository Dependencies 50\u003c\/p\u003e \u003cp\u003e3.4.4 Intrarepository Dependencies 52\u003c\/p\u003e \u003cp\u003e3.5 Conclusion 53\u003c\/p\u003e \u003cp\u003eAcknowledgments 54\u003c\/p\u003e \u003cp\u003eReferences 54\u003c\/p\u003e \u003cp\u003e\u003cb\u003e4 Triangulating Research Dissemination Methods: A Three-Pronged Approach to Closing the Research–Practice Divide 58\u003cbr\u003e\u003c\/b\u003e\u003ci\u003eSarah Beecham, Ita Richardson, Ian Sommerville, Padraig O’Leary, Sean Baker, and John Noll\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e4.1 Introduction 58\u003c\/p\u003e \u003cp\u003e4.2 Meeting the Needs of Industry 60\u003c\/p\u003e \u003cp\u003e4.2.1 Commercialization Feasibility Study 61\u003c\/p\u003e \u003cp\u003e4.2.2 Typical GSE Issues Were Reported 62\u003c\/p\u003e \u003cp\u003e4.3 The Theory–Practice Divide 63\u003c\/p\u003e \u003cp\u003e4.3.1 Making Research Accessible 64\u003c\/p\u003e \u003cp\u003e4.3.2 Where Do Practitioners Really Go for Support? 65\u003c\/p\u003e \u003cp\u003e4.4 Solutions: Rethinking Our Dissemination Methods 66\u003c\/p\u003e \u003cp\u003e4.4.1 Workshops, Outreach, and Seminars 66\u003c\/p\u003e \u003cp\u003e4.4.2 Case Studies 69\u003c\/p\u003e \u003cp\u003e4.4.3 Action Research 70\u003c\/p\u003e \u003cp\u003e4.4.4 Practitioner Ph.D.’s 71\u003c\/p\u003e \u003cp\u003e4.4.5 Industry Fellowships 73\u003c\/p\u003e \u003cp\u003e4.4.6 Commercializing Research 74\u003c\/p\u003e \u003cp\u003e4.5 Obstacles to Research Relevance 76\u003c\/p\u003e \u003cp\u003e4.5.1 The (IR) Relevance of Academic Software Engineering Research 76\u003c\/p\u003e \u003cp\u003e4.5.2 Barriers to Research Commercialization 77\u003c\/p\u003e \u003cp\u003e4.5.3 Academic Barriers to Commercialization 78\u003c\/p\u003e \u003cp\u003e4.5.4 Business Barriers to Commercialization 79\u003c\/p\u003e \u003cp\u003e4.5.5 Organizational Barriers to Commercialization 80\u003c\/p\u003e \u003cp\u003e4.5.6 Funding Barriers to Commercialization 81\u003c\/p\u003e \u003cp\u003e4.6 Conclusion 84\u003c\/p\u003e \u003cp\u003e4.6.1 Research and Practice Working Together to Innovate 85\u003c\/p\u003e \u003cp\u003e4.6.2 Final Thoughts 86\u003c\/p\u003e \u003cp\u003eAcknowledgments 86\u003c\/p\u003e \u003cp\u003eReferences 86\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart II Autonomous Software Systems    91\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e5 Apoptotic Computing: Programmed Death by Default for Software Technologies 93\u003cbr\u003e\u003c\/b\u003e\u003ci\u003eRoy Sterritt and Mike Hinchey\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e5.1 Biological Apoptosis 93\u003c\/p\u003e \u003cp\u003e5.2 Autonomic Agents 94\u003c\/p\u003e \u003cp\u003e5.3 Apoptosis within Autonomic Agents 96\u003c\/p\u003e \u003cp\u003e5.4 NASA SWARM Concept Missions 98\u003c\/p\u003e \u003cp\u003e5.5 The Evolving State-of-the-Art Apoptotic Computing 100\u003c\/p\u003e \u003cp\u003e5.5.1 Strong versus Weak Apoptotic Computing 100\u003c\/p\u003e \u003cp\u003e5.5.2 Other Research 101\u003c\/p\u003e \u003cp\u003e5.6 “This Message Will Self-Destruct”: Commercial Applications 102\u003c\/p\u003e \u003cp\u003e5.7 Conclusion 102\u003c\/p\u003e \u003cp\u003eAcknowledgments 103\u003c\/p\u003e \u003cp\u003eReferences 103\u003c\/p\u003e \u003cp\u003e\u003cb\u003e6 Requirements Engineering for Adaptive and Self-Adaptive Systems 107\u003cbr\u003e\u003c\/b\u003e\u003ci\u003eEmil Vassev and Mike Hinchey\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e6.1 Introduction 107\u003c\/p\u003e \u003cp\u003e6.2 Understanding ARE 108\u003c\/p\u003e \u003cp\u003e6.3 System Goals and Goals Models 109\u003c\/p\u003e \u003cp\u003e6.4 Self-\u003csup\u003e∗\u003c\/sup\u003e Objectives and Autonomy-Assistive Requirements 111\u003c\/p\u003e \u003cp\u003e6.4.1 Constraints and Self-\u003csup\u003e∗\u003c\/sup\u003e Objectives 113\u003c\/p\u003e \u003cp\u003e6.4.2 Mission Analysis and Self-\u003csup\u003e∗\u003c\/sup\u003e Objectives 114\u003c\/p\u003e \u003cp\u003e6.5 Recording and Formalizing Autonomy Requirements 116\u003c\/p\u003e \u003cp\u003e6.5.1 ARE Requirements Chunk 117\u003c\/p\u003e \u003cp\u003e6.6 Conclusion 118\u003c\/p\u003e \u003cp\u003eAcknowledgments 119\u003c\/p\u003e \u003cp\u003eReferences 119\u003c\/p\u003e \u003cp\u003e\u003cb\u003e7 Toward Artiﬁcial Intelligence through Knowledge Representation for Awareness 121\u003cbr\u003e\u003c\/b\u003e\u003ci\u003eEmil Vassev and Mike Hinchey\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e7.1 Introduction 121\u003c\/p\u003e \u003cp\u003e7.2 Knowledge Representation 122\u003c\/p\u003e \u003cp\u003e7.2.1 Rules 122\u003c\/p\u003e \u003cp\u003e7.2.2 Frames 122\u003c\/p\u003e \u003cp\u003e7.2.3 Semantic Networks and Concept Maps 122\u003c\/p\u003e \u003cp\u003e7.2.4 Ontologies 123\u003c\/p\u003e \u003cp\u003e7.2.5 Logic 123\u003c\/p\u003e \u003cp\u003e7.2.6 Completeness and Consistency 124\u003c\/p\u003e \u003cp\u003e7.2.7 Reasoning 125\u003c\/p\u003e \u003cp\u003e7.2.8 Technologies 125\u003c\/p\u003e \u003cp\u003e7.3 KnowLang 126\u003c\/p\u003e \u003cp\u003e7.3.1 Modeling Knowledge with KnowLang 127\u003c\/p\u003e \u003cp\u003e7.3.2 Knowledge Representation for Self-Adaptive Behavior 129\u003c\/p\u003e \u003cp\u003e7.3.3 Case Study 129\u003c\/p\u003e \u003cp\u003e7.4 Awareness 131\u003c\/p\u003e \u003cp\u003e7.4.1 Classes of Awareness 132\u003c\/p\u003e \u003cp\u003e7.4.2 Structuring Awareness 133\u003c\/p\u003e \u003cp\u003e7.4.3 Implementing Awareness 134\u003c\/p\u003e \u003cp\u003e7.5 Challenges and Conclusion 136\u003c\/p\u003e \u003cp\u003eReferences 136\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart III Software Development and Evolution 139\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e8 Continuous Model-Driven Engineering 141\u003cbr\u003e\u003c\/b\u003e\u003ci\u003eTiziana Margaria, Anna-Lena Lamprecht, and Bernhard Steffen\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e8.1 Introduction 141\u003c\/p\u003e \u003cp\u003e8.2 Continuous Model-Driven Engineering 143\u003c\/p\u003e \u003cp\u003e8.3 CMDE in Practice 147\u003c\/p\u003e \u003cp\u003e8.4 Conclusion 150\u003c\/p\u003e \u003cp\u003eAcknowledgment 150\u003c\/p\u003e \u003cp\u003eReferences 151\u003c\/p\u003e \u003cp\u003e\u003cb\u003e9 Rethinking Functional Requirements: A Novel Approach Categorizing System and Software Requirements 155\u003cbr\u003e\u003c\/b\u003e\u003ci\u003eManfred Broy\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e9.1 Introduction 155\u003c\/p\u003e \u003cp\u003e9.2 Discussion: Classifying Requirements – Why and How 158\u003c\/p\u003e \u003cp\u003e9.2.1 On Classifying Requirements as Being Functional 158\u003c\/p\u003e \u003cp\u003e9.2.2 “Nonfunctional” Requirements and Their Characterization 159\u003c\/p\u003e \u003cp\u003e9.2.3 Limitations of Classiﬁcation Due to Heterogeneity and Lacking Precision 160\u003c\/p\u003e \u003cp\u003e9.2.4 Approach: System Model-Based Categorization of Requirements 162\u003c\/p\u003e \u003cp\u003e9.3 The System Model 164\u003c\/p\u003e \u003cp\u003e9.3.1 The Basics: System Modeling Ontology 164\u003c\/p\u003e \u003cp\u003e9.3.2 System Views and Levels of Abstractions 171\u003c\/p\u003e \u003cp\u003e9.3.3 Structuring Systems into Views 172\u003c\/p\u003e \u003cp\u003e9.4 Categorizing System Properties 172\u003c\/p\u003e \u003cp\u003e9.4.1 System Behavior: Behavioral Properties 173\u003c\/p\u003e \u003cp\u003e9.4.2 Variations in Modeling System Behavior 175\u003c\/p\u003e \u003cp\u003e9.4.3 System Context: Properties of the Context 176\u003c\/p\u003e \u003cp\u003e9.4.4 Nonbehavioral System Properties: System Representation 177\u003c\/p\u003e \u003cp\u003e9.5 Categorizing Requirements 178\u003c\/p\u003e \u003cp\u003e9.5.1 A Rough Categorization of Requirements 179\u003c\/p\u003e \u003cp\u003e9.5.2 A Novel Taxonomy of Requirements? 183\u003c\/p\u003e \u003cp\u003e9.6 Summary 186\u003c\/p\u003e \u003cp\u003eAcknowledgments 187\u003c\/p\u003e \u003cp\u003eReferences   187\u003c\/p\u003e \u003cp\u003e\u003cb\u003e10 The Power of Ten—Rules for Developing Safety Critical Code 188\u003cbr\u003e\u003c\/b\u003e\u003ci\u003eGerard J. Holzmann\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e10.1 Introduction 188\u003c\/p\u003e \u003cp\u003e10.2 Context 189\u003c\/p\u003e \u003cp\u003e10.3 The Choice of Rules 190\u003c\/p\u003e \u003cp\u003e10.4 Ten Rules for Safety Critical Code 192\u003c\/p\u003e \u003cp\u003e10.5 Synopsis 200\u003c\/p\u003e \u003cp\u003eReferences 201\u003c\/p\u003e \u003cp\u003e\u003cb\u003e11 Seven Principles of Software Testing 202\u003cbr\u003e\u003c\/b\u003e\u003ci\u003eBertrand Meyer\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e11.1 Introduction 202\u003c\/p\u003e \u003cp\u003e11.2 Deﬁning Testing 202\u003c\/p\u003e \u003cp\u003e11.3 Tests and Speciﬁcations 203\u003c\/p\u003e \u003cp\u003e11.4 Regression Testing 204\u003c\/p\u003e \u003cp\u003e11.5 Oracles 204\u003c\/p\u003e \u003cp\u003e11.6 Manual and Automatic Test Cases 205\u003c\/p\u003e \u003cp\u003e11.7 Testing Strategies 205\u003c\/p\u003e \u003cp\u003e11.8 Assessment Criteria 206\u003c\/p\u003e \u003cp\u003e11.9 Conclusion 207\u003c\/p\u003e \u003cp\u003eReferences 207\u003c\/p\u003e \u003cp\u003e\u003cb\u003e12 Analyzing the Evolution of Database Usage in Data-Intensive Software Systems 208\u003cbr\u003e\u003c\/b\u003e\u003ci\u003eLoup Meurice, Mathieu Goeminne, Tom Mens, Csaba Nagy, Alexandre Decan, and Anthony Cleve\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e12.1 Introduction 208\u003c\/p\u003e \u003cp\u003e12.2 State of the Art 210\u003c\/p\u003e \u003cp\u003e12.2.1 Our Own Research 211\u003c\/p\u003e \u003cp\u003e12.3 Analyzing the Usage of ORM Technologies in Database-Driven Java Systems 212\u003c\/p\u003e \u003cp\u003e12.4 Coarse-Grained Analysis of Database Technology Usage 215\u003c\/p\u003e \u003cp\u003e12.4.5 Discussion 222\u003c\/p\u003e \u003cp\u003e12.5 Fine-Grained Analysis of Database Technology Usage 222\u003c\/p\u003e \u003cp\u003e12.5.1 Analysis Background 222\u003c\/p\u003e \u003cp\u003e12.5.2 Conceptual Schema 224\u003c\/p\u003e \u003cp\u003e12.5.3 Metrics 226\u003c\/p\u003e \u003cp\u003e12.5.4 Discussion 235\u003c\/p\u003e \u003cp\u003e12.6 Conclusion 236\u003c\/p\u003e \u003cp\u003e12.7 Future Work 237\u003c\/p\u003e \u003cp\u003eAcknowledgments 238\u003c\/p\u003e \u003cp\u003eReferences 238\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart IV Software Product Lines and Variability 41\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e13 Dynamic Software Product Lines 243\u003cbr\u003e\u003c\/b\u003e\u003ci\u003eSvein Hallsteinsen, Mike Hinchey, Sooyong Park, and Klaus Schmid\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e13.1 Introduction 243\u003c\/p\u003e \u003cp\u003e13.2 Product Line Engineering 243\u003c\/p\u003e \u003cp\u003e13.3 Software Product Lines 244\u003c\/p\u003e \u003cp\u003e13.4 Dynamic SPLs 245\u003c\/p\u003e \u003cp\u003eReferences 246\u003c\/p\u003e \u003cp\u003e\u003cb\u003e14 Cutting-Edge Topics on Dynamic Software Variability 247\u003cbr\u003e\u003c\/b\u003e\u003ci\u003eRafael Capilla, Jan Bosch, and Mike Hinchey\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e14.1 Introduction 247\u003c\/p\u003e \u003cp\u003e14.2 The Postdeployment Era 248\u003c\/p\u003e \u003cp\u003e14.3 Runtime Variability Challenges Revisited 249\u003c\/p\u003e \u003cp\u003e14.4 What Industry Needs from Variability at Any Time? 253\u003c\/p\u003e \u003cp\u003e14.5 Approaches and Techniques for Dynamic Variability Adoption 255\u003c\/p\u003e \u003cp\u003e14.6 Summary 266\u003c\/p\u003e \u003cp\u003e14.7 Conclusions 267\u003c\/p\u003e \u003cp\u003eReferences 268\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart V Formal Methods 271\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e15 The Quest for Formal Methods in Software Product Line Engineering 273\u003cbr\u003e\u003c\/b\u003e\u003ci\u003eReiner Hähnle and Ina Schaefer\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e15.1 Introduction 273\u003c\/p\u003e \u003cp\u003e15.2 SPLE: Beneﬁts and Limitations 274\u003c\/p\u003e \u003cp\u003e15.3 Applying Formal Methods to SPLE 275\u003c\/p\u003e \u003cp\u003e15.4 The Abstract Behavioral Speciﬁcation Language 277\u003c\/p\u003e \u003cp\u003e15.5 Model-Centric SPL Development with ABS 279\u003c\/p\u003e \u003cp\u003e15.6 Remaining Challenges 280\u003c\/p\u003e \u003cp\u003e15.6.4 Maintenance 280\u003c\/p\u003e \u003cp\u003e15.7 Conclusion 281\u003c\/p\u003e \u003cp\u003eReferences 281\u003c\/p\u003e \u003cp\u003e\u003cb\u003e16 Formality, Agility, Security, and Evolution in Software Engineering 282\u003cbr\u003e\u003c\/b\u003e\u003ci\u003eJonathan P. Bowen, Mike Hinchey, Helge Janicke, Martin Ward, and Hussein Zedan\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e16.1 Introduction 282\u003c\/p\u003e \u003cp\u003e16.2 Formality 283\u003c\/p\u003e \u003cp\u003e16.3 Agility 283\u003c\/p\u003e \u003cp\u003e16.4 Security 284\u003c\/p\u003e \u003cp\u003e16.5 Evolution 285\u003c\/p\u003e \u003cp\u003e16.6 Conclusion 289\u003c\/p\u003e \u003cp\u003eAcknowledgments 290\u003c\/p\u003e \u003cp\u003eReferences 290\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart VI Cloud Computing 293\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e17 Cloud Computing: An Exploration of Factors Impacting Adoption 295\u003cbr\u003e\u003c\/b\u003e\u003ci\u003eLorraine Morgan and Kieran Conboy\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e17.1 Introduction 295\u003c\/p\u003e \u003cp\u003e17.2 Theoretical Background 296\u003c\/p\u003e \u003cp\u003e17.3 Research Method 298\u003c\/p\u003e \u003cp\u003e17.4 Findings and Analysis 303\u003c\/p\u003e \u003cp\u003e17.4.2 Organizational Factors Impacting Adoption 306\u003c\/p\u003e \u003cp\u003e17.4.3 Environmental Factors Impacting Adoption 308\u003c\/p\u003e \u003cp\u003e17.5 Discussion and Conclusion 310\u003c\/p\u003e \u003cp\u003e17.5.1 Limitations and Future Research 311\u003c\/p\u003e \u003cp\u003eReferences 311\u003c\/p\u003e \u003cp\u003e\u003cb\u003e18 A Model-Centric Approach to the Design of Resource-Aware Cloud Applications 315\u003cbr\u003e\u003c\/b\u003e\u003ci\u003eReiner Hähnle and Einar Broch Johnsen\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e18.1 Capitalizing on the Cloud 315\u003c\/p\u003e \u003cp\u003e18.2 Challenges 316\u003c\/p\u003e \u003cp\u003e18.2.1 Empowering the Designer 316\u003c\/p\u003e \u003cp\u003e18.2.2 Deployment Aspects at Design Time 316\u003c\/p\u003e \u003cp\u003e18.3 Controlling Deployment in the Design Phase 318\u003c\/p\u003e \u003cp\u003e18.4 ABS: Modeling Support for Designing Resource-Aware Applications 319\u003c\/p\u003e \u003cp\u003e18.5 Resource Modeling with ABS 320\u003c\/p\u003e \u003cp\u003e18.6 Opportunities 324\u003c\/p\u003e \u003cp\u003e18.6.1 Fine-Grained Provisioning 324\u003c\/p\u003e \u003cp\u003e18.6.2 Tighter Provisioning 324\u003c\/p\u003e \u003cp\u003e18.6.3 Application-Speciﬁc Resource Control 324\u003c\/p\u003e \u003cp\u003e18.6.4 Application-Controlled Elasticity 324\u003c\/p\u003e \u003cp\u003e18.7 Summary 325\u003c\/p\u003e \u003cp\u003eAcknowledgments 325\u003c\/p\u003e \u003cp\u003eReferences 325\u003c\/p\u003e \u003cp\u003eIndex 327\u003c\/p\u003e","brand":"John Wiley and Sons Ltd","offers":[{"title":"Default Title","offer_id":49407004148055,"sku":"9781119174219","price":75.56,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781119174219.jpg?v=1730497852","url":"https:\/\/bookcurl.com\/products\/software-technology-9781119174219","provider":"Book Curl","version":"1.0","type":"link"}