基于CDIO的面向对象软件工程实践教学模式研究

2017-09-01 22:26叶俊民王敬华李蓉周伟陈曙杨艳
计算机教育 2017年8期
关键词:实践教学模式

叶俊民+王敬华+李蓉+周伟+陈曙+杨艳

摘 要:针对软件工程实践教学存在的学生动手能力不强、团队协作意识差等问题,从构思、设计、实施和运维这一横向维度以及目标、内容、培养过程和时间基线这一纵向维度出发,提出基于CDIO的面向对象软件工程实践教学模式,阐述在该模式指导下开展的面向对象软件工程实践教学活动和实际效果。

关键词:CDIO;软件工程实践;实践教学模式

1 背 景

1.1 研究背景与研究现状

软件工程专业人才培养是一项复杂且周期很长的教育活动,面向对象软件工程实践教学是其中一项重要环节。如何通过研究面向对象软件工程实践教学模式来提升学生实践动手能力,已成为一个亟待解决的问题。

麻省理工学院、瑞典皇家工学院等4所大学经过4年的探索研究,提出并践行了一种重要的工程理念,即CDIO。CDIO代表构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate),可让学生以主动和实践的方式学习工程,强化学科课程之间的关联[1]。CDIO理论最先在机械、计算机等工程领域的部分专业中应用,并取得了令人瞩目的成就,如汕头大学工学院在2005年开始学习研讨CDIO工程教育模式并加以实施,让学生的工程实践能力得到了发展,取得明显的效果[2];清华大学在数据结构和数据库技术两门课中采用CDIO方法教学,使学生的编程实践能力取得了突出进步[3]。

关于教学模式,文献[4]认为,不论什么样的教学模式,都包含了培养目标、教学内容、培养制度、培养过程4个最主要的要素,这4个要素的稳定组合构成了培养模式。因此,本文认为面向对象软件工程实践教育模式主要涉及目标、内容、培养过程等内容。

文献[5-6]总结了当前软件工程教学与实践现状,国内相关高校基于COID提出了自己的解决思路并落实在实践中,取得了一定成绩[7-16],如出现了基于项目驱动的实践教学模式、基于案例研究的实践教学模式、基于团队协作的实践教学模式、基于实训方案的实践教学模式等。

1.2 软件工程实践教学中存在的问题

软件工程专业教育经过多年的探索、研究和实践,已取得了很多令人欣喜的研究成果和实践经验,但软件工程专业目前还是面临着严重形势。第一,在教师教学方面,依然存在著重理论轻实践、片面强调个人学术能力而忽视团队协作精神、重视知识学习而轻视开拓创新能力培养的现象。第二,在学生专业学习方面,存在学生的系统分析与设计能力欠缺、沟通表达能力不足、团队合作意识薄弱、软件工程文档写作素养偏低等问题。第三,在创新实践教学方面,CDIO与面向对象软件工程实践教学模式的深度融合有待进一步研究和实践。因此,基于CDIO的面向对象软件工程实践教学模式是一个有待进一步研究的问题。

2 基于CDIO的面向对象软件工程实践教学模式设计

2.1 设计思路

2.1.1 教学理论研究

研究基于CDIO的面向对象软件工程实践教学模式,主要以提升本专业本科生的实践动手能力为目标,重点解决面向对象软件工程教学中的部分突出问题,主要思路包括:第一,通过研究面向对象软件工程之需求工程实践教学模式,解决软件工程专业学生的沟通表达能力不足、团队合作意识薄弱的问题以及软件系统需求分析能力不强和软件工程文档写作能力偏低的问题;第二,通过研究面向对象软件工程之软件架构与软件设计实践教学模式,解决软件工程专业学生的系统分析与设计能力欠缺的问题;第三,研究面向对象软件工程之软件测试实践教学模式,解决软件工程专业学生的软件测试用例设计能力与项目维护能力不强的问题。

2.1.2 实践教学模式的实证研究

针对上述教学模式理论研究开展实证活动,一方面通过实践活动检验相关理论成果的正确性,同时为实践活动提供指导;另一方面分析和评估实践活动获得的数据,作为进一步改进理论研究的依据。实证研究的主要内容是:第一,提出基于CDIO的面向对象软件工程实践教学模式的实践教学计划,反映出软件工程创新人才培养的需求;第二,制订针对学生实践能力要求的考核指标体系及其实证研究;第三,针对实证研究过程中所采集的数据,开展学习分析研究,以更好地预测软件工程专业本科生的学习过程和其未来学习发展趋势。

2.2 面向对象软件工程实践教学模式

依据CDIO的面向对象软件工程实践教学模式的运行指标见表1。具体做法是划分阶段完成面向对象软件工程实践教学模式的构思、设计、实施和运维活动。为此,对应各个阶段,教学目标分别是:①构思课程教学目标与需求;②设计课程任务、教学过程和评价验收标准;③分步骤实施课程任务、教学过程和评价验收标准;④评价课程教学效果。在此基础上定义了实施做法和具体的时间基线。

