软件工程的重要性已经逐渐被大多数软件开发企业所承认.成功的软件项目除了技术、工具等因素之外,更多的依赖于一个好的软件工程方法和过程.好的软件工程方法和过程,带来的是更低的风险、可控的管理和较低的开发成本.
正是基于大家对软件工程重要性的清醒认识,如今大量的软件开发企业在招聘时强调考察应聘人员对软件工程的了解和掌握程度.于是各大软件学院也纷纷加大了对软件工程这门课程的重视,以适应企业新的需求,培养出符合企业要求,深受企业欢迎的合格软件人才.
然而在传统的软件工程教学中,强调按部就班的理论教学,而伴随着以程序设计为引导的编程实践活动通常是以学生个体为单位进行的,学生并没有真正的机会去理解和融会贯通这些从事软件开发工作所必需的方法和技巧.
而且在这样的情况下,学生不仅无法了解团队合作的原则和技巧,所经历的实践活动和他们将要在企业里经历的也是大相径庭.
1 实践驱动 激活教学.
当前比较流行的软件工程教学方法,是在授课之后以小组的形式进行验证式或考查式的软件开发,目的是让学生对软件工程过程有一个亲身体会.但是最终的结果往往是,一组学生把任务完成了,得到的仅仅只是一个可执行程序和一堆源代码,并没有真正实践软件工程的过程.也就是说,在实践活动中,仍然是基于任务的思维方式而不是基于过程的.学生没有在获取知识后加以实践运用,导致对知识掌握不牢,所以有些学生反映软件工程这门课学完就忘了,并没有对今后的软件开发活动造成实际的影响.
针对这种情况,采取“实践驱动”的方法,将实践嵌入到教学中,把实践活动提升到与课堂教学同等的地位,用实践活动驱动课堂教学,边练边学,边学边教,让实践活动和课堂教学同步进行,贯穿软件工程实践领域,包括制定计划、需求分析、软件设计、程序编写、软件测试等整个生存周期.
为了提高教学效果,将实践活动提前到授课之前开始,而不是授课之后的简单验证或者考查,力图让学生在思考中进行实践,带着问题听课,充分激发学生学习的主观能动性,同时让学生在听完课后有豁然开朗的欣喜感.总而言之,就是让学生练而有惑,学以解惑.
在课程刚开始的时候,把学生酌情分成若干人为一小组(通常以 6 到 8 人一组),提供一定数量的课题做为选择,课题不应该太复杂,毕竟是软件工程课而不是编程课.每个小组根据自己的喜好选择一个课题.第一堂课,通常会向学生讲授软件工程概论,软件生存周期的六个步骤.课后,可以要求学生开始自己的课程实践.这时候学生虽然知道软件生存周期的第一个步骤是制定计划,却又不知道从何下手,如何制定计划以及计划的内容.这种情况下大多数学生会对教材的相应章节进行学习,并在课堂上积极提问.于是将课堂教学的效果最大化,最大程度地聚焦了学生的注意力.
学生先在实践中遇到疑难,然后在课堂上提出疑难,最后在实践中解决疑难,这样才能保证学生牢固掌握所学到的知识,并能在今后的学习生活中加以运用.
2 针对企业,模拟实战.
仅仅强调以课程实践驱动课堂教学,还远远不够.
比如就曾有学生说:“到底为什么要做需求分析呢,我在项目中并没有觉察到需求分析的作用”.也有学生觉得制定计划很没有必要,可有可无,相应的文档也处理得很简单.
相对于软件设计和程序编写来说,其他步骤都受到了一定程度的忽视.这又间接使软件工程课变成了一门加强版的编程课.
然而在企业的现实应用中,情况并非如此.制定软件项目计划,做好需求分析,恰恰是决定一个项目成败的至关重要的因素.软件工程课讲授的知识应该是面向企业,面向实战的,不是纸上练兵,也不应该是闭门造车,应该让上过这门课的学生都知道,实际企业中的软件工程是什么样子的,他们以后参与的可能是一个什么样的过程,而不是上完这门课以后只是会用 Rational Rose 画几张用例图、活动图.
针对这种情况,采取“模拟实战”的方法,在每个软件生存周期的阶段,老师将模拟不同的角色来推动课程实践向实战靠拢.在制定计划阶段,老师将担任“上司”的角色,对风险分析,开发计划都要进行评阅,如果此阶段进行得不成功的话,老师可以对此课题喊停,该小组将不得不另选一个课题重新进行课程实践.在需求分析阶段,老师将摇身一变为“用户”,各小组需要制定相应的调查纲要,对用户的需求进行调查了解.同时仍然拥有“上司”的身份,各小组需要向上提交一份可行性研究报告,以决定该课题是否继续.在软件设计阶段,老师将以“用户”的身份对需求随时进行调整,让学生充分理解迭代的过程,这时候过程不规范的小组将深受其苦.在其后的编程和测试阶段,老师都将以“上司”的身份参与实践,使实践过程受控.
每个小组都需设一名组长,并将小组的集体讨论贯穿整个课程实践,同时进行讨论纪录,附在文档之后.这样能使小组所有成员对开发过程有一个清晰一致的认识,从而实现整体能力的提高,获得更佳的效果.这对强调团队精神的软件开发尤为重要.
参考文献:
[1] 熊川武.学习策略论[M].江西教育出版社,1997
[2] 尹俊华,等.教育技术学导论[M].北京:高等教育出版社