arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2107.01766cs.SE
收藏

E-SC4R:解释软件集群的再模块化

E-SC4R: Explaining Software Clustering for Remodularisation

Alvin Jian Jia Tan, Chun Yong Chong, Aldeida Aleti

摘要:

现有软件的维护需要大量的时间来理解源代码。然而,如果没有最新的文档,维护人员可能不清楚软件的体系结构。软件集群通常被用作一种重新模块化和架构恢复技术,以帮助恢复软件设计的语义表示。由于软件系统的领域、结构和行为的多样性,不同的聚类算法对不同软件系统的适用性还没有得到充分的研究。引入新聚类技术的研究通常在特定领域验证其方法,这可能会限制其通用性。如果选择的测试对象只能代表整个画面的一个狭隘的视角,研究人员可能无法解决他们的发现的外部有效性的风险。这项工作的目的是填补这一空白,引入一种新的方法,解释软件集群的再模块化,以评估不同的软件集群方法的有效性。这项工作的重点是层次聚类和束聚类算法,并提供有关其适用性的信息,根据软件的功能,因此,使我们现有的池中的选择一个特定的软件系统的最佳算法和配置的选择。该框架在30个不同规模和领域的开源软件系统上进行了测试,并证明了它可以利用从代码中提取的软件特征来分析软件聚类算法的优点和缺点。所提出的方法还提供了一个更好的理解的算法的行为,通过应用降维技术。

英文摘要:

Maintenance of existing software requires a large amount of time for comprehending the source code. The architecture of a software, however, may not be clear to maintainers if up to date documentations are not available. Software clustering is often used as a remodularisation and architecture recovery technique to help recover a semantic representation of the software design. Due to the diverse domains, structure, and behaviour of software systems, the suitability of different clustering algorithms for different software systems are not investigated thoroughly. Research that introduce new clustering techniques usually validate their approaches on a specific domain, which might limit its generalisability. If the chosen test subjects could only represent a narrow perspective of the whole picture, researchers might risk not being able to address the external validity of their findings. This work aims to fill this gap by introducing a new approach, Explaining Software Clustering for Remodularisation, to evaluate the effectiveness of different software clustering approaches. This work focuses on hierarchical clustering and Bunch clustering algorithms and provides information about their suitability according to the features of the software, which as a consequence, enables the selection of the most optimum algorithm and configuration from our existing pool of choices for a particular software system. The proposed framework is tested on 30 open source software systems with varying sizes and domains, and demonstrates that it can characterise both the strengths and weaknesses of the analysed software clustering algorithms using software features extracted from the code. The proposed approach also provides a better understanding of the algorithms behaviour through the application of dimensionality reduction techniques.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