资讯专栏INFORMATION COLUMN

如何计算并测量ABAP及Java代码的环复杂度Cyclomatic complexity

googollee / 2739人阅读

摘要:代码的环复杂度,有的地方又翻译成圈复杂度是一种代码复杂度的衡量标准,在年由提出。圈复杂度大说明程序代码可能质量低且难于测试和维护。

代码的环复杂度(Cyclomatic complexity,有的地方又翻译成圈复杂度)是一种代码复杂度的衡量标准,在1976年由Thomas J. McCabe, Sr. 提出。

在软件测试的概念里,圈复杂度用来衡量一个模块判定结构的复杂程度,数量上表现为独立线性路径条数,即合理的预防错误所需测试的最少路径条数。圈复杂度大说明程序代码可能质量低且难于测试和维护。

计算公式

环复杂度 = E − N + 2

E = 程序控制流图中边的个数

N = 程序控制流图中点的个数

看个具体的例子。下面这段ABAP代码的环复杂度根据公式计算为3.

DATA: lv_value TYPE i VALUE 1. 
IF lv_value = 1. 
    WRITE: / "always happend". 
ELSEIF lv_value = 2. 
    WRITE: / "not possible". 
ELSE. 
    WRITE: / "even not possible". 
ENDIF.

先把代码的程序流图画出来:

在ABAP里用Code inspector这个工具测量代码的环复杂度:

具体步骤参考我的ABAP博客:

A Small tip to get all transparent tables used in ABAP code

Useful tips regarding ABAP code inspector that you may not know

而Java可以用一个叫做SourceMonitor的工具测量环复杂度:

详细使用参考我的博客Use SourceMonitor to monitor your java code complexity

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/68973.html

相关文章

  • 使用工具Source Monitor测量Java代码的环杂度

    摘要:代码的环复杂度,有时也翻译成圈复杂度是一种代码复杂度的衡量标准,在年由提出。好消息是,有一款名为的免费软件,能够帮我们来度量代码的环复杂度。很快就将我们指定的文件的环复杂度计算完毕。 代码的环复杂度(Cyclomatic complexity,有时也翻译成圈复杂度)是一种代码复杂度的衡量标准,在1976年由Thomas J. McCabe, Sr. 提出。 来看看计算公式。 代码环复杂...

    TwIStOy 评论0 收藏0
  • #yyds干货盘点#Java ASM系列:(098)Cyclomatic Complexity

    摘要:本文属于系列三当中的一篇。编码实现在下面的类当中,关键点是定义了一个字段,用来记录当前与其它之间的关联关系。第二点,修改方法,记录之间的关联关系。注意,这里抛出异常下面的类的方法的复杂度是。第二点,代码示例,如何使用实现计算。 本文属于Java ASM系列三:Tree API当中的一篇。1. Cyclomati...

    不知名网友 评论0 收藏0
  • 论 CSS 中的逻辑

    摘要:天生缺乏逻辑性的问题导致了预处理器的出现。这会导致圈复杂度问题。圈复杂度对于来说可能是一种比较高阶的原则,但如果我们通过它来考量那些蕴含在我们写的选择器中的逻辑性,那我们也许就能写出更加优秀的代码。 本文在征得原作者 @csswizardry 同意的情况下,翻译自他博客中的文章:Cyclomatic Complexity: Logic in CSS。最初发布于我的个人博客:咀嚼之...

    PiscesYE 评论0 收藏0
  • 检测 PHP 应用的代码杂度

    摘要:原文来自如果说你想知道一个项目的代码复杂度是什么样子的,我推荐你可以使用和来检测一下。安装也是可以直接全局安装安装完毕之后,可以这样来运行命令分析代码复杂度等待运行结束,用打开就可以查看相对应的结果,大概是这个样子 原文来自:https://www.codecasts.com/blo... 如果说你想知道一个 PHP 项目的代码复杂度是什么样子的,我推荐你可以使用 phploc 和 P...

    or0fun 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<