面向对象:代码评价工具JDepend
来源:互联网 发布:淘宝运营是做什么 编辑:程序博客网 时间:2024/05/22 07:03
JDepend(http://www.clarkware.com/software/JDepend.html)是代码质量评价工具。遍历所有类生成每个包的依赖程度,稳定性,可靠度等报告。
重点在三个方面:extensibility可扩展, reusability可重用, maintainability可维护。
主要根据Robert C. Martin氏提出的面向对象设计原则,JDepend生成的Java包的质量评价报告主要包括:
Number of Classes and Interfaces:实现类与抽象接口的数目。The Stable Abstractions Principle (SAP):稳定抽象等价原则指出了包的稳定程度与它的抽象程度(接口的数目)成正比,也就是说,一个包内包含的接口所占的比重越大,这个包就越稳定。
Abstractness (A):包的抽象度。指一个包内包含的抽象类或接口占整个包中的类的比重。该值处于0,1之间,若A=0,说明包内不包含任何抽象类或接口;若A=1,说明包内全部是抽象类或接口。包的抽象度与稳定性之间的关系上面已经作了说明。
Afferent Couplings (Ca):向心耦合。依赖该包(包含的类)的外部包(类)的数目,该数值越大,说明该包的担当的职责越大,也就越稳定。
Efferent Couplings (Ce):离心耦合。被该包依赖的外部包的数目,该数值越大,说明该包越不独立(因为依赖了别的包),也越不稳定。
Instability (I):衡量一个包的不稳定程度。I=Ce/(Ce+Ca)。(见我前面的博客(面向对象:稳定依赖原则(SDP)))
Distance from the Main Sequence (D):该指标主要用来评价包的抽象程度与稳定程度的平衡关系,它可以用二维直线图 A + I = 1 来表示。D=abs((A + I) -1),也就是说D为 一个包的抽象度 + 包的不稳定程度 -1 的绝对值。一个理想的包是:完全抽象的(A=1),非常稳定的(I=0),这时D=0;或者是:完全具体类构成的包(A=0),非常不稳定的(I=1),这时同样也有D=0。D=0说明包的抽象程度与稳定程度是平衡的,反之D=1说明包的平衡程度被严重破坏。
Package Dependency Cycles:包的循环依赖度。The Acyclic Dependencies Principle (ADP) - OO设计的无环依赖原则要求包之间不能有循环依赖关系。
安装官方网站的做法感觉有点麻烦,作为eclipse的插件来使用比较方便。下载地址(http://andrei.gmxhome.de/jdepend4eclipse/links.html)。
下载后把jar文件放到eclipse的plugins目录下,重启eclipse。然后在工程中选择要出报告的包或者这个src文件夹,然后点击右键,然后点击run JDepend analysis就启动了。这样根据分析结果我们更加容易发现我们面向对象设计原则中的一些问题,从而加以改善。
分析结果例子:
- 面向对象:代码评价工具JDepend
- 面向对象包的设计原则ADP/SDP/SAP与包的设计度量工具jDepend
- 代码包结构分析工具JDepend的使用方法
- 面向对象的正确评价与选择
- 自动计算metric的工具JDepend
- JDepend 用 Eclipse 插件提高代码质量
- java代码质量检测评价工具
- 面向对象的工具
- 面向对象-数组工具
- 面向对象数据库的正确评价与选择
- 面向对象写的一个评价加星
- 面向对象、代码块
- 面向对象 代码块
- 面向对象的理论工具
- 提高代码质量的Eclipse插件之JDepend
- 黑马程序员--03.Java面向对象--03.【工具类】【静态代码块】
- 12月29日 面向对象02(工具类&代码块)
- php面向对象实例代码
- oracle基本概念之--New Background Processes In 10g
- ActionResult解析
- css的对象显示模式(block、inline)
- 事务与并发控制
- 不用验证码,用登录次数来控制用户登录
- 面向对象:代码评价工具JDepend
- JDBC连接各种数据库经验技巧集萃
- 初识JavaScript-1
- extern用法
- soj上一个fuckable的题目
- javascript与cs代码互访
- 串行化(Serialization)
- locake略谈DHCP服务
- forward与redirect!转发和重定向 解析