Hierarchical Clustering for Identifying Crosscutting Concerns in Object Oriented Software Systems - Czibula, Istvan Gergely (2009)
Crosscutting concerns are parts of a program that affect or crosscut other concerns. Usually these concerns cannot be cleanly decomposed from the rest of the system, and they are mixed with many core concerns from the system leading to code scattering and code tangling, and, also, to systems that are hard to explore and understand. Identifying crosscutting concerns automatically improves both the maintainability and the evolution of the software systems. Aspect mining is a research direction that tries to identify crosscutting concerns in already developed software systems, without using the aspect oriented paradigm. The goal is to identify them and then to refactor them to aspects, to obtain a system that can be easily understood, maintained and modified. In this paper we are focusing on the problem of identifying crosscutting concerns in object oriented software systems using a hierarchical agglomerative clustering approach. We experimentally validate our approach on the open source case study JHotDraw and on a real software system. A comparison of our approach with similar existing work is also provided.