对软件工程课程自底向上教学模式的探试索

时间:2021-03-19 18:06:42 硕士论文 我要投稿

对软件工程课程自底向上教学模式的探试索

  摘要:根据软件工程课程特点和教学研究现状, 提出了一种自底向上的授课模式。该模式在教学内容安 排上以详细设计一概要设计一需求分析为序, 其间贯穿完整案例。案例教学采用学生辩论方式进行授课。考核方式实行理论考核百分制与实践五分等级制相舍的方式进行。实践证明这是一条行之有效的软件工程课程教学模式。

对软件工程课程自底向上教学模式的探试索

  关键词:软件工程; 自底向上教学模式; 案例; 辩论

  一、软件工程课程特点

  软件工程是高等学校计算机专业一门重要的专业课程, 它是指导计算机软件开发和维护的学科, 包含着指导人们更好地开发软件的方法和原则。软件工程课程内容丰富、知识关系复杂, 理论性和实践性都很强。理论知识是从长期的工程实践中总结、提炼出来的原则和经验, 对实际软件开发具有重要的指导意义。但是, 理论抽象、枯燥, 概念、原则繁多, 不容易学, 学生兴趣不浓。实践性知识是软件工程教学的关键, 但是其规模庞大, 操作复杂, 学生难以入手, 难以掌握重点与精华, 可操作性差。

  软件工程是一门教学难度较大的课程。主要原因有:

  第一, 软件工程作为一门指导计算机软件开发与维护的工程学科, 研究的范围很广。

  第二, 软件工程是一门边缘学科, 涉及的领域很多, 内容十分丰富。

  第三 , 软件工程是一个年轻的领域, 尚未形成成熟的教学模式, 教材也少有提供较为成熟的设计、训练和实践内容。

  二、软件工程课程教学现状

  软件工程的传统教学模式是采用以软件生命周期为序的单一的课堂讲授方式。该模式重理论、轻实践, 主要是以教师讲授为主, 学生是知识的被动接受者。学过之后学生熟悉了不少概念和术语, 但动手能力差。由于缺乏足够的软件工程实践, 学生对软件工程原则和方法的理解只能局限于表面, 难于深人体会和把握软件工程知识的精髓和本质, 更不知道如何运用软件工程的技术和方法来开发、维护软件。由于该课程是一门集方法性、思想性、标准和规范性于一身的`学科, 理论抽象, 实践可操作性差, 学生很难主动融人课程的教学中去,导致学生觉 得枯燥乏味,学习没有积极性。另一方面,该课程传统的考核方式是一卷制的原理、概念等知识的考核,导致学生考前突击,死记硬背,应付考试。

  针对软件工程传统教学模式的弊端,高校教师对该门课程的教学从教学思想、教学途径、教学方法、学习过程等方面进行了研究,认为课堂教学采用任务驱动与案例教学法较为合适。任务驱动,主要就是教师根据教学主题设计特定的软件设计任务,学生在完成任务的过程中学会并掌握软件开发与管理的一些基本技能、基本原理和基本知识的一种教学方法。案例教学,就是利用案例作为教学媒介的一种教学方法,通过案例分析使学生掌握理论。

  三、自底向上教学模式

  作者通过多年的软件工程课程教学,探索出了一种自底向上的教学模式。其主要思想如下:

  1、授课顺序

  目前,软件工程课程在授课内容的顺序安排上,一般均以软件的生命周期为主线,平铺直叙。该授课顺序对于从未接触过实际项目的学生来说,过于枯燥、生疏,跳跃性大,学生接受起来较困难。笔者采用以“详细设计一概要设计一需求分析” 为序的授课模式进行授课。该种授课模式既符合由简单到复杂的认识规律,又符合IT人员工作职位晋级顺序(程序员一设计师一分析师),且课程从程序设计逐步向上层讲起,学生易接受,过渡平滑,无生疏感。

  2、授课内容与授课形式

  总体上说,这种授课形式主要是用倒叙的方式贯穿完整案例(包含警戒案例),以启发、讨论、辩论的形式,讲授软件工程的原理、方法及过程。

  在详细设计阶段,首先,以程序警戒案例(是指不完全符合软件工程编码规范的)引入,让学生讨论该程序段是否为一段好的代码。同时,启发学生从程序的易懂性等方面考虑。‘如果学生存在着不同的观点,则采用辩论方式。然后对学生讨论的内容加以归纳、总结和补充,这样就自然而然地将有关编码风格方面的知识点也介绍了。

  其次,以小组为单位,下发不同的样本程序流程图(学生在程序设计语言课程中已经学过),要求学生用一门自己熟悉的语言书写符合编码规范的代码,交换各组的编码,讨论存在的问题,然后讲解其它的详细设计工具,如N—s图等。

  第三,仍以小组为单位,讨论如何为自己的编码(已调试成功)设计测试用例,掌握测试方面的知识点(此部分着重讲解单元测试)。

  在概要设计阶段,还原详细设计样本的软件结构图,先由教师讲解模块的概念,再由学生讨论模块划分的原理,最后教师总结、补充模块划分的原理、模块的独立性及其他概要设计的常用工具,并讲授组装测试的理论。

  在需求分析阶段,还原概要设计的数据流图和E—R图等,讲解事务分析和变换分析的原理,进行系统的确认测试及其理论的讲解。

  最后,对整个系统增加若干个小功能,以小组为单位对原系统进行完善性维护(要求以生命周期为主线)作为大作业,同时讲解其他维护类型。

  3、考核方式

  由于软件工程课程的理论性强,一些原理、方法、规范要求学生牢固掌握。对于这部分内容,以闭卷的方式考核,采用百分制。而对于一些实践性的内容、课堂讨论的表现及最后的完善性维护的大作业,作为平时成绩,以五级制记分。两部分在期末总成绩中各占50%。

  自底向上教学模式是以软件生命周期的逆序为授课顺序,使学生不觉生疏,易接受,又符合IT从业人员的工作进程。自底向上贯穿完整案例,且在案例教学中穿插警戒案例,不仅传授给学生什么是对的,而且传授什么是错的,为学生积累实践经验走了捷径;在教学过程中的讨论、辩论及其在期末成绩中占有一定的比例,激发了学生的学习热情与乐趣,促进了学生主动学习、勤于思考。最后的完善性维护大作业,使学生实践了软件开发的全过程,增强了该课程的实践性。实践证明,该模式无论在理论还是实践教学中均取得了较好的效果。

  参考文献: