TurboMove Move Refactorings for Eclipse CDT

Thrier, Yves (2011) TurboMove Move Refactorings for Eclipse CDT. Masters thesis, HSR Hochschule für Technik Rapperswil.

[thumbnail of TurboMove.pdf]
Preview
Text
TurboMove.pdf - Supplemental Material

Download (3MB) | Preview

Abstract

While writing code for a project, a programmer has to think about where to put that code. The initial decision of placing it to the chosen location is not always correct or the appropriate position changes as the code-base evolves. A class may obtain too much behaviour over time which could be isolated. Or a member-function uses more functionality from its parameter than the instance itself. Therefore, moving the code related to such problems to a more suitable position helps to lower coupling and increases the quality, understandability and maintainability of source-code. In C++, determining the correct position for functionality is harder compared to other programming languages, due to the separation into declarations and definitions and by allowing free functions. This also makes it hard to create refactorings offering code moving in an automated fashion. This master-thesis overcomes these problems by introducing a separation between a logical and a physical move. In addition, it tackles different types of code relocation in a C++ project. There are transformations allowing to move member functions among classes, into another file or to convert them into free functions. In addition, it is possible to change the namespace membership of types and free functions by altering them to become members of the parent namespace. While all these move refactorings retain compilability, they also provide different configuration options to customise the style of adjusting visibilities and call-sites. The transformations are available as a plug-in for Eclipse CDT.

Item Type: Thesis (Masters)
Subjects: Area of Application > Development Tools
Technologies > Frameworks and Libraries
Technologies > Frameworks and Libraries > Eclipse
Metatags > IFS (Institute for Software)
Divisions: Master of Science in Engineering (MRU Software and Systems)
Depositing User: OST Deposit User
Contributors:
Contribution
Name
Email
Thesis advisor
Sommerlad, Peter
UNSPECIFIED
Date Deposited: 21 Jun 2013 09:28
Last Modified: 21 Jun 2013 09:28
URI: https://eprints.ost.ch/id/eprint/289

Actions (login required)

View Item
View Item