原来没有接触过软件工程方面的东东,感觉离自己很要遥远的样子,因为觉得我用软件就好,并不关心它是怎么设计出来的,但是作为新世纪的高科技人才还是要对此有一些基本的了解滴,感谢邹欣老师给了我们这样一个机会,近距离地体验了一把软件构建和维护。为了对这门课有个更全面的认识,特地请教了几个学过这门课的科大师兄,了解了科大的软件工程是什么一个状况,具体反应如下:
1. 课程安排在大四,大家要么确定了保研,对分数无欲无求,要么忙着申请出国、考研、找工作,都没有投入很多精力在课程上,学习效果也就大打折扣了。
2. 关于项目目标的确定缺少充分的调研和评估,基本都是同组的人吃个饭,拍个脑袋就出来了,既缺少市场调研又没有专业评估,但是作为学生来说毕竟对自己的能力和潜力没有一个很清楚和量化的认识, 在软件开发方面又是新手,很难确定一个具有创新性又切实可行的项目目标。很多情况下在前期写需求分析时基本都是凭主观想象在写,想法很美好,但是后期实现时发现困难重重甚至根本不可行,然后前期规划设计全部推倒重来。所以建议选题时老师能够介入,对各组的目标方向做个评估,帮助学生确定一个合理、合适的目标。
3. 课程中画的各种数据流图对于编程实现还是很有帮助的,毕竟最后要完成的是几千甚至上万行的代码量,而且要组员相互合作,如果没有一个统一的结构布局、模块定义等很难想象最后如何完成那么庞大的一个工程。
4. 有的课堂上没有安排写代码的任务,这与课程名字就不相符了,软件工程好歹最后还是要做个软件出来的,不能总停留在纸上谈兵的阶段。此外这种开放式的大作业需要充分调动学生的创造性和积极性,而关键就在于评价体系,在科大基本都是由老师一人的打分决定最后成绩,但是如果能够引入像用户反馈、下载量等更人性化的评价指标,相信学生的参与度和热情都会大大提高。
总的来说作为学校教学计划里的一门课,软件工程还是很有裨益的,在这样的课堂上学的是方法而不是技术,学习怎么站在一个全局的角度看待问题,这样不论将来是否从事软件开发的相关工作都会是一个很好的锻炼。