Title: Refactoring Feature Modules

Speaker: Martin Kuhlemann (University of Magdeburg, Germany)

Host: Ralf Lämmel, Inst. for Software Technology and CS

Date/Time: 8 Nov 2010 (Monday), 4pm (ct)

Room: A 213


Programmers divide programs into modules because modules (a) can be reused across programs and (b) can reduce the amount of code to change during main- tenance. 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 design decisions (decisions on how to implement functionality) increases, too – design decisions of a module, however, may conflict with design decisions of programs which then cannot reuse the module. Techniques of software product lines (SPLs) allow to tailor the functionality of a module to user needs. With Refactoring Feature Modules, we integrate SPL techniques with refactorings (code transformations which revise design decisions but not functionality). With refactoring feature modules, users can configure modules with respect to both, functionality and design decisions. Furthermore, we verify whether all members of an SPL which includes RFMs are free of error.


Martin Kuhlemann received his Diploma degree in Computer Science from the University of Magdeburg, Germany in 2006. Since 2006, he works as a research assistant in the Database Research Group at the University of Magdeburg. His research interests include software product lines, refactoring, and generative programming.