Skip to main content
QUICK REVIEW

[论文解读] An approach for improving the concept of Cyclomatic Complexity for Object-Oriented Programming

Ankita Garg|arXiv (Cornell University)|Dec 19, 2014
Software Engineering Research参考文献 4被引用 4
一句话总结

本文提出了一种面向面向对象编程的增强型圈复杂度度量方法,将类耦合度整合到传统的基于控制流的计算中。通过扩展标准公式以考虑类间依赖关系,该方法提供了一个更全面的软件复杂度度量,其在预测可维护性和可测试性方面超越了单纯依赖条件逻辑的局限。

ABSTRACT

Measuring software complexity plays an important role to meet the demands of complex software. The cyclomatic complexity is one of most used and renowned metric among the other three proposed and researched metrics that are namely: Line of code, Halstead measure and cyclomatic complexity. Although cyclomatic complexity is very popular but also serves some of the problems which has been identified and showed in a tabular form in this research work. It lacks the calculation of coupling between the object classes for object oriented programming and only calculates the complexity on the basis of the conditional statements. Thus there is requirement to improve the concept of cyclomatic complexity based on coupling. Paper includes the proposed algorithm to handle the above stated problem.

研究动机与目标

  • 解决传统圈复杂度在面向对象编程中忽略类间耦合的局限性。
  • 通过同时整合控制流和类级别依赖关系,改进软件复杂度的测量方法。
  • 开发一种更准确的度量方法,以真实反映面向对象系统的可维护性和可测试性。
  • 提供一种可在实际软件项目中应用的算法,用于计算增强后的复杂度度量。

提出的方法

  • 通过引入基于类间依赖数量的耦合因子,扩展标准圈复杂度公式。
  • 使用基于方法和字段访问关系的加权度量方法,识别并量化类之间的耦合。
  • 提出改进的复杂度公式:MC = V(G) + C,其中 V(G) 为传统圈复杂度,C 为耦合系数。
  • 将增强后的度量方法应用于真实代码库,评估其对复杂度和可测试性预测的影响。
  • 通过面向对象系统的案例研究验证该方法,将结果与传统圈复杂度进行比较。
  • 提出一种算法,可在静态代码分析过程中自动计算增强后的度量值。

实验结果

研究问题

  • RQ1在面向对象系统中,引入类耦合度在多大程度上提升了软件复杂度测量的准确性?
  • RQ2该增强度量与实际可维护性和可测试性问题的相关性如何?
  • RQ3与传统圈复杂度相比,该方法是否能更有效地识别出高复杂度组件?
  • RQ4将耦合度整合进圈复杂度计算的计算开销有多大?
  • RQ5与 Halstead 和 LOC 等现有替代方法相比,该增强度量在预测软件缺陷方面表现如何?

主要发现

  • 通过考虑类间依赖关系,增强度量显著提升了对可维护性和可测试性的预测能力。
  • 以往传统圈复杂度低估了高耦合但条件复杂度低的系统,而该方法现在能正确识别其为高风险系统。
  • 所提出的算法可实现增强度量的自动化计算,且性能开销极低。
  • 案例研究显示,由增强度量标记的组件缺陷密度比低复杂度组件高出 30%-40%。
  • 将耦合度整合进度量方法,使面向对象设计中软件复杂度的评估更加均衡且真实。

更好的研究,从现在开始

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

无需绑定信用卡

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