这是软件工程的最后一次个人作业了吧,大概。首先我对本学期软件工程的大作业做一下总结。我们小组选择了制作mooc端的应用。在两个开发周期中,我负责的模块都是应用的UI。但是不得不说在分配任务的时候我们小组存在一些bug。我是按照小组发布的工作安排进行学习和编写代码的。但是在后续过程中其他人和我说他看的也是UI部分。还好这个问题还是很好的解决了。第一阶段我们小组的主要问题是在联网方面一直没有调通,同时服务器端没有任何开发文档,这个我们的开发造成了很大的困扰。就我个人来说,在这一阶段这些问题对于我的影响并不算很大。页面制作完成后由于网络无法联通,只进行了简单的测试。在M1阶段中,我最大的感受是,在一个团队合作开发的项目中,最重要的有两点:首先,我们要对项目有一个整体上的了解。这个项目要实现哪些功能,各个模块的功能分别是什么,需要向外提供那些借口,需要遵循什么协议,对其他模块有什么要求,这个应该是在最一开始就明确的内容。在这一点上,我们小组做的很不好。给后面的综合造成了很大的困扰。第二点,就是在合作过程中的沟通问题。我们每人个人负责的都是不同的模块,这些模块之间是有交流的,那么怎么能做到避免面条式的开发来进行并行化的开发呢?除了一开始就要明确要求,还要加强大家之间的沟通,在一个模块有什么改动什么要求什么血药的时候,让所有的开发人员都能了解到这些问题。在M2阶段中,我们主要的是要首先解决联网的问题。这个问题依然在困扰着我们。经过长时间的努力我们终于解决了这个问题,也终于可以进行其他方面的优化。在这个时候我们可以注意到,由于一个模块的问题造成了整个项目进度的延迟,对于我们来说,这是一个很大的教训。M2页面的开发主要集中在界面的优化上,这个我进行了大量的学习,但是在实践过程中遇到的问题也确实很难解决。
在学习软件工程的过程中,我提出过一些问题。经过一学期的实践和学习,有些问题我解决了,有些问题我依然没有明白,同时我也产生了新的问题。
先给出问题的连接吧:http://www.cnblogs.com/gaomy/p/4029135.html
首先是关于结对编程的问题。本学期中除了在软件工程的课上我们曾经进行过结对编程,在其他的课上我们同样有了结对编程的经历,比如说数据库课程设计。可以说这次结对编程的经历比上一次来讲要好得多。首先在于伙伴的选择上,我们不一定要选择能力最强的那种人,在这方面,找一个和自己能力互补的会比较舒服。实现的功能两个人都不会怎么办?这个完全可以两个人一同来学习来解决。最不能要的,是每一个人都希望对方来完成这个任务,这样的话无论个人能力如何在合作中都不会感到愉悦。在完成工作的质量上也未必会很优秀。在我们进行结对编程的过程中,可能有的我没弄明白但是我的partner明白了,也有时候他没有做出来但是我解决了这个问题。两个人在一起合作要比每个人单独负责不同模块效率高很多。同时我们在一起写代码的过程中一个人写另一个人正好可以帮助他进行检查。在我后来的经历看来,结对编程真的是一种很好的模式。
关于bug的处理问题,根据我们在大作业的经验看来,我们首先要把影响系统运行的bug解决掉,其他的bug如果有明确的修改思路,那么可以马上解决,否则我们应该记录下来bug然后在功能框架搭建完成后逐个修复。我认为这是一个逐步优化的过程。
软件进行流水化开发。我认为开发人员仍然需要了解整个程序,至少需要有个大概的了解,这样在完成项目的时候才能有整体的认知和思想。
关于考核员工工作质量的问题,我现在还没有想清楚。但是这个问题在我们组中问题比较严重,也确实困惑着我。两个指标冲突的时候如何衡量取舍,这关系到工程的进度和质量,解决不好会带来很大的问题。
新的问题:如何合理的分配每个成员的任务,成员中途提出更换任务应该怎样处理?这些都是在两个项目中出现的问题。