软工作业2:第一次个人编程作业
软件工程 | 计科21级12班-广东工业大学计算机学院 |
---|---|
这个作业要求在哪里 | 个人项目 |
这个作业的目标 | 学会使用PSP表格;体验个人项目开发流程;学习使用github仓库代码管理 |
GitHub仓库地址
PSP表格
Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|
Planning(计划) | 10 | 12 |
Estimate(估计时间) | 10 | 12 |
Development(开发) | 530 | 440 |
Analysis(需求分析(包括学习新技术)) | 100 | 60 |
Design Spec(生成设计文档) | 60 | 10 |
Design Review(设计复审) | 30 | 30 |
Coding Standard(代码规范 ) | 30 | 10 |
Design(具体设计) | 70 | 60 |
Coding(具体编码) | 180 | 240 |
Code Review(代码复审) | 60 | 30 |
Test(测试(自我测试,修改代码,提交修改)) | 120 | 170 |
Test Report(测试报告) | 60 | 120 |
Size Measurement(计算工作量) | 30 | 20 |
Postmortem & Process Improvement Plan(事后总结, 并提出过程改进计划) | 30 | 30 |
Total(合计) | 660 | 622 |
编码要求
- 在Github仓库中新建一个学号为名的文件夹。
- 在开始实现程序之前,在PSP表格[附录2]记录下你估计在程序开发各个步骤上耗费的时间,在你实现程序之后,在PSP表格记录下你在程序的各个模块上实际花费的时间。
- 使用C++ 、Java语言或者python3实现,提交python代码时请附带上requirements.txt,。C++请使用Visual Studio Community 2017进行开发,运行环境为64-bit Windows 10。对于C++/Java,还需将编译好的程序发布到Github仓库中的releases中
- 提交的代码要求经过Code Quality Analysis工具的分析并消除所有的警告。
- 完成项目的首个版本之后,请使用性能分析工具Studio Profiling Tools来找出代码中的性能瓶颈并进行改进。
- 使用Github[附录3]来管理源代码和测试用例,代码有进展即签入Github。签入记录不合理的项目会被助教抽查询问项目细节。
- 使用单元测试[附录4]对项目进行测试,并使用插件查看测试分支覆盖率等指标;写出至少10个测试用例确保你的程序能够正确处理各种情况。
接口与算法设计
接口
所用库
算法设计
函数名 | 功能 |
---|---|
get_message() | 使用正则运算过滤特殊字符,再使用结巴分词 |
j_file() | 计算余弦相似度 |
calc_similarity() | 计算余弦相似度 |
time() | 计算算法运行时间 |
profile | 对算法进行性能分析 |
流程图
算法设计关键
- 将待处理数据进行分词
- 计算并记录列表中词汇对应出现的次数,将其变成一个向量
- 将两个数据对应的向量代入夹角余弦定理,计算两向量的偏移度,即对应两者的相似度
算法性能分析
- 内存占用
2.函数覆盖率
3.数据测试
- 与 orig.txt 比较
- 与个人原文.txt比较
异常处理
- 在输入文件绝对路径的时候,编译器可能会将“\”识别成转义字符导致文件读取失败而中断程序,此时可以将“\”用“/”代替。