第一,在开课前完成构思阶段的具体目标,具体做法是结合IT企业用人反馈,全面分析面向对象软件工程实践教学的目标和本专业人才培养需求。第二,在开课前完成设计阶段的具体目标,具体做法是在开课前设计满足课程目标和人才培养需求的教学计划和可行的教学活动。第三,在开课前完成实施阶段的具体目标,具体做法是在实际教学过程中开展满足教学设计要求的各项教学活动,并重视收集教学活动中产生的数据,这些步骤贯穿整个教学活动。第四,在开课后完成运维阶段的具体目标,具体做法是依据数据开展教学效果评价活动,为进一步改进该课程实践教学提供依据,使该课程教学形成一个良性循环的生态链。

3 基于面向对象软件工程之设计模式实践教学的实践活动

3.1 教师方面需做的实证准备

3.1.1 设计基于CDIO面向对象软件工程实践的各个教学环节

开课前,完成教学目标与需求的构思和课程教学任务、教学过程和评估标准的设计工作。

第一,教学内容设计包括面向对象技术基础、UML、需求工程导论、软件体系结构设计、面向对象的设计基础、设计模式导论、软件测试技术基础。

第二,实践内容设计包括:①项目实践内容设计、项目组组成规则(组长的责任、组员的责任、小组人数)、项目选择环节设计、自己感兴趣或自己能理解的内容;②设计模式实践内容设计,每人选择一个设计模式,23个设计模式必须均有人选择。需解决的问题包括该设计模式的工作原理、设计模式代码结构、测试代码结构,结合本组项目中的应用场景设计具体说明选择某一设计模式的理由和具体的应用方式,给出核心代码片段,并演示系统。

3.1.2 设计各个环节的实施细则

验收规则设计:①项目验收规则为每组安排讲座人员1~2人,讲座时间15分钟,回答问题10分钟;②设计模式验收规则为每人讲座时间10分钟,回答问题5分钟;③提交书面心得。

3.1.3 设计验收标准

验收标准的设计分为4档。优秀标准为演示及验收环节全面、提交文档完备,各个环节得分在4~5分;良好标准为演示及验收环节全面、提交文档较完备,各个环节得分在3.5~4分;及格标准为演示及验收环节全面、提交文档较完备,各个环节得分在3~3.5分;不及格标准为演示及验收环节不够全面、提交文档不完备,各个环节得分在3分以下。

3.1.4发布任务和要求

在正式上课第2周发布任务和要求,选择组长并进行团队/小组组建,各小组选择自己小组愿意完成的项目,并制订本小组活动规则。

3.1.5 验收与评价

组织该教学活动的实施和验收,判定本课程学生的各项成绩,采集并分析教学实践活动中产生的数据,提出整改建议。

3.2 学生方面需做的实证准备

(1)问题定义环节,包括初步查询资料,并确定将要选择的设计模式。

(2)规划环节,包括时间安排、小组内活动规则制订。

(3)自学环节,包括定向查找资料环节(参考书、维基百科、百度百科、论文、源代码)、理解内容环节(阅读各类资料、编程实现算法、初步数据的测试)、应用实现环节(结合具体设计模式,找到可以应用该模式的实际需求,构造一个完整的应用系统)、扩展环节(学习更多的设计模式,将之应用到该应用系统之中,并分析各个设计模式之间的关系,找到使用这些设计模式的规律和心得)、书面总结环节(总结自学环节的全部工作,并制作展示文档)。

(4)研讨与交流环节,包括陈述自己的工作、说明要解决的问题、所用设计模式、该设计模式的工作原理、如何结合应用选择设计模式、展示自己完成的应用系统、说明自己学习和使用某一设计模式时的疑惑或问题、接受老师和同学的质询并记录和回答相关问题(陈述自己的观点,进行辩论)。

(5)论文写作环节,包括总结本节的第3、第4相关内容,改进本人的应用系统设计和实现,写出课程论文。

4 总结与分析

4.1 实践过程中出现的问题

学生在实施面向对象软件工程实践教学环节中出现了各种问题。第一,UML记号使用方面的问题。主要表现在学生对UML符号的语义理解不深,比如在画序列图时对生命线长度的含义理解不到位,以至于画图错误。第二,不能灵活应用面向对象技术中的核心定义,如继承关系在需求分析中可以用于抽象相关实体。第三,對面向对象技术聚集关系理解不到位,以至于用菱形符号表示聚集关系时经常用反。第四,前期基础课程学习不到位,知识结构有偏差,实践环节没有养成好的设计风格,以至于在采用面向对象软件工程方法学构建应用系统时出现了基本的设计问题,如很多学生在设计数据库结构时,常常采用一个表单概括整个系统的数据特征。第五,数学知识的应用能力薄弱,以至于学生在构造系统过程中遇见一些关键问题时,即便有教师指出方向,也不知所措。

