第一次个人编程作业
| 这个作业属于哪个课程 | 软件工程 |
| :------ | :------ | :------ |
| 这个作业要求在哪里 | 作业要求 |
| 这个作业的目标 | 熟悉个人软件开发项目流程并且锻炼能力 |
| GitHub链接 | https://github.com/dsm-mxz/3118005417 |
PSP表格
PSP 各个阶段 | 自己预估的时间(分钟) | 实际的记录(分钟) |
---|---|---|
计划 | 30 | 40 |
需求分析 (包括学习新技术) | 60 | 80 |
生成设计文档 | 40 | 50 |
设计复审 | 10 | 15 |
代码规范 (为目前的开发制定合适的规范) | 10 | 10 |
具体设计 | 30 | 30 |
具体编码 | 120 | 150 |
代码复审 | 60 | 60 |
测试(自我测试,修改代码,提交修改) | 60 | 30 |
报告 | 60 | 50 |
测试报告 | 40 | 25 |
计算工作量 | 30 | 25 |
事后总结, 并提出过程改进计划 | 60 | 50 |
合计 | 610 | 615 |
核心算法
余弦相似度公式
设计思路
设计论文查重,首先要进行分词,而Python中jieba模块的分词功能较为强大,所以采用jieba模块中的精准模式进行分词
函数
thesis函数主要用于遍历两篇文章,找出重复的词语并且输出重复的次数,这里用了python的字典,通过关键字来得出次数
计算余弦相似度的代码
获取命令行参数,最后输出路径
计算模块接口部分的性能改进
程序中时间消耗最大的函数便是jieba库中的方法lcut
由于程序代码实现简单,找不出能提高的地方
计算模块部分单元测试展示
测试的是thesis函数输出次数的功能
小结
初次尝试的时候感觉很难,但是做的过程中发现代码不算难,难的是真正过一遍软件工程的流程,认识到了想要做工程师只会打代码是不行的,还是需要测试,维护,改进方面。然后继续加油吧!