一学期软件工程课结束了,这学期我们共做了三个项目,分别为个人项目、结对项目、以及团队大项目。前两者主要是拿来练手,体会一下简单的软件工程方法论,而结对项目前后历时两个多月,可以说是一次系统的软件工程锻炼,下面对两个迭代过程做一个总结。
M1:
我们完成了什么:一个社团平台,给同学提供一个浏览社团活动的活动广场,给社团提供一个管理社员报名和发送通知的集成服务。
我们怎样做到的:需求分析,设想我们的产品的用户场景,建立基本的ER图模型,学习WEB开发的基本知识,做了一些DEMO,学习怎样以基于ajax的技术来进行前后端的网络数据交互,撰写API开发文档,前后端工程师分别着手实现,前后端对接测试,发布。
我们用到了哪些软件工程方法论的东西:敏捷开发流程(TFS发布任务、每周立会、冲刺阶段的scrum meeting、团队成员充分地交流)、需求驱动开发(最初的设计有不完善或者不人性化的东西,在开发过程中有了新的点子,就着手将其实现)、系统的软件测试(单元测试、压力测试、兼容性测试等等)。
我们的收获:第一次接触这样大的团队项目,学会沟通、学会合作、学会计划、学会时间管理,学会用项目管理软件来推动软件的开发进程。
我们的不足:重视代码构建而忽视文档书写;TFS任务制定过于死板,没有起到对项目开发的指导作用;没有代码管理工具,代码散乱,版本不一,有的人改了半天旧版本代码都毫不知情。
M2:
我们新完成了什么:在M1的基础之上构建更多的用户场景,为用户加入社团提供便利,为社团提供社员管理的功能,提供更加多样的通知方式,基本上来说,完成了一个社团平台的最基本的、最核心的功能。
我们怎样做到的:对M1开发过程进行总结,明确M2新的需求目标,尝试对M1的散乱代码进行重构,学习简洁的布局方式,尝试使用框架,放弃使用框架(为了提高页面加载速度,提升用户体验),专注于功能的实现和界面的美化,扩充前后端交互API,后端实现API,前端书写交互代码,对接,测试,发布。
我们用到了哪些新的软件工程方法论的东西:图形建模的设计方法(用图形来表达用户的需求,画出各个页面之间的调用关系)、用户体验评价(不止考虑界面的美观、还要考虑相应的时间、软件的鲁棒性、用户的使用习惯、能否对每一类型的用户都提供良好的体验)。
我们相比M1的改进:TFS起到了一定的作用,能够比较好地真实地反映团队项目的进展情况;github的使用为团队提供了一个好的代码发布同步、文档发布、讨论交流的平台;尝试使用页面布局框架尽管失败了,但是这不失为一种良好的探索。
我们相比M1没有进步或者退步的地方:时间紧张,压力过大,文档问题还是没有引起足够的重视;由于开发人员的工作时间不一,相互交流出现障碍,开发效率反而不如M1;后期测试不充分,对软件的质量不敢有太大保证。