第一次个人编程作业
这个作业属于哪个课程 | 软件工程 |
---|---|
这个作业要求在哪里 | 个人项目 |
这个作业的目标 | 个人编程论文查重算法,输入原文件及抄袭文件,输出有查重率的答案文件 |
个人项目
PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 20 | 12 |
· Estimate | · 估计这个任务需要多少时间 | 20 | 12 |
Development | 开发 | 305 | 470 |
· Analysis | · 需求分析 (包括学习新技术) | 60 | 120 |
· Design Spec | · 生成设计文档 | 30 | 30 |
· Design Review | · 设计复审 | 30 | 15 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 30 | 15 |
· Design | · 具体设计 | 25 | 130 |
· Coding | · 具体编码 | 60 | 80 |
· Code Review | · 代码复审 | 30 | 20 |
· Test | · 测试(自我测试,修改代码,提交修改) | 40 | 60 |
Reporting | 报告 | 70 | 60 |
· Test Repor | · 测试报告 | 30 | 30 |
· Size Measurement | · 计算工作量 | 10 | 5 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 30 | 25 |
· 合计 | 395 | 542 |
GitHub仓库地址
https://github.com/star1908/3122004491
模块接口的设计与实现
- Main类 主类,负责调用其他模块
- ReadFile类 读取文件类,根据路径读取文件的文本内容并返回
- OutputFile类 写入文件类,根据路径将相似度数据写入文件
- SimHashUtils类 转换类,负责将文本字符串转换hash及simhash值
- HammingUtils类 计算类,负责计算海明距离,并通过海明距离计算相似度
- BaseException类 异常类,作为异常的基类
- TextShortException类 异常类,继承基类的文本过短异常
- InsufficientParametersException类 异常类,继承基类的命令行参数缺失异常
性能分析
- 性能分析如下
单元测试
- 单元测试部分代码如下
-
时间
-
覆盖率
异常处理说明
- 异常处理基类:BaseException
- 命令行参数缺失异常处理类:InsufficientParametersException
- 文本过短异常处理类:TextShortException