◆王秀珍 陈 萍
(中国人民解放军陆军军官学院)
软件工程课程教学方法探讨
◆王秀珍 陈 萍
(中国人民解放军陆军军官学院)
软件工程,是计算机专业的基础课程,它对学员以后从事软件开发起着举足轻重的作用,因此我们要重视软件工程课程的教学。立足学院计算机教育的现状和当今军队对IT人才的需求,并结合自身担任软件工程课程的教学工作,提出了一系列行之有效的教学方法。有效地使用这些教学方法可以激发学员的学习兴趣,提高学习效率,促进学员、教员和教学资源之间的知识交互,并使得理论与实践能紧密融合。
软件工程 教学方法 主动性 创造性
软件工程是一门理论性和实践性都很强的学科,软件工程课程的教学分为两种形式:理论教学和实践教学。教学的目的是帮助学员获得用知识和技能解决实践问题的能力。理论教学必须为学员提供指导,来促进学员高级思维能力的发展,培养学员的自主学习能力以及在团队协作中共同解决复杂问题的能力。
软件工程课程内容繁杂,理论与技术方法众多,课程中涉及的概念、原理比较抽象、复杂,理解困难,学员在学习过程中容易感到枯燥、乏味,难以激发学习热情,所以教员在实际的教学过程中应注意多种教学方法的合理运用,以提高教学效果。
理论教学方法就是在理论课的讲述过程中所用到的教学方法。笔者在理论课的讲述中,所用到的教学方法大致有下列几种:多媒体教学、案例教学、启发-探索式教学。
信息化社会必然要求有适合信息化社会的教育条件。“工欲善其事,必先利其器。”多媒体就是一种已经打造好的教学“利器”,我们要充分利用好多媒体资源以增大课堂的信息量,拓宽学员的知识面,提高教学效率。在多媒体教学中,节省了大量板书的时间,教员可以经常采用“提问一回答”的交互方式,鼓励学员提出问题和讨论问题,充分发挥学员的思考威力,增加了教学的灵活性,更有利于引导学员思维,增强师生间的交流,形成教与学的互动,促进教与学的相长。
案例教学法就是在理论教学中引入实际案例,将复杂抽象的概念用具体生动的案例进行诠释。同传统的教学方法相比,案例教学法具有亲验性、启发性、参与性、实践性等特点,是培养学员创新和实践能力的重要手段。
软件工程课程具有强烈的工程和项目背景,在软件工程理论教学过程中,如果单纯地讲解空洞乏味的原理、概念和方法,会使缺乏软件开发实际经验的学员有种“丈二和尚摸不着头脑”的感觉,遇到具体项目时无法下手。案例教学不仅可以帮助学员学会软件工程的思想、方法和技术,而且可以加强学员团队合作能力的培养,有利于启发学员创新潜能、提高学员实际解决问题的能力,达到事半功倍的效果。
软件开发的典型案例,是帮助学员掌握软件工程方法、进行软件开发的最好范例。在教学过程中,教员应精心选择与专业有关、学员熟悉、且功能完整的案例(如部队公文管理系统,军事训练信息管理系统,学员学籍管理系统,联合作战指挥信息系统等),将这些经典的案例贯穿于理论知识的讲解中,使学员真正理解书中的理论知识,建立软件开发的系统化与工程化观念和质量意识。
例如,在讲授需求分析这章时,可以以学员较熟悉的“学员学籍管理系统”作为讨论案例,先要求他们按软件工程学的思想和方法认真做好需求分析,然后组织课堂讨论,进而得出需求分析的步骤:需求获取、需求建模、编写需求说明文档、需求验证。在这个过程中,同学们能够深刻理解和掌握需求分析的方法和步骤,并充分认识到需求分析的重要性。
在讲授软件工程技术这章时,可以结合军事训练系统管理系统案例,讲解需求工程、软件体系结构设计、用户界面设计、详细设计、软件测试等内容。将枯燥的理论与实际紧密结合,变抽象为具体,有利于学员充分理解和掌握各知识点。
启发-探索式教学是通过教员的提问,引导启发学员进行深入思考、分析和讨论,促进学员积极探索。对于基础理论部分采用启发-探索式教学更能让学员深刻理解和体会抽象的理论知识,通过课堂互动讨论,营造活跃、轻松的课堂气氛,同时,也锻炼了学员的分析能力和团队交流合作能力、学会探求知识的方法。
启发-探索式教学是一切教学方法的灵魂,如何把启发-探索式教学的指导思想融入到讲授中去是关键。笔者十分注重启发-探索式学习,上课时提出一个或几个有意义的问题,鼓励学员课后查阅资料,让学员与软件从业人员进行接触与交流,从而真正体会到当前软件工程理论在实际项目中的应用。
例如,在讲解软件过程这部分内容时,在学员了解各个软件过程模型的特点之后,给出一系列实例让学员来选择开发模型,分析讨论什么样的开发模型适合什么样的实例开发,使学员深刻理解每个模型的优缺点。通过实例分析,启发学员如何探求知识,逐步培养学员提出问题、解决问题的能力,通过教与学的互动作用,充分调动学员的学习主动性、创造性。
实践教学方法就是在实践课的指导过程中所用到的教学方法。笔者在指导实践课时,所用到的教学方法大致有下列几种:项目驱动教学、任务驱动教学、案例-任务驱动教学。
项目驱动教学法,是指在软件项目实施过程中导入软件工程的基本概念、原理、技术和方法。项目驱动实践教学要求学员以开发团队的方式开发一个具有一定规模的软件系统,使学员接触到实际的问题和环境,熟悉一个软件开发项目的全过程。项目驱动教学增强了学员对软件开发项目的感性认识和兴趣,从而学会在真实复杂条件下,利用所学理论知识解决实际问题,侧重培养学员发现问题、独立分析问题和解决问题的能力以及团队合作精神。
实践项目内容应该具有可操作性和适当的难度,可操作性保证学员都能完成实验,帮助学员树立学习信心,适当的难度有助于培养优秀学员进一步钻研的精神。
例如,让学员开发一个自己经常使用的系统“在线考试系统”。在软件分析时期,首先进行此项目可行性分析,然后对几种过程模型进行分析和对比,选择合适的过程模型。在这阶段过程中,就导入软件工程的基本概念、可行性研究的任务和步骤、软件生命周期的划分及软件过程模型的分类等。在需求分析阶段,通过对需求获取过程来导入需求获取的方法、进行系统分析的方法、应注意的问题等。在软件设计时期,导入概要设计和详细设计的概念、步骤和方法等。在编码与测试时期,通过对该项目的编码和测试使学员理解如何选择程序设计语言,如何测试及调试软件,导入软件测试的技术和方法等。另外,可以使用建模工具和测试工具进行软件的分析、设计和测试,使用配置管理工具将所产生的各种文档控制在有序管理之下。
任务驱动教学法是将软件工程整个课程学习内容划分为若干个特定的任务,每个任务包含特定的知识点,并且在实践环节中完成设定任务的教学法。采用任务驱动教学方法,只要完成了课程中设定的任务,就可以掌握全课程学习的内容。软件工程课程的实践内容需要以小组为单位在课外完成,结合学员在理论基础、能力素质、个人兴趣等方面的能力,激发出学员学习的积极性和创新意识,推进学员自主学习的动力、有利于各小组技能水平的不同表现,有利于不同层次学员实践创新能力和专业素质的全面提高。
笔者在学员进行课程设计时采用了任务驱动教学,其基本过程为:提出任务、分析任务、学员操作、交流讨论、巩固创新、总结等。例如,以小组为单位让学员用不同的语言编程实现给定的设计任务,不同开发小组可以选相同的设计课题也可以选不同的设计课题。小组既有分工到个人成员的特定任务,也有需要共同协作才能完成的任务。在课程设计的过程中,对应于软件生命周期的各个阶段,学员在开发过程中体验不同阶段所承担的不同角色和需要完成的任务,同时强调目标管理、时间管理、合作意识、团队意识、工作意识、品质意识、等方面的重要性。
案例-任务驱动教学法,顾名思义是案例教学法和任务驱动教学法相互结合的一种综合教学方法。案例-任务驱动教学法以“案例”为引导,以“任务”为驱动,将教学内容分解于一个个任务模块中,在任务的实现过程中完成真正意义上的知识建构。
在软件工程实践课中合理、有效地使用案例-任务驱动教学法能够充分调动学员学习的积极性,提高学员实践能力和创新能力,最终达到使学员有效地实现对当前所学知识的意义建构的目的。
案例-任务驱动教学的基本过程为:选择并设计案例、剖析案例提出任务、实现任务和总结评价。例如,选择学员熟悉的“学员管理系统”为案例,本系统目的是为了实现学员管理信息化,其基本功能应包括:(1)学员基本资料管理、军事素质管理、奖惩管理、成绩管理、内务管理、职务管理等;(2)实现多条件检索;(3)生成交叉报表。再把每个基本功能细化成任务模块,如成绩管理基本功能可以划分成成绩的录入、成绩的查询、成绩的修改和成绩的备份等任务模块。对于比较简单或单一的任务,学员可以查阅有关的教材、资料进行自主学习实现。对于综合性较强、难度较大的任务,可以通过小组讨论、交流进行协作学习。当学员完成任务时,教员应对其学习成果进行展示、分析和评价。
软件工程课程具有较强的实践性,是各种开发经验的总结与提炼。通过探讨和采用多种教学与实践方法,重视学生对知识的理解和运用,避免死记硬背,提高了学生的主动性和创造性,效果明显。
[1]路阳,董宏丽.软件工程案例教学浅议[J].长江大学学报(自然科学版)理工卷,2010,6(7):386-387.
[2]朱新峰,李斌.软件工程课程教学研究[J].江淮工学院学报(社会科学版.教育论坛),2010,8(8):96-98.
[3]张静,裴春琴,宗春梅.《软件工程》课程教学改革探讨[J].现代计算机,2010,(9):84-85.
[4]周应强,易俗,田宝勇.案例-任务式教学模式在计算机基础教学中的探索与实践[J].计算机教育,2009,(13):167.