个人项目--作业2
github链接:点击此处
| 工程概论 | 计算21级 (集美大学) |
|---|---|
| 作业要求 | 个人项目 |
| 作业目标 | 项目管理实践、进一步熟悉github、初见PSP表格 |
开发环境
操作系统:WIN10
IDE:Eclipse IDE for Java Developers - 2022-06
实现与测试
1. 将程序打包成jar包,在命令行运行(文件不存在时会自动创建)


2. 用JProfile集成到ecplise上,由于不是在命令行操作,手动为程序添加寻找的文件的路径


3. 单元测试覆盖率
利用ecplise的小插件coverage生成类覆盖率统计结果,如下图:

4. 其他计算方面
- 计算模块接口的设计与实现过程:只有一个类,即Main类,它包含了两个方法,即main方法和getSimilarity方法。main方法负责接收命令行参数,读取文件内容,调用getSimilarity方法计算相似度,将结果格式化并写入答案文件。getSimilarity方法负责计算两个字符串之间的相似度,使用的算法是编辑距离算法,它是一种衡量两个字符串之间差异的方法,定义为将一个字符串转换为另一个字符串所需的最少编辑操作次数,编辑操作包括插入、删除和替换。算法的关键在于正确地定义和实现动态规划表格的状态转移方程,并注意边界条件的处理。
//程序大概流程
Start(开始) --> Input[输入字符串] --> Calc[计算编辑距离] --> Output[输出相似度]--> End(结束)
- 计算模块接口部分的性能改进:使用更高效的算法或数据结构、减少不必要的内存分配或回收、优化循环或条件判断等。
- 计算模块部分异常处理说明:使用Java内置的异常类IOException。
5. PSP表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 20 | 20 |
| Estimate | 估计这个任务需要多少时间 | 5 | 5 |
| Development | 开发 | 120 | 120 |
| Analysis | 需求分析 (包括学习新技术) | 10 | 10 |
| Design Spece | 生成设计文档 | 15 | 10 |
| Design Review | 设计复审 | 5 | 5 |
| Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 10 | 12 |
| Design | 具体设计 | 10 | 10 |
| Coding | 具体编码 | 5 | 5 |
| Test | 测试(自我测试,修改代码,提交修改) | 10 | 9 |
| Reporting | 报告 | 30 | 20 |
| Test Repor | 测试报告 | 5 | 5 |
| Size Measurement | 计算工作量 | 10 | 7 |
| Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 5 | 5 |
| 合计 | 260 | 243 |

浙公网安备 33010602011771号