Mircea writing things related to his thesis, so he won't forget them. One has many things floating through his head in the year of the thesis :)

Wednesday, January 16, 2008

Swanke's intelligent tool

----------------

Brainstorming with Romain about a tool which would automatically suggest the moving of entities from one module to the other based on 
coupling bewteen these entities and the other modules.

In the simplest case you have two modules, and you move an entity if the number of dependencies 
decreases. Generalizing you can suggest a move operation if the total number of inter-module dependencies is decreased. This would be pretty straightforward to implement 
and I wonder if there is something like this in Eclipse already.

One paper in this domain is Robert Swanke: "An Intelligent Tool for Re-engineering Software Modularity".
- he measures 'design coupling'
- every method has a set of 'features' which are defined as the set of methods which are not local. 
- based on the features the methods can be clustered hierarchically - the clustering can be automated or interactive. the clustered decompositions can be compared to the actual decompostition.
- detecting mavericks - misplaced procedures - detected when a procedure has too many bad neighbours