基于CDIO的软件工程专业工程实践类课程的改革与实施

2017-05-31 13:29彭辉铁菊红文立玉岳希叶振
计算机教育 2017年5期
关键词:工程实践软件工程

彭辉+铁菊红+文立玉+岳希+叶振

摘 要:提出将CIDO教育模式应用到软件工程专业工程实践类课程教学中,详细介绍基于CDIO的工程实践类课程培养标准的制订、课程体系的构建、课程教学内容和实施、考核方式,根据实践结果说明基于CDIO的工程实践类课程教学模式是可行的,毕业生的能力能够达到CDIO培养标准要求。

关键词:工程实践;软件工程;CDIO

文章编号:1672-5913(2017)05-0030-04

中图分类号:G642

0 引 言

工程教育的目的是将学生培养成为“整装待发”的工程师,也就是在其从事职业前具备较好的工程能力和深厚的技术基础知识。为了达到这个目标,工程教育者的任务就是不断地改进本科工程教育的质量和内涵。CDIO教学模式改革了工程教育,教育学生理解如何在一个现代团队环境下构思—设计—实施—运行复杂的、具有高附加值的工程产品、过程和系统[1]。随着社会信息化的不斷发展,各行各业对软件的需求也越来越多,各种应用软件的复杂性和规模不断增加,导致软件企业亟需大量的能够构思、设计、实施和运行复杂软件系统的人才。软件企业对所需人才的要求与CDIO的培养标准是相符合的。然而,目前一些高校的软件工程专业毕业生并不具备这种CDIO能力,因此目前软件工程专业的培养标准、培养方案和课程体系有必要根据CDIO的培养标准进行调整[2]。

工程性和实践性是软件工程专业的主要特点。 CDIO工程教育强调学生工程实践能力的重要性。软件工程专业的实践教学环节主要分为3类:第1类是理论课程内的实验或上机;第2类是工程实践类课程(或称为课程设计类课程);第3类是毕业设计和实习。软件工程专业的工程实践类课程没有理论授课,全部都是实验或上机课,主要是培养学生的应用理论知识解决实际问题能力和工程实践动手能力,在整个软件工程专业的实践教学体系中占据着非常重要的一个位置[3-4]。

1 基于CDIO的工程实践类课程培养标准的制订

根据CDIO教学大纲,CDIO培养标准指标共分为三级,其中一级指标4个,分别是技术知识和推理,个人能力、职业能力和态度,人际交往能力、团队工作和交流,在企业和社会环境下构思、设计、实现、运行系统的能力。每个一级指标又分为很多二级指标,二级指标又分为若干三级指标[1-5]。结合CDIO培养标准和成都信息工程大学软件工程学院软件工程专业的培养目标,我们制定了软件工程专业的培养标准,其中与工程实践类课程相关的培养标准见表1。工程实践类课程主要培养学生的以下几方面的能力:①应用核心软件工程基础知识的能力;②工程推理和解决问题的能力;③进行工程实践所需的个人能力;④团队合作能力;⑤人际交流能力;⑥系统的构思与工程化能力。

2 软件工程实践类课程体系的构建

基于CDIO的工程实践类课程培养标准对现有的工程实践类课程进行改革,重新构建工程实践课程群,总共包括4门课程:工程实践I(编码训练)、工程实践II(软件技术)、工程实践III(软件测试)和工程实践IV(综合训练)。这4门课程的学时、学分、执行学期和培养标准见表2。这4门课分别设置在不同的学期,每门课的学时都是32学时(2学分),每门课程的培养标准三级指标都根据表1中的培养标准设定。

工程实践类课程群的构建思想:①学生通过工程实践类课程的学习,能够达到表1中的能力要求,因此所有工程实践课程的培养标准加起来能够完全覆盖表1中的培养标准三级指标;②按照软件工程由底向上、循序渐进的模式,构建工程实践课程群。

