Skip to main content
QUICK REVIEW

[论文解读] Open Source Software: How Can Design Metrics Facilitate Architecture Recovery?

Eleni Constantinou, George Kakarontzas|arXiv (Cornell University)|Oct 10, 2011
Software Engineering Research参考文献 5被引用 6
一句话总结

本文提出了一种方法,通过分析依赖结构的有向无环图(DAG)并关联DIT、CBO和WMC等度量,结合设计度量与机器学习技术,从开源Java系统中恢复架构层。结果显示,DIT、CBO和RFC等度量与架构层显著相关,能够实现部分但有意义的层预测,尽管不同层和系统间的准确率存在差异。

ABSTRACT

Modern software development methodologies include reuse of open source code. Reuse can be facilitated by architectural knowledge of the software, not necessarily provided in the documentation of open source software. The effort required to comprehend the system's source code and discover its architecture can be considered a major drawback in reuse. In a recent study we examined the correlations between design metrics and classes' architecture layer. In this paper, we apply our methodology in more open source projects to verify the applicability of our method. Keywords: system understanding; program comprehension; object-oriented; reuse; architecture layer; design metrics;

研究动机与目标

  • 探究设计度量是否能促进在文档常不完整的开源软件中实现架构恢复。
  • 基于静态分析与机器学习,开发一种从代码度量预测架构层的方法。
  • 在四个大型开源Java系统(JabRef、Jbpm、RapidMiner和SweetHome3D)上验证该方法。
  • 评估Chidamber和Kemerer度量在识别用户界面、控制器、业务逻辑和基础设施等功能层方面的预测能力。
  • 通过使开发人员在缺乏完整文档的情况下也能推断系统架构,提升软件重用性。

提出的方法

  • 通过静态分析构建有向无环图(DAG),推导出D-层,以表示系统中的依赖层次结构。
  • 使用ckjm工具为每个类计算八项Chidamber和Kemerer(C&K)设计度量:WMC、DIT、NOC、CBO、RFC、LCOM、Ca和NPM。
  • 应用JRip(一种基于规则的机器学习分类器),生成将度量值与架构层关联的分类规则。
  • 通过组合连续的D-层形成初步的架构层,并使用精确率和召回率指标评估预测结果。
  • 分析设计度量与D-层之间的相关性矩阵,识别对架构角色最具预测力的度量。
  • 通过描述性统计、相关性分析和分类准确率,在四个开源系统上验证结果。

实验结果

研究问题

  • RQ1DIT、CBO和WMC等设计度量是否能有效预测开源系统中的架构层?
  • RQ2基于设计度量训练的机器学习模型在多大程度上能恢复已知的架构层结构?
  • RQ3哪些设计度量与架构层分配表现出最强的统计相关性?
  • RQ4从依赖分析中推导出的D-层在多大程度上可作为架构分层的代理?
  • RQ5为何某些架构层(如D-层4)尽管与度量存在相关性,但分类性能仍较差?

主要发现

  • 在所有四个系统中,DIT、CBO、RFC、LCOM和Ca均与架构层表现出显著相关性,表明其在架构恢复中的相关性。
  • 对于用户界面类(D-层4),规则显示其LCOM较低,DIT为低至中等,与其在用户交互中的角色一致。
  • 控制器类(D-层3)的规则偏好低CBO和低Ca,与其在用户界面与业务逻辑之间中介的角色相符。
  • 业务逻辑类(D-层2)与较高的CBO和WMC相关,支持其涉及复杂交互与职责的假设。
  • 基础设施类(D-1)的预测依赖于低CBO和低RFC,反映出其在数据存储和最小公共接口方面的作用。
  • 分类准确率存在差异:JabRef在D-层2的精确率为0.727,召回率为0.5;而SweetHome3D在D-层2的精确率为1.0,但召回率仅为0.009,表明系统间性能不一致。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。