Constrained agglomerative hierarchical software clustering with hard and soft constraints

Chun Yong Chong, Sai Peck Lee

Research output: Chapter in Book/Report/Conference proceedingConference PaperResearchpeer-review

2 Citations (Scopus)


Although agglomerative hierarchical software clustering technique has been widely used in reverse engineering to recover a high-level abstraction of the software in the case of limited resources, there is a lack of work in this research context to integrate the concept of pair-wise constraints, such as must-link and cannot-link constraints, to further improve the quality of clustering. Pair-wise constraints that are derived from experts or software developers, provide a means to indicate whether a pair of software components belongs to the same functional group. In this paper, a constrained agglomerative hierarchical clustering algorithm is proposed to maximize the fulfilment of must-link and cannot-link constraints in a unique manner. Two experiments using real-world software systems are performed to evaluate the effectiveness of the proposed algorithm. The result of evaluation shows that the proposed algorithm is capable of handling constraints to improve the quality of clustering, and ultimately provide a better understanding of the analyzed software system.

Original languageEnglish
Title of host publicationENASE 2015 - Proceedings of the 10th International Conference on Evaluation of Novel Approaches to Software Engineering
EditorsJoaquim Filipe, Leszek Maciaszek
Number of pages12
ISBN (Electronic)9789897581007
Publication statusPublished - 2015
Externally publishedYes
EventInternational Conference on Evaluation of Novel Approaches to Software Engineering 2015 - Barcelona, Spain
Duration: 29 Apr 201530 Apr 2015
Conference number: 10th (Proceedings)


ConferenceInternational Conference on Evaluation of Novel Approaches to Software Engineering 2015
Abbreviated titleENASE 2015
Internet address


  • Agglomerative hierarchical clustering
  • Constrained clustering
  • Reverse engineering

Cite this