在第3学期,首先开设的是工程实践I(编码训练)课程,重点培养学生的基本编程功能, 培养学生应用所学的C语言程序设计、面向对象程序设计(C#或Java)、数据结构等课程专业基础知识解决实际问题的能力和动手编程能力。工程实践I课程为后续的3门工程实践课程打下实践基础。

在第4学期,开设的是工程实践II(软件技术)课程,重点培养学生使用高级程序设计语言(JSP、ASP.NET等语言)和数据库技术(Oracle、SQL Server等)进行Web编程的能力和初步软件设计能力,同时培养学生对已有软件的需求分析能力以及对设计文档的阅读和理解能力。

在第5学期,开设的是工程实践III(软件测试)课程,重点培养学生制订测试计划、设计测试用例、实施测试方案等基本的测试技能,为学生进入企业从事软件测试工作奠定坚实的实践基础。

在第6学期,开设的是工程实践IV(综合训练)课程,通过一个中型软件工程项目的完整开发,学生经历需求分析、概要设计、详细设计、程序编码、程序测试及集成运行全过程,培养软件项目构思、设计、实现和运行系统的基本能力,在企业和社会环境下,能够参与或组织一个完整软件项目的全生命周期工作,包括软件的需求、设计、实现、测试、维护等工作[4]。

3 工程实践类课程的教学主要内容和实施

所有的工程实践课程都围绕该课程的培养标准进行课程教学内容的设计和实施,课程的教学内容应该完全覆盖该课程培养标准三级指标,使学生通过该课程的学习,能力能够达到培养标准所要求的水平。所有的工程实践课程都是以项目驱动型教学方法为主,教师以一套项目案例展开教学活动,学生参考案例模板,按软件工程流程完成自己的项目。除了工程实践课程I,其他的工程实践课程都以小组为单位(4~6人组成一个小组)完成课程作业。每个工程实践课程都要求项目答辩,一人一辩。通过项目答辩可以考查和评估学生所做系统的效果以及学生的项目设计、实现、测试、集成等能力,还可以锻炼学生的口头表达能力和交流能力。每个课程项目答辩在课程最后阶段进行,一般需要8~12学时完成。

工程实践I (编码训练)课程的主要教学内容:①每名学生选择一个小型软件项目(或者老师指定一个项目),制订项目开发计划;②对项目进行初步分析和设计,完成程序模块划分和设计,撰写程序设计文档;③学习程序编码规范,编写符合编码规范的程序代码;④程序调试和测试;⑤完成项目答辩;⑥编写课程总结报告,提交项目成果。

工程实践II(软件技术)课程的主要教学内容:①任课教师提供多个信息管理系统软件的需求分析、功能结构设计、数据库设计等资料供学生选择,以选择好的项目作为后期功能实现及评价的依据;②学生小组根据项目资料,在规定时间内完成软件项目的原型设计,提交中间成果(功能设计文档和系统原型);③根据系统项目文档及前期做的原型,完成对应系统的编码及具体实现,小组成员分工合作,由小组长负责组织协调,要求每个学生至少完成一个相对完整的功能模块设计与开发;④每名学生分别讲述自己完成项目的工作情况和实现方式,进行项目答辩。

工程实践III(软件测试)课程的主要教学内容:①教师给定一个待测试软件系统的需求、设计文档以及源代码,学生分组阅读理解该系统的文档和源代码,按规范格式编写软件测试计划书;②学生根据软件测试计划书进行测试用例设计;③学生根据测试用例设计书,按步骤执行测试用例,记录测试结果;④学生分析软件缺陷分布状况和测试结果,按软件测试总结报告要求编写软件测试总结报告,提交相关文档;⑤每名学生进行项目答辩。

工程实践IV(综合训练)课程的主要教学内容:①学生以小组为单位,自选一个中型软件项目系统题目(或老师指定一个题目),进行文献检索、资料查询,按规范格式编写需求规格说明书;②根据需求规格说明书,按规范格式进行数据库设计和模块功能设计,小组共同完成概要设计说明书;③每名学生根据概要设计说明书,按规范格式完成所分配模块的详细设计说明书;④每名学生根据详细设计说明书,按照编码规范完成自己所分配模块的代码编写;⑤每名学生按标准文档格式记录测试结果,提交测试文档;⑥学生以团队为单位,完成项目集成,提交源代码;⑦每名学生进行项目现场演示及项目答辩。

4 考核方式

所有的工程实践课程均采用过程化考核方式,除了平时表现(包括考勤、课堂表现和小组讨论)之外,每门课程都设置很多中间过程考核环节。每个中间过程考核环节要求学生提交至少一个成果物(文档或程序),每门课程最后都要进行项目答辩,一人一辩,因此一名学生的课程最终成绩由平时表现成绩+中间成果物成绩+项目答辩成绩构成。中间成果物要求至少有3项,不同课程的中间成果物不一样,以工程实践IV课程为例,其中间成果物包括需求规格说明书、概要设计说明书、详细设计说明书、单元测试、代码编写和项目集成。每个课程的考核环节都要覆盖该课程的培养指标,表3是工程实践IV课程考核环节与考核指标的对应关系,所有考核环节覆盖的三级培养标准加起来要能够完全覆盖该门课程的三级培养指标,项目答辩的成绩不低于15%。

5 结 语

从4年的教学实践来看,课程改革的效果良好。经过调研,很多学生反映通过工程实践类课程学习,他们的需求分析、设计、实现、测试、集成等能力增强;很多企业雇主也非常认可这种工程实践类课程的教学模式,认为对提升学生的工程实践能力有很大帮助。当然,这种基于CDIO的工程实践类课程教学模式还需要根据毕业生、企业雇主、第三方教育评估机构的追踪调查反馈信息不断完善,这也是我们下一步的研究工作。

参考文献:

[1] Crawley E F, Malmqvist J, ?stlund S, et al. Rethinking engineering education: The CDIO approach[M]. 北京: 高等教育出版社,2009: 5-40.

[2] 陳澎, 熊耀华, 周慧. 基于CDIO模式的软件工程实践教学课程建设的研究[J]. 软件工程, 2016(1): 1-3.

[3] 厉小军, 谢波. 软件工程实践课程教学改革探索[J]. 计算机教育, 2012(3): 106-110.

[4] 岳希, 李超, 李蕊, 等. 软件工程综合实训建设与实施[J]. 计算机教育, 2010(8): 143-145.

[5] 韩立华, 周颖, 胡畅霞. CDIO 理念下工程项目教学案例开发与应用实践[J].计算机教育, 2015(24): 139-143.

(编辑:宋文婷)

猜你喜欢
工程实践软件工程
高分子材料与工程专业实习模式的探索与实践
依托工作室的软件工程实践教学研究
基于CDIO模式的机械电子工程专业教学体系改革
基于工程教育认证的《软件工程》课程教学质量建设研究 
六步教学法及翻转课堂在数据库原理与应用教学的应用探讨
关于如何创新和完善计算机软件工程管理的探讨
基于职业标准的三维数字建模技术课程改革