Details

Software Technology


Software Technology

10 Years of Innovation in IEEE Computer
1. Aufl.

von: Mike Hinchey

84,99 €

Verlag: Wiley
Format: EPUB
Veröffentl.: 09.07.2018
ISBN/EAN: 9781119174233
Sprache: englisch
Anzahl Seiten: 384

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

Beschreibungen

<p><b>A comprehensive collection of influential articles from one of <i>IEEE Computer</i> magazine’s most popular columns</b></p> <p>This book is a compendium of extended and revised publications that have appeared in the “Software Technologies” column of <i>IEEE Computer</i> 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.</p> <p><i>Software Technology</i> 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 wave of software technology advances and applications. In addition, the book:</p> <ul> <li>Introduces the software landscape and challenges associated with emerging technologies</li> <li>Covers the life cycle of software products, including concepts, requirements, development, testing, verification, evolution, and security</li> <li>Contains rewritten and updated articles by leaders in the software industry</li> <li>Covers both theoretical and practical topics</li> </ul> <p>Informative and thought-provoking throughout, <i>Software Technology</i> is a valuable book for everyone in the software engineering community that will inspire as much as it will teach all who flip through its pages.</p>
<p>Foreword xv</p> <p>Preface xix</p> <p>Acknowledgments xxiii</p> <p>List of Contributors xxv</p> <p><b>Part I The Software Landscape 1</b></p> <p><b>1 Software Crisis 2.0 3<br /></b><i>Brian Fitzgerald</i></p> <p>1.1 Software Crisis 1.0 3</p> <p>1.2 Software Crisis 2.0 5</p> <p>1.2.1 Hardware Advances 6</p> <p>1.2.2 “Big Data” 8</p> <p>1.2.3 Digital Natives Lifelogging and the Quantified Self 9</p> <p>1.2.4 Software-Defined<sup>∗</sup> 10</p> <p>1.3 Software Crisis 2.0: The Bottleneck 10</p> <p>1.3.1 Significant Increase in Volume of Software Required 11</p> <p>1.3.2 New Skill Sets Required for Software Developers 12</p> <p>1.4 Conclusion 13</p> <p>References 14</p> <p><b>2 Simplicity as a Driver for Agile Innovation 17<br /></b><i>Tiziana Margaria and Bernhard Steffen</i></p> <p>2.1 Motivation and Background 17</p> <p>2.2 Important Factors 20</p> <p>2.3 The Future 22</p> <p>2.4 Less Is More: The 80/20 Principle 27</p> <p>2.5 Simplicity: A Never Ending Challenge 28</p> <p>2.6 IT Specifics 29</p> <p>2.7 Conclusions 29</p> <p>Acknowledgments 30</p> <p>References 30</p> <p><b>3 Intercomponent Dependency Issues in Software Ecosystems 35<br /></b><i>Maëlick Claes, Alexandre Decan, and Tom Mens</i></p> <p>3.1 Introduction 35</p> <p>3.2 Problem Overview 36</p> <p>3.2.1 Terminology 36</p> <p>3.2.2 Identifying and Retrieving Dependency Information 38</p> <p>3.2.3 Satisfying Dependencies and Conflicts 39</p> <p>3.2.4 Component Upgrade 40</p> <p>3.2.5 Inter-Project Cloning 41</p> <p>3.3 First Case Study: Debian 42</p> <p>3.3.1 Overview of Debian 42</p> <p>3.3.2 Aggregate Analysis of Strong Conflicts 44</p> <p>3.3.3 Package-Level Analysis of Strong Conflicts 45</p> <p>3.4 Second Case Study: The R Ecosystem 46</p> <p>3.4.1 Overview of R 46</p> <p>3.4.2 R Package Repositories 47</p> <p>3.4.3 Interrepository Dependencies 50</p> <p>3.4.4 Intrarepository Dependencies 52</p> <p>3.5 Conclusion 53</p> <p>Acknowledgments 54</p> <p>References 54</p> <p><b>4 Triangulating Research Dissemination Methods: A Three-Pronged Approach to Closing the Research–Practice Divide 58<br /></b><i>Sarah Beecham, Ita Richardson, Ian Sommerville, Padraig O’Leary, Sean Baker, and John Noll</i></p> <p>4.1 Introduction 58</p> <p>4.2 Meeting the Needs of Industry 60</p> <p>4.2.1 Commercialization Feasibility Study 61</p> <p>4.2.2 Typical GSE Issues Were Reported 62</p> <p>4.3 The Theory–Practice Divide 63</p> <p>4.3.1 Making Research Accessible 64</p> <p>4.3.2 Where Do Practitioners Really Go for Support? 65</p> <p>4.4 Solutions: Rethinking Our Dissemination Methods 66</p> <p>4.4.1 Workshops, Outreach, and Seminars 66</p> <p>4.4.2 Case Studies 69</p> <p>4.4.3 Action Research 70</p> <p>4.4.4 Practitioner Ph.D.’s 71</p> <p>4.4.5 Industry Fellowships 73</p> <p>4.4.6 Commercializing Research 74</p> <p>4.5 Obstacles to Research Relevance 76</p> <p>4.5.1 The (IR) Relevance of Academic Software Engineering Research 76</p> <p>4.5.2 Barriers to Research Commercialization 77</p> <p>4.5.3 Academic Barriers to Commercialization 78</p> <p>4.5.4 Business Barriers to Commercialization 79</p> <p>4.5.5 Organizational Barriers to Commercialization 80</p> <p>4.5.6 Funding Barriers to Commercialization 81</p> <p>4.6 Conclusion 84</p> <p>4.6.1 Research and Practice Working Together to Innovate 85</p> <p>4.6.2 Final Thoughts 86</p> <p>Acknowledgments 86</p> <p>References 86</p> <p><b>Part II Autonomous Software Systems    91</b></p> <p><b>5 Apoptotic Computing: Programmed Death by Default for Software Technologies 93<br /></b><i>Roy Sterritt and Mike Hinchey</i></p> <p>5.1 Biological Apoptosis 93</p> <p>5.2 Autonomic Agents 94</p> <p>5.3 Apoptosis within Autonomic Agents 96</p> <p>5.4 NASA SWARM Concept Missions 98</p> <p>5.5 The Evolving State-of-the-Art Apoptotic Computing 100</p> <p>5.5.1 Strong versus Weak Apoptotic Computing 100</p> <p>5.5.2 Other Research 101</p> <p>5.6 “This Message Will Self-Destruct”: Commercial Applications 102</p> <p>5.7 Conclusion 102</p> <p>Acknowledgments 103</p> <p>References 103</p> <p><b>6 Requirements Engineering for Adaptive and Self-Adaptive Systems 107<br /></b><i>Emil Vassev and Mike Hinchey</i></p> <p>6.1 Introduction 107</p> <p>6.2 Understanding ARE 108</p> <p>6.3 System Goals and Goals Models 109</p> <p>6.4 Self-<sup>∗</sup> Objectives and Autonomy-Assistive Requirements 111</p> <p>6.4.1 Constraints and Self-<sup>∗</sup> Objectives 113</p> <p>6.4.2 Mission Analysis and Self-<sup>∗</sup> Objectives 114</p> <p>6.5 Recording and Formalizing Autonomy Requirements 116</p> <p>6.5.1 ARE Requirements Chunk 117</p> <p>6.6 Conclusion 118</p> <p>Acknowledgments 119</p> <p>References 119</p> <p><b>7 Toward Artificial Intelligence through Knowledge Representation for Awareness 121<br /></b><i>Emil Vassev and Mike Hinchey</i></p> <p>7.1 Introduction 121</p> <p>7.2 Knowledge Representation 122</p> <p>7.2.1 Rules 122</p> <p>7.2.2 Frames 122</p> <p>7.2.3 Semantic Networks and Concept Maps 122</p> <p>7.2.4 Ontologies 123</p> <p>7.2.5 Logic 123</p> <p>7.2.6 Completeness and Consistency 124</p> <p>7.2.7 Reasoning 125</p> <p>7.2.8 Technologies 125</p> <p>7.3 KnowLang 126</p> <p>7.3.1 Modeling Knowledge with KnowLang 127</p> <p>7.3.2 Knowledge Representation for Self-Adaptive Behavior 129</p> <p>7.3.3 Case Study 129</p> <p>7.4 Awareness 131</p> <p>7.4.1 Classes of Awareness 132</p> <p>7.4.2 Structuring Awareness 133</p> <p>7.4.3 Implementing Awareness 134</p> <p>7.5 Challenges and Conclusion 136</p> <p>References 136</p> <p><b>Part III Software Development and Evolution 139</b></p> <p><b>8 Continuous Model-Driven Engineering 141<br /></b><i>Tiziana Margaria, Anna-Lena Lamprecht, and Bernhard Steffen</i></p> <p>8.1 Introduction 141</p> <p>8.2 Continuous Model-Driven Engineering 143</p> <p>8.3 CMDE in Practice 147</p> <p>8.4 Conclusion 150</p> <p>Acknowledgment 150</p> <p>References 151</p> <p><b>9 Rethinking Functional Requirements: A Novel Approach Categorizing System and Software Requirements 155<br /></b><i>Manfred Broy</i></p> <p>9.1 Introduction 155</p> <p>9.2 Discussion: Classifying Requirements – Why and How 158</p> <p>9.2.1 On Classifying Requirements as Being Functional 158</p> <p>9.2.2 “Nonfunctional” Requirements and Their Characterization 159</p> <p>9.2.3 Limitations of Classification Due to Heterogeneity and Lacking Precision 160</p> <p>9.2.4 Approach: System Model-Based Categorization of Requirements 162</p> <p>9.3 The System Model 164</p> <p>9.3.1 The Basics: System Modeling Ontology 164</p> <p>9.3.2 System Views and Levels of Abstractions 171</p> <p>9.3.3 Structuring Systems into Views 172</p> <p>9.4 Categorizing System Properties 172</p> <p>9.4.1 System Behavior: Behavioral Properties 173</p> <p>9.4.2 Variations in Modeling System Behavior 175</p> <p>9.4.3 System Context: Properties of the Context 176</p> <p>9.4.4 Nonbehavioral System Properties: System Representation 177</p> <p>9.5 Categorizing Requirements 178</p> <p>9.5.1 A Rough Categorization of Requirements 179</p> <p>9.5.2 A Novel Taxonomy of Requirements? 183</p> <p>9.6 Summary 186</p> <p>Acknowledgments 187</p> <p>References   187</p> <p><b>10 The Power of Ten—Rules for Developing Safety Critical Code 188<br /></b><i>Gerard J. Holzmann</i></p> <p>10.1 Introduction 188</p> <p>10.2 Context 189</p> <p>10.3 The Choice of Rules 190</p> <p>10.4 Ten Rules for Safety Critical Code 192</p> <p>10.5 Synopsis 200</p> <p>References 201</p> <p><b>11 Seven Principles of Software Testing 202<br /></b><i>Bertrand Meyer</i></p> <p>11.1 Introduction 202</p> <p>11.2 Defining Testing 202</p> <p>11.3 Tests and Specifications 203</p> <p>11.4 Regression Testing 204</p> <p>11.5 Oracles 204</p> <p>11.6 Manual and Automatic Test Cases 205</p> <p>11.7 Testing Strategies 205</p> <p>11.8 Assessment Criteria 206</p> <p>11.9 Conclusion 207</p> <p>References 207</p> <p><b>12 Analyzing the Evolution of Database Usage in Data-Intensive Software Systems 208<br /></b><i>Loup Meurice, Mathieu Goeminne, Tom Mens, Csaba Nagy, Alexandre Decan, and Anthony Cleve</i></p> <p>12.1 Introduction 208</p> <p>12.2 State of the Art 210</p> <p>12.2.1 Our Own Research 211</p> <p>12.3 Analyzing the Usage of ORM Technologies in Database-Driven Java Systems 212</p> <p>12.4 Coarse-Grained Analysis of Database Technology Usage 215</p> <p>12.4.5 Discussion 222</p> <p>12.5 Fine-Grained Analysis of Database Technology Usage 222</p> <p>12.5.1 Analysis Background 222</p> <p>12.5.2 Conceptual Schema 224</p> <p>12.5.3 Metrics 226</p> <p>12.5.4 Discussion 235</p> <p>12.6 Conclusion 236</p> <p>12.7 Future Work 237</p> <p>Acknowledgments 238</p> <p>References 238</p> <p><b>Part IV Software Product Lines and Variability 41</b></p> <p><b>13 Dynamic Software Product Lines 243<br /></b><i>Svein Hallsteinsen, Mike Hinchey, Sooyong Park, and Klaus Schmid</i></p> <p>13.1 Introduction 243</p> <p>13.2 Product Line Engineering 243</p> <p>13.3 Software Product Lines 244</p> <p>13.4 Dynamic SPLs 245</p> <p>References 246</p> <p><b>14 Cutting-Edge Topics on Dynamic Software Variability 247<br /></b><i>Rafael Capilla, Jan Bosch, and Mike Hinchey</i></p> <p>14.1 Introduction 247</p> <p>14.2 The Postdeployment Era 248</p> <p>14.3 Runtime Variability Challenges Revisited 249</p> <p>14.4 What Industry Needs from Variability at Any Time? 253</p> <p>14.5 Approaches and Techniques for Dynamic Variability Adoption 255</p> <p>14.6 Summary 266</p> <p>14.7 Conclusions 267</p> <p>References 268</p> <p><b>Part V Formal Methods 271</b></p> <p><b>15 The Quest for Formal Methods in Software Product Line Engineering 273<br /></b><i>Reiner Hähnle and Ina Schaefer</i></p> <p>15.1 Introduction 273</p> <p>15.2 SPLE: Benefits and Limitations 274</p> <p>15.3 Applying Formal Methods to SPLE 275</p> <p>15.4 The Abstract Behavioral Specification Language 277</p> <p>15.5 Model-Centric SPL Development with ABS 279</p> <p>15.6 Remaining Challenges 280</p> <p>15.6.4 Maintenance 280</p> <p>15.7 Conclusion 281</p> <p>References 281</p> <p><b>16 Formality, Agility, Security, and Evolution in Software Engineering 282<br /></b><i>Jonathan P. Bowen, Mike Hinchey, Helge Janicke, Martin Ward, and Hussein Zedan</i></p> <p>16.1 Introduction 282</p> <p>16.2 Formality 283</p> <p>16.3 Agility 283</p> <p>16.4 Security 284</p> <p>16.5 Evolution 285</p> <p>16.6 Conclusion 289</p> <p>Acknowledgments 290</p> <p>References 290</p> <p><b>Part VI Cloud Computing 293</b></p> <p><b>17 Cloud Computing: An Exploration of Factors Impacting Adoption 295<br /></b><i>Lorraine Morgan and Kieran Conboy</i></p> <p>17.1 Introduction 295</p> <p>17.2 Theoretical Background 296</p> <p>17.3 Research Method 298</p> <p>17.4 Findings and Analysis 303</p> <p>17.4.2 Organizational Factors Impacting Adoption 306</p> <p>17.4.3 Environmental Factors Impacting Adoption 308</p> <p>17.5 Discussion and Conclusion 310</p> <p>17.5.1 Limitations and Future Research 311</p> <p>References 311</p> <p><b>18 A Model-Centric Approach to the Design of Resource-Aware Cloud Applications 315<br /></b><i>Reiner Hähnle and Einar Broch Johnsen</i></p> <p>18.1 Capitalizing on the Cloud 315</p> <p>18.2 Challenges 316</p> <p>18.2.1 Empowering the Designer 316</p> <p>18.2.2 Deployment Aspects at Design Time 316</p> <p>18.3 Controlling Deployment in the Design Phase 318</p> <p>18.4 ABS: Modeling Support for Designing Resource-Aware Applications 319</p> <p>18.5 Resource Modeling with ABS 320</p> <p>18.6 Opportunities 324</p> <p>18.6.1 Fine-Grained Provisioning 324</p> <p>18.6.2 Tighter Provisioning 324</p> <p>18.6.3 Application-Specific Resource Control 324</p> <p>18.6.4 Application-Controlled Elasticity 324</p> <p>18.7 Summary 325</p> <p>Acknowledgments 325</p> <p>References 325</p> <p>Index 327</p>
<p><b>Mike Hinchey, PhD,</b> is a Professor and former Director of Lero - the Irish Software Research Centre at the University of Limerick, Ireland. Dr. Hinchey is also the President of the International Federation for Information Processing (IFIP), a former column editor for <i>Software Technologies </i>(IEEE Computer Magazine), and a senior member of the IEEE. He is the author of more than 200 papers, and has written multiple books.</p>
<p><b>A comprehensive collection of influential articles from one of <i>IEEE Computer</i> magazine’s most popular columns</b></p> <p>This book is a compendium of extended and revised publications that have appeared in the “Software Technologies” column of <i>IEEE Computer</i> 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.</p> <p><i>Software Technology</i> 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 wave of software technology advances and applications. In addition, the book:</p> <ul> <li>Introduces the software landscape and challenges associated with emerging technologies</li> <li>Covers the life cycle of software products, including concepts, requirements, development, testing, verification, evolution, and security</li> <li>Contains rewritten and updated articles by leaders in the software industry</li> <li>Covers both theoretical and practical topics</li> </ul> <p>Informative and thought-provoking throughout, <i>Software Technology</i> is a valuable book for everyone in the software engineering community that will inspire as much as it will teach all who flip through its pages.</p>

Diese Produkte könnten Sie auch interessieren:

MDX Solutions
MDX Solutions
von: George Spofford, Sivakumar Harinath, Christopher Webb, Dylan Hai Huang, Francesco Civardi
PDF ebook
53,99 €
Concept Data Analysis
Concept Data Analysis
von: Claudio Carpineto, Giovanni Romano
PDF ebook
107,99 €
Handbook of Virtual Humans
Handbook of Virtual Humans
von: Nadia Magnenat-Thalmann, Daniel Thalmann
PDF ebook
150,99 €