E-Book, Englisch, 347 Seiten
Mens / Demeyer Software Evolution
1. Auflage 2008
ISBN: 978-3-540-76440-3
Verlag: Springer Berlin Heidelberg
Format: PDF
Kopierschutz: 1 - PDF Watermark
E-Book, Englisch, 347 Seiten
ISBN: 978-3-540-76440-3
Verlag: Springer Berlin Heidelberg
Format: PDF
Kopierschutz: 1 - PDF Watermark
This book focuses on novel trends in software evolution research and its relations with other emerging disciplines. Mens and Demeyer, both authorities in the field of software evolution, do not restrict themselves to the evolution of source code but also address the evolution of other, equally important software artifacts. This book is the indispensable source for researchers and professionals looking for an introduction and comprehensive overview of the state-of-the-art.
Tom Mens is professor at the Institute of Computer Science of the University of Mons-Hainaut in Belgium. He obtained his PhD in Science in 1999 at the Vrije Universiteit Brussel on the topic of software evolution. Being one of the leading researchers in this domain, he currently directs the ERCIM Working Group on Software Evolution. Serge Demeyer is professor at the University of Antwerp (Department of Mathematics and Computer Science), where he leads a research group investigating the theme of 'Software Reengineering' (LORE - Lab On REengineering). His main research interest concerns software engineering (more precisely, reengineering of object-oriented software systems) but due to historical reasons he maintains a heavy interest in hypermedia systems as well. He is an active member of the corresponding international research communities, serving in various conference organization and program committees.
Autoren/Hrsg.
Weitere Infos & Material
1;Foreword;6
2;Preface;8
3;Contents;12
4;List of Contributors;14
5;1 Introduction and Roadmap: History and Challenges of Software Evolution;18
5.1;1.1 The History of Software Evolution;18
5.2;1.2 Research Themes in Software Evolution;21
6;Part I Understanding and Analysing Software Evolution;29
6.1;2 Identifying and Removing Software Clones;30
6.1.1;2.1 Introduction;30
6.1.2;2.2 Software Redundancy, Code Cloning, and Code Duplication;31
6.1.3;2.3 Types of Clones;33
6.1.4;2.4 The Root Causes for Code Clones;34
6.1.5;2.5 Consequences of Cloning;36
6.1.6;2.6 Clone Evolution;38
6.1.7;2.7 Clone Management;39
6.1.8;2.8 Clone Detection;41
6.1.9;2.9 Comparison of Clone Detection Algorithms;43
6.1.10;2.10 Clone Presentation;46
6.1.11;2.11 Related Fields;49
6.1.12;2.12 Conclusions;50
6.2;3 Analysing Software Repositories to Understand Software Evolution;52
6.2.1;3.1 Introduction;52
6.2.2;3.2 An Overview of Software Repository Analysis;53
6.2.3;3.3 Release History;55
6.2.4;3.4 Software Evolution Analysis;61
6.2.5;3.5 Conclusion;81
6.3;4 Predicting Bugs from History;83
6.3.1;4.1 Introduction;83
6.3.2;4.2 What Makes a Module Defect-Prone?;85
6.3.3;4.3 Metrics;87
6.3.4;4.4 Problem Domain;90
6.3.5;4.5 Code Churn;96
6.3.6;4.6 Open Issues;98
6.3.7;4.7 Threats to Validity;100
6.3.8;4.8 Conclusion and Consequences;101
7;Part II Reengineering of Legacy Systems;103
7.1;5 Object-Oriented Reengineering;104
7.1.1;5.1 Introduction;104
7.1.2;5.2 Refactoring;105
7.1.3;5.3 Reengineering Patterns;111
7.1.4;5.4 Conclusion;117
7.2;6 Migration of Legacy Information Systems;118
7.2.1;6.1 Introduction;118
7.2.2;6.2 Migration Reference Model;124
7.2.3;6.3 The Transformational Approach;126
7.2.4;6.4 Schema Conversion;129
7.2.5;6.5 Data Conversion;134
7.2.6;6.6 Program Conversion;135
7.2.7;6.7 Tool Support;141
7.2.8;6.8 Industrial Application;144
7.2.9;6.9 Strategies Comparison;148
7.2.10;6.10 Conclusions;150
7.3;7 Architectural Transformations: From Legacy to Three-Tier and Services;152
7.3.1;7.1 Introduction;152
7.3.2;7.2 From Legacy Systems to Three-Tier Applications and Services;153
7.3.3;7.3 The Approach to Architectural Transformation;158
7.3.4;7.4 Implementation and Example;164
7.3.5;7.5 RelatedWork;175
8;Part III Novel Trends in Software Evolution;184
8.1;8 On the Interplay Between Software Testing and Evolution and its Effect on Program Comprehension;185
8.1.1;8.1 Introduction;185
8.1.2;8.2 Agile Software Development Methods;187
8.1.3;8.3 Program Comprehension;188
8.1.4;8.4 Test Smells and Refactorings;192
8.1.5;8.5 How Refactoring Can Invalidate Its Safety Net;196
8.1.6;8.6 Measuring Code and Test Code;205
8.1.7;8.7 Concluding Remarks;210
8.2;9 Evolution Issues in Aspect-Oriented Programming;215
8.2.1;9.1 Introduction;215
8.2.2;9.2 Aspect-Oriented Programming;218
8.2.3;9.3 Aspect Exploration;221
8.2.4;9.4 Aspect Extraction;228
8.2.5;9.5 Aspect Evolution;238
8.2.6;9.6 Summary;243
8.3;10 Software Architecture Evolution;245
8.3.1;10.1 Introduction;245
8.3.2;10.2 Component-Based Software Architecture: Concepts and Open Issues;246
8.3.3;10.3 Dynamic Software Architecture Description;250
8.3.4;10.4 Aspect-Oriented Architectures Description Language;254
8.3.5;10.5 The Safe Integration of New Concerns in a Software Architecture;257
8.3.6;10.6 RelatedWork;271
8.3.7;10.7 Conclusion;273
8.4;11 Empirical Studies of Open Source Evolution;275
8.4.1;11.1 Introduction;275
8.4.2;11.2 Empirical Studies of Open Source Evolution;282
8.4.3;11.3 Comparing the Evolution of Open and Closed Source Software Systems;293
8.4.4;11.4 Threats to Validity;294
8.4.5;11.5 Conclusions and Further Work;299
9;A Resources;302
10;B Glossary of Terms;306
11;C List of Acronyms;318
12;References;320
13;Index;351




