附加作业 软件工程原则的应用实例分析

此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2446

学习高级软件工程这门课程已经近一个学期了,在开发大大小小的项目中,从一个零基础毫无逻辑的开发,到目前能够运用软件工程的知识辅助开发的过程,有以下一些心得和感受。

第一个运用到开发过程的知识就是版本控制了,起初进行个人编程时,我还不太能理解版本控制的用处,觉得自己写代码,一次一上传太麻烦了。直到我的桌面被标着不同日期的文件夹占满,直到我要挨个文件夹点开运行一下才知道最新的改动之后,我才慢慢感受到了版本控制的便捷之处。到后来结对编程以及团队作业,我更是感受到了版本控制的魅力所在。每次上传对应的日志能让我们清楚的看到每次代码更新之处,而且不必再使用传统的代码传递方式,也不必担心电脑硬盘坏了(本学期真的出现了这种情况)而导致代码丢失的情况。

其次我觉得特别有用的就是燃尽图了,团队作业的时候,通过燃尽图来把任务细分至个人,每个任务对应着deadline,这些都会使软件的开发过程变得有序,而且对掌握软件开发的时间也是很有帮助(治好了我的拖延症)。通过燃尽图来总结软件开发进度,及时应对调整,使我们团队的开发过程比较高效。

另外在结对编程时,我的结对伙伴吴奕瑶同学提出将我们的代码模块化,即一个模块完成一块功能。写的时候两个人分工明确,而且实现单一功能写起来比较简单,最后修改的时候也容易发现是那一部分的问题,修改也很方便。

最后有一些我自认为做的比较失败的地方:

首先是开站立会议之前,没有一个好的构思,总是期待大家在一起讨论就能够把问题想的全面,但是往往开完会之后才想起来有没有讨论到的地方,在未来的开发阶段,我会在每次立会之前整理好一个提纲,大致要讨论哪些方面的内容,期望得到什么样的结果。

其次是从用户角度考虑问题:做产品要有同理心,从用户的角度考虑问题。我们在完成弹球游戏的时候,有很多功能,例如按p键可以暂停游戏,w键可以加速,但实际上在游戏实现的时候,并没有在游戏界面上提出这一点,我们有时会默认使用者知道某个功能,但是这是不对的。

不敢说今日学到的知识会一直牢记并践行,但是就目前来说,感受这些知识带给我的益处,感受这个过程中收获到的一切,很感激,也很感动。

原文地址:https://www.cnblogs.com/qjy0330/p/10066354.html