个人项目-论文查重
一、课程信息
这个作业属于哪个课程 | 班级的链接 |
---|---|
这个作业要求在哪里 | 作业要求的链接 |
这个作业的目标 | 熟悉软件开发以及工具的使用、算法的设计、资料的搜集 |
GitHub地址
二、开发环境
开发工具 | IDEA 2021.3.2 |
---|---|
项目构建工具 | maven |
单元测试 | Junit |
分词依赖包 | hanlp |
三、需求分析
设计一个可以通过命令行参数传递原文文件地址、抄袭文件地址、答案文件地址,计算抄袭文件相对于原文文件的重复率,并将结果以保留小数点后两位的形式输出到答案文件。
四、设计与实现
主要类 | 作用 |
---|---|
main | 主类,识别参数 |
SimHashUtils | 将文章分词,并将关键词用hash值替代,再通过加权合并降维得到SimHash的值 |
HammingUtils | |
TxtIOUtils | 读写txt文件的工具类 |
文件结构
五、性能分析
使用JProfile工具进行性能分析
六、PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planing | 计划 | 60 | 60 |
.Estimate | .估计这个任务需要多久时间 | 60 | 60 |
Development | 开发 | 1120 | 1280 |
.Analysis | .需求分析 (包括学习新技术) | 300 | 370 |
.Design Spec | .生成设计文档 | 70 | 60 |
.Design Review | .设计复审 | 30 | 30 |
.Coding Standrd | .代码规范(为目前的开发制定合适的规范) | 30 | 30 |
.Design | .具体设计 | 90 | 90 |
.Coding | .具体编码 | 300 | 360 |
.Code Review | .代码复审 | 60 | 60 |
.Test | .测试(自我测试,修改代码,提交修改) | 240 | 300 |
.Reporting | 报告 | 240 | 240 |
.Test Report | .测试报告 | 60 | 70 |
.Size Measurement | .计算工作量 | 60 | 60 |
.Postmortem&Process Improvement | .事后总结,并提出过程改进计划 | 120 | 120 |
.合计 | 1420 | 1590 |