Source Monitor的使用
介绍
Source Monitor是一款免费的代码品质度量软件。合理地利用这个工具,可以在一定程度上提高自己代码可读性、可维护性,进而提高代码品质。
它运行在Windows平台下,它可对多种语言写就的代码进行度量,包括C、C++、C#、Java、VB、Delphi和HTML,并且针对不同的语言,输出不同的代码度量值。
像其他代码度量工具一样,SourceMonitor只关注代码,并为编码人员提供及时的反馈,它不是1款项目管理工具,不关注项目实行中从功能分析到设计编码,再到测试这全部进程。
SourceMonitor只是一个“度量”工具,但是通过基本的度量,可以从代码表面层次发现1些根本的,基础的问题,所以将其作为介绍的第一个工具,也应当做为最基础的一个工具来为软件质量把关。
其提供了以下几方面的度量。(关于其他语言,请参考SourceMonitor的帮助文档Explanation of Language Metrics章节)
- Lines: 指的是代码总行数
- Statements:语句的行数,语句是以分号结尾的。这个C中有所不同。
- Percent Branch Statement:分支数占总语句数的百分比
- Method Call Statement:方法调用语句数
- Percent Lines with Comments:注释语句占总语句数的百分比
- Classes and Interfaces:类和接口数
- Methods per Class:每个类平均包含函数个数
- Average Statements per Method:每个函数平均包含的语句个数
函数复杂度(Function Complexity)复杂度指1个函数可履行路径的数目,以下语句为复杂度的值贡献1:if/else/for/while语句,3元运算符语句,if/for/while判断条件中的"&&"或“||”,switch语句,后接break/goto/ return/throw/continue语句的case语句,catch/except语句等。对应有最大复杂度(Max Complexity)和平均复杂度(Avg Complexity)。
函数深度(Block Depth):函数深度是函数中分支嵌套的层数。对应有最大深度(Max Depth)和平均深度(Avg Depth)。
- Line Number of Complex Method:最复杂函数的行号(最复杂指的是McCabe复杂度值为最高)
- Maximum Complexity:该类中最复杂函数的复杂度(最复杂指的是McCabe复杂度值为最高)
- Line Number of Deepest Block:最深层语句块的行号
左下可以看到代码最主要关心的几个方面,能够一目了然看出哪些方面还需要改进,红色线表示当前的情况,在绿色范围(所推荐的java良好代码,如平均复杂度在2.0-4.0之间)表示良好(这个代码几乎大部分都不合格 - -!)1
安装使用
关于SourceMonitor的安装,我们可以在其官方网站:http://www.campwoodsw.com/上下载这个软件。
在安装完成后我们来尝试使用这个软件。
打开软件后点击File->New Project来创建一个新的项目,之后需要经过如下几个步骤:
1.程序语言选择,这里我们选择Java语言;
2.命名当前项目并选择保存路径;
3.选择该项目要度量解析的文件,可以通过XML配置文件导入,也可通过选择项目目录通过扩展名自动筛选文件;
4.选择项目配置,这里可以根据自己的需要去选择这三项,我们选择不修改直接下一步;
5.选择项目保存的格式,这里我们选择New SourceMonitor project format;
6.创建项目的第一个检查点并命名,如果涉及到UTF-8格式编码的【需要在File->Options 里面去勾选】;
7.最后再确认以上所选择的所有信息,如有错误点击上一步退回重新选择,无误则单机完成;
8.完成后确认要度量的文件列表;
9.这样项目就成功建立了,并且完成了第一个度量点的建立;
10.双击我们刚才创立的度量点,我们可以看到项目中包含的各个Java文件的度量值;
11.双击文件我们可以看到对这个文件进行分析的详细内容;
这样,SourceMonitor的安装和使用方法就简单的介绍完了。
集成Source Monitor至VS中
Source Monitor的帮助手册中写明了如何将代码品质评审集成到VS中,这里简单说下过程。
通过下述方式,可以在VS中直接查看当前代码文件的细节。
- 选择菜单栏——工具——外部工具,添加一项Source Monitor。
- 命令:填写SourceMonitor.exe的绝对路径
- 参数:如果是c#,填写” /D-Cs $(ItemPath)“,注意空格。
- 初始目录:填写”$(SolutionDir)“。
点击OK,就可以在工具菜单中看到Source Monitor了,点击之后即可出现当前代码文件的细节雷达图啦。