Hierarchical Clustering for Software Systems Restructuring

Improving the quality of software systems design is the most important issue during the evolution of object oriented software systems. In this paper we are focusing on the problem of determining refactorings that can be used in order to improve the design of object oriented software systems. Refactoring ([6]) is a major issue to improve internal software quality. This paper aims at presenting a new hierarchical agglomerative clustering algorithm, HARS(Hierarchical agglomerative clustering algorithm for restructuring software systems), that identifies the refactorings needed in order to restructure a software system.Clustering([10]) is used in order to recondition the class structure of the system. The proposed approach can be useful for assisting software engineers in their daily works of refactoring software systems. We evaluate our approach using the open source case study JHotDraw ([7]), emphasizing its advantages in comparison with existing approaches.