学生:张涵瑞(M23385408)
转瞬之间,软件工程这门课就要结课了,回想从刚开始完全不理解软件开发流程的小白,到如今也可以和队友用接近工程化的方法自己开发程序、系统,感受颇多。通过上软件工程这门课,使我充分的认识到软件的开发需要团队密切的协作。在结课项目中,我和王鼎盛、孟世栋组成了一个三人小组,虽然小组成员并不算多,但是通过大家的密切配合,在自己擅长的领域贡献自己的力量,才能够使得我们的项目能够高效完成。
一、课程要点及心得体会:
1、需求分析:在学习软件工程这门课程期间,做了如四则运算、判断nextday项目以及最后的飞花令系统。在实现这些项目之前,都会首先考虑有哪些需求,怎样的需求可以使得整个项目锦上添花,例如最后的飞花令系统中,我们小组内部重复交流意见,在完成课程规定的需求基础上,增加了防沉迷、查看历史得分记录、赋予用户评级等功能,使得整个项目更加饱满。也使我熟悉了需求获取、需求分析等阶段,让我对整体的需求分析有了更加深刻的认识
2、软件项目管理:整个软件工程课程所布置的作业,都需要我们进行项目管理,如制定项目计划、分配任务、跟踪进度等。还是以这次结课作业为例,我们小组是所有小组里人数最少的,并且由于组内只有我是计算机专业,所以我承担了所有编程任务,即使这样,在项目实施初期,正是由于我们组内进行了合理的分工,使我能够专注于项目编程,不用过多的担心文档编写、需求分析等,正是因此,在整个项目实施中个人感觉比较轻松。同时,在项目实施初期,我们组内对项目的整体进度做了大致的规划。如利用前两个周写好前端界面,第三个周重点实现数据库搭建以及后端对数据库的调用,后面着重于完成后端代码。正是由于井然有序的计划,是我们能够按部就班的完成任务进度,并不会集中编程,像是应付差事,反而会感觉乐在其中。
3、软件工程实践:抛开软件工程的个人作业之外,几乎所有的结对编程项目,我都负责绝大多数的编程任务,这使我受益匪浅。在四则元素的项目中,代码主要使用C语言编写,收获最大的是更加熟悉了C语言的流数据处理、随机数生成、以及软件测试代码的编写。在飞花令系统中,使用Visual Studio 开发工具,所有的后端代码均使用C#编写。其中收获最大的是SQL语言的使用。万事开头难,在整个项目执行过程中,对我个人而言最困难的是如何将Visual Studio链接到数据库,后面通过CSDN等资源的各方查找,才逐渐摸到使用连接字符串的门路,并最终成功解决。其次由于很少编写SQL代码,对于本科所学内容有所遗忘,通过飞花令系统,使我重新温习了对SQL语言的各项操作,受益匪浅。
4、软件测试:在团队协作中,我主要是对单元测试以及验收测试。通过测试不免发现很多问题,如四则运算项目中,一开始的编程并没有发现被除数为0时的异常、结果数的截断处理、操作符的取余运算等诸多问题,正是通过软件测试,使我发现了这些问题并改正,再保证项目功能完善的基础上,也提升了我的编程经验。
二、团队合作:
首先要感谢本次结课项目的队友,正是因为大家,才使得我们这个团队能够克服困难,最终成功实现项目。在整个项目进度中,两位队友对于分配的工作没有任何怨言、互相帮助、互相鼓励,这给予了我极大的动力。
其次,整个项目开发途中,首先大家讨论了做什么项目,一开始提出了图书管理系统等很多提议,但最终大家觉得要在基于实现的前提下,尽可能的具有一些挑战,最终才选择了飞花令这个系统。其次是需求分析,还记得在课上,我们组当时的需求分析被老师提出了很多问题,最主要的是功能太过重复。课后大家也积极构思功能需求,并最终想出了设置等级头衔、防沉迷、个人中心等新功能。在项目实施阶段,由于课程原因,我大多数是在周四、周五晚上和我的两位队友汇报本周的项目进程以及具体功能的实现,二位队友在获得信息后,晚上加班完成文档的编写,效率十分之高,所负责的工作也是一丝不苟的高质量完成,十分佩服两位队友所具备的责任心。
最后,由于大家周内课程都比较多,在整个项目实施过程中也遇到了众多困难。其中最主要的困难是大家课程不一样,个人空闲时间不同,这使得我们小组能够聚在一起讨论的时间并不多。这使得我们组不得不在晚上,用个人的休息时间进行讨论以及后续工作的完成。虽然过程很艰难,但是大家互相帮助,互相鼓励,分担压力,使得我们组能够比较及时、保证质量的完成每周的课程作业,在这里再次感谢二位队友的付出。
四、总结和展望:
展望未来,由于本人本科、研究生期间均为计算机专业,未来的就业难免会面对各种工程项目的问题,希望通过软件课程这门课,能够让我入门,并最终能够成为一名合格的软件工程师。也希望未来嫩巩固更多的参与团队合作的项目,共同创作出更加优秀的产品。