第一次个人编程作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024/homework/13136 |
这个作业的目标 | 尝试开发个人项目,熟悉流程 |
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 10 | 5 |
Estimate | 估计这个任务需要多少时间 | 10 | 10 |
Development | 开发 | 720 | 120 |
Analysis | 需求分析 (包括学习新技术) | 10 | 40 |
Design Spec | 生成设计文档 | 30 | 10 |
Design Review | 设计复审 | 30 | 20 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 10 | 10 |
Design | 具体设计 | 30 | 10 |
Coding | 具体编码 | 180 | 30 |
Code Review | 代码复审 | 30 | 20 |
Test | 测试(自我测试,修改代码,提交修改) | 30 | 20 |
Reporting | 报告 | 30 | 30 |
Test Repor | 测试报告 | 30 | 30 |
Size Measurement | 计算工作量 | 20 | 20 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 20 | 20 |
合计 | 1190 | 395 |
开发
需求分析
要求通过命令行传入原文文件以及待测试文件,计算重复率后输出到用户设置的路径中的文件
设计文档
- 输入处理
接收用户输入
读取文件内容
统一文本格式 - 计算处理
计算两份文件的重复率并返回值 - 输出处理
将计算模块返回的值写入到用户输入的文件路径中
接口设计
利用sys.argv直接读取3个文件路径,再赋值给变量,可以只用一个读取输入模块就能完成所有读取工作
实现过程
先读取文档内容,通过translate统一文本内容格式,方便比对。利用difflib库对接入的两份文本进行匹配并提取出相匹配的文本,计算各文本字数来计算重复率,输出到答案文件
性能分析
单元测试
通过比对计算模块返回的值以及预估的值,若一样则视为通过测试
代码覆盖率
异常处理
文件路径不存在的处理
文件内容为空的处理
requirements文档内容说明
由于该程序使用python自带的difflib库进行处理,因而不需要外部库的引入