软件工程课程总结

  软件工程课作为我这学期最后完结的一门课,结束后我感觉身上有种如释重负的感觉。在最后的这段时间里,我感觉特别的疲惫,各个科目各自的考试和大作业,都一齐如期而至。在最后的一个多月里每天最少忙到一两点才上床睡觉,元旦附近更是差不多有一周的时间3-4点过后才能睡觉。

      有好多同学身体都吃不消,感冒、拉肚子的都出现了好几个。我们小组就有一个,这个时候我们每个人身上的担子就更重了。在经历了那么久的辛苦学习后,现在终于可以闲下来对开学以来自己所学到的东西做一次总结了,做一次深刻的总结。

  下面是我对软件工程课从开始到结束的回顾与总结。

刚开始时,我们听说这次的软件工程课与以往有所不同,是微软的老师来给我们上课,而且是《编程之美》一书的作者。那时大家都是内心充满期待与崇拜去上课的,记得大一刚入学时我学长对我们推荐专业特别有用的书籍时,这本书名列前茅。在听说是原作者来给我们上课时,大家都激动万分,同时又有点担心,担心自己能力不够,不能完成老师安排的任务。

  最后看来担心是多余的,只要自己肯付出,肯努力,那么作业是可以完成。而且老师布置作业有个特点,除了有个最低要求之外,还有高难度的要求,能力强的同学可以去完成这些高难度的要求去获得加分,这样这门课就对不同层次的同学都有效果,记得开始时我完全没有写过C#程序,这门课有了我的第一个C#程序,一个词频统计的程序,这个程序里我完成的是最基本的要求,因为对C#仅仅是初步的了解,基本的要求完成起来都比较费力,在持续的学习了一段时间过后,渐渐的我已经能在其他的结对编程项目中完成一定高难度的要求了,这对我个人编程水平的提示是一个见证。

  这门课我们尝试了很多的软件的开发方法,其中我们学霸网站用的是“集市”的开发方法。有两个爬虫,两个pipline,三个UI,但是不幸被老师要求我们阅读的一篇《Lost in CatB》言中,一个大集市尽管看起来繁华但是其中存在许多的问题,首先是同一个功能有两个或多个组进行,而没有一个总的PM来制定一个规则,每个团队的PM都会提出一些要求能够方便自己团队,但是这肯定会加大其他团队的工作量,这样大家协商容易没有结果,有点像多哈谈判,这是各个小组的衔接问题。每个小组自己内部因为只有一个PM说了算,所以小组内部的执行往往是很不错的。

在有接口方面,爬虫和pipline有比较好的硬性要求,这是比较容易统一的,但是UI分成了3个小组,各种都有自己的界面风格,这使得一个网站就不怎么好看了。

所以我感觉“集市”还是要有个监督来为集市负责,否则集市会很混乱。

  在每个团队具体的开发中,每个团队基本都是做的敏捷开发,这样的开发方式效率能够有所保证,所以我们才能后开发两个版本团队项目的基础上还做结对编程和个人作业。这和北航传统的软件工程课比起来,同学着手去做的能力更强些。理论方面要比传统的开发薄弱一点,但是在实际的开发过程中,尽管课上没有提及的理论,课后还是要去掌握的,所以总感觉自己很累,一大堆忙不过来的事,有空的时候基本就是在看《代码大全》(有点后悔买那么大一本书,开个玩笑),尽管书中内容很多,但是从中学到的也很多。给自己点压力,才有动力。

  接下来是我在团队项目中的感悟以及收获,我在小组中扮演PM的角色,正如之前微软的学长来解答PM是做什么的时候,我就知道了PM身上的担子很重。PM要做其他人都不做的事情,以确保项目的成功。所以,我在做PM的过程中和一些小组的PM有所不同,一些小组的PM是发下博客,安排计划,编码都可以由开发人员完成,但是我们组不一样,开发人员的水平有限,不能确保项目,按照既定的计划顺利进行。

  所以我在写博客定计划的同时,要为爬虫来写框架,把每个模块都分出来,分的尽量的细致,简单。让一些对爬虫不了解,又在规定时间内学习不过来的组员有事情做。给水平差的分配很简单的功能,一个明确的目标,实现思想,让他们去做。能力足够的就能自己给他们一个目标,具体的实现过程就不用自己操心了,最后拿到结果就行。在做PM的这段时间我感觉是很折磨人的,有些时候你给组员安排了个事,给了他一个目标,和要达到的效果,之后他给你一个结果“不会”,甚至都不愿意去尝试。这时你真是无奈,因为给他安排的东西不难,但是能做出来的人不可能帮别人忙完一切,这时我的做法是,与被安排事情的一起分析这个问题怎么解决,给他一个明确的解决过程,如果他还是表示能力不够,而别人又没有空,就只好自己来做他的工作了。我感觉在分配任务方面我还是充分考虑了每个人的个人能力的,这就要求你对你的团队成员有多了解。再有就是在制定计划方面,一个PM一定要对自己项目的目标明确,需要达到什么效果,要做些什么等,这样做事才不会像无头苍蝇一样。

  在做PM的过程中我学到了怎么为项目制定计划,怎么给组员合理的安排任务,怎么带领组员一起开会讨论。同时意外收获是为程序写框架,而且写出来的框架能让别人在此之上填充以完成一个应用程序。

  最后是我对软件工程课的一些建议。想要是能够在上课的同时,用微软的一个项目或几个项目作为课堂上的列子。在上不同部分内容课的时候,将列子的这个部分是怎么完成的展现给我们,我们也可以对他进行讨论与学习。这样,课程会变得更加的有趣,内容更加的丰富。

 

 

posted @ 2013-01-09 09:27  炫律  阅读(248)  评论(1编辑  收藏  举报