“软件工程”课程教学改革的探讨(16页).doc
文本预览下载声明
“软件工程”课程教学改革的探讨
摘要:“软件工程”是一门理论性和实践性非常强的课程。针对目前“软件工程”的教学现状,本文对软件工程教学内容的更新、教学方式与考核方式的改进、理论结合实际以及加强实验室建设等方面的改革提出了具体的观点和实施方案。br 关键字:软件工程;教学改革;教学方法br br “软件工程”是指导计算机软件开发和维护的工程学科,是培养学生软件开发能力和项目管理能力的一门重要课程。其教学效果直接影响到学生毕业后从事软件开发和项目管理的能力。然而,在实际教学中,学生总认为这门课内容枯燥无味、繁琐,学习兴趣不大,待到用时又不知如何运用。同时学生的课堂表现又极大地挫伤了老师讲课的积极性,很难达到较好的教学效果和教学目的。因此,本课程急需改革,本文结合作者多年来从事软件工程教学和科研的实际体会,对软件工程的教学改革提出了若干建议。br 1更新“软件工程”的教学内容br 目前,计算机行业需要的软件工程师是既掌握软件开发技术,又懂项目管理的复合型人才。我们认为“软件工程”课程应强调软件工程的思想与方法,突出软件工程的过程概念,侧重软件工程应用能力的培养。因此,考虑不断更新充实教学内容。根据美国计算学会ACM(Association for Computing Machinery)在2001年制定的ACM草案,软件工程的七大核心专题为(1)软件工程过程和软件生命周期模型;(2)需求分析;(3)软件设计(以面向对象系统分析——OOSA,面向对象系统设计——OOSD);(4)测试和评估;(5)软件进化(强调可维护软件的特征,软件成熟度、软件重构和软件重用等);(6)软件项目管理(强调软件开发人员的组织、项目进度、软件评估、项目风险、软件质量保证、软件配置管理、项目管理工具等);(7)软件工具和环境(重点为编程环境、需求分析建模工具、测试工具)。这七大核心内容是掌握软件工程理论的最小子集。然而,目前国内出版的教材基本上没有覆盖这七大核心内容,有的甚至还停留在面向过程的传统软件工程学的详细论述上。为此,我们参考了国外经典教材和软件工程学的最新研究成果,将软件工程教学内容分为5个教学模块,即软件工程基础、软件项目管理、传统的软件工程、面向对象的软件工程,软件工程的最新技术[1]。其中软件工程基础包括软件工程概论、软件过程、建模语言、软件项目、风险分析和管理内容。软件项目管理包括项目进度计划与控制、质量保证与配置管理内容。传统的软件工程包括需求工程、系统设计、软件测试内容。面向对象软件工程包括面向对象分析、面向对象设计、编码实现、面向对象测试内容。软件工程的最新技术包括基于组件的开发方法、基于构件的开发方法、敏捷开发(XP)等。其中每个模块都是独立的教学部分,模块之间有一定的联系,但可有选择地进行教学。可根据不同的教学计划,将几个模块组合讲授[2]。br 2学生学习中存在的问题br “软件工程”课程涉及计算机、经济学、管理学、工程学、市场学等多个领域的知识。由于涉及的内容太多、太宽,学生感觉这门课程包含的知识非常广泛。在教学中,我们发现学生么涉及算法设计,逻辑推理较少,不像程序设计课程(如C/C++语言、JAVA语言)那样能带给学生智力上的快感,激发学生的兴趣和热情。在学习理论知识时,由于没有开发经验,学生很难将软件工程的抽象理论与实际联系起来,很难体会该门课程的指导实践性,容易产生枯燥乏味的感觉。br (2) 学生轻视软件工程的价值。在学校,学生开发的一些程序,一般都是小型软件系统,在规模和复杂度上都远远不如实际开发的系统。对于这些系统,学生只需写少量的代码。在这些小规模的非正式系统中运用软件工程,很难体会得到软件工程的作用。因此,学生容易轻视软件工程的价值。br 3 “软件工程”教学的改革措施br 3.1理论结合实际,采用案例教学法br 软件工程讲授的原理、技术、方法都是抽象的。为了使学生能够深刻领会和理解软件工程的思想和方法,在教学中创造条件引入案例,将复杂抽象的概念用具体案例进行解释,能够收到事半功倍的效果。例如,在讲解需求分析内容时,我们以“教材购销系统”作为教学案例,详细介绍了需求分析四步骤:需求获取、需求建模、编写需求说明文档、需求验证。这样将枯燥的理论与实际紧密结合,变抽象为具体,有利于学生充分理解和掌握各知识点。br 其次,我们一改“一言谈”,“一人谈”的传统教学模式。在讲完每个知识点后,安排一次案例讨论课。一般要求讨论案例不同于教学案例。例如,讲授完需求分析内容后,我们以学生较熟悉“图书馆借阅系统”作为讨论案例。在课堂上将学生分成几个小组,每组成员分别扮演用户和开发者的角色,模拟实际开发情形,运用所学知识展开讨论。讨论之后,要求学生再根据
显示全部