金淑娟 杨滋荣
摘要:《软件工程》是一门理论性和实践性很强的课程,教学改革的总体思路是“理论+实践”,将《软件工程》理论教学和实践教学有机结合起来,有助于提高《软件工程》的教学质量。文章探讨了对《软件工程》课程的教学加以“工程化”改造,建立工程化实践与理论相结合的教学体系。实践证明,这是一种有效的教学改革方法。
关键词:软件工程;教学体系;案例教学;工程化
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2015)31-0110-02
一、引言
作为软件工程专业和计算机科学与技术专业的专业主干课程,《软件工程》在整个专业教学中有着相当重要的地位。通过本课程,要求学生理解在软件开发过程中应用软件工程方法的必要性和迫切性,要求学生掌握《软件工程》的基本原理、概念与技术方法。但在实际教学中,由于《软件工程》理论太多,教学内容抽象、难度大,学生难以理解,觉得课程枯燥乏味;在实验教学方面,由于传统的教学方式中实验总学时的限制,实验教学只能指导学生简单地用一些开发工具,教学效果不理想。所以需对此门课程进行教学改革尝试。教学改革的总体思路是“理论+实践”,将《软件工程》理论教学和实践教学有机结合起来,对《软件工程》课程的教学加以“工程化”改造,建立工程化实践与理论相结合的教学体系。通过对本门课程的教学改革,着力培养学生的工程化开发、项目管理能力,进而形成一个融基础理论、实验教学、工程实践为一体的整体化的培养教学体系,让学生的软件工程基础知识、科学素养、专业知识、创新能力、工程能力得到全面的、均衡的发展。
二、国外、国内《软件工程》课程教学现状研究
(一)国外《软件工程》课程教学
通过查阅相关资料,了解到国外的一些学者主要提出了下面针对《软件工程》课程的教学方法和手段。
1.基于实践的教学法:面向实践的《软件工程》教学法旨在引进实际软件的开发环境中的特定元素,使传统的《软件工程》课堂实践教学与现实软件开发更相符。其教学方法有:与行业人员合作的教学法、基于项目维护的教学法、强调团队合作的教学法、项目驱动教学法等。
2.基于模拟的教学:有学者认为,学生在校园环境里能够接触到与实际软件开发环境相近的唯一可行的方法就是采用模拟的教学法,这种方法使学生能在一个较大规模的层次上以一种更快捷的方式在学术环境里参与现实软件工程实践,而这种大规模的软件开发环境只有在现实软件开发中才可能体现。
(二)国内《软件工程》课程教学
当前,国内多数大学对于该类课程以传统教学模式为主,教师的主体地位突出,教学内容偏理论教学为主,实践教学少之又少。即便有课程实验,学生也只是编写一些规定的文档,导致开发方式和手段与《软件工程》的要求脱离。在整个教学过程中学生感到内容枯燥无味,往往是似懂非懂,甚至觉得本课程没什么实用价值,从而导致厌学情绪的滋生。为此,许多大学对《软件工程》课程的教学进行变革。
清华大学改革了课程体系框架和教学内容,探索案例教學和实践教学模式。强调案例化教学和探索式学习,强调课程实验结合实际开发因素和参与乐趣及小组式开发的软件工程环境,积极探索和实践《软件工程》的课程教学。
三、教学特点及传统课程教学存在的问题
《软件工程》课程是计算机科学与技术、软件工程专业的学科共同课。教学内容主要是讲授《软件工程》的概念、原理和典型的方法学,并介绍了软件项目的管理技术1。我校开设的《软件工程》课程总学时为48个学时,其中理论教学38个学时,实验教学有10个学时,并在学校实验室进行。
(一)课堂教学主要以教师讲授为主,一直以来都是采用传统的教学模式进行
1.教学方式以传统课程教学为主,忽略学生的主体地位。
2.教学内容过分强调理论而忽视实践。《软件工程》课程涉及的内容多、范围广、理论多,而教学学时有限,要想在有限的时间内完成教学,只能注重理论授课。
3.课程实验课时不足,并在缺少软件工程支持的环境下进行。
4.学生感受内容抽象枯燥,缺乏学习的积极性和主动性。
(二)《软件工程》课程的教学特点
1.课程内容:理论的实践性和知识的综合性2。《软件工程》是将计算机科学理论与现代工程方法学相结合,研究软件开发理论、软件设计方法、工程开发技术和工具,是指导软件生产和管理的一门学科;它既覆盖了构建软件系统的相关技术层面的问题,又包括指导技术开发团队、安排开发进度、预算等管理层面的问题,其内容既有理论的实践性又有知识的综合性。
2.缺乏实际软件项目的开发经验,难以将抽象理论与实际开发联系起来。由于学生基本上是从高中直接进入大学,学习本门课程之前没有参与过任何项目的开发,缺乏实际开发项目的经验,要让他们将《软件工程》中的理论与实际开发联系起来,困难较大。
3.教学条件:缺少适合本科生教学使用的实验环境。如建模工具等的缺乏。
(三)《软件工程》课程教学效果存在的问题
1.学生的积极性差。《软件工程》课程内容既包含技术又包含管理,内容广泛。所以,课堂教学理论讲授多,教学内容抽象、难度大,学生不易理解,从而感觉课堂教学枯燥无味。
2.《软件工程》中的结构化开发方法和面向对象开发方法理论上易懂,但在实际开发过程中,学生一旦要将方法中的工具和技术方法用到实际中就会出现较多问题(如数据流图、对象建模等)。
3.实验教学远远不足。教师指导学生在很少的学时中要完成一个系统即使是简单系统,实验教学安排也远远不够。所以,实验教学只能指导学生使用一些简单的工具。
四、课程改革总体目标、思路及实施
(一)课程改革总体目标
将《软件工程》理论教学和实践教学有机结合起来,对《软件工程》课程的教学加以“工程化”改造,建立工程化实践与理论相结合的教学体系,让学生了解时下流行的大型软件开发的技术方法和工具;了解软件工程各领域的发展方向;用结构化的方法和面向对象的方法开发软件项目,以及开发过程中应遵循的流程、准则、标准和规范。重点培养学生的工程化开发、项目管理能力,进而形成一个融基础理论、实验教学、工程实践为一体的整体化的培养教学体系,让学生的软件工程基础知识、科学素养、专业知识、创新能力、工程能力得到全面均衡的发展。
(二)课程改革思路
1.反映软件工程学科的最新发展,构建科学合理的课程体系。在当前软件工程的理论和实践的基础上,把IEEE最新发布的软件工程知识体系作为基础框架,结合企业的先进技术和实践,以传统的结构化开发过程、面向对象技术为核心内容。
2.从“可实践”的角度开展课程教学。由于软件工程所具有的技术性和工程性特性,学生在实际的“动手做”和“真正练”中体会和掌握软件工程的思想和技术显得尤为重要。本课程的教学方式改革采用“案例式”和“项目驱动式”教学法同时并举的方式。“案例式”教学将基本原理、企业案例、关键技术与工具等有机结合,使抽象枯燥的内容变得生动有趣;“项目驱动式”将学生以开发小组的形式协作完成一定规模的软件系统,通过团队之间的商业交易游戏,引导学生主动重视过程和质量。
3.加强实践教学体系及环境建设。结合培养方案中第四学期的“软件工程综合实践”课程,把《软件工程》课程的教学与其紧密结合,实现理论教学与实践教学的无缝对接。在整个教学的过程中,始终贯穿标准规范和支持工具,同时在教学初期即建立支持小组式开发的软件工程环境,真正给学生创建一个实践软件工程的有效平台。
(三)课程改革的实施
将实验和实践教学进行结合。通过多年的传统教学,发现学生在平时的教学中由于还有其他课程的学习,本门课程只能了解枯燥的理论和很少部分開发工具的使用。要想让学生很好地掌握其精髓,则必须让其亲身感受一个软件系统的开发过程,体会软件工程的实践。为此,对2012级的软件工程专业学生的《软件工程》课程教学进行了教学改革,除了按照学校安排的教学周外,在学期末增加了由两个部分组成的《软件工程》实训实践教学。把学生按项目进行分组,每组或自己选定或由教师指定一个题目,题目要求联系实际并结合教学、科研,规模大小适中。在教学周内,包括教学周内的实验,主要是要求学生掌握《软件工程》中的软件开发和设计的理论方法和工具。而在实训实践教学部分,教师带领学生按照软件工程的理念,选择恰当的开发方法,完成指定项目的可行性分析、需求分析、系统设计、编码、测试调试、运行,最终完成实训报告。此外,还要求构建先进的课程体系,进行“案例式”和“项目驱动式”法的探索,逐步构建基于《软件工程》理论教学的案例库(结构化的开发方法实现的案例和面向对象开发方法完成的案例)及建设《软件工程》综合实践项目库。
五、结束语
我们将2012级的学生和以前传统方式教学的学生进行了比较,发现通过这种教学方式,2012级学生不仅学习这门课的兴趣提高了,而且学生的实践能力也得到很大的提高。在实践教学周里,学生可以把全部精力都放在本门课程的学习上。由于有具体的项目,每个项目中各个学生分工不同,但又相互联系,这既锻炼了学生的实践能力,又培养了学生团结协作的精神,为后面的专业实习、毕业设计以及将来踏入社会从事软件开发工作奠定了坚实的基础,同时也证实了《软件工程》课程的教学改革是有效的。
参考文献:
[1]张林,等.软件工程[M].北京:中国铁道出版社,2009.
[2]窦万峰.软件工程实验教程[M].北京:机械工业出版社,2009.