面向学生主体的高级软件工程互动式教学模式

摘 要:针对软件工程课程实践性强、涉及知识面广和知识更新快等特点,阐述高级软件工程课程中,面向培养学生系统化建模能力和工程分析与设计能力的互动式教学模式,及其在课程项目实践中的应用,同时介绍互动式教学模式理念和相应设计以及教学辅助平台和工程实验环境,并通过3种评价方式展现该教学模式对提高学生工程能力的作用.

关 键 词:软件工程;互动式教学模式;工程能力

文章编号:1672-5913(2013)01-0069-04

中图分类号:G642

软件工程是计算机软件课程体系中非常重要的一门核心课程,其实践性强、源于实践、用于实践;涉及知识面广,多学科交叉;新思想和新方法不断涌现,发展更新快.因此,该课程教学难度大.在课堂教学中,教师多采用“讲座式”教学方法,主要介绍基本概念和主要方法;在项目实践中,教师则基本采取“放任式”教学法,以“结果论英雄”,缺乏对过程和方法运用的指导、研讨和评价,造成学生“理论与实践脱节”.教学方法单一、师生缺少交流和互动是导致学生学习乏味、教学效果收效不佳的直接原因,最主要的是不同教师在教学理念上存在差异.软件工程这类个人与团队实践性皆很强的课程,应该以教师为主角“讲授知识”,还是以学生为主体“培养能力”?不同的教学理念必然导致教学方法和效果的差异.依据北京航空航天大学设定的“两领人才”培养目标,软件工程学科确定以培养软件工程技术及管理复合型高端人才作为研究生培养的主要目标.

因此,高级软件工程作为研究生的学位课,明确提出以学生为主体,培养软件工程能力的教学理念,即指导研究生自觉学习并掌握软件工程的本质和精髓,培养其参与和承担大型软件工程实践的基础能力.为此,我们提出以学生为主体、面向软件工程能力培养的互动式教学模式,在教学实践中收到良好效果.所谓软件工程能力,就是能够以团队协作方式,按照规定的时间节点、进度和质量要求,应用相应的技术及方法完成软件工程任务的能力.针对北京航空航天大学计算机学院研究生的特点和学校规定的教学目标,在高级软件工程课程中,我们将软件工程能力细化为“严谨的工程化管理能力和精细化的软件建模以及模型分析与验证能力”.

1互动式教学模式

互动式教学模式以培养软件工程能力为核心目标,以大型软件过程管理和建模方法与技术为两条主线,突出以规范灵活的过程管理和质量控制、严谨准确的模型与元模型分析和理解、简明精细的建模方法这3个核心知识域,并以4种交互式教学措施贯穿整个教学过程.该教学模式简称“1-2-3-4互动式教学模式”,如图1所示.

该模式的突出特点是通过多种交互方式激发学生主动参与对软件工程核心问题和关键技术与方法的深入探讨与实践,从而培养学生掌握相应的软件工程能力.贯穿其中的交互式教学措施,不仅包括传统的课堂师生互动,而且包括课后学生对教师教学效果的反馈和教师对实践项目的指导.更具特色的是,学生之间也基于作业的评价产生交互.

1)基于知识点设计的互动式课堂教学.课堂教学不再是教师的“一言堂”,教师除了传授基础理论知识外,更多的是通过引导和讨论激发学生对关键知识点的深入探究,促进交流和相互学习,加深学生对软件工程本质的理解,达到让学生掌握软件工程主要方法的目的.

2)随堂教学反馈机制.教师针对课程的核心内容设计了课堂反馈表,在每部分内容讲授结束时发给学生,随堂获取学生对核心内容和难点问题理解程度的反馈,了解学生关心的问题.这种互动帮助老师及时知悉并分析学生的情况,有针对性地调整教学内容和方法;同时也帮助学生梳理核心内容知识,解决难点问题.

3)教师指导下的项目组自主协作.教师设计出多种不同类型和特点的软件项目,并提出协同工作要求,让学生自由组合成多个项目组,自主选择项目.各项目组在教师指导下,按计划推进工作,并每周提交进展报告;另外,按照课程的安排和项目进展,教师确定需求模型和设计模型等阶段成果提交的时间点,组织学生按期提交阶段成果,并让教师和同学进行评判.在此过程中,教师会引导学生自主选择项目和分析项目目标及特点,应用课程中所讲授的工程方法和技术以完成项目;项目组自主安排计划、分工和合作方式;教师和助教评阅阶段成果,并在课上点评和交流.

