2020BUAA软件工程·结对项目作业感想
一、简介
本博客的主要内容为,在完成软件工程结对项目作业后,对结对项目作业的总结,以及对北航软件工程课程的一些感想及建议。
项目 | 内容 |
---|---|
本感想属于北航软件工程课程 | 博客园班级博客 |
作业要求请点击链接查看 | 结对项目作业要求 |
个人项目作业博客 | 结对项目作业博客 |
二、结对项目作业总结
这次的结对作业首先是个人作业的延续,其目的是通过一个基于个人作业,而在此基础上新增多样性功能的软件项目,训练同学们的结对开发能力,掌握常见的结对开发方法,并锻炼团队配合的能力。由个人项目到结对项目的扩展,与团队项目中从(alpha)到(eta)阶段的扩展十分相似,从这个角度上讲,这次作业也可以视为在团队项目之前的铺垫。
从方法论的角度,本次作业与个人项目作业的最大区别,也是这次作业的重点,就在于“结对”应该以什么样的方式进行。由于疫情的限制,这次的“结对”只能以网上联络的方式进行,所以结对伙伴之间在网络上进行频繁、及时的沟通,就显得尤为重要。其他方面,本次结对作业的计划、设计、测试的方法与个人项目作业基本相同,所以最好的做法,就是通过结对伙伴之间的沟通,在每个部分使用个人项目作业中较优一方的方法,并将其扩展到新功能上,这样就能充分发挥结对优势,实现“结对项目的质量取决于结对伙伴中水平较高的一方”的理想目标。
本次作业在功能上的难点,则是GUI的开发与接口松耦合的实现。对这些功能,务必要在设计阶段就讨论好实现的方法,并提前进行相关技术的学习,因为它们在开发流程中处于相对靠后的位置,如果等到其他功能开发完成再去学习,很可能会出现时间不够的问题。
在结对开发中,还要克服由于结对带来的不可避免的麻烦,比如代码风格统一、Git的版本控制、结对双方不同设备如何进行配置等。这些问题首先需要个人的良好习惯,也需要结对双方充分沟通,尊重对方意见,并尽可能采取一些工程化方法进行管理,最好能够做到即使出现了某一方面的问题,也能及时进行恢复和纠正。
三、对课程的感想与建议
与很多必修课不同,北航的软件工程课,是一门团队性质很强的课程。在这门课程中,在学到了很多软件开发相关方法和技术的同时,更为重要的是学会如何在一个开发小组中,通过科学的团队配合,发挥“1+1>2"的效果,完成一个大中型软件项目的开发。同时这门课程也是与将来的工作相接轨的,可以在我们即将毕业之时,提供软件工程能力的训练。总的来说,这门软件工程课,可以让每一个认真学习的人都获益匪浅。
要说有什么建议的话,就希望这门课程的时间周期(或者说周数)能够再缩短一些吧,感觉后期(eta)版本开发的时候,其他课程也逐渐进入总复习阶段,就显得时间非常紧张,每个人都比较忙碌,而最终的开发效果也未必好。感觉前期博客作业可以适当减少(比如前两个博客作业合并一下),然后适当缩短一下个人项目或者结对项目的开发时间(比如缩至总共两周),这样在团队项目的时候可以更加专心于开发,最后成品的效果也会更好。
最后附上黄衫照片,感谢软件工程课程组的奖励。