During the last few years, software evolution research has explored new domains such as the study of socio-technical aspects and collaboration between different individuals contributing to a software system, the use of search-based techniques and meta-heuristics, the mining of unstructured software repositories, the evolution of software requirements, and the dynamic adaptation of software systems at runtime. Also more and more attention is being paid to the evolution of collections of inter-related and inter-dependent software projects, be it in the form of web systems, software product families, software ecosystems or systems of systems.
With this book, the editors present insightful contributions on these and other domains currently being intensively explored, written by renowned researchers in the respective fields of software evolution. Each chapter presents the state of the art in a particular topic, as well as the current research, available tool support and remaining challenges. The book is complemented by a glossary of important terms used in the community, a reference list of nearly 1,000 papers and books and tips on additional resources that may be useful to the reader (reference books, journals, standards and major scientific events in the domain of software evolution and datasets).This book is intended for all those interested in software engineering, and more particularly, software maintenance and evolution. Researchers and software practitioners alike will find in the contributed chapters an overview of the most recent findings, covering a broad spectrum of software evolution topics. In addition, it can also serve as the basis of graduate or postgraduate courses on e.g., software evolution, requirements engineering, model-driven software development or social informatics.
|Publisher:||Springer Berlin Heidelberg|
|Edition description:||Softcover reprint of the original 1st ed. 2014|
|Product dimensions:||6.10(w) x 9.25(h) x 0.03(d)|
About the Author
Tom Mens is a professor leading the Software Engineering Lab at the Department of Informatics of the University of Mons in Belgium. He completed his PhD in Science in 1999 at the Vrije Universiteit Brussel on the topic of software evolution. His areas of expertise include studying the quality, complexity and refactoring of software, model-driven and empirical software engineering and human-machine interaction. With Anthony Cleve, he co-chairs the ERCIM Working Group on Software Evolution.
Alexander Serebrenik is an associate professor of software evolution at Eindhoven University of Technology (TU/e), The Netherlands. His areas of expertise include both technical and social aspects of software evolution and maintainability, as well as program analysis and transformation. He has been closely involved in a series of industrial projects pertaining to software maintainability assessment, and serves as Steering Committee member of the IEEE International Conference on Software Maintenance.Anthony Cleve is an assistant professor of information system evolution at the University of Namur, Belgium. His research interests include data-intensive system maintenance and evolution, reverse engineering, program understanding, program transformation and self-adaptive systems. He received the IBM Belgium 2010 Award for his PhD thesis entitled "Program Analysis and Transformation for Data-Intensive System Evolution". He is co-chair of the ERCIM Working Group on Software Evolution.
Table of ContentsPart I Evolving Software Artefacts.- 1 An Overview of Requirements Evolution.- 2 Coupled Evolution of Software Meta models and Models.- 3 Software Product Quality Models.- Part II Techniques.- 4 Search Based Software Maintenance: Methods and Tools.- 5 Mining Unstructured Software Repositories.- 6 Leveraging Web 2.0 for Software Evolution.- Part III Evolution of Specific Types of Software Systems.- 7 Evolution of Web Systems.- 8 Runtime Evolution of Highly Dynamic Software.- 9 Evolution of Software Product Lines.- 10 Studying Evolving Software Ecosystems based on Ecological Models.- Part IV Appendices.- A Emerging Trends in Software Evolution.- B List of Acronyms.- C Glossary of Terms.- D Resources.- E Datasets.
What People are Saying About This
"This book is an excellent overview of the latest research in software evolution as it covers a wide range of systems and artifacts as well as analysis techniques. The book is for everyone interested in evolving software systems. For students, it reveals the complexity and challenges after the initial release of a software system. For researchers, it’s the perfect starting point to identify new, important research challenges. For practitioners, it’s a fantastic introduction to the latest techniques and tools used in software engineering research such as search-based techniques and mining unstructured data. Thanks so much the editors and authors for putting together such a fabulous and inspiring book. I love it!" (Thomas Zimmermann, Microsoft Research, Redmond, WA, USA)
“Modern society depends on software flexibility. Yet at the same time, software loses a bit of its flexibility with every change made to it. The field of software evolution research aims at understanding the processes of software evolution, and at proposing methods and techniques to manage evolution. This book provides a wonderful overview of the state of the art in software evolution. The editors did a great job in identifying challenging areas of research, and found the right experts to present the state of the art. Important areas such as evolving product lines and web applications are covered, as are underlying evolution techniques such as repository mining and search-based analysis. The book is a great resource, and I have immediately shared it with my co-workers. Highly recommended!” (Arie van Deursen, Delft University of Technology, The Netherlands)