4)基于透明互评和贡献率的评价体系.在网络化的互动式教学平台上,每个学生需对其他组提交的软件模型进行独立(即不署名的)评审,并给出具体评价意见和评分,项目组需对评审意见做出回应并进行改进;项目结束后,各项目组需作项目总结报告和产品演示,并对每位成员的个人贡献率给出评价;教师对学生平时作业和课堂交流情况的评分作为平时成绩.另外,教师还通过开卷考试考查学生对知识和方法的理解与运用能力.这种由师生共同参与的评价过程,激发了学生的主动性和协作精神,并保证评价的公开、公平和公正.教师根据项目组提交的各阶段成果及“被评价”结果、验收演示效果等综合评定项目组成绩;根据项目组成绩及成员的个人贡献率综合评定学生的项目成绩;根据学生的平时成绩、项目成绩和考试成绩给出总评成绩.

上述互动式模式的教学内容和考核方式如图2所示,主要包括3个方面的内容,分别是理论教学内容、实践教学内容和课程考核.

2教学平台及工程实验环境

教学平台和实验环境的建设对互动式教学具有重要的支撑作用.高级软件工程课程完成了网络化教学支持平台和软件工程实验环境的建设,综合使用2个教学辅助平台,充分发挥各自优势,为课程教学提供了良好的支持作用.

网络化的课程管理平台是在自主研制的计算机类课程教学辅助系统(CG)上构建的本课程教学管理子平台,支持课件和学习资料的发放、学生答疑、作业的提交和评判等.由于本课程在项目实践环节引入了透明的互评机制以及个人贡献率的概念,而现有的课程管理平台难以提供本课程所需的特色功能.因此,从2010年开始,依托助教(博士生)和实验室研究生,我们设计和开发了一个网络化的支持项目组进行模型互评的组间互评价平台,该平台不仅可以支持项目组提交工作成果,如需求模型、设计模型等;还可以支持学生独立评审其他组成果,并给出评分和评审意见;另外,还能对其他同学的评审意见给出回复,并根据评审意见进行修改完善.本课程还利用北航软件工程研究所自主研发的一组软件工具,并精选多个开源软件作为软件工程实验环境,为学生学习并实践精细化建模、量化的过程管理、项目组的紧密协同等提供必要支持.建立工程实验环境的软件工具如表1所示.

3效果分析

课程不但通过项目的实施和推进,培养学生的团队协作和组织实施能力,而且力图通过课程项目,提高学生模型化抽象思维能力及分析验证能力,使学生能够将在课程实践中获得的经验教训以及在课程训练中获得的能力,直接付诸于科研项目或今后工作中的实际项目.下面通过3种评价方式对课程效果进行分析.

3.1基于课堂教学反馈表的教学效果分析

本课程针对重点内容设计教学反馈表,既促使学生认真听讲,积极参与课堂讨论,又使教师及时了解学生对重要内容的兴趣和理解程度,以及对讲授方法的接受程度,从而提高教学效果.

本课程共16次课,累计48学时.表2所示为针对2011年秋季课程中“设计建模”这部分内容的随堂教学反馈表分析结果,结果表明70%~80%的学生准确地理解了教师在课堂上讲授和强调的核心内容,同时表明学生对设计方法的理解相对困难较大.由此可以预想到在课程项目中,设计建模会面临比较多的问题.我们一方面放宽设计建模时间,另一方面加强对设计建模的指导和分析,为学生更好地理解后续知识奠定基础.我们针对学生关注的11讲教学内容共进行了7次教学反馈调查,总体情况表明80%以上的学生能够准确理解和掌握每一讲的主要内容,难点大多集中于1~2个较抽象的概念和方法上,但学生对主要内容都表现出较大兴趣,并对讲授方式给予了肯定.

3.2基于课程报告的教学效果分析

我们要求学生在课程结束后写一份简短的报告,反馈自己所理解的关 于课程的优点和存在的问题,便于教师对下一年的教学进行改进.2011年,学生对本课程的教学方法和效果均作出充分肯定,特别对以下方面给予认可.

1)既有“面”,又有“点”.刘超老师先从大的方面讲解软件工程背景知识,再由吴际老师深入讲解UML建模思想、精细化建模和模型分析方法;每堂课都有不少实际案例分析和讲解.

2)项目实践.教师将理论部分放到实践过程中穿插讲解,以使学生了解规范的软件开发流程,特别是熟悉建模过程;最有意思的地方就在于学生互评.

