In Fall 2009, on behalf of the EC DG Information Society, Arian Zwegers convened a group of experts on the theme of Software Evolution and Maintenance, in order to discuss about the medium and long term research challenges (timeframe of 2015 and beyond). To the extent possible, the EC will take into account these challenges while preparing their next framework workprogramme.
The expert group was moderated by Prof. Tom Mens, chair of the ERCIM Working Group on Software Evolution. He started out with a presentation of the main research challenges in software evolution, based on feedback received from various members of the ERCIM WG.
Dr. Joost Visser represented the Software Improvement Group (SIG), a consultancy company based in Amsterdam, and presented an industrial perspective on software evolution challenges, based on informal feedback received from the many companies for which SIG provides software monitoring and risk assessment services. Prof. Ralf Lammel, from University of Koblenz in Germany talked about his former industrial experience while working at Microsoft, and the typical problems with software evolution he was confronted with in this industrial setting. Prof. Andreas Winter, head of the Software Engineering Group of the University of Oldenburg, Germany, stressed the importance of research in reverse engineering and migration of legacy systems, and explained that this research is bound to become more and more important, as technology is changing ever more rapidly, thus continuously giving rise to a new breed of legacy systems. Jim Buckley presented the vision of LERO, the Irish Software Engineering Research Centre. He stressed the importance of dynamic software adaptation, as programming languages are becoming more and more dynamic, and there is an industrial need of accommodating changes “on the fly”.
These presentations allowed the European officers to get a more or less global view of the important issues that software engineers are continuously confronted with. As a result of the discussion that ensued after the presentations, all participants agreed that:
- evolving software is considerably more difficult than developing software from scratch, because the tools, processes, languages and mechanisms that are currently available are not sufficiently advanced
- one cannot properly deal with software evolution without taking a holistic view on the software system and everything that surrounds it
- the rapid changes in technologies and adoption of new paradigms only makes the software evolution problems become worse
- software evolution is not just a technical problem, it also concerns project managers and end-users.
Based on these insights, we believe that the main challenges and needs in software evolution are, in arbitrary order:
- better techniques (ie more automated and cost-effective) for software renovation, re-engineering, and migration of legacy systems
- better mechanisms to assess, control, improve and assure software product and process quality
- more sophisticated formalisms, tools and techniques to deal with software frameworks, product families and software product lines
- better techniques to support runtime evolution and dynamic software adaptation
- better managerial support to estimate and predict changes, effort and productivity
- automated support for software evolution and maintenance that is seamlessly integrated in software development environments
- solutions that scale up to very large distributed systems involving multiple languages and levels of abstraction, a large number of developers and users, and huge amounts of data
- more empirical and industrial validation of research results, as well a better industrial adoption of these results
- support for co-evolution, traceabililty and synchronisation between all artefacts used and produced during software development (including, but not limited to: code, data, tests, documentation, models, languages, specifications.)
To conclude, software evolution and maintenance is a major challenge for anyone confronted with software development, and the challenge is there to stay. If we want to address all the technological, managerial and social obstacles in this domain, the European research community in this field needs to join forces with European industry. Given the strong presence of European researchers in the field of software evolution and maintenance, and the importance for companies to excel in producing high quality software, we hope that these research challenges will be addressed.
Tom Mens, University of Mons
General Chair of ERCIM WG Software Evolution