
| 实验项目名称 | 代码评审与程序性能优化 | 实验成绩 | |||||||
| 实 验 者 | 徐强国 | 专业班级 | 软件1602 | 组 别 | |||||
| 同 组 者 | 吴灿柳 | 实验日期 | 2018年9月26日 | ||||||
| 第一部分:实验预习报告(包括实验目的、意义,实验基本原理与方法,主要仪器设备及耗材,实验方案与技术路线等) 一、实验目的 使用一下三个工具完成代码评审: -Checkstyle -FindBugs -PMD 二、实验内容及要求 针对“实验一”中所完成的代码,进行代码评审(走查)和性能分析,从时间性能角度对代码进行优化; (1)使用一下三个工具完成代码评审: -Checkstyle -FindBugs -PMD (2)选择一个代码性能优化工具,对源代码进行性能分析,给出优化方案; 按“实验一”的分组方式,两人一组,随机分配另一组的代码作为本组评审和分析的对象,试验期间不能与原作者进行沟通。 三、实验基本原理和方法 (1) Checkstyle是一款检查java程序代码样式的工具,可 以有效的帮助我们检查代码以便更好的遵循代码编写标 准,特别适用于小组开发时彼此间的样式规范和统一。 Checkstyle提供了高可配置性,以便适用于各种代码规 范,所以除了可以使用它提供的sun的代码标准外,你也 可以定制自己的标准。 Checkstyle可以让我们养成书写良好代码风格的习惯。使用checkstyle的过程中可能需要经常的调整配置文 件,有些check过于严格,可以根据实际情况取消一些代码检查。 (2)Findbugs是一个在java程序中查找bug的程序,它查 找bug模式的实例,也就是可能出错的代码实例,注意 Findbugs是检查java字节码,也就是*.class文件。 其实准确的说,它是寻找代码缺陷的。很多我们写 的不好的地方,可以优化的地方,它都能检查出来。例 如:未关闭的数据库连接,缺少必要的null check,多余 的 null check,多余的if后置条件,相同的条件分支,重 复的代码块,错误的使用了"=="等等。而且我们可以自 己配置检查规则,也可以自己来实现独有的校验规则。 (3)PMD是一种开源分析Java代码错误的工具。与其他 分析工具不同的是,PMD通过静态分析获知代码错误。 也就是说,在不运行Java程序的情况下报告错误。 PMD的核心是JavaCC解析器生成器。从根本上看, Java源代码只是一些普通的文本。不过,为了让解析器 承认这些普通的文本是合法的Java代码,它们必须符合 某种特定的结构要求。这种结构可以用一种称为EBNF 的句法元语言表示,通常称为“语法” (Grammar)。 JavaCC根据语法要求生成解析器,用于解析用Java编程 语言编写的程序。 2)系统为Windows10的PC机一台 PC机上装有Eclipse | |||||||||
| 第二部分:实验过程记录(可加页)(包括实验原始数据记录,实验现象记录,实验过程发现的问题等) 一、实验原始数据记录 即第一次源代码。 二、实验过程 一、测试工具的使用 CheckStyle使用情况: 勾选之后 即可使用CheckStyle 对代码进行检查 如图 CheckStyle 对代码做了检查 并提出了修改建议。 FindBugs使用情况: 因本代码中并没有显著的bug,点击使用后,未提示有bug。 PMD使用情况: 三、性能分析 四、实验过程当中发现的问题 PMD安装过程中出现失败,在使用中发现找不到该插件。 | |||||||||
| 第三部分 结果与讨论(可加页) 一、实验结果分析(包括数据处理、实验现象分析、影响因素讨论、综合分析和结论等) 通过PMD、CheckStyle、FindBugs的测试如上图,我们改进了代码并进行了全面重写。 二、小结、建议及体会 吴灿柳:通过这次实验,分别学习了CheckStyle,FindBugs,PMD的安装和使用,他们都是通过eclipse的Install New Software来安装使用,然后需要进行配置,最后才能使用这些工具进行代码分析。这些工具的使用简单有效,十分方便。其次学会了使用Java监视和管理控制台对代码性能进行分析,通过观察相关的统计图像,得出了哪些因素的占用内存量大,或者CPU随时间的变化情况等,收益匪浅 徐强国:通过本次实验,我了解了一些代码分析工具并在实际中加以运用。通过对上次实验所写代码的测试,我初步了解了代码分析工具在Java代码测试中的运用,改善原来的代码使测试用例通过率达到100%。结对编程的优点体现在于两个人的互补,将每个人发现的问题提出的建议讨论后改善代码,能够提高效率,考虑得更全面。 成绩评定表: 序号 | 评分项目 | 满分 | 实得分 | ||||||
| 1 | 实验报告格式规范 | 2 | |||||||
| 2 | 实验报告过程清晰,内容详实 | 4 | |||||||
| 3 | 实验报告结果正确性 | 2 | |||||||
| 4 | 实验分析与总结详尽 | 2 | |||||||
| 总得分 | 10 | ||||||||
