Fork me on GitHub

第一次个人编程作业

课程 软件工程
要求 作业要求
目标 学习使用PSP表格;查重算法设计;Git管理

我的Github

编译环境 :python3.9 IDE:pycharm


一、PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 10 20
Estimate 估计这个任务需要多少时间 20 30
Development 开发 30 60
Analysis 需求分析 (包括学习新技术) 150 360
Design Spec 生成设计文档 15 10
Design Review 设计复审 10 10
Coding Standard 代码规范 (为目前的开发制定合适的规范) 10 30
Design 具体设计 20 120
Coding 具体编码 40 100
Code Review 代码复审 40 20
Test 测试(自我测试,修改代码,提交修改 120 120
Reporting 报告 30 20
Test Report 测试报告 20 20
Size Measurement 计算工作量 5 10
Postmortem &Process Improvement Plan 事后总结, 并提出过程改进计划 15 20
合计 535 950

二、模块接口设计与实现

算法:余弦相似度

余弦相似度(cosine similiarity),又称为余弦相似性,是通过计算两个向量的夹角余弦值来评估他们的相似度。基本思路是:

  1. 找出两篇文章的关键词;
  2. 每篇文章各取出若干个关键词,合并成一个集合,计算每篇文章对于这个集合中的词的词频;
  3. 生成两篇文章各自的词频向量;
  4. 计算两个向量的余弦相似度,值越大就表示越相似。计算两个向量的余弦相似度,值越大就表示越相似。

模块以及具体函数的实现

模块设计思路
函数设计思路

函数设计部分代码实现:

  • 分词函数
  • 计算词频函数并求出向量

三、性能分析与代码优化

内存具体使用情况

各函数耗时分析

存在用时过长的问题

函数优化

大大提高了运行速度

四、单元测试

  • 部分代码
  • 测试用例成功
  • 结果实例
  • 代码覆盖率

五、异常处理

  • 文件索引异常
  • 列表索引异常

六、心得体会

第一次做项目,却匆匆忙忙交卷,虽然过程很痛苦,但是结果也不好受。行吧,毕竟还是学到了不少东西,收获到了不一样的体会。希望下次自己能够好好规划时间,才能保证充分的睡眠。

posted @ 2021-09-20 04:14  Mokii  阅读(105)  评论(1编辑  收藏  举报