Java静态代码检查工具笔记

code review 工具列表
1.代码格式检查checkstyle;
2.性能安全最佳实践检查RAD Software Analyzer和FindBug;
3.依赖检查JDepend;
4.重复性检查eclipse PMD插件;
5.复杂度检查eclipse Metrics插件;
6.协作工具Jupiter

 

Jupiter
1.Unset表示没有选择,而不是一个具体类型
2.三个阶段有默认的Filter条件,一般不用修改。
3.reviewer需要把评审者、被评审者都加入,以便在team review的时候,进行代码修改指派。
4.权限控制存在问题,因为被评审者可以删除code view issue,容易误操作,不好控制。
也就是说,评审者之间没有级别高低关系


EclEmma 是代码覆盖率测试。但即使代码覆盖率达到100%,也不能表明就万事大吉了。因为我们所谓的代码覆盖率,主要

是指,业务代码是否被单元测试用例测过。
如果都测过,就是100%的覆盖率。但是这个覆盖率,也是相对的。因为对于sayHello这样的方法,写不同的单元测试代码

,本身就会产生不同的覆盖率。
所以100%只是说测到了,但是测多深,多全面,是不好说的。
安装好Eclemma之后,在java文件或者package上点击右键,有一个coverage as菜单,可以选java application或者是

JUnit,如果选择java application,有点类似reference统计,也就是其他类的调用程度。
这可以用来挑出某些根本不被使用的类或者方法。
如果选择JUnit,则可以用来衡量系统中被单元测试覆盖的广度。
参考资料:《测试覆盖率之二——测试覆盖率有什么用?》
http://tech.it168.com/a2009/0117/263/000000263342.shtml

常用j静态检测工具:
http://www.daniel-journey.com/archives/79
http://www.daniel-journey.com/archives/319

 


JDepend
http://www.diybl.com/course/3_program/java/javajs/20091008/178252.html

主要根据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就启动了。这样根据分析结果我们更加容易发现我们面向对象设计原则中

的一些问题,从而加以改善。

 

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值