返回信息流☆─────────────────────────────────────☆
ee06b080 (小龙) 于 (Tue Mar 23 23:23:28 2010) 提到:
不知不觉飘飘乎到了大四,回头观望一把byr发现留下的都是潜水的足迹……这几天发生的事情蛮多,最重量级的莫过于某个从主楼一跃而下的哥们儿。一边喝着版米大人中午的大果粒一边哀悼逝去的灵魂,然后生活还要继续,对了,该交稿子了。说点啥呢,先感谢一把国家。
Course Work无疑是本院特色,大三下学期的软件工程Course Work无疑又是特色之中的特色。其特点就是组队规模之庞大,工作量之繁重,完成过程之曲折,另其他任意一门课程的大作业都有一种mini的感觉。
好了长话短说,直接切入正题,谈谈在软件工程大作业中的一些经验。首先从组队开始,组队问题对于各种门的大作业都是个大问题,不过对于SE来说则远远不是个问题,教务已经将所有分组情况确定,大家是不必担心滴。分组标准则是按照之前的总成绩排名,电信电商一起混着来。按学院的说法是因为这样每组的成绩差不多所以大家都不会偷懒,确实办法不错,而且简单明了,该写的写,该买的买,能卖的卖……
在探讨SE大作业上,小龙想从分析团队各个成员的角色上入手。首先我们的大作业要求里面是说,把大作业9个人的team,再分为3个sub team,实际做的过程中在第一次会议上就直接PK掉了这个明显YY的想法。这种级别的想法还有一个是体现在学院对于其一手栽培起来的童鞋门的Java编程能力上。小龙实在想不出为什么教务在安排软件工程这门课程的大作业的时候会理所当然的感觉大家的Java已经到了一种炉火纯青的程度,唯一一门先修课Java程序设计上我依稀记得最复杂的一个程序是编了一个九宫格的扫雷,07级好像大概也是个九宫格……总之最后小组的分工里,我们是主要由报告组和程序组构成。
说一下团队中各个角色的重要性,有一个好leader无疑是重要的,在这一点上小龙是超级幸运,有一个国家队员的leader(小组里有享受国家奖学金的成员,则此组被定义为国家队),可以安心的在大树背后敲自己的代码,任他报告漫天飞舞。通常情况下面对这么一个前所未遇的大boss,leader必须做好统观全局的工作,而且一定是小组掌握课堂知识最为牢固的成员之一。但凡本院旗下做Course Work的小组,有胆量跟课堂内容有较大出入的,分数都比较惨淡咳咳。因此作为Leader思路必须清晰,而且有团结团队,处理内部矛盾的能力,一组9人,还是不那么容易料理的。其余的成员,最好尽可能的配合leader工作,出现分歧速度找有经验的上届或者勇闯Office Hour解决,小组成员意见不一这点很降低效率,而这学期的时间似乎总那么不够用。
报告组一般女生牵头,或者是相当之仔细的男生……在得分上报告是王道,这点大家应该都有体会。我模糊的记得当时SE的大作业占30分平时分,在编程上最后貌似只有六分,其余都是报告。报告弄得好看点,然后内容压缩一点,页数限制很要命的。最好的是能够要来上届的得分点,判报告都是按点给分。对了另外再说一点就是在小龙的认知里,本院的所有大作业和实验都是中方助教判分,不管中英,所以覆盖了得分点就是王道。至于本部研究生的英语水平,希望大家都不要过于自信……所以封面好看呢,是捞一些印象分的。
速度跳过报告环节,来到了程序设计部分,即这个SE course work里面最囧的小组,程序组。因为小龙很死心塌地而且毫无还击之力的属于程序组,所以在这方面想多说一些。呼应前面所说的那个YY级别的Java编程想法,建议大家,如果本学期任务太重,或者安排太紧,如G和T的考试啦之类的,那就珍爱生命,原理代码吧。因为想要做一个靠谱的程序组成员,最好能够意识到自己对Java的了解是不那么靠谱的(对于绝大多数人)。于是程序组的任务默默的成了最繁重的工作,更要命的地方还不在代码上。程序组的程序一定记得跟报告吻合,而根据咱们刚才提到的报告是王道原则,一旦发生冲突嘿嘿……程序员们辛苦辛苦吧。还有一点不利因素是,SE的考试跟编程几乎没关系,所以大家保持头脑冷静。
说到这里也许会减少一批程序员的人数,不过这也是我想说的另外一点:请尽量降低组内编程人员的人数,个人感觉最多是一个组内有三个人编程,再多就是灾难。至于原因则参考SE课程第四周人月模型,即参与的人数越多,管理成本也就越高。而对于咱们的Java水平来说,拼凑几个人的代码花费的时间和精力,可能不如再写一个囧。
而程序组所需要做的准备工作,小龙建议可分为以下几点:
1.接口概念的理解和面向对象思维的认识。
这一点在于多人写程序时的分工,一定先定义接口再写程序。各人编程均为面向接口编程,而接口尽可能的根据报告组定。同时程序设计的速度把持住,一定紧跟报告组,隔壁组的情况是在学期初某哥们儿就编完了大作业,完全用C的思想,最后……该送人的送人吧。
2.读写文件的操作。会发现主要工作是集中在读写文件……这个无论什么题目的软件工程大作业肯定适用。
3.IDE工具的使用,个人用的是Netbeans,好处是可以直接用鼠标勾画界面,然后自动生成Java代码。虽然程序不占太大分数,但是呢,根据统计,能做出个挺好看图形界面的组最后分数都是第一梯队里面的。判分的基准,在哪都很神秘是吧?同时建议不要抱有用Rational Rose生成代码的幻觉,用那个做大作业的程序部分,迄今为止未有先例。
渐渐的要熄灯了,差不多就写到这里吧。SE的大作业虽然辛苦,但是回顾起来还是一件很有意思的事情,当中认识了很多靠谱的童鞋。而且记得在当时住一期公寓,通宵供电的岁月里,SE期间中的那么几个星期,不大的屋里总是坐着各个组的程序员们,一边往嘴里狂灌红牛一边骂着X院X作业同时手指的敲击从不间断。如果当时在窗外肯定能听见连绵不断的键盘声,没有通宵编程的大学生活对于一名工科学生来说可是不完整的哦。
[ema30]
☆─────────────────────────────────────☆
djp1 (COD) 于 (Wed Mar 24 02:57:01 2010) 提到:
100分程序貌似占20分?
而且貌似都给的20、19、18左右的?
【 在 ee06b080 的大作中提到: 】
: 不知不觉飘飘乎到了大四,回头观望一把byr发现留下的都是潜水的足迹……这几天发生的事情蛮多,最重量级的莫过于某个从主楼一跃而下的哥们儿。一边喝着版米大人中午的大果粒一边哀悼逝去的灵魂,然后生活还要继续,对了,该交稿子了。说点啥呢,先感谢一把国家。
: Course Work无疑是本院特色,大三下学期的软件工程Course Work无疑又是特色之中的特色。其特点就是组队规模之庞大,工作量之繁重,完成过程之曲折,另其他任意一门课程的大作业都有一种mini的感觉。
: 好了长话短说,直接切入正题,谈谈在软件工程大作业中的一些经验。首先从组队开始,组队问题对于各种门的大作业都是个大问题,不过对于SE来说则远远不是个问题,教务已经将所有分组情况确定,大家是不必担心滴。分组标准则是按照之前的总成绩排名,电信电商一起混着来。按学院的说法是因为这样每组的成绩差不多所以大家都不会偷懒,确实办法不错,而且简单明了,该写的写,该买的买,能卖的卖……
: ...................
☆─────────────────────────────────────☆
smsc88 (May) 于 (Wed Mar 24 10:44:47 2010) 提到:
顶小龙!~
隐约记得我是属于报告组的,我们组只有leader一个人去编程了,剩下8人写报告,不过开工早,工作分得基本平均,所以完成的不是特别的赶,还好还好~~
☆─────────────────────────────────────☆
bupt8830 (天意) 于 (Wed Mar 24 12:37:57 2010) 提到:
关于编程。。。说实话,最佳的组合是两个人。。。。一个主力。一个附属,附属随时提出建设性意见,并且在主力乏力的时候顶起来。。。如果大家好好学过java那个什么小动物的就足够掌握简单的面向对象了。。。而接口我认为更多的意义在于实现面向对象某些无法实现多父类的继承。。。一旦前期建立过于死,后面可能会限制很多新的发挥。。。对于多人不同程序的最后组合,interface确实能在一定程度上帮助不同程序员了解如何衔接上别人的程序,不过对于se这个work不需要那么多的编程人员。。。所以interface也就看淡一点,可以编完了,照着程序苗出interface用来配合报告。。。
☆─────────────────────────────────────☆
ee06b080 (小龙) 于 (Wed Mar 24 13:07:28 2010) 提到:
太好了,欢迎技术性跟贴。确实,Java里面接口主要用于解决继承的各种问题,所以当时翻了好几本Java教材查接口在衔接程序的例程,发现上面就没说过继承意外的东西,要哭死。恩……现在不太接触OO型语言了,一提到接口就没啥继承的概念了。
【 在 bupt8830 的大作中提到: 】
: 关于编程。。。说实话,最佳的组合是两个人。。。。一个主力。一个附属,附属随时提出建设性意见,并且在主力乏力的时候顶起来。。。如果大家好好学过java那个什么小动物的就足够掌握简单的面向对象了。。。而接口我认为更多的意义在于实现面向对象某些无法实现多父类的继承。。。一旦前期建立过于死,后面可能会限制很多新的发挥。。。对于多人不同程序的最后组合,interface确实能在一定程度上帮助不同程序员了解如何衔接上别人的程序,不过对于se这个work不需要那么多的编程人员。。。所以interface也就看淡一点,可以编完了,照着程序苗出interface用来配合报告。。。
☆─────────────────────────────────────☆
xiaolong321 (龙逸士) 于 (Wed Mar 24 13:31:02 2010) 提到:
建议在编程前把要实现的功能细化,而不是按照大的功能来分代码,例如我们就是按照大块来分的,分成了投票功能,登陆功能等..后来才发现,这样分了后大家很多的付出都是重复的,大部分都编了文件的读写功能.应把上层的功能向下边分,例如分成文件的读,文件的写,各个Ui,各个逻辑控制等,这样当用到读写的操作时就能够直接调用了.这就好比先做小的支流,支流慢慢回合才能出来大的功能.而不是每个人都从大的功能去编.如此既省下了精力,也能使代码简化清楚. ----貌似写的比较乱,就这么个意思吧.因为我们组是最后才发现这个问题的,后来还是跟小炯同学把相同的代码都和成一个,改为文件调用形式来简化代码....唔,还有一个当时学的一手,就是界面里的元件(如list,textarea等)可以像参数一样传给子函数,在子函数里直接更改就能实现刷新.因为由于java运行的顺序问题,在一个函数下是刷新不了的,好像叫多线程的..
☆─────────────────────────────────────☆
lizo (随意) 于 (Wed Mar 24 23:26:17 2010) 提到:
我组也有大牛做leader啊···不怕不怕
至于风格,到现在还是规规矩矩吧(就是按要求来做),以后难说了
这是一条镜像帖。来源:北邮人论坛 / is / #5778同步于 2010/3/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
IS机器人发帖
[合集] 小龙应版主总结之第一弹 关于大三下学期的软件工程
kilometre
2010/3/26镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
【 在 kilometre (KrisChow(千米)) 的大作中提到: 】
: ☆─────────────────────────────────────☆
: ee06b080 (小龙) 于 (Tue Mar 23 23:23:28 2010) 提到:
: 不知不觉飘飘乎到了大四,回头观望一把byr发现留下的都是潜水的足迹……这几天发生的事情蛮多,最重量级的莫过于某个从主楼一跃而下的哥们儿。一边喝着版米大人中午的大果粒一边哀悼逝去的灵魂,然后生活还要继续,对了,该交稿子了。说点啥呢,先感谢一把国家。
: ...................
今天刚上传软工coursework 本想趁热在这贴子后面跟着发点感受 版主竟然将之合集了。。。影响心情啊
回头看来LZ说的甚好啊 不过其实不把文书代码分开写也是可以的