Final Report
个人总结
学习这门课程前,我在开发小软件的时候都没有在意这些分析与设计的基本知识,开发过程不科学、不系统。学习这门课程以及亲自和组员们动手完成一个项目后,我认识到了系统分析与软件开发的基本理论与流程,并且通过作业与项目亲自体验了项目团队中需求分析、设计、实现等角色的工作和所使用的工具,让我对开发一个系统的流程有了大致的认识。
课程项目的经验也是很宝贵的,毕竟软件工程是一门需要实践的学科,书本上学习到的只是终归还是要在项目中进行实践。我在这次项目中负责部分 API 设计及后端实现。这个项目不算是小软件了,因此这次也算是体验过真正的后端是如何设计与实现的,有什么问题是需要考虑的,例如数据库与 RestfulAPI 的设计,安全性的保证,单元测试,集成等等。虽然我后端的工作大部分都是做“填空题”,填好 API 中的业务逻辑,但是在项目前期也遇到了需求没交流好、词汇表不统一、数据库字段设计不合理等问题带来的麻烦。但是经过中期小组内的会议后,给后期的工作定下了明确的需求和目标,使后面的开发能顺利进行。通过这样的实践,我也认识到了 Use case、领域模型、时序图等 UML 建模过程对后期开发的重要性。
同时也更加熟悉了 git 工具的使用。之前的项目都不太会用 git 进行管理,这次的项目真正需要用到 git 进行版本管理了,越用越顺手了。
这是一次很好的团队开发的体验。感谢伟大的 CEO & PM Mu-xsan, Joilence; 前端三巨头 MikeXuQ, James Yip, 以及 CTO ElsYeJq 还另外解决了部署,后端代码 review 以及修改文件上传; 以及一起 404 500 test FAIL 的队友 yaozhili。
PSP 2.1 统计
| PSP2.1 | Personal Software Process Stages | Time(%) |
|---|---|---|
| Planing | 计划 | 5 |
| Estimate | 估计开发时间 | 5 |
| Development | 开发 | 91 |
| Analysis | 需求分析 | 10 |
| Design Spec | 生成设计文档 | 10 |
| Design Review | 设计复审 | 4 |
| Coding Standard | 代码规范 | 2 |
| Design | 具体设计 | 8 |
| Coding | 具体编码 | 30 |
| Code Review | 代码复查 | 7 |
| Test | 测试 | 30 |
| Reporting | 报告 | 4 |
| Test Report | 测试报告 | 2 |
| Postmortem | 事后总结 | 2 |
GIT 统计报告
DashBoard:

Server:

工作清单
-
最得意:Travis 集成与 Coverall 覆盖率测试的配置,徽章装点 repository 门面
- 有苦劳:部分数据库 Entity 的设计以及对应 API 的文档编写、设计、实现与测试;登录验证
- 有价值:苦劳堆出来;项目中期明确需求时进行的讨论。