4.2 解决问题的主要措施

针对学生在实施面向对象软件工程实践教学环节中出现的各种问题,笔者主要采取了如下措施。第一,从细节入手,遇到实际问题马上讨论并解决。第二,要求学生回头查阅各种课程教材或参考书,重温相关章节的内容,结合实际问题的解决过程,做到相关知识应用的融会贯通。第三,对于学生不太熟悉的内容,教师指导学生在网上搜索恰当的资料进行学习或讨论。第四,通过案例让学生快速上手,由指导教师通过简单有效的案例(包括数据和计算过程),让学生快速掌握其中的方法和原理。第五,给出相关应用系统的框架和部分代码,让学生构造一个较为完整的应用系统解决方案,深刻体会软件重用的思路和项目开发过程的完整环节。第六,注重角色扮演,让小组中的学生轮流扮演不同角色,体会项目活动中各利益相关者的观点,养成换位思考的习惯。第七,坚持在项目开发中结合软件工程理论课程的重要观点。第八,通过总结和项目开发讨论会形式让不同小组的学生交流项目开发过程中的经验。

5 结 语

通过分析与研究软件工程实践教学中存在的学生动手能力不强、团队协作意识差等问题,本研究从横向(构思、设计、实施和运维阶段)和纵向(目标、内容、培养过程和时间基线)两个维度出发,提出了基于CDIO的面向对象软件工程实践教学模式,并在该实践教学模式指导下,开展了面向对象软件工程实践教学活动。实际效果表明,该模式下的实施方案能与面向对象软件工程实践教学中的教与学、学中做等解决方案有机融合,使学生的实践动手能力得到提升,同时加强学生的团队协作意识。未来将引入线上学习平台,通过该平台实现数据采集,并在学习分析技术的帮助下实现对学生动手能力的检测、预测与推荐,使面向对象软件工程实践教学向个性化方向发展。

参考文献:

[1] 百度百科. CDIO[EB/OL]. [2017-06-20].http://baike.baidu.com/view/2402813.htm.

[2] 顾佩华, 包能胜, 康全礼. CDIO在中国(上)[J]. 高等工程教育研究, 2012(3): 24-40.

[3] 顾学雍. 联结理论与实践的CDIO: 清华大学创新性工程教育的探索[J]. 高等工程教育研究, 2009(1): 11-23.

[4] 周绪红. 中国工程教育人才培养模式改革创新的现状与展望: 在2015国际工程教育论坛上的专题报告[J]. 高等工程教育研究, 2016(1): 1-4.

[5] 金敏. CDIO模式视阈下的软件工程课程教学改革[J]. 电子测试, 2016(24): 83-84.

[6] 佟玉軍, 周军, 谢文阁. CDIO下应用型软件工程专业人才培养模式研究与实践[J]. 计算机教育, 2016(11): 54-57.

[7] 韩万江, 宋茂强.软件工程实践类人才培养模式的探索: 北邮软件学院标准化实验室经验谈[J]. 计算机工程与科学, 2011(增刊1): 66-69.

[8] 金福生, 闫达远, 刘振岩, 等. 软件工程专业本科生工程实践能力培养模式探索[J]. 计算机工程与科学, 2011(增刊1): 135-137.

[9] 张培颖, 郑秋梅, 宫法明. CDIO工程教育模式在软件工程核心课程教学中的应用[J]. 教育探索, 2014(12): 21-22.

[10] 李春英, 汤志康. CDIO模式下的软件工程课程设计实践[J]. 实验技术与管理, 2011(6): 173-174, 178.

[11] 李彤, 张璇, 王旭. SE-CDIO工程教育模式的探索与实践[J]. 高等工程教育研究, 2014(1): 52-57.

[12] 郭威. 基于CDIO的软件工程综合实训课程的改革[J]. 实验科学与技术, 2014(5): 115-117.

[13] 叶俊民, 王敬华, 李蓉. 基于CDIO的“面向对象软件工程”教学模式研究[J]. 计算机教育, 2014(13): 64-67.

[14] 姚志强, 曾章瑞, 郑小建. PMO-CDIO工程教育与人才培养模式改革[J]. 计算机教育, 2017(1): 53-58.

[15] 康玲, 熊耀华, 石冬凌. TOPCARES-CDIO模式下软件工程专业教学质量保障体系的探索与实践[J]. 软件工程, 2016(12): 59-62.

[16] 段恩泽. 基于TOPCARES-CDIO的软件工程专业课程一体化改革与实践[J]. 计算机教育, 2017(2): 122-125.

(编辑:孙怡铭)

猜你喜欢
实践教学模式
财经类院校关于实习型实践教学的改革
高职财务管理实践教学模式构建
职业院校会计实践教学模式浅析
高分子材料专业就业导向下新型实践教学模式探索