第一次个人编程作业
作业归属 | 软件工程 |
---|---|
作业要求 | 要求链接 |
作业目标 通过对第一次个人项目的完善,体会软件工程在提高项目质量中的作用 |
项目GitHub链接
项目PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 60 |
Estimate | 估计这个任务需要多少时间 | 60 | 60 |
Development | 开发 | 1200 | 2460 |
Analysis | 需求分析 (包括学习新技术) | 360 | 1260 |
Design Spec | 生成设计文档 | 60 | 120 |
Design Review | 设计复审 | 60 | 30 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30 | 60 |
Design | 具体设计 | 120 | 240 |
Coding | 具体编码 | 420 | 600 |
Code Review | 代码复审 | 60 | 60 |
Test | 测试(自我测试,修改代码,提交修改) | 120 | 300 |
Reporting | 报告 | 30 | 30 |
Test Repor | 测试报告 | 30 | 30 |
Size Measurement | 计算工作量 | 60 | 60 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 60 | 30 |
合计 | 2730 | 5400 |
计算模块接口的设计与实现过程
文本相似度实现思想SimHash
[参考资料]https://www.cnblogs.com/huilixieqi/p/6493089.html
Paper_Check是项目的主类
FileIO是文档输入输出的工具类
Hamming_distance是计算海明距离的工具类
ShortStringException是异常处理的工具类
SimHashUtiles是计算分词哈希值的工具类
计算模块接口部分的性能改进
改进办法
从性能上分析,可以看到调用外部jar包的接口消耗性能最多,所以想提高性能就应该从外部接口入手,我找到了hanlp包的使用网址,把其中句法分析部分的模块删掉了,成功提高了接口的性能,和文字的处理速度。
计算模块部分单元测试展示
主类测试结果
结果文件
计算模块部分异常处理说明
设计了一个文本如果长度过短,就会抛出异常的类
点击查看代码
try{
if(str.length() < 100) throw new ShortStringException("输入的文本过短!");
}catch (ShortStringException e){
e.printStackTrace();
return null;
}
点击查看代码
public class ShortStringException extends Exception {
public ShortStringException(String message) {
super(message);
}
}