个人项目作业
个人项目作业
| 这个作业属于哪个课程 | 软件工程 |
| ---- | ---- | ---- |
| 这个作业的要求在哪里 | 软工作业 |
| 这个作业的目标 | 1.学习个人完成简单文件查重
2.学习项目完成的流程
3.学习如何进行单元测试
4.学习将编好的项目安置到Github上 | | | |
1.Github作业链接
2.PSP表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 60 | 90 |
| ·Estimate | · 估计这个任务需要多少时间 | 60 | 90 |
| Development | 开发 | 300 | 360 |
| · Analysis | · 需求分析 (包括学习新技术) | 150 | 200 |
| · Design Spec | · 生成设计文档 | 60 | 60 |
| · Design Review | · 设计复审 | 40 | 60 |
| · Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 15 | 30 |
| · Design | · 具体设计 | 90 | 200 |
| · Coding | · 具体编码 | 120 | 100 |
| · Code Review | · 代码复审 | 60 | 60 |
| · Test | · 测试(自我测试,修改代码,提交修改) | 60 | 120 |
| Reporting | 报告 | 100 | 120 |
| · Test Repor | · 测试报告 | 120 | 200 |
| · Size Measurement | · 计算工作量 | 50 | 60 |
| · Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 10 | 30 |
| · 合计 | 1295 | 1780 |
3计算模块接口的设计与实现过程
1.模块函数

2.算法关键
1.jieba分词
采用jieba分割的方法,将文本进行分割成一个个词语。
示例
代码展示

运行结果

2.re.sub替换标点符号

就是将文本中出现的标点符号替换成为'',及达到删除效果
3.余弦相似度
4计算模块接口部分的性能改进
1.耗费时间
利用pycharm可以直接查看各种函数的耗费时间
改进前耗时

可以看出耗费时间最大的是get_word_vector函数,耗时1987ms
改进后耗时

改进思路:由于上面的jieba.lcut输出的是列表,而使用jieba.cut输出的是一个可以迭代的generator,在将他存放列表中,发现时间耗费果然更少了
5计算模块部分单元测试展示
单元测试
单元测试代码

测试结果

测试结果符合预期
代码覆盖率

总结
1.本次作业我们学会了如何一个人完成一个项目
2.并且可以了解到项目完成的流程
3.不过由于还是第一次,故有些细节没有完成的很好,不过下次会更加熟练并且可以完成的更好

浙公网安备 33010602011771号