个人项目:论文查重
| 软件工程 | 19级网工(4)班 |
| 作业要求 | 作业链接 |
| 作业目标 | 熟悉个人项目开发流程 学会使用PSP表格 初步掌握Git 论文查重算法的实现 学会使用单元测试 |
github链接
一.PSP表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 35 | 30 |
| · Estimate | · 估计这个任务需要多少时间 | 35 | 30 |
| Development | 开发 | 450 | 600 |
| · Analysis | · 需求分析 (包括学习新技术) | 60 | 70 |
| · Design Spec | · 生成设计文档 | 60 | 50 |
| · Design Review | · 设计复审 | 40 | 50 |
| · Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 40 | 50 |
| · Design | · 具体设计 | 40 | 60 |
| · Coding | · 具体编码 | 120 | 150 |
| · Code Review | · 代码复审 | 60 | 70 |
| Test | · 测试(自我测试,修改代码,提交修改) | 30 | 50 |
| Reporting | 报告 | 100 | 100 |
| · Test Repor | · 测试报告 | 80 | 70 |
| · Size Measurement | · 计算工作量 | 20 | 30 |
| · Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 30 | 30 |
| 合计 | 615 | 760 |
计算模块接口的设计与实现过程
文本相似度实现思想SimHash
Paper_Check是项目的主类
FileIO是文档输入输出的工具类
Hamming_distance是计算海明距离的工具类
ShortStringException是异常处理的工具类
SimHashUtiles是计算分词哈希值的工具类

计算模块接口部分的性能改进
实时内存分析图
改进办法
从性能上分析,可以看到调用外部jar包的接口消耗性能最多,所以想提高性能就应该从外部接口入手,我找到了hanlp包的使用网址,把其中句法分析部分的模块删掉了,成功提高了接口的性能,和文字的处理速度。
计算模块部分单元测试展示
主类测试结果
结果文件
异常处理
1、设计与实现
当文本长度太短时,HanLp无法取得关键字,需要抛出异常。
1 try{ 2 if(str.length() < 200) throw new ShortStringException("文本过短!"); 3 }catch (ShortStringException e){ 4 e.printStackTrace(); 5 return null; 6 }
实现了一个处理这个异常的类:ShortStringException(继承了Exception)
1 public ShortStringException(String message) { 2 super(message); 3 }
2、测试
-
测试结果:





浙公网安备 33010602011771号