Abstract
This paper describes a case study that uses clustering to group classes of an existing objectoriented system of significant size into subsystems. The clustering process is based on the structural relations between the classes: associations, generalizations and dependencies. We experiment with different combinations of relationships and different ways to use this information in the clustering process. The results clearly show that dependency relations are vital to achieve good clusterings.
The clustering is performed with a third party tool called Bunch. Compared to other clustering methods the results come relatively close to the result of a manual reconstruction. Performance wise the clustering takes a significant amount of time, but not too much to make it unpractical.
In our case study, we base the clustering on information from multiple versions and compare the result to that obtained when basing the clustering on a single version. We experiment with several combinations of versions. If the clustering is based on relations that were present in both the reconstructed and the first version this leads to a significantly better clustering result compared to that obtained when using only information from the reconstructed version.
Original language | English |
---|---|
Title of host publication | Proceedings 10th European Conference on Software Maintenance and Reengineering (CSMR 2006, Bari, Italy, March 22-24, 2006) |
Place of Publication | Los Alamitos |
Publisher | IEEE Computer Society |
Pages | 214-228 |
ISBN (Print) | 0-7695-2536-9 |
DOIs | |
Publication status | Published - 2006 |