infusion度量金字塔的数据表明infusion可以检测到超过20个代码的味道和代码缺陷。 这包括重复代码、破坏封装的类(如数据类或万能类)、高耦合的方法和类以及设计不当的类继承结构。 使用inFusion工具分析代码时,分析屏幕的左上方会显示代码数据度量窗口。 本节详细介绍了度量字段数据。 这样可以获得对整个代码的宏观认识。 您还可以预测代码中可能出现的问题,例如类的功能是否单一、成员方法是否过于复杂、继承深度是否合理。
度量数据的具体例子如下所示。
考虑到上面照片的数据模糊,下面手动显示上面照片的黑色框中的数据。 NDD 0.61
HIT 1.58
20.0 NOP 30
8.81 NOC 600
9.22 NOM 5287 NOM 1.56
0.14 loc 48791 8298呼叫0.37
CYCLO 7007 3076 FOUT
顶级NDD、HIT分别指类的平均继承宽度和平均继承深度
平均继承幅度:类继承树、子类占所有类的比例,合理范围0.2~0.6
平均继承深度:类继承树、继承层次、多块继承树取平均值,合理范围为0.1~0.3
左侧CYCLO环复杂度FOUT方法的扇出次数
LOC代码行数调用CALL方法(扇入)的次数
NOM方法数NOM方法数
NOC等级数
NOP package数、C/C中指目录数
左斜面平均每包班级数为600/30=20.0
平均每类方法数为5287/600=8.81
每个方法的平均代码行数48791/5287=9.22
循环复杂度(CYCLO/LOC ) 7007/48791=0.14
在右边的斜坡上
每个方法的平均调用次数8298/5287=1.56
扇出扇入比3076/8298=0.37
扇入和扇出在软件设计中,扇出的概念是指APP模块之间的层次调用情况。
根据结构化设计方法,一个APP由多个功能相对独立的模块构成。
扇入:直接调用该模块的上级模块数。 扇入较大表示模块复用度较高。
扇出:该模块直接调用的下级模块数。 扇出大表示模块复杂度高、控制与协调过多的下级模块; 但是扇太小了,(比如总是1 )也不好。 扇出过大一般是因为中间层不足,应该适当增加中间层的模块。 扇出太小时,可以将下级模块进一步分解为若干个子功能模块,或者合并为其上级模块。
良好的软件结构,通常顶层扇出比较大,中级扇出小,底层模块有较大的扇出。
参考资料6种可定量分析的代码味道
信息官方网站
posted on 2015-08-1716336007 octo cat阅读(…)注释…)编辑收藏于:https://www.cn blogs.com/zhoulee/p/4736865.html