第一个项目
设计思路:
1、需求分析: cmd命令行获取参数、使用Floyd算法来计算两站之间的最短距离。
2、开发平台:idea
3、计算模块接口的设计与实现过程。设计包括代码如何组织,比如会有几个类,几个函数,他们之间关系如何,关键函数是否需要画出流程图?说明你的算法的关键(不必列出源代码),以及独到之处:
Node类:获取节点类的信息
Path类:路径类,计算两点间的距离
Distance类:缓存a节点和b节点之间的距离
EasyCache类:中间缓存类
subway类:
readStation (String)方法用于读取subway.txt
getPath(String ,String,String)方法:打印输出2站间的最短距离
getXianLu(String,String)方法:获取某个地铁线路
Data类:
Data构造函数:通过subway类返回的createArray方法返回的二维数组的传递处理相邻两站isConnected的属性
ComputeShort类:
getShortDis用于计算两站间最短路径
主要算法:
Floyd算法描述:
1、从任意一条单边路径开始。所有两点之间的距离是边的权,如果两点之间没有边相连,则权为无穷大,这也是所谓的初始化工作;
2、对于每一对顶点 u 和 v,看看是否存在一个顶点 w 使得从 u 到 w 再到 v 比己知的路径更短。如果是更新它。
具体要求如下:
- 在开始实现程序之前,构思整个程序所需要的模块,想清楚它们的依赖关系,以及估计开发需要的时间,使用下述PSP表格记录下来。
- 在你实现完程序之后,使用下述PSP表格记录下你在程序的各个模块上实际花费的时间。
- 计算模块接口的设计与实现过程。 设计包括代码如何组织,比如会有几个类,几个函数,他们之间关系如何,关键函数是否需要画出流程图?说明你的算法的关键(不必列出源代码),以及独到之处
- 记录你在改进程序性能上花费了多少时间,描述你改进的思路,并展示一张性能分析的图(由VS 2019的性能分析工具自动生成),并展示你程序中消耗最大的函数。
- 计算模块部分单元测试展示。 展示出项目部分单元测试代码,并说明测试的函数,构造测试数据的思路。并将单元测试得到的测试覆盖率截图,发表在博客中。要求总体覆盖率到90%以上,否则单元测试部分视作无效。
- 计算模块部分异常处理说明。 在博客中详细介绍每种异常的设计目标。每种异常都要选择一个单元测试样例发布在博客中,并指明错误对应的场景。
- 共享你对程序进行测试的至少10个测试用例,以及说明为什么你能确定你的程序是正确的。
- 说明你在个人项目中学到了什么。
PSP 2.1 | Personal Software Process Stages | Time |
---|---|---|
Planning | 计划 | |
· Estimate | · 估计这个任务需要多少时间 | 0.5h |
Development | 开发 | |
· Analysis | · 需求分析 (包括学习新技术) | 20h |
· Design Spec | · 生成设计文档 | 3h |
· Design Review | · 设计复审 (和同事审核设计文档) | 1h |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 1h |
· Design | · 具体设计 | 2h |
· Coding | · 具体编码 | 5h |
· Code Review | · 代码复审 | 1h |
· Test | · 测试(自我测试,修改代码,提交修改) | 2h |
Reporting | 报告 | |
· Test Report | · 测试报告 | 3h |
· Size Measurement | · 计算工作量 | 1h |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 2h |
合计 | 41.5h |
posted on 2019-07-16 10:36 softwarelong 阅读(134) 评论(0) 编辑 收藏 举报