Software Maintenance and Evolution
Software Maintenance and Evolution (SMEvo) addresses the fundamental challenge of keeping complex, long-lived, and multidisciplinary software systems adaptable, dependable, and efficient. In the high-tech domains where software interacts closely with hardware architectures, physical processes, data, and operational constraints, maintenance is not an afterthought: it is a dominant cost factor and a strategic enabler of long‑term product evolution. As systems grow over years or decades, they increasingly suffer from legacy technologies, architectural erosion, shifting requirements, and loss of system knowledge, making change progressively harder and riskier. These challenges are amplified in systems that use multiple programming languages, span multiple engineering disciplines, are tightly coupled to their integration context, and are performance‑ or dependability-critical.
Focus areas of research
Automated Software Understanding & Knowledge Extraction
Research on techniques to extract structure, behavior, and semantics from large, polyglot codebases, combining static and dynamic analysis, and knowledge graphs to enable deep understanding and fact-based decision‑making on how to evolve software systems.
Software Evolution, Restructuring & Automated Transformation
Research on methods and pipelines that support the safe, efficient, and reliable evolution of complex software systems. This includes identifying structural problems, analyzing dependencies, deriving restructuring and migration strategies, and executing large-scale changes using automated or semi-automated techniques such as program transformations, code mods, refactoring engines, and LLM-augmented workflows.

