#地铁线路项目设计与分析
##一、项目介绍
#####实现一个帮助进行地铁出行路线规划的命令行程序
##二、项目计划表
| PSP2.1 | Personal Software Process Stages | Time |
| --- | --- | --- |
| 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算法
##五、测试分析
###设计测试用例,主要进行以下两类测试:
- 测试参数解析模块的正确性与健壮性,参数测试是否解析正确
- 测试输入数据对程序的影响
- 测试输出数据对程序的影响
- 测试程序的核心功能,是否能正确规划出两点的最短路径
####通过测试,进一步检查所设计程序的不足,并进行改正。
原文地址:https://www.cnblogs.com/xingslin/p/11557957.html