个人项目:论文查重
| 这个作业属于哪个课程 | 网络工程1934-软件工程 |
|---|---|
| 这个作业要求在哪里 | 作业要求 |
| 这个作业的目标 | 实现论文查重算法,熟练使用PSP表格,熟练使用单元测试,熟练使用代码质量检测工具,熟练使用性能分析工具 |
一、Github
二、PSP表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 20 | 20 |
| · Estimate | 估计这个任务需要多少时间 | 20 | 20 |
| Development | 开发 | 370 | 530 |
| · Analysis | 需求分析 (包括学习新技术) | 90 | 100 |
| · Design Spec | 生成设计文档 | 30 | 40 |
| · Design Review | 设计复审 | 20 | 40 |
| · Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 20 | 30 |
| · Design | 具体设计 | 30 | 30 |
| · Coding | 具体编码 | 120 | 200 |
| · Code Review | 代码复审 | 40 | 60 |
| · Test | 测试(自我测试,修改代码,提交修改) | 20 | 30 |
| Reporting | 报告 | 60 | 70 |
| ·Test Report | 测试报告 | 30 | 30 |
| ·Size Measurement | 计算工作量 | 20 | 20 |
| ·Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 10 | 20 |
| Total | 合计 | 450 | 620 |
三、计算模块接口的设计与实现过程
3.1 项目结构

3.2 程序流程图

3.3 类与方法的调用顺序

3.4 HanLP分词的介绍与使用
3.5SimHash



四、计算模块接口部分的性能改进
4.1 overview

4.2 实时内存

分析:BigInteger占用内存较多,消耗最大的函数是 SimHash
五、计算模块部分单元测试展示
5.1 测试代码




5.2 测试结果


5.3 测试覆盖率

六、计算模块部分异常处理说明
异常类代码

异常文件测试代码


异常文件测试结果
- 空文本
![]()
- 文件路径错误
![]()
- 不同文章的查重测试结果
![]()
七、总结
此次个人项目的完成让我学习到了很多很多,也消耗了非常多的时间,学会了使用PSP表格、使用jprofile性能分析工具等等。




浙公网安备 33010602011771号