Clustering of Software Classes at Execution and Its Implications

Shaowen Qin

17 juin 2010

We present a study on clustering of software classes based on software execution data, which offers a dynamic, hence more realistic, perspective to the understanding of software structure and the evaluation and improvement of the existing architectural design. The approach first uses association rule mining to extract low-level class relations in object-oriented software. The mining results are then processed by hypergraph-based clustering to identify an optimal set of high-level clusters of classes that have relatively high cohesion within and low coupling between them. It is also shown that such clusters are actually unique. The identified clusters can be seen as execution components of the software, which represents the effect, rather than the intention of the existing design. Two case studies are presented to demonstrate the application of our approach. Relevant concepts in complex network are also introduced to interpret the findings of this study