The architecture of the software is a critical artifact of the development process. It serves as a blueprint for construction, which helps in the planning, division of work among team members, defining system properties, and coordinating teams. However, the architectural documents are rarely initially created and are seldom properly maintained. Therefore, it becomes necessary for an organization to use an architecture recovery technique that helps in recovering legacy architecture to minimize manual inconsistencies, efforts, and financial burdens. Hence, this paper proposes an ensemble clustering software architecture recovery approach for recovering the quality-centric architecture of a software system. This proposed algorithm is divided into two parts. The first part performs clustering and is used to identify a possible architecture design by recursively identifying a class and utilizing a dependency graph to create clusters. The second part uses a mutual consensus strategy to create a single clustering solution (recovered architecture) based on the mutual agreements and disagreements found using different identified possible clustering solutions of the first part. The proposed ensemble clustering algorithm is found to significantly improve the quality of the recovered architecture as observed based on the obtained empirical results on four state-of-the-art open-source datasets.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Utilizing Ensemble Clustering Strategy for Improved Software Architecture Recovery

  • Neeraj Kumar,
  • Randeep Singh,
  • Amit Rathee

摘要

The architecture of the software is a critical artifact of the development process. It serves as a blueprint for construction, which helps in the planning, division of work among team members, defining system properties, and coordinating teams. However, the architectural documents are rarely initially created and are seldom properly maintained. Therefore, it becomes necessary for an organization to use an architecture recovery technique that helps in recovering legacy architecture to minimize manual inconsistencies, efforts, and financial burdens. Hence, this paper proposes an ensemble clustering software architecture recovery approach for recovering the quality-centric architecture of a software system. This proposed algorithm is divided into two parts. The first part performs clustering and is used to identify a possible architecture design by recursively identifying a class and utilizing a dependency graph to create clusters. The second part uses a mutual consensus strategy to create a single clustering solution (recovered architecture) based on the mutual agreements and disagreements found using different identified possible clustering solutions of the first part. The proposed ensemble clustering algorithm is found to significantly improve the quality of the recovered architecture as observed based on the obtained empirical results on four state-of-the-art open-source datasets.