Cooperative based software clustering on dependency graphs

Ahmed A. Ibrahim, Derek Rayside, Rasha Kashef · 2014

Software clustering involves the partitioning of software system components into clusters with the goal of obtaining optimum exterior and interior connectivity between the components. Research in this area has produced numerous algorithms with different methodologies and parameters. In this paper, we propose a novel ensemble approach that synthesizes a new solution from the outcomes of multiple constituent clustering algorithms. The main idea behind our cooperative approach was inherited from machine learning, as applied to document clustering, but has been modified for use in software clustering. The conceptual modifications include working with differing numbers of clusters produced by the input algorithms and using graph structures rather than feature vectors. The empirical modifications include experiments for selecting the optimal cluster merging criteria. Case studies using open source software systems show that forging cooperation between leading state-of-the-art algorithms produces better results than any one state-of-the-art algorithm considered.

Read the paper · More papers on PaperTik