3)教学方法十分巧妙.问卷方法既达到了点名的目的,又让每个学生能够在课上认真听讲,集中精神吸收课程内容的精髓;教师很仔细地审阅作业,批阅后的反馈,让学生学到了更多令人印象深刻的东西;反馈表上面的问题能够起到引导作用;小组互评的评分方式非常新颖,能让每位学生得到更多练习.

3.3基于课程项目的教学效果分析

为了更客观地反映互动式教学模式在建模能力培养上的促进作用,我们使用由BansiyaJagdish等人在2002年提出的面向对象设计模型质量评估方法,对课程项目中各小组的模型进行评估.该评估方法以分层模型为基础,如图3所示,分为4个不同的抽象层:L1为抽象级别最高的层次,表示最终期望得到的模型质量属性(QualityAttribute);L2层为面向对象设计模型中的属性(DesignProperty);L3和L4包含低抽象层次的模型度量数据.其中,L1层包括可重用性(Reusability)、灵活性(Flexibility)、可理解性(Understandability)、功能性(Functionality)、可扩展性(Extendibility)、有效性(Effectiveness)5个质量属性.


在上述分层模型的基础上,北京大学的研究人员曾在2004年使用此评估方法,对UML元模型的多个历史版本进行评估.该研究发现UML2.0的元模型相对之前的1.2、1.3、1.4、1.5几个版本,质量有显著提高,模型的可重用性、可扩展性等质量属性都提升不少.

我们参考上述两项研究的具体方法,对各小组所建立的需求和设计模型进行评估.选取如表3所示的度量指标,通过由L3、L4到L2的映射,以及由L2到L1的映射关系,计算出项目各个历史版本的评估结果.

某项目组所建模型的4个历史版本的质量属性如表4所示.

v1是小组完成需求分析后形成的第一个模型版本;v2是小组在v1的基础上自行修改完善形成的版本;在经过课程讨论、小组评价等环节后,小组按修改意见完成了v3版本;v4版本是在v3的基础上加以完善形成的.4个历史版本反映了随着课程互动环节的推进,学生作业的进展情况.从表4的数据可以看出,可重用性、灵活性、功能性三个质量属性总体呈明显上升趋势;有效性呈恒定趋势;可扩展性呈现下降趋势.

可理解性较为特殊,其基准为-1,表示模型的可理解性是从“理解有多困难”角度表示的.随着模型规模的增大,模型越来越不易被理解.此外,模型的可扩展性在模型改进后反而下降约20%,我们认为原因是该项目主要是实现一个工具,而不是一个用于扩展的开发包,因此随着模型的完善,模型会趋向于具体的实现层面,可扩展性随之下降.从表中数据可以看出,学生通过课程的互动环节提高了面向对象建模能力.

4结语

软件工程是一门实践性和知识系统性很强的学科,内容多,发展更新快;其知识点分散,原理性和概念性内容比重高.在一年级研究生普遍缺乏真实项目经历的情况下,教师如何把课程内容、课程项目和反馈指导等有机结合,已经成为决定课程教学效果好坏的关键因素.本文总结了课程组针对北京航空航天大学的“两领”人才培养目标,以培养研究生的模型化抽象思维及分析与验证能力、团队协同管理和组织实施能力作为核心目标,提出的以学生为主体的教学理念以及采用多种互动教学方法的教学模式.实践表明,该教学模式对于提高学生的主动参与性和自我认同感,培养学生的科研与实践能力具有较大作用.

(编辑:宋文婷)

类似论文

基于SVN的软件工程团队协作模式

摘 要:从当前较为成熟的版本控制与团队协作技术出发,结合自身教学实践,提出了一种以SVN技术为基础&。
更新日期:2024-11-15 浏览量:143341 点赞量:30860

基于CDIO的高级软件开发课程教学改革

摘 要:以海南医学院医学信息管理专业的教学实践为例,分析非计算机专业的高级软件开发课程的教学现状,提出构建&。
更新日期:2024-12-13 浏览量:156346 点赞量:33784

面向低碳经济的工业工程人才培养模式

摘 要:低碳经济环境需要掌握工程技术与管理知识的复合型人才,低碳经济的核心是能源发展绿色化、生产制造清洁化以及资。
更新日期:2024-9-13 浏览量:119767 点赞量:26443

基于CDIO的软件工程课程教学实践

摘 要:为了解决软件工程专业本科生培养中所遇到的学生工程能力和创新能力较低等问题,本文通过分析软件工程专业设置和软件开。
更新日期:2024-10-18 浏览量:131605 点赞量:28531