地铁线路项目设计与分析
一、项目介绍
实现一个帮助进行地铁出行路线规划的命令行程序
二、项目计划表
Planning | 计划 | |
· Estimate | · 估计这个任务需要多少时间 | 2h |
Development | 开发 | |
· Analysis | · 需求分析 (包括学习新技术) | 6h |
· Design Spec | · 生成设计文档 | 3h |
· Design Review | · 设计复审 (和同事审核设计文档) | 3h |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 3h |
· Design | · 具体设计 | 3h |
· Coding | · 具体编码 | 6h |
· Code Review | · 代码复审 | 2h |
· Test | · 测试(自我测试,修改代码,提交修改) | 5h |
Reporting | 报告 | |
· Test Report | · 测试报告 | 2h |
· Size Measurement | · 计算工作量 | 2h |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 3h |
合计 | 40h |
三、项目需求分析
1、实现地铁线路信息的获取
- 设计一个存储线路信息的文件,例如subway.txt
支持采用参数 -map 作为标志,来获取对应的自定义地铁文件,例如:
java subway -map subway.txt
2、实现基础查询功能,查询指定地铁线路经过的站点
支持采用参数 -a 来指定地铁线路,采用参数 -o 来输出到指定文件station.txt,例如:
java subway -a 1号线 -map subway.txt -o station.txt
3、实现出发地到目的地最短路径的查询
支持采用参数 -b 来指定出发地与目的地,例如:
java subway -b 洪湖里 复兴路 -map subway.txt -o routine.txt
四、设计思路
1、采用语言:Java
2、存储的txt文件格式设计:
- subway.txt文件格式:
1号线 站点1 站点2 ...
2号线 站点1 站点2 ...
3号线 站点1 站点2 ...
...
- routine.txt文件格式:
3
洪湖里
西站
6号线
复兴路
3、程序主功能设计:
- 数据结构设计:采用图,每个站点作为一个结点
- 采用算法:Dijkstra算法求得最短路径
主要功能模块:
主模块 流程控制 参数模块 解析输入的命令行参数 输入输出模块 读出和写入txt文件数据 核心算法模块 实现Dijkstra算法
五、测试分析
设计测试用例,主要进行以下两类测试:
- 测试参数解析模块的正确性与健壮性,参数测试是否解析正确
- 测试输入数据对程序的影响
- 测试输出数据对程序的影响
- 测试程序的核心功能,是否能正确规划出两点的最短路径