namespactor CDT Namespace Refactoring Plug-in metriculator speed-up CDT metric Plug-in

Kunz, Ueli and Weder, Julius (2012) namespactor CDT Namespace Refactoring Plug-in metriculator speed-up CDT metric Plug-in. Bachelor thesis, HSR Hochschule für Technik Rapperswil.

[thumbnail of thesis.pdf]
thesis.pdf - Supplemental Material

Download (1MB) | Preview


This bachelor thesis consists of two sub parts. The main part is about developing a namespace refactoring tool called namespactor. The other part dedicates to the further development of the metriculator plug-in that was initiated in our semester thesis at the IFS [ifs12]. Both projects are plug-ins for the Eclipse C/C++ Development Tooling Platform (CDT, [CDT11]).
C++ allows to introduce names into program scopes by way of "using directives" and "using declarations", such that symbols can be referred to without their qualified name. However, the manual changing of names and the switching between their qualified and unqualified representation is error prone and time consuming. Therefore, we have devel- oped namespactor, a new automated C++ refactoring tool for names and namespaces for Eclipse CDT. Modern integrated development environments (IDE) commonly pro- vide some refactoring features, such as the features of namespactor.
namespactor offers a set of common and effective namespace refactoring functions, such as switching between qualified and unqualified naming, introducing and moving "us- ing delarations" or "using directives" and more. namespactor is realized with the Eclipse Language Toolkit (LTK), the API for integrating automated refactorings in Eclipse IDE.
There is currently no similar refactoring tool publicly available for the programming language C++. The following refactorings are implemented in namespactor:
• Inline Using Directive: Removes a using directive and qualifies the affected names.
• Inline Using Declaration: Removes a using declaration and qualifies the occurrences
of the affected name.
• Qualify an Unqualified Name: Fully qualifies an unqualified name with all required names.
• Extract Using Directive: Introduces a using directive for a qualified name and removes the name qualifier(s) of the affected qualified names.
• Extract Using Declaration: Introduces a using declaration for a qualified name and removes the name qualifiers(s) on the occurrences of the affected qualified name.
metriculator speed-up
The further development of metriculator mainly aimed to improve the performance of the static code analysis. At the end of the semester thesis metriculator lacked in releas- ing allocated memory. Various design changes allowed us to improve the algorithm for calculating the metric values and to constantly release memory.
After the improvements, metriculator performs the analysis up to four times faster and the memory allocation is reduced by 75%. It is now possible to analyse projects with about one million physical source lines of code in less than one minute.

Item Type: Thesis (Bachelor)
Subjects: Topics > Software > Refactoring
Area of Application > Development Tools
Technologies > Programming Languages > C++
Technologies > Frameworks and Libraries > Eclipse
Metatags > IFS (Institute for Software)
Divisions: Bachelor of Science FHO in Informatik > Bachelor Thesis
Depositing User: HSR Deposit User
Thesis advisor
Bläser, Luc
Date Deposited: 03 Sep 2012 10:31
Last Modified: 03 Sep 2012 10:31

Actions (login required)

View Item
View Item