《软件工程》课程教学改革的研究与探索
2012-04-29周璀段光中刘松平
周璀 段光中 刘松平
摘 要:为了顺应当前软件工程教育国际化和工程化的发展需求,改善软件工程教学质量和效果。本文针对当前教学中存在的问题提出对《软件工程》的理论教学、实践教学、课程评价体系进行了改革与探索,构建了课程知识体系,大胆将理论知识糅合到实践教学中。该教学改革不但提高了学生的学习积极性,促进了掌握软件工程的理论基础知识、先进方法和最新技术,且为后续深入专业的学习打下坚实的基础,极大地提高了教学质量。
关键词:《软件工程》 教学改革 理论教学 实践教学
中图分类号:S762.2 文献标识码:A 文章编号:1672-3791(2012)10(c)-0146-02
隨着社会信息化技术的普及和软件产业的迅速发展,软件产业成为信息产业中增长最快的领域,然而高端软件人才的匮乏严重阻碍了我国IT企业的发展,因此提高软件行业从业人员具备必要的软件开发、维护与项目管理的能力尤为重要[1]。《软件工程》是高校计算机相关专业开设的一门专业核心课程,旨在培养学生理解和掌握软件工程的理论、技术和方法,应用工程的思维进行软件开发、管理和维护。为了顺应当前软件工程教育国际化和工程化的发展的需求,高等院校需要切实加强软件工程课程的创新与改革,这对软件工程人才的培养至关重要。
当前《软件工程》课程教学中存在的一系列问题,直接影响了教育质量和教学效果。具体表现为:教学内容重理论而轻实践,不能有效地培养学生软件开发技能[2];教学案例缺乏完整性和实用性,不能帮助学生从整体上全面理解软件开发的各环节及其之间的关联[3];实践教学也缺乏系统性和针对性,不能将基本原理融入当前软件实际案例中去讲解,教学内容与软件工程实践有明显的差距等。因此,迫切需要对教学体系进行改革,形成一个融基础理论、实验教学、工程实践为一体的整体培养机制,让学生的基础知识、科学素养、专业知识、创新能力、工程能力和职业素质都得到全面均衡的发展[4]。本文将从理论教学、实践教学以及教学评价几个方面进行改革与探索。
1 理论教学探索与思考
为了满足当前软件工程教育国际化和工程化的发展要求,《软件工程》教学以IEEE发布的软件工程知识体系为基础,结合基础知识、先进技术和工程实践等方面构建该门课程的知识体系。《软件工程》课程知识体系分为基础、应用、实践三个部分。基础部分为理论教学,根据教学目的和教学要求,采用案例及问题驱动等教学方法,讲解软件工程的理论基础知识,包括软件生命周期各个阶段、软件质量和软件项目管理等核心内容,通过案例的分析,促进学生的独立思考,提高其对理论知识的理解和掌握。应用部分是以当前流行的统一开发过程、面向对象技术和UML语言为核心,融入实际案例,Rational Rose、Visio、Project、SVN、Loadrunner等软件工程工具和环境,使学生掌握当前先进的软件工程方法与技术。实践部分要求学生分组组建团队协作完成一个软件系统的开发,让学生从“可实践”软件工程的角度学习和运用软件工程的思想和现代技术解决软件开发问题,拥有识别、分析和解决具体问题的能力。《软件工程》课程知识体系如图1所示。
单纯地讲授《软件工程》的理论和方法显得枯燥且难以理解,若能通过一些软件开发案例对理论知识进行形象的表述,不仅能让学生易于理解这些理论和方法,亦能建立软件开发的系统化与工程化观念和质量意识。那么如何收集经典案例以及采纳何种教学方法是关系理论教学成败的关键因素。首先案例的选择与设计要有针对性,如结构化和面向对象,这两种方法侧重知识点不同讲解所贯穿的典型案例应不同,其次案例的选取应是学生熟悉的领域且它的实用性能激发学生的求知欲和兴趣。如在软件工程技术方面,作者结合学生成绩管理信息系统、宿舍水电费管理系统、教学管理系统等,论述需求分析、软件体系结构设计、用户界面设计、详细设计和软件测试等内容,重点讨论基于案例的面向对象方法和组件技术。采用何种教学方法应根据具体的知识点而定,如以IBM初期系统开发失败的缘由为例利用问题驱动法引出软件工程的概念和原理;对于软件开发工具Rational Rose的介绍则采用项目驱动法。因此,在理论教学中,把抽象的知识尽量形象化、案例化,采用引导式、探索式、讨论式和交互式等教学方式营造融洽轻松的学习氛围,鼓励学生独立思考,查阅资料,细心体会当前软件工程的精髓。
2 实践教学内容创新模式
应用部分和实践部分均属于实践教学,在此教学过程中,实施项目驱动教学法,实验设计以项目开发为主,模拟企业软件的项目管理和开发过程,碰到问题困难,进行师生互动讨论寻找解决方案,开发完成通过成果展示来进行教学评价,整个过程使学生初步体验到一个软件项目开发的全过程。实践教学活动的流程具体如下。
(1)分配任务:第一次课,要求学生以项目小组(一般5~6人,自由组合,每个成员扮演项目开发过程中的不同角色)的方式组建开发团队协同开发一个规模及难度适中的完整项目,要求按照正规软件开发流程组织实施,完成项目开发过程中形成的分析、设计、编码和测试文档,同时将Rational Rose、Visio、Project及Loadrunner等软件工具在实施过程中进行有效地应用。
(2)组建团队:学生自愿组建团队,选出组长,每组角色包括项目经理、系统分析员、软件设计师、软件开发工程师、软件测试工程师等,组员项目角色可随项目开发进度而调换。项目实施过程中采取组长负责制,负责小组的讨论和项目实践的安排,分配组员任务,各小组查资料,自选软件项目,分析开发的各项任务的安排和沟通,制定项目的开发计划。
(3)计划可行性评定:授课教师审核各组项目及项目计划实施的可行性,不行则指导小组重新选定软件项目和制定项目计划。符合要求,方可进入实施阶段。
(4)项目实施阶段:小组成员根据各自的任务查找资料,收集解决方法,定时讨论交流,各个模块间相互配合协调完成任务。包括软件分析设计阶段,完成软件需求规格说明;设计软件系统的总体结构;对功能模块进行编程测试,完成项目实现编写所有相关文档,测试和调试代码。整个实施过程由授课教师控制项目的进度和质量,同时,教师要充分发挥引导作用,让学生在实践软件设计和开发技能的同时,通过协作培养学生多人之间的沟通能力和团队协作精神。
(5)项目验收:根据软件开发流程的各个阶段成果包括可行性分析报告、需求规格说明书、项目计划书、总体设计报告、详细设计说明书、软件测试报告、项目开发总结报告等。项目验收采用阶段验收分析设计文档,每次均以小组的形式提交作业。教师根据提交的材料结合学生是否熟悉软件常用技术和工具按照软件工程管理方法进行评审,还要求各组之间互评,发现不足之处进行讨论,提供给大家一个互相交流的机会。项目结束后,每组要组织答辩,先由小组长对项目基本情况及组员作简要介绍,然后让各组员对自身完成的任务进行PPT答辩,教师和其他同学针对该成员实际负责的部分进行提问。最后项目组提交系统和所有文档。
3 教学评价体制改革
教学评价是课程教学的必要环节,在本次教学改革实践中,将课程学习评价分成3个组成部分:理论考核占50%,项目实践成绩占30%,考勤、平时作业、实训练习等占20%。项目实践成绩的评定包括小组成绩和个人成绩两部分,各占50%。小组成绩为小组中所有成员开发项目的考核成绩,包括各阶段成绩的平均值与最终答辩成绩;个人成绩为小组成员在项目开发过程中个人的考核成绩。度量因素包括个人分配工作量及难易程度、平时工作态度及项目汇报时表现等。这种评价体制充分调动了学生学习的主动性和合作精神,教学效果明显。
4 结语
本文对《软件工程》的课程教学进行了探索和改革,以IEEE公布的软件工程知识体系为基础构建了软件工程课程知识体系,提倡理论教学与实践教学并重。理论教学着重于经典案例的选取及教学方法的采纳,理论教学不再是抽象的讲授,而是贯穿案例的具体实践操作,达到了理论与实践的紧密结合。实践教学以项目为驱动模拟企业软件的项目管理和开发过程,引导学生积极思考和参与讨论,教师由知识的灌输者成为学习的引导者,学生由被动地接受教育变成主动地探索知识。实践证明,本课程极大地提高了学生的学习兴趣,取得了良好的教学效果。在今后的教学工作中,将进一步完善和实践教学改革的內容,逐步使这门课程规划化、工程化,取得更好的教学效果。
参考文献
[1] 张海藩.软件工程导论[M].5版.北京:清华大学出版社,2008:5-7.
[2] 董跃华,杨书新,李淑芝.软件工程专业多元化实践教学体系研究[J].江西理工大学学报,2009,30(3):53-55.
[3] 霍英.项目驱动教学法在软件工程课程中的实践[J].计算机教育,2010,17:123-125.
[4] 杨文君.软件工程实践教学改革探讨[J].计算机工程与科学,2011,33(A1):55-57.