Für Studenten

Für Unternehmen






RWTH Aachen

Disciplined Program Generation with Refactorings

Programmers divide programs into modules because modules (a) can be reused across programs and (b) can reduce the amount of code to change during maintenance. But, module programmers must follow conflicting goals: A module to implement should provide a lot of functionality and a module should easily plug into many programs. The goals conflict because with increasing functionality the number of structural decisions increases, too (i.e., decisions on how to implement functionality); structural decisions of a module to reuse may conflict with structural decisions of programs thus preventing reuse. Techniques of Software Product Lines (SPLs) mainly allow to tailor the functionality of a module to user needs. In this talk, we present how SPL techniques can be integrated with refactorings (code transformations which revise structural decisions but not functionality) to configure modules with respect to both: functionality and structural decisions. Furthermore, we present how developers can verify automatically that their SPL models are consistent with their implementation when refactoring-features apply. We briefly introduce further research like the correction of SPLs, which involve refactoring-features, during maintenance.