Refactoring Support for the C++ Development Tools and Ruby Refactoring Plug-in for Eclipse

Peter Sommerlad (HSR Rapperswil)

Wednesday, 15:40, 30 minutes | Schubartsaal    presentation file




Peter Sommerlad

First, we will look at refactoring support for the C++ Development Tools. A C++ programmer is often burdened with routine editing tasks when refactoring code. Especially to keep both files (header and implementation) up to date is very time consuming.

The first diploma thesis provided a plug-in called cerp. The outcome of following term project and diploma thesis was an extended CDT with refactoring capabilities. Unfortunately the hole “Refactoring CDT” had to be downloaded to use these features. After some contributions to the CDT the base for an independet plug-in was layed. The two projects had been merged to gether and the result is a refactoring plug-in which provides all the refactoring listened above.

Second, we will address the Ruby Refactoring Plug-in for Eclipse.The Ruby Development Tools are an IDE for Ruby based on the Eclipse platform. Although they are having a lot of features they didn’t support automated refactorings. The goal of this project had been to implement refactoring support for the Ruby Development Tools.

The main difficulty in implementing refactorings for Ruby is also one of its greatest language features: dynamic typing. Dynamic typed languages offer a lot of freedom to the programmer, however, it is hard and most times even impossible for an IDE to figure out the type of an object. Thus refactorings with a large scope, like the renaming of public methods, are a real challenge.

Our results are that the plug-ins are integrated into the official RDT repository and are now part of Aptana’s web development IDE. We also plan to maintain and extend the plug-ins to keep up with the latest developments in JRuby and RDT. A possible extension of our refactorings could be the integration into RadRails, so you could rename your controllers or views and the corresponding file names were automatically changed too.

Peter Sommerlad is professor and head of Institute for Software at HSR Rapperswil. Peter is co-author of Pattern-oriented Software Architecture Vol.1 and Security Patterns. His long-term goal is to make software simpler by Decremental Development: Refactoring software down to 10% its size with better architecture, testability, quality and functionality.

Ingres logo

Art of Object logo

1und1 logo


IBM logo

ETA logo

Ericsson logo

Eclipse Magazin logo

Heiler logo

Software AG logo

Wind River logo

Google logo

inventage logo

Gentleware logo

TNI logo


IONA logo

Microdoc logo

Methods & Tools logo

Cloudsmith logo

compeople logo

itemis logo

dpunkt logo

Pilz logo

Polarion logo

SAP logo

Innoopract logo

Mind8 logo


Omondo logo

Actuate logo