地铁线路项目设计与分析

一、项目介绍

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

二、项目计划表

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. 测试程序的核心功能,是否能正确规划出两点的最短路径

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

01-18 15:45
查看更多