毛燕琴 李莉 冯晓虹
摘 要 UML课程是软件工程专业一门重要的专业技术基础课,分析UML课程传统教学中存在的问题,针对传统教学模式存在的不足,在实际教学中提出并运用案例启发教学法,该方法能够激发学生的学习兴趣, 培养和提高学生的自主学习和创新应用能力。
关键词 统一建模语言课程教学 案例 启发式教学
中图分类号:G424文献标识码:A
Application of Case Inspired Approach in UML Course Teaching
MAO Yanqin[1], LI Li[1], FENG Xiaohong[2]
([1] School of Computer Science & Technology,
Nanjing University of Posts and Telecommunications, Nanjing, Jiangsu 210003;
[2] The Principal's Office, Nanjing University of Posts and Telecommunications, Nanjing, Jiangsu 210003)
Abstract UML software engineering curriculum is an important professional technical courses, analyze the problems in UML course traditional teaching, for the shortcomings of traditional teaching mode exists in the actual teaching and the use cases presented inspired teaching, the method can stimulate students' interest in learning, to cultivate and improve students' self-learning ability and innovative applications.
Key words unified modeling language teaching; case; inspired teaching
UML(Unified Modeling Language,统一建模语言)是一种面向对象的标准建模语言,采用成熟的软件工程思想及建模技术,对大型、复杂的软件系统进行分析、设计和文档化,方便软件设计开发人员交流和使用。目前,高校软件类专业基本都开设了UML基础等软件建模课程,然而UML课程教学轻实践重理论,①学生运用UML工具对软件系统进行分析与设计的能力欠缺,无法满足企业对软件人才的需要。因此,如何有效提升UML课程的教学效果,是值得我们从教人员深入思考和探索的地方。
1 UML课程教学现状和问题
UML作为软件行业标准的建模语言,是计算机、软件工程等专业学生必须掌握的专业基础知识。UML课程传统的教学模式②是根据学校制定的专业培养方案,结合课程教学内容确定教学计划,教学形式以课堂教学为主,实践教学为辅。课堂教学“老师讲、学生听”,实验教学“学生练、老师指导”,学时分配以课堂教学为重。
UML课程重点讲解软件建模的方法和技术,以及建模工具的使用,③传统课堂教学以知识点为中心,先逐一讲授知识点,然后通过简单的案例进行示范说明,这种正向教学模式虽然具有一定的知识连贯性,但从企业对软件人才的需求角度来看,学生解决综合问题的能力得不到锻炼。课程内容特點是细节知识繁杂、内容枯燥抽象、关联知识较多、实践性较强。④由于学生实践经验不足,普遍存在对UML的作用缺乏认识,学习热情和积极性不高。
UML课程教学要求并不明确,大多数教材主要介绍各种UML建模元素,以及如何使用ROSE或VISIO这类建模工具软件,知识点内容本身比较简单,建模工具单一,如使用早期的建模工具软件就不能描述UML2.0中的交互概观图(Interaction Overview Diagram)。课程教学与实践结合难度大,存在理论与应用脱节的现象,然而系统分析与设计的经验和体会必须通过软件开发过程实践才能获得。教材中使用的案例主要来源于早期的学术著作和文献,内容缺乏新意,举例简单,看起来容易理解明白,但在遇到实际的软件项目开发时却很难加以创新性运用,致使学生难以理解UML的实际应用价值。
UML课程实验环节虽然可以帮助学生巩固所学知识点,提高学生解决问题的能力,但实验学时较短,难度中等偏下,选题比较陈旧,与软件企业实际项目课题的规模相距甚远。此外,学生动手实践能力参差不齐,实验过程缺少协作,有畏惧情绪的同学遇到问题几乎不咨询指导老师,甚至出现实验报告抄袭的情况。
UML课程的考核方式主要采用笔试,实验成绩作为辅助参考,以考核知识点为主,综合设计题所占比例不大,难以体现学生的综合能力,学生在学习过程中必然会忽视系统设计能力的锻炼和主动思维习惯的培养。
针对上述现状和存在的问题,为了提高教学效果,培养学生自主学习与创新应用能力,鼓励学生积累软件系统设计经验,转变教学思路,提出案例启发式教学实践框架。
2 案例启发式教学实践框架
案例启发式教学改变传统教学主要靠“讲”的教学方式,而是先通过IT行业应用案例来启发学生思考,设置投石问路的情景问题,采用“问”的方式逐一将相关知识点“引”出来,避免了传统教学按部就班地给出名词、下定义、解释、举例、应用所带来的枯燥和不易理解,激发学生的学习兴趣;针对相关知识点提出不同的任务布置给学生“学”,学生独自完成任务,可以利用教材、参考书、网络等资源进行自主和协作学习,撰写学习报告,使被动学习变为主动学习,带着问题和任务去寻找答案,提高学生的学习热情,锻炼学生的自主学习能力;针对学生学习任务完成情况,结合学习内容,授课教师再进行有针对性和选择性的补充“讲”解和总结,将相关知识点转化为实例,如果有条件还可以进行现场UML建模分析演示,这样既可以起到引导示范的作用,也给学生留下深刻印象;学习和讲解完成后,学生分组进行项目演“练”,学生之间分工合作,互学互帮互助,确定需求共同完成系统分析与设计方案,最后以演讲与答辩的方式上台展示、讲解系统模型,并回答老师和学生的提问,实现对知识点的理解和应用,锻炼学生实践操作的能力、独立解决问题的能力和交流与演讲能力,培养团队合作的精神,如果有条件可以考虑利用手机和网络构建交流学习平台。⑤
案例启发式教学实践框架要求授课教师精心准备恰当的案例,使得案例具有针对性,能与知识点相衔接,易于学生理解和掌握,同时也要尽量调动学生的积极性和主动性,给予适当的学习任务和项目实践的压力,这种压力可以通过综合考评来施加,改变传统的期末考试定分数高低的片面评价体系,而是采用多内容、多形式的复合评价系统来综合评定学生的成绩。多内容包括任务学习报告成绩、项目实训成绩、期末考试成绩等;多形式包括学生自我评价、学生互评、教师评价等。采用复合评价系统的目的是为了体现教学过程所取得的学习效果,而不是仅仅获得一个课程分数。
3 UML课程案例启发教学模式的实施
结合上述案例启发式教学实践框架,以“案例启发思维、学生自主学习、老师总结评价、项目实践训练”为教学理念,强调培养学生团队协作解决实际问题的能力,在此基础上改进完善UML教学模式,下面以笔者所承担的软件工程专业“基于UML的面向对象分析与设计”课程为例进行阐述。
(1)案例启发课堂教学。 按照软件工程专业培养计划,此课程安排在大三上学期,教学对象是具有一定基础编程开发经历及基础专业知识的学生,但系统开发经验不足,软件系统分析与设计能力有限,因此,课程初始应以学生熟知的应用软件或系统为切入点展开说明此课程的目标和作用,让学生对课程的总体内容和课程重点有所了解。如何选择合适的应用案例,如何利用应用案例来引导学生思考是这个环节的关键。应用案例要贴近学生生活,业务流程清晰,容易理解,案例规模要适合学生能力水平,例如很多教材中使用了学校图书馆管理系统、学生选课与成绩管理系统等。笔者以“银行ATM系统”为应用案例,展开课程的介绍和内容的引导,基于应用需求逐步推进介绍,从系统分析、设计到实现,从用例建模、静态建模、动态视图到架构建模,应用案例始终贯穿其中,学生在深入理解应用系统设计开发流程的同时,课程内容框架也建立起来,对课程的作用和学习重点也有清晰的认识。
(2)自主学习与归纳。提前预习课程内容是比较好的学习习惯,但自觉预习的学生并不多,被动地接受陌生的知识取得的学习效果不如带着问题主动学习的效果好,因此,采取作业提前“做”的思路,在讲解每章内容之前,把每个章节涉及的重点内容转变成为问题,布置成作业,让学生自主学习,并归纳整理成报告。例如,如何获得并收集用户需求?如何分类整理用户需求?如何描述ATM系统用户身份验证业务流程?身份验证业务流程涉及哪些实体类?等等此类问题让学生先进行思考。这个环节突出锻炼学生的自主学习能力、知识分析归纳能力及报告撰写能力。
(3)讨论式课堂教学。在学生自主学习的基础上,结合之前所提出的问题,教师与学生共同探讨问题的答案,总结相关知识点内容,将知识讲解与“银行ATM系统”应用案例讲解相融合,用知识解释案例,以案例带动知识的学习。学生也可以质疑所学内容,例如,客戶需求经常变化该怎么办?不同方式的身份验证安全性如何?除了常用的Visio, Rose之外,轻量级的UML软件工具有哪些?等等。通过此环节,学生可以进一步巩固消化知识点,加深对知识点的理解和掌握。
(4)实训与演示。课程重点内容讲解结束后,布置“火车订票系统”或者“航班订票系统”给学生进行实践训练,以小组为单位,每个小组人数相同,在规定的时间内完成系统分析与设计,提交建模文档,并上讲台进行演示说明,各小组及老师共同参与评价。由于“银行ATM系统”与“火车/航班订票系统”有相似之处,也有不同之处,学生在进行系统分析与设计时,以案例系统作为参照,对所学知识进行回顾,但同时又激发学生进行独立思考解决新问题,经历从照葫芦画瓢到应用创新的转变。在这个环节中,师生可以共同探讨各小组系统设计中存在的问题,综合归纳普遍存在的设计错误;小组之间可以互相比较设计的优劣,互相促进,在纠正自身错误的同时也避免重复其他小组的错误;在保证设计思路正确的情况下,允许各种不同设计方案的存在,不要统一标准和答案,鼓励学生勇于创新,提出自己的想法,在后续的课程学习和集中性实践课程中要贯彻系统分析与设计的理论方法,指导自己软件系统的开发,达到学以致用的目的。
基金项目:南京邮电大学2013年教学改革项目课题“UML课程案例驱动教学模式的探索与实践”(JG00413JX68)
注释
① 许波,陈晓龙.UML结合软件工程教学改革探讨[J].计算机教育,2011(2):34-37.
② 王志国.基于动式理念的UML课程项目实践教学模式研究[J].绥化学院学报,2013(3):139-141.
③ 陈昊,明仲,彭小刚.在UML课程的实践教学中实施CDIO的探讨[J].计算机教育,2010(14):125-128.
④ 张丽平,李松,郝晓红.结合案例和任务驱动的UML教学方法研究[J].黑龙江教育学院学报,2012.31(3):50-52.
⑤ 田俊梅,王国枝,赵巧娥,赵兴勇.专业基础课程教学改革[J].教育理论与实践,2014.18:49-50.