地铁线路项目设计与分析

地铁线路项目设计与分析

一、项目介绍

实现一个帮助进行地铁出行路线规划的命令行程序

二、项目计划表

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算法

五、测试分析

设计测试用例,主要进行以下两类测试:

  1. 测试参数解析模块的正确性与健壮性,参数测试是否解析正确
  2. 测试输入数据对程序的影响
  3. 测试输出数据对程序的影响
  4. 测试程序的核心功能,是否能正确规划出两点的最短路径

通过测试,进一步检查所设计程序的不足,并进行改正。

posted @ 2019-09-20 16:22  31703178林型双  阅读(390)  评论(0编辑  收藏  举报