direkt zum Inhalt springen

direkt zum Hauptnavigationsmenü

Sie sind hier

TU Berlin

Page Content

Dipl.-Ing. Marcus Mews

Email: m.mews(AT)tu-berlin.de

Room: TEL 1205
Phone: ++49 30 314 - 24330
Fax: ++49 30 314 - 73488

Office hour: Thursday, noon - 1 p.m.


Software developers use program refactoring regularly when developing, maintaining or extending software. When refactorings are applied manually, many program dependencies have to be kept in mind to avoid introducing new program errors. For example, if variable dependencies are not taken into account when performing a refactoring, the variable bindings or the input/output behavior of expressions might change. Ideally, error prone refactorings are applied correctly using tools. But unfortunately, established development environments (IDEs) such as Eclipse, IntelliJ, NetBeans or MS Visual Studio support some kinds of refactorings only barely or erroneously.

Figure 1: Will Eclipse apply the refactoring correctly?

Fig. 1 shows the refactoring inline temp. When inline temp is applied on line 2 in the example program, the variable ‘x’ shall be copied to all locations where the variable ‘y’ is used. However, the simply exchanging all ‘y’ variables for ‘x’ variables will result in an error: The expression in line 3 changes to ‘z = x++ + x’ which causes the result z = 3. Before applying the refactoring, the result was z = 2 and hence, the program behavior changed due to the refactoring. This is not desired, but unfortunately, all established IDEs show the same refactoring behavior and introduce errors to refactored programs.

(MP4, 12,1 MB)
Video 1: Refactoring tool, October 2014

I am working on an approach to perform refactorings such as inline temp fast and correctly. The approach is extensible and supports different languages such as Java and C#. Video 1 (on the right) shows the progress of my work (October 2014). In the video, a refactoring example is presented that indicates the challenges when refactoring code with the intention of preserving the code semantics. Afterwards, it is shown how common tools perform the refactoring example in comparison to CodeShaker. CodeShaker is the prototype I develop to show that semantic preserving refactoring is possible. The work is still work in progress. Currently, Alias-Analysis and the Change-Method-Signature-Refactoring are integrated. Later, improvements on stability and performance will be implemented.

To top


Mews, M. and Helke, S. (2012). Towards Static Modular Software Verification. Software Engineering 2012 - Workshopband, Fachtagung des GI-Fachbereichs Softwaretechnik. GI, 147-153.

Mews, M. and Svacina, J. and Weissleder, S. (2012). From AUTOSAR Models to Co-simulation for MiL-Testing in the Automotive Domain. Proc. of the International Conference on Software Testing, Verification, and Validation. IEEE Computer Society, 519-528.

To top



Einführung in die Programmierung für Wirtschaftsinformatiker
SoSe 2012SoSe 2013SoSe 2014
MPGI3 – Praktikum
WiSe 2012/13 • WiSe 2013/14

To top

Zusatzinformationen / Extras

Quick Access:

Schnellnavigation zur Seite über Nummerneingabe

Auxiliary Functions


Marcus Mews
314 - 24330
Office hour: Thursday 12 - 13 p.m.
Room TEL 1205

Postal Address

Technische Universität Berlin
Fakultät IV
sec. TEL 12-3
Ernst-Reuter-Platz 7
10587 Berlin