第一次编程作业(Python)
| 软件工程 | https://edu.cnblogs.com/campus/gdgy/CSGrade21-12 |
|---|---|
| 我的班级 | https://edu.cnblogs.com/campus/gdgy/CSGrade21-12 |
| 作业要求 | https://edu.cnblogs.com/campus/gdgy/CSGrade21-12/homework/13014 |
| 作业目标 | 学习代码实现论文查重,并学会PSP模式 |
1. GitHub仓库地址:https://github.com/lzca888/lzca888
2. PSP表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 30 | 40 |
| Estimate | 估计这个任务需要多少时间 | 360 | 400 |
| Development | 开发 | 30 | 40 |
| Analysis | 需求分析(包括学习新技术) | 25 | 30 |
| Design Spec | 生成设计文档 | 10 | 15 |
| Design Review | 设计复审 | 15 | 10 |
| Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 10 | 15 |
| Design | 具体设计 | 30 | 40 |
| Coding | 具体编码 | 90 | 120 |
| Code Review | 代码复审 | 20 | 15 |
| Test | 测试(自我测试,修改代码,提交修改) | 30 | 60 |
| Reporting | 报告 | 60 | 80 |
| Test Report | 测试报告 | 30 | 30 |
| Size Measurement | 计算工作量 | 20 | 25 |
| Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 30 | 45 |
| 合计 | 790 | 965 |
3. 计算模块接口的设计与实现过程
- 流程
![]()
- 创建get_file_contents函数获取指定路径的文件内容

- 创建filter函数将读取到的文件内容先把标点符号、转义符号等特殊符号过滤掉,然后进行jieba分词

- 创建main函数用simhash库生成获取到的文本的Simhash值,计算海明距离,计算重复率,写入输出文件

4. 计算模块接口部分的性能测试
- 空间性能测试
get_file_contents函数(内存最大)

filter函数

mian函数

- 时间性能测试
get_file_contents函数

filter函数

mian函数(耗时最长)

总耗时

5. 覆盖率

- 覆盖率达到88%,原因:以下的代码没有执行
![]()
- 消除以上代码后,覆盖率达到100%
![]()
6. 异常以及优化处理
- 在调试阶段,针对使用者方便查重,设置输入文件路径,也防止文件路径出错问题。程序引入os.path.exists()方法用于检验文件是否存在,对文件路径进行判断,如果文件路径不存在,则退出程序。
![]()
7. 实测结果






浙公网安备 33010602011771号