arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2102.04710cs.SE
收藏

利用结构和语义信息识别软件构件

Using Structural and Semantic Information to Identify Software Components

Cezar Sas, Andrea Capiluppi

摘要:

基于组件的软件工程(CBSE)旨在通过在开发过程中使用现有的软件模块来促进软件的重用。然而,这种可重用组件的可用性不是立即的,并且是昂贵和耗时的。作为替代方案,可以考虑从预先存在的OO软件中提取。在这项工作中,我们评估了两个社区发现算法的软件组件识别任务。考虑“组件”作为“社区”,其目的是评估如何独立,但凝聚力,组件时,结构知情的算法提取。我们分析了412个Java系统,并使用四种文档表示技术来评估提取的社区的凝聚力。评估的目的是找出哪种算法提取的语义上最有凝聚力,但分离的社区。实验结果表明,两种算法都有较好的性能,但各有优势。Leiden提取的成分内聚性较低,但分离性更好,聚类性更好,更依赖于相似的成分。另一方面,Infomap创建了更有凝聚力的、稍微重叠的集群,这些集群不太可能依赖于其他语义相似的组件。

英文摘要:

Component Based Software Engineering (CBSE) seeks to promote the reuse of software by using existing software modules into the development process. However, the availability of such a reusable component is not immediate and is costly and time consuming. As an alternative, the extraction from pre-existing OO software can be considered. In this work, we evaluate two community detection algorithms for the task of software components identification. Considering `components' as `communities', the aim is to evaluate how independent, yet cohesive, the components are when extracted by structurally informed algorithms. We analyze 412 Java systems and evaluate the cohesion of the extracted communities using four document representation techniques. The evaluation aims to find which algorithm extracts the most semantically cohesive, yet separated communities. The results show a good performance in both algorithms, however, each has its own strengths. Leiden extracts less cohesive, but better separated, and better clustered components that depend more on similar ones. Infomap, on the other side, creates more cohesive, slightly overlapping clusters that are less likely to depend on other semantically similar components.

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

↑