软件工程的情境教学方法研究与实践
文章编号:1672-5913(2009)02-0106-02
摘 要:软件工程是一门理论性较深、涉及面较广、工程性较强的计算机主干专业课。本文针对该课程特点,结合软件企业中的典型工作任务过程以及作者在教学中的实践,探索了在教学中如何利用情境教学进行教学的新思路,形成了一个探索性的情境教学模式。
关键词:软件工程;项目管理;情境教学
中图分类号:G642
文献标识码:B
1引言
随着近年来国际软件外包产业的重新分工和我国产业经济结构的战略调整,我国软件产业对计算机软件类人才的需要也发生了很大的结构性变化,为了适应社会对人才需求,培养社会需要的应用型人才,各大专院校对计算机专业及相关专业的课程设置也在不断地进行调整,目前“软件工程”这门课程已逐渐成为了计算机主干专业课。
“软件工程”这门课是软件工程专业中核心课程之一,它具有理论深、涉及面广、实践性强等特点,是一门涉及计算机科学、数学、经济学、法学、管理学、心理学等多学科的综合性学科,是一门比较难教、难学的重要课程。那么,如何根据课程特点并应用情境教学于这门课中,使学生能够在情境和模仿中理解软件工程过程和相应管理的真正含义,这是本文要论述的中心。
2课程特点及存在的问题
为了适应社会对高等教育的新需求,我国各大专院校都在不断探索新的教学模式,国家也成立了许多示范性院校,各个示范性院校都在寻求各种教改,例如教学体制、国际合作、教材建设、课程改革、实践教学、项目教学、情境教学等等,并已取得了很多成果。就目前而言,各个学校的教师在课程教学中,对项目教学和情境教学都作过许多探索并投入了很大的关注,但还存在着一些问题。
(1) 注重“软件工程技术”,轻视“软件工程管理”,在授课过程中往往把它们孤立分裂开进行讲解,即在前期花费大量的学时讲授软件工程技术理论,仅仅在最后才花费一两次课进行软件管理技术的讲解。
(2) 由于教师参与大型软件设计、开发的机会较少、实践经验有限,所以在讲授课程过程中,对管理在软件过程中的应用理解不足,也容易出现重技术轻管理的现象。
(3) 在课堂教学中每章孤立式地使用了一些案例教学,内容讲授不连贯,使学生对软件工程的各个过程的理解比较零散,过程整体性不鲜明。
(4) 现在的呆板授课方式,往往容易使学生只知道应该做什么,却不知道怎样去做,这样就会使学生对理论内容理解不深、记忆不强。
(5) 模仿是初学者迅速成长的必经之路,而现在的教材中出现的文档说明许多都不实用,在实际工作中几乎不适用。
我们曾经对参加过社会培训机构培训过的计算机应届毕业生作过调查,反馈的意见让我们真正理解了软件工程与项目管理的关系以及它们在项目开发中的重要作用和意义。
如何才能在教学环节上解决这一问题,情境教学是一个好的教学方法。在情境教学中我们应该关注如下一些要点:
(1) 情境是与实际工作任务紧密相连的,情境中的活动内容不应该仅仅是一个案例,而应该是一个贯穿整体的过程活动,每一个情境都应该是另一个情境的前驱或后继。
(2) 参与情境中的角色要分明,责任要清晰,并且要有一定的连续性。
(3) 情境中的角色不仅要担当一定的任务,同时一定要有最终的工作成果。
(4) 对每个情境中的角色都要有最终的评价。
(5) 情境来源于实际,由于学生还没有机会参与社会,项目经验机会很少,所以在情境中的角色往往是茫然的,不知所措的,所以,我们应该在情境中设计一些技巧、模版,让学生能够模仿,这样可以加快进入角色,举一反三。
本文就是在充分考虑该课程的特点,结合作者多年教学和工程实践经验,在课程教学方面作一些尝试和探索。
3教学中的实践方法
我们在教学过程中充分考虑到教材中的每个章节内容在实际软件企业中的工作任务情境,再结合软件工程课程的特点,尽量把理论授课内容穿插到教学情境中,在课堂上和课后作业教学中探索性采取了如下一些方法:
(1) 首先由相关教师组成一个“情境教学研究”小组,与软件企业充分交流,根据软件生命周期过程的工作任务共同研究开发若干“教学情境”。
(2) 把软件工程的设计开发内容和项目管理过程内容有机地结合并互相穿插起来。
例如把项目计划、项目监督和控制、验证、确认、配置管理、质量和分析等都贯穿于授课的整个软件生命周期的每个阶段中。
(3) 把学生分成6人一个小组,每个人都负有一定的角色和给定的责任,角色在整个学期中要进行互换。
小组分配原则:
●学习成绩好的和学习成绩不好的要尽量搭配在一个小组中。
●由于动手能力不同,尽量把男生和女生进行合理比例搭配组成小组。
●为了方便在一起讨论问题,尽量把在同一个寝室的学生组成在一个小组中。
●由于很多文档都需要用业余时间完成,所以要尽量把拥有个人计算机的和没有计算机的搭配在一个小组。
角色分配:
PM:老师、LD:小组长、SE:软件工程师、PG:程序员、CM:配置管理员、QA:质量管理员
(4) 要求明确每个角色的责任和工作范围
PM:有任课教师担当,负责管理全班所有项目的进度和完成质量,协调项目组之间出现的问题。
LD:对本项目小组进行任务分配和全面管理,并向PM负责。
SE:负责组织项目组成员进行项目分析、设计、开发、测试等工作。
PG:进行部分程序框架的编制。
CM:配置控制和管理
QA:质量控制管理
(5) 工作会议记录
目的是监督和控制学生完成老师布置的每章任务,同时,让学生体会和感觉开发小组氛围,培养团队合作的精神。要求每个项目小组每周都要根据本周老师授课内容召开一次小组会议,并写出会议记录。会议记录内容要求包括:
●本周课程内容和任务的讨论。
●上次会议任务的工作结果汇报。
●本次会议讨论的议题和结论。
●没有结论的问题保留等。
(6) 根据课程授课进展,要求每个项目小组在每个章节或每个阶段都要选择性地写出成果文档。例如立项申请书、可行性分析报告、项目开发计划、项目开发计划、项目开发体制图、整体项目进度表、用户需求调查表、需求规格说明书、需求变更跟踪票、概要设计说明书、数据库设计书、画面设计、项目画面迁移图、详细设计说明书、程序设计、代码规范、测试计划书、单体测试式样书、结合测试式样书、系统测试式样书、QA一览表、软件维护手册、用户操作手册、项目开发总结报告等。
(7) 课堂上适度地增加情境教学
针对每章授课内容设计一个或两个教学情境,分别由课堂活动和课后活动组成。老师在讲完整章理论内容之后,最后把全部内容穿插起来带领学生进行一次情境教学活动。情境活动有老师组织,某个小组进行活动发表,其他小组进行评审。在整个学期中每个小组都会有机会担当情境活动者。例如我们设计了如下一些情境活动:
●软件计划阶段:可行性分析讨论情境活动
●需求分析阶段:需求获取和分析情境活动
●基本设计阶段:基本设计评审情境活动
●详细设计阶段:详细设计评审情境活动
●代码制造阶段:代码规范性讨论情境活动
●软件测试阶段:测试计划和内容评审情境活动
●其他一些情境:小组会议情境、项目计划制定、风险评估情境、配置管理情境等。
(8) 规范文档模板
学生只学习了理论,往往对于如何撰写各种成果表格和文档都比较茫然,所以便于学生模仿,我们结合软件企业资料抽象构建了一些关键性的模版供学生模仿,这样可以使学生尽快理解实际过程中的应用关键点。模板类型包括表格、图形、文档等各种形式。
(9) 增加一周的课程实训
把平时在松散环境下完成的项目设计、开发,测试、管理等教学内容再次以团队合作形式集中进行项目整体情境活动实训,其中要求把管理活动和软件工程相结合最终形成实训报告。
(10) 条件允许的情况下,组织学生到软件企业进行参观,了解和体验软件企业的工作环境和工作氛围,激发学生毕业以后继续从事计算机软件行业的热情和信心。到企业进行参观时,一定要避免走马观花式的参观,要请企业资深经理或一线企业员工进行企业介绍和讲解。讲解内容组应包括:
●软件企业管理和文化。
●软件企业对应聘员工的要求。
●IT职业道德教育。
●计算机行业的发展的美好前景。
●计算机行业的最新前沿技术。
●对同学们的殷切希望和要求等。
(11) 每个小组进行内部评价
要求每个小组长对每个组员在本学期中参与小组活动情况进行评价,每个评价点10分,一共为100分。老师对每个小组长工作情况进行评价,最终作为期末成绩评价依据。评价标准如下:
态度与协作:积极性情况、团队合作情况、执行力情况,小组会议出勤情况
参考文献
[1] 赵晓东. 比较教学法与工程机械教学[J]. 中国职业技术教育,2006,(19): 47-48.
[2] 李运模. 比较教学法论略[J]. 中南民族学院学报(人文社会科学版),2000,20(3):125-127.
[3] Marco Cantù. Mastering Borland Delphi 2005[M]. USA: SYBEX Inc., 2005.
[4] 刘艺. Delphi面向对象编程思想[M]. 北京:机械工业出版社,2003.
[5] Bruce Eckel. Thinking in C++, 2nd Ed., Volume 1[M]. USA: Prentice Hall PTR, 2000.
[6] Andrew Troelsen. Pro C# 2008 and the .NET 3.5 Platform, 4th Ed[M]. USA: Apress, 2007.
Application of Comparative Teaching Method in Difficult Concepts Teaching of Polymorphism in Delphi
QI Lai-bin, FENG Xi-ye, JIANG Hai-yan, DU Lin
(Dept. of Computer Science and Technology, Shandong Institute of Education, Jinan 250013, China)
Abstract:Comparative teaching method is the effective method to surmount emphases and difficulties in teaching. This paper introduced the teaching practice of authors utilizing comparative teaching method to resolve difficult concepts that include override, overload and hide.
Key word:comparative teaching method; polymorphism; override; overload; hide; Delphi