ABAP复杂性分析

的复杂度值对象的ABAP代码返回的来源分析ABAP质量行动基于的概念圈复杂度由托马斯·麦凯布开发,老在一个有向图表示程序的控制流,计算程序的圈复杂度(M)为:

M = E - N + P

  • E是图中边的数量。在这个定义中,图的入口和出口点是假定为连接。
  • N是图中节点的数目。
  • P是连接组件的数量。对于面向对象的程序,每个类的方法被认为是一个单独的连接组件。

ABAP代码:

  • 是否算作决策点和ELSEIF语句。然而,任何,或或其他逻辑操作数不计算在这些语句。
  • 在一个CASE语句,语句时都算作决策点。
  • 循环,做,并检查语句算作决策点。
  • 形式、方法和功能语句算作圈复杂度的公式连接组件。这些是单独的部分代码与不同的入口点和出口点。
  • 在SQL语句中,WHERE子句数的决策点选择、修改、更新和删除语句。然而,这些语句并不算如果他们没有一个WHERE子句。
  • 关键条款读语句算作决策点。但是不算读语句如果他们没有一个关键条款。

关键字和计数的话

如果选择了复杂性的类别,分析ABAP质量行动使用一组关键字和计数的话来确定每个对象的ABAP代码的复杂性。关键字定义的类型声明,将被认为是在确定的源代码的复杂度值。以下关键词中指定默认质量分析所使用的规则文件ABAP行动:

删除

ELSEIF

形式

函数

如果

包括

循环

方法

修改

选择

更新

计算单词定义的令牌将用于确定每个对象的ABAP代码的复杂性。以下计算单词中指定默认质量分析所使用的规则文件ABAP行动:

检查

ELSEIF

形式

函数

如果

关键

循环

方法

在哪里

复杂性排名

如果类别选择的复杂性,分析ABAP质量行动分配一个排名,每个对象根据其复杂性值。以下排名中指定默认质量分析所使用的规则文件ABAP行动。这些值可能覆盖使用ABAP质量行动分析的复杂性等级覆盖属性。

复杂性值 排名
0到10
11到15
16岁或以上 丑陋的

分析ABAP质量行为