本篇文章将会对 Computer Network Project Analysis 中的项目内容进行分析以及拆分,为正式编程提供思路以及时间安排优化。
设计要点:
根据描述可知,在软件实现的前期无需考虑 Transperth 数据信息,可以使用自制的2/4车站网络作为基准开发,运行成功后再去适配较大规模的网络。
其次本项目要求使用两种语言,但由于两个程序实现同样的功能,所以将会采取先实现其中一种后再用另一种语言参考逻辑去快速实现同样功能。
程序启动后首先应当进入准备状态:
- 首先读取参数并记入内存
- 向操作系统申请端口监听
- 通过文件名载入班次信息
- 将班次信息存入数据结构
准备完成后应当进入对端口的监听状态,一旦完成便进入并发的服务器处理阶段。之后将会分开 TCP 和 UDP 端的操作。依照上述信息,本项目开发可以粗略划分为以下状态。
项目划分:
第一阶段
- 实现参数读取并将端口等变量写入内存
- 实现文件读取,成功打开文件
- 实现对文件内容的格式化存储,即放入数据结构以便后续使用
- 实现向操作系统申请端口并开始监听 (TCP)
- 实现接收浏览器请求并成功作出回应 (TCP)
- 实现 TCP 链接的结束
- 实现 UDP 数据报请求发出(首先发向相邻车站) (UDP)
- 实现 UDP 数据报并发收取 (UDP)
- UDP 收听端实现数据报处理以及传递到下一车站
- 实现终点车站对直达线路的 UDP 数据报回应 (UDP)
- 出发车站对回应数据进行处理并生成线路信息
- 修改第5步实现向用户的路线数据返回
第二阶段
- 设计中转线路规划算法
- 修改第一阶段第8项对中转线路进行处理
- 实现出发车站对多种线路的存储
- 实现出发车站分析最快路线的算法并返回用户
第三阶段
- 使用第二编程语言重新实现上述功能
- 逐步扩大车站网络数量进行测试
- 对 Transperth 大容量数据适配
至此已经可以开始去做 Project 了,敏捷式一边设计一边进行开发,希望今晚可以将前两部分给做好。
Tommy 2020年5月13日傍晚 于 Waterford, WA