演化架构与紧急设计: 通过指标进行紧急设计 - 编程入门网
通过观察这个结果可以发现,DoubleListUIBean 是 Struts 代码库中最复杂的类。这说明应该考虑对它进行重构,消除一定的复杂性,寻找可提取出的重复的模式。但是,WMC 值不能指出花时间重构这个类是否值得。注意,这个类的 Ca 是 3。只有 3 个其他类使用这个类,这说明不值得花费大量时间改进这个类的设计。 图 3 显示按 Ca 排序的 ckjm 结果: 图 3. 按传入耦合排序的 ckjm 结果 这个组合视图表明,Struts 中最常用的类是 Component(由于 Struts 是 Web 框架,这是很正常的)。尽管 Component 并不复杂,但是有 177 个类使用它,所以它是改进设计的好目标。改进 Component 的设计会影响其他许多类。 WMC 和 Ca 的组合是了解 图 3 提供的信息的最佳方法。这在一个视图中同时指出代码库中最重要和最复杂的部分。即使您以前并不了解这个代码库,也可以通过这个视图了解在哪些方面进行改进会产生最好的结果。尽管这不一定准确,但是与只查看代码相比现在掌握了关于代码库的更多信息。 数字指标提供关于代码的信息,但是它们处于相当低的层次上;它们提供特定类的信息,而不提供代码库的全局视图。现在,有许多工具可以通过可视化把指标提高到下一个层次。 指标可视化 指标的可视化为特定的维提供替代视图,包括单一维和多个维的聚合。Smalltalk 社区开发了许多指标可视化工具。Smalltalk 开发的许多指标技术已经迁移到了 Java 语言。 iPlasma 和行业标准 与圈复杂度相关的常见问题包括 “我的代码与别人的代码相比怎么样?” 和 “对于一个类,多大的数值是合适的?” iPlasma 项目能够回答这些问题。iPlasma 是一个用于面向对象设计的质量评估的平台,是罗马尼亚的一个大学项目。它为项目生成许多重要的指标,并与行业标准范围进行比较。 在运行 iPlasma 时,指定一个源代码目录,它就会生成一个指标金字塔,见 图 4(这是 Struts 2.0.11 代码库的结果): 图 4. iPlasma 指标金字塔 演化架构与紧急设计: 通过指标进行紧急设计(3)时间:2011-07-13 IBM Neal Ford这个金字塔包含大量信息,您要学会如何理解它。每行包含一个彩色的百分数;这个百分数是这一行上的数字和下一行上的数字的比值。表 1 按从上到下的次序说明数字的含义: 表 1. iPlasma 金字塔的含义
数字表示比值;颜色表示比值是否在行业标准范围内(行业标准范围来自大量开放源码项目)。比值是绿色(处于范围内)、蓝色(低于范围)或红色(在范围之外)的。对于 Struts 代码库,NDD 和 CYCLO 的值处于行业标准范围之外,LOC 和 NOM 低于标准范围。表 2 列出使用的范围: 表 2. iPlasma 的行业指标范围
|
||||||||||||||||||||||||||||||||||||||||||||||||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |