Title :
Refactoring towards seams in C++
Author :
Rüegg, Michael ; Sommerlad, Peter
Author_Institution :
Inst. for Software, Univ. of Appl. Sci. Rapperswil, Rapperswil, Switzerland
Abstract :
Breaking dependencies is an important task in refactoring legacy code. With the help of Feathers´ seams we gain the power to unit test our legacy code base because they enable us to inject dependencies from outside. Although seams are a valuable technique, it is hard and cumbersome to apply them without automated refactorings and tool chain configuration support. We show how to create seams in C++ by using new refactorings. To automate this task, we provide sophisticated IDE support. Our reference implementation creates the boilerplate code and the necessary infrastructure for the four presented seam types object, compile, preprocessor and link seam.
Keywords :
C++ language; program compilers; program testing; software maintenance; C++ language; IDE support; automated refactorings; boilerplate code; breaking dependencies; compile seam; legacy code base unit testing; legacy code refactoring; link seam; object seam; preprocessor seam; tool chain configuration support; valuable technique; Computer languages; Concrete; Feathers; Joining processes; Libraries; Shadow mapping; Testing; C++11; Eclipse CDT; Legacy Code; Refactoring; Seam; Static Polymorphism; Test Double; Unit Testing;
Conference_Titel :
Automation of Software Test (AST), 2012 7th International Workshop on
Conference_Location :
Zurich
Print_ISBN :
978-1-4673-1821-1
DOI :
10.1109/IWAST.2012.6228979