TIENE EN SU CESTA DE LA COMPRA
en total 0,00 €
A comprehensive collection of influential articles from one of IEEE Computer magazine's most popular columns
This book is a compendium of extended and revised publications that have appeared in the "Software Technologiesö column of IEEE Computer 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.
Software Technology 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:
Introduces the software landscape and challenges associated with emerging technologies
Covers the life cycle of software products, including concepts, requirements, development, testing, verification, evolution, and security
Contains rewritten and updated articles by leaders in the software industry
Covers both theoretical and practical topics
Informative and thought-provoking throughout, Software Technology 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.
Foreword xv
Preface xix
Acknowledgments xxiii
List of Contributors xxv
Part I The Software Landscape 1
1 Software Crisis 2.0 3
Brian Fitzgerald
1.1 Software Crisis 1.0 3
1.2 Software Crisis 2.0 5
1.2.1 Hardware Advances 6
1.2.2 "Big Dataö 8
1.2.3 Digital Natives Lifelogging and the Quanti?ed Self 9
1.2.4 Software-De?ned* 10
1.3 Software Crisis 2.0: The Bottleneck 10
1.3.1 Signi?cant Increase in Volume of Software Required 11
1.3.2 New Skill Sets Required for Software Developers 12
1.4 Conclusion 13
References 14
2 Simplicity as a Driver for Agile Innovation 17
Tiziana Margaria and Bernhard Steffen
2.1 Motivation and Background 17
2.2 Important Factors 20
2.3 The Future 22
2.4 Less Is More: The 80/20 Principle 27
2.5 Simplicity: A Never Ending Challenge 28
2.6 IT Speci?cs 29
2.7 Conclusions 29
Acknowledgments 30
References 30
3 Intercomponent Dependency Issues in Software Ecosystems 35
Maëlick Claes, Alexandre Decan, and Tom Mens
3.1 Introduction 35
3.2 Problem Overview 36
3.2.1 Terminology 36
3.2.2 Identifying and Retrieving Dependency Information 38
3.2.3 Satisfying Dependencies and Con?icts 39
3.2.4 Component Upgrade 40
3.2.5 Inter-Project Cloning 41
3.3 First Case Study: Debian 42
3.3.1 Overview of Debian 42
3.3.2 Aggregate Analysis of Strong Con?icts 44
3.3.3 Package-Level Analysis of Strong Con?icts 45
3.4 Second Case Study: The R Ecosystem 46
3.4.1 Overview of R 46
3.4.2 R Package Repositories 47
3.4.3 Interrepository Dependencies 50
3.4.4 Intrarepository Dependencies 52
3.5 Conclusion 53
Acknowledgments 54
References 54
4 Triangulating Research Dissemination Methods: A Three-Pronged Approach to Closing the Research-Practice Divide 58
Sarah Beecham, Ita Richardson, Ian Sommerville, Padraig O'Leary, Sean Baker, and John Noll
4.1 Introduction 58
4.2 Meeting the Needs of Industry 60
4.2.1 Commercialization Feasibility Study 61
4.2.2 Typical GSE Issues Were Reported 62
4.3 The Theory-Practice Divide 63
4.3.1 Making Research Accessible 64
4.3.2 Where Do Practitioners Really Go for Support? 65
4.4 Solutions: Rethinking Our Dissemination Methods 66
4.4.1 Workshops, Outreach, and Seminars 66
4.4.2 Case Studies 69
4.4.3 Action Research 70
4.4.4 Practitioner Ph.D.'s 71
4.4.5 Industry Fellowships 73
4.4.6 Commercializing Research 74
4.5 Obstacles to Research Relevance 76
4.5.1 The (IR) Relevance of Academic Software Engineering Research 76
4.5.2 Barriers to Research Commercialization 77
4.5.3 Academic Barriers to Commercialization 78
4.5.4 Business Barriers to Commercialization 79
4.5.5 Organizational Barriers to Commercialization 80
4.5.6 Funding Barriers to Commercialization 81
4.6 Conclusion 84
4.6.1 Research and Practice Working Together to Innovate 85
4.6.2 Final Thoughts 86
Acknowledgments 86
References 86
Part II Autonomous Software Systems 91
5 Apoptotic Computing: Programmed Death by Default for Software Technologies 93
Roy Sterritt and Mike Hinchey
5.1 Biological Apoptosis 93
5.2 Autonomic Agents 94
5.3 Apoptosis within Autonomic Agents 96
5.4 NASA SWARM Concept Missions 98
5.5 The Evolving State-of-the-Art Apoptotic Computing 100
5.5.1 Strong versus Weak Apoptotic Computing 100
5.5.2 Other Research 101
5.6 "This Message Will Self-Destructö: Commercial Applications 102
5.7 Conclusion 102
Acknowledgments 103
References 103
6 Requirements Engineering for Adaptive and Self-Adaptive Systems 107
Emil Vassev and Mike Hinchey
6.1 Introduction 107
6.2 Understanding ARE 108
6.3 System Goals and Goals Models 109
6.4 Self-* Objectives and Autonomy-Assistive Requirements 111
6.4.1 Constraints and Self-* Objectives 113
6.4.2 Mission Analysis and Self-* Objectives 114
6.5 Recording and Formalizing Autonomy Requirements 116
6.5.1 ARE Requirements Chunk 117
6.6 Conclusion 118
Acknowledgments 119
References 119
7 Toward Arti?cial Intelligence through Knowledge Representation for Awareness 121
Emil Vassev and Mike Hinchey
7.1 Introduction 121
7.2 Knowledge Representation 122
7.2.1 Rules 122
7.2.2 Frames 122
7.2.3 Semantic Networks and Concept Maps 122
7.2.4 Ontologies 123
7.2.5 Logic 123
7.2.6 Completeness and Consistency 124
7.2.7 Reasoning 125
7.2.8 Technologies 125
7.3 KnowLang 126
7.3.1 Modeling Knowledge with KnowLang 127
7.3.2 Knowledge Representation for Self-Adaptive Behavior 129
7.3.3 Case Study 129
7.4 Awareness 131
7.4.1 Classes of Awareness 132
7.4.2 Structuring Awareness 133
7.4.3 Implementing Awareness 134
7.5 Challenges and Conclusion 136
References 136
Part III Software Development and Evolution 139
8 Continuous Model-Driven Engineering 141
Tiziana Margaria, Anna-Lena Lamprecht, and Bernhard Steffen
8.1 Introduction 141
8.2 Continuous Model-Driven Engineering 143
8.3 CMDE in Practice 147
8.4 Conclusion 150
Acknowledgment 150
References 151
9 Rethinking Functional Requirements: A Novel Approach Categorizing System and Software Requirements 155
Manfred Broy
9.1 Introduction 155
9.2 Discussion: Classifying Requirements - Why and How 158
9.2.1 On Classifying Requirements as Being Functional 158