1 Introducing Managed Software Evolution.- 2 The Nature of Software Evolution.- 3 Addressed Challenges.- 4 Introduction to Case Studies.- 5 Tacit Knowledge in Software Evolution.- 6 Continuous Design Decision Support.- 7 Model-based Round-Trip Engineering and Testing of Evolving Software Product Lines.- 8 Performance Analysis Strategies for Software Variants and Versions.- 9 Maintaining Security in Software Evolution.- 10 Learning from Evolution for Evolution.- 11 Formal Verication of Evolutionary Changes.- 12 Case Studies for the Community.- 13 Lessons Learned.- 14 Future Research.
Prof Dr. Ralf Reussner holds the chair of Software Design and Quality at the Karlsruhe Institute of Technology (KIT). Since 2006, he is director at the FZI – Forschungszentrum Informatik in Karlsruhe and since 2011 member of the Board of Scientific Directors. He was founder and first head of the GI Chapter on Software Architecture. Since 2015, he is head of the coordination board of the DFG Priority Programme 1593. His research interests include, among others, component-based software engineering, quality attributes of software, software design, and software architectures.
Prof. Dr. Michael Goedicke is head of the working group “Specification of Software Systems” at the University of Duisburg-Essen. He is vice president of the GI and Chair of the Technical Assembly of the IFIP. His research interests include, among others, software engineering methods, technical specification and realization of software systems, and software architecture and modelling.
Prof. Dr. Wilhelm Hasselbring holds the chair of Software Engineering at Kiel University since 2008. From 2000 to 2008 he headed the Chair of Software Engineering at the University of Oldenburg. In the competence cluster Software Systems Engineering (KoSSE), he coordinates technology transfer projects with industry. His research interests include, among others, distributed systems, software quality and software architectures.
Prof. Dr. Birgit Vogel-Heuser is head of the Institute of Automation and Information Systems at the Technical University of Munich. 10 years in industry and more than 15 years in academia provided her with significant experience in software engineering for machine and plant manufacturing. Her research interests include, among others, modelling of distributed embedded systems in automation and system and software evolution of automated production systems (aPS). Such aPS are complex mechatronic systems that often undergo innovations as addressed in the CRC 768 she is speaker of.
Jan Keim is researcher at the chair of Architecture-driven Requirements Engineering at the Karlsruhe Institute of Technology (KIT). He is managing director of the DFG Priority Programme 1593 where he, among others, promoted collaborations within the programme by coordinated joint-activities like workshops. His research interests include software architecture documentation and natural language understanding.
Dr. Lukas Märtin holds a Ph.D. from the Karlsruhe Institute of Technology (KIT). His thesis examines the predictive assessment of feasible design options to support cost-efficient decision support in reconfiguring software-intensive technical systems with limited maintenance access. As managing director of the DFG Priority Programme 1593 in both funding periods, he promoted collaborations within the programme by coordinated joint-activities until summer 2018.
This open access book presents the outcomes of the “Design for Future – Managed Software Evolution” priority program 1593, which was launched by the German Research Foundation (“Deutsche Forschungsgemeinschaft (DFG)”) to develop new approaches to software engineering with a specific focus on long-lived software systems. The different lifecycles of software and hardware platforms lead to interoperability problems in such systems. Instead of separating the development, adaptation and evolution of software and its platforms, as well as aspects like operation, monitoring and maintenance, they should all be integrated into one overarching process.
Accordingly, the book is split into three major parts, the first of which includes an introduction to the nature of software evolution, followed by an overview of the specific challenges and a general introduction to the case studies used in the project. The second part of the book consists of the main chapters on knowledge carrying software, and cover tacit knowledge in software evolution, continuous design decision support, model-based round-trip engineering for software product lines, performance analysis strategies, maintaining security in software evolution, learning from evolution for evolution, and formal verification of evolutionary changes. In turn, the last part of the book presents key findings and spin-offs. The individual chapters there describe various case studies, along with their benefits, deliverables and the respective lessons learned. An overview of future research topics rounds out the coverage.
The book was mainly written for scientific researchers and advanced professionals with an academic background. They will benefit from its comprehensive treatment of various topics related to problems that are now gaining in importance, given the higher costs for maintenance and evolution in comparison to the initial development, and the fact that today, most software is not developed from scratch, but as part of a continuum of former and future releases.