Software Maintenance

The great challenge in software engineering is maintenance: all software needs to be adapted to changing circumstances, to reflect improved understanding and to fix defects.

The great challenge in software engineering is maintenance: all software needs to be adapted to changing circumstances, to reflect improved understanding and to fix defects. Changes have to be correct, efficiently implemented and maintain the quality. This requires a thorough understanding of large and complex existing software systems, which are practically never well-documented.

One direction of outcomes revolves around diagnostics for hard-to-maintain software and remedies for it. Next to developing specific software tools to analyse the quality and improve the maintainability of existing software systems, the Software Analysis and Transformation (SWAT) research group has produced the Rascal programming language and eco-system for constructing source code analysis tools.

The other direction of research outcomes revolves around preventing maintenance issues. We capture the common characteristics of a domain and its expected variability in domain specific languages [(DSLs)]. Find out more about this direction in the application domain model driven software engineering.

With Rascal, software engineers can rapidly construct their own software tools to help their maintenance tasks. The technology for improving software maintenance is relevant for all domains which develop and apply software technology, such as high-tech embedded software systems and finance.

Contact person: Jurgen Vinju
Research group: Software Analysis and Transformation (SWAT)
Research partners: TU Eindhoven, Philips Healthcare
Spin-offs: Software Improvement Group, SWAT.engeering
Tools: Rascal Metaprogramming Language, OSSMETER