资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
1 前言本文挡描述的是LogiscopeAudit中常用的系统度量元的具体含义。对每个度量元的解释分为以下几部分:首先是该度量元的原文名称,后面是该度量元的代号,跟在后面的是Audit质量模型为该度量元设的参考值(用中括号括起。对于这个范围值,我们可以对它进行修改),再往下就是对该度量元含义的具体解释。2系统度量元下面介绍系统作用域中各个度量元的具体含义。注意,下面讨论的所有问题都是站在整个系统(或子系统)的角度上的,这一点对于我们理解这些度量元很重要。2.1 Coupling Factor : ap_cof 0.03 , 0.18度量元名称:类耦合因素。解释说明:该度量元的计算方法为: 类的总数ap_cof = ( Ci与其他的类发生耦合关系的数量)/ 类的总数*(类的总数 1) i = 1( 注:Ci表示第i个类 )当某一个类有以下情形之一时,该类与其他类的耦合关系的数量加一: 1 在该类的类函数中调用了另一个类的成员函数。 2 该类通过友员的方法调用另一个类中的可见或不可见的函数。 3 在该类中调用了另一个类的构造/析构函数。 4 该类中将另一个类作为数据成员或作为类函数中的参数。2.2 Method Inheritance Factor : ap_mif 0.6 , 0.8度量元名称:类函数继承的比率。解释说明:该度量元是一个比值。分子为:在系统所有类的成员函数中,由父类继承来的成员函数的数量总和。分母为:系统所有类的成员函数的总和(包括自己定义的和从父类继承而来的)。2.3 Attribute Inheritance Factor : ap_aif 0.3 , 0.6度量元名称:类数据成员继承的比率。解释说明: 该度量元是一个比值。分子为:在系统所有类的数据成员中,由父类继承来的数据成员的数量总和。分母为:系统所有类的数据成员的总和(包括自己定义的和从父类继承而来的)。2.4 Polymorphism Factor : ap_pof 0.3 , 1.0 度量元名称:类的多态性因素。解释说明:该度量元是一个比值。分子为:在系统所有类的成员函数中,重载的函数的数量总和。分母为: 系统中类的总数(Ci中未被重载的成员函数的数量* Ci子类的个数) i = 1( 注:Ci表示第i个类 )2.5 Attribute Hiding Factor : ap_ahf 0.7 1.0 度量元名称:类对其数据成员的保护程度。解释说明:该度量元是一个比值。分子为:在系统所有类的数据成员中,属于Private型数据成员的总数。分母为:系统所有类的数据成员的总和。2.6 Average coupling between objects: AVG_CBO 0.0 , 10.0 度量元名称:系统中类耦合的平均值。解释说明:计算公式为:AVG_CBO = ap_cbo / ap_clas其中:ap_cbo 的值由以下两部分组成:1在一个类的成员函数中调用不属于该类的函数,在系统中,这种情况出现一次,ap_cbo的值加一。 2类中类类型数据成员的数量。在系统中,这种情况出现一次,ap_cbo的值加一。 ap_clas:系统中类的数量。如果该值过高,则说明系统中类与类之间的耦合较强,这会使对系统进行更改工作时变的非常困难。2.7 Number of Levels in the Inheritance Graph : ap_inhg_levl 1 , 4 度量元名称:类继承图的深度。解释说明:在系统中所有的类继承图中,最大继承层次的数量。2.8 Method Hiding Factor : ap_mhf 0.1 , 0.4 度量元名称:类成员函数的私有情况。解释说明:该度量元的计算公式为: 类总数 类i中函数个数ap_mhf =( ( 1 V( m ) )/ (系统中类成员函数数量的总和) i = 1 m=1其中V( m )的值为: 当该函数为 public型时,V( m ) = 1 当该函数为 private型时,V( m ) = 0 当该函数为 protected型时,V( m ) = ( 由该类派生的类的个数 ) /(类总数 1 )2.9 Hierarchical Complexity of the Inheritance Graph : ap_inhg_cpx 1.0 , 2.0 度量元名称:类继承图的层次复杂性。解释说明:它的计算公式为:ap_inhg_cpx = SUM( N * I ) / SUM( N )其中:SUM表示取和, I为类继承图中的层次序号(1,2,3),N 为继承图中第I层中的结点个数。例如下面这样的一个继承关系: 则 ap_inhg_cpx = ( 1* 1 + 2*3 + 3*1 )/ (1 + 3 + 1 )= 2.0。由计算公式可以看出,多继承很影响该度量元的得分,所以尽量避免多重继承。该度量元是类继承关系的图形结构的表示,它的目的是测量类继承关系的复杂性。如果改值大于二,则表明类的继承关系过于复杂。2.10 Ratio of repeated inheritances in the application: URI_Ratio 0.0 , 10.0 度量元名称:重复继承的类的数量占系统中类继承关系数量的比率。解释说明:重复继承的类的数量占系统中类继承关系数量的比率。该度量元的计算公式为:URI_Ratio = (ap_inhg_uri * 100) / ap_inhg_edge其中:ap_inhg_uri :系统中重复继承的“类对”的数量。 ap_inhg_edge:系统中类的继承关系图中边的数量。那么,何为重复继承呢?重复继承指某一个类对同一个类继承两次。下面举一个例子。比如: 在这个例子中, 类E通过类对 (B,C)、(C,D)、(B,D)对类A重复继承。则ap_inhg_uri的值为3。ap_inhg_edge的值为6。所以URI_Ratio = (3 * 100) / 6 = 50.0过多的重复继承会导致程序变的复杂,还可能发生函数命名冲突( 类E中的函数就可能会有命名冲突)。所以在组织程序时,提倡单继承,避免使用多继承类。2.11 Percentage of non-member functions: NMM_Ratio 0.0 , 10.0 度量元名称:独立于类的函数的比率。解释说明:系统中非成员函数(独立于类的函数)占系统中函数总数的比率。该度量元的计算公式为:NMM_Ratio =( ( ap_func - ap_nmm ) / ap_func) * 100其中:ap_func:系统中总的函数数量(包括游离于类之外的全局函数)。 ap_nmm :系统中各个类的成员函数的数量之和。如果该度量元的值过大的话,说明该程序设计不符合面向对象的思想。2.12 Average of the VG of the applications functions: AVG_VG 1.0 , 5.0 度量元名称:系统中每个函数的平均圈复杂度。解释说明:该度量元的计算公式为:AVG_VG = ap_vg / ap_func其中:ap_vg :系统中各函数的圈复杂度的总和(关于函数的圈复杂度的计算方法请参见Logiscope函数度量元文挡)。 ap_func:系统中函数的数量(包括成员函数和非成员函数)如果该值过高,则说明系统中有大量函数的圈复杂度的值过高,也就是说系统中有大量过于复杂的函数。由于函数的复杂性过高,对于系统的维护工作是很不利的。2.13 Ratio of recursive edges on the call graph : RECU_Ratio 0.0 , 5.0 度量元名称: 递归调用的百分比。解释说明:该度量元的计算公式为:RECU_Ratio = (ap_cg_cycle * 100) / ap_cg_edge其中:ap_cg_cycle :函数调用流程图中递归调用的数量。 ap_cg_edge :函数调用流程图中边的数量。2.14 Number of Levels in the Call Graph : ap_cg_levl 2 , 9 度量元名称: 函数调用流程图的最大层次数。解释说明:在系统所有的函数调用流程图中,最大的层次数。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号