GitHub链接:https://github.com/2016bits/subway
PSP2.1表格
PSP2.1 | Personal Software Process Stages | 预计耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 30 |
·Estimate | ·估计这个任务需要多少时间 | 60 | 60 |
Development | 开发 | 300 | 420 |
·Analysis | ·需求分析(包括学习新技术) | 30 | 30 |
·Design Spec | ·生成设计文档 | - | - |
·Design Review | ·设计复审(和同事设计审核文档) | - | - |
·Coding Standard | 代码规范(为目前的开发制定合适的规范) | 120 | 150 |
·Design | ·具体设计 | 120 | 120 |
·Coding | ·具体编码 | 600 | 800 |
·Code Review | ·代码复审 | 180 | 220 |
·Test | ·测试(自我测试,修改代码,提交修改) | 30 | 30 |
Reporting | 报告 | 60 | 60 |
·Test Report | 测试报告 | 40 | 40 |
·Size Measurement | ·计算工作量 | 60 | 60 |
·postmortem & Process Improvement Plan | ·事后总结,并提出过程改进计划 | 40 | 40 |
合计 |
性能分析
我们整体的思路是通过广度优先查询来解决这个问题,上图所示的是/a功能(从北京站开始遍历北京地铁)的性能分析图。
算法优化
我们算法优化主要体现在存储路线信息上。刚开始我们采用地铁路线—地铁站这样的存贮模式,但是我们后来发现这样不易于读取文件信息。于是我们就将格式改为地铁站—地铁站数目信息,这样确实可以减少读取时间,但是在遇到环路信息的时候却没有办法解决。我们又想到了用负数表示环路对应的信息,这样一来就完美解决了信息存储的问题。
我的收获
这一次的结对项目让我们收获了很多。从最开始的审题选题到最后的代码复审,我都和我的队友相互监督,共同发现问题解决问题,最终完成了这次项目的要求。这是我们很难忘的一次编程经历,我们不仅在这一次的编程项目中提高了编程能力,还锻炼了团队沟通以及协作能力。