“软件工程”教学改革与实践

时间:2022-09-25 04:19:47

“软件工程”教学改革与实践

摘要:本文针对社会对软件开人员的知识结构需求,给出了软件工程教学内容的设置原则,并提出了基于项目驱动的理论教学和实践教学模式,最后给出了课程考核指标与依据。实践结果表明新的教学体系可明显提高学生的学习兴趣与软件开发能力,教学效果显著。

关键词:软件工程;教学改革;教学实践;项目驱动

中图分类号:G642 文献标识码:B 文章编号:1672-5913(2009)04-0059-02

1 引言

软件工程作为计算机科学各专业的核心专业课,旨在培养学生综合应用所学的各种基础知识来解决实际问题,使学生具备一定的软件开发、维护与项目管理的能力。软件工程的教学成效对学生毕业后从事软件开发和管理有着十分重要影响,然而我国软件工程教学普遍存在以下问题:(1)教学计划陈旧,课程内容和社会需求脱节,导致学生的知识结构无法满足软件企业的需要;(2)教学偏重于理论讲解,脱离了具体实例的授课模式使得软件工程的基本原理、思想、方法和项目经验,成为空洞、枯燥、乏味的概念和教条,不容易学习和掌握,无法调动学生的学习兴趣。(3)缺乏足够的软件工程实践。学生对软件工程原则和方法的理解只能局限于书本,难以深入体会和把握知识的精髓和本质,无法达到预期的教学目标。

传统教学模式已不能适应软件开发人才培养的需要。针对这种情况,我们对软件工程课程进行了系统的教学改革,在紧跟社会需求安排教学内容的同时,探索了基于项目驱动的理论教学与实践教学模式。

2 教学内容设置

在软件工程教学内容设置上强调“新”。传授软件企业目前主流使用的开发技术、管理技术以及相关的CASE工具,使学生掌握的知识结构与社会需求一致:

(1)紧跟软件企业所使用的主流技术,不断更新授课内容。面向对象软件开发方法已经成为当前业界的主流,在介绍传统的面向过程的开发技术的同时,重点对使用UML(统一建模语言)和UP(统一过程)进行面向对象分析、设计及开发做深入分析和讲解。此外,还对面向构件软件工程、净室软件工程、形式化软件工程、敏捷开发等新技术进行介绍。

(2)重视项目管理技术。中大型软件开发是一项复杂的系统工程,离开了良好的组织与管理往往会导致开发的失败。在授课中给学生传输软件开发企业的管理流程和先进的管理方法和理念,实现学生从一个程序员上升到项目管理者的转变。

(3)注重文档编写能力的培养。软件工程一个重要的特点是规范化与文档化。在软件开发过程中需要撰写大量的分析设计文档来对软件的开发过程与质量进行有效的控制与管理。对于理工科学生来说,往往文档编写能力较差,因此在教学中应要求学生高质量的完成相应开发文档的编写,以提高其文档撰写能力和水平。

(4)传授优秀的CASE工具。计算机辅助软件工程(CASE)工具为软件开发提供了自动化或半自动化的支持,极大的提高了软件开发、维护、管理的效率和质量。学生应熟练掌握常用优秀CASE工具的使用,如项目管理工具Project、UML分析建模工具Rational Rose、数据库建模工具Power Designer、版本控制工具VSS、CVS,测试工具WinRurmer、LoadRunner、TestDirector、JUnit等。

3 教学过程组织

在教学过程的组织上,强调理论与实践相结合。采用基于项目驱动的教学模式,以一个典型的软件项目开发实例作为授课主线,在软件工程理论指导下,一步步完成系统的分析、设计、开发、测试及维护,并将各开发阶段用到的软件工程原理、技术、方法和CASE工具等知识融合到项目开发中,极大降低了课程内容的抽象性和难度,提高了学生的学习兴趣。在开发案例的选择上,应在学生比较熟悉的领域里选择一个合适的项目,如饭卡管理系统、网络自动售货机系统、门禁系统等。此类软件业务功能相对简单,却具备了信息管理系统、实时监控系统及分布式系统等常用软件的特点,一方面便于学生整体把握待开发系统,另一方面通过案例学习可以掌握常见软件分析设计方法。另外要求学生在课程的学习中,选择一个合适的软件项目进行同步开发,将学习到的软件工程知识应用到实际项目开发中,以提高学生分析、设计和开发能力。

在授课方式上,充分利用各种现代化的教学手段:(1)使用多媒体教学课件,利用多媒体教学图文并茂、信息量大的优点,增强了教学的质量和效果;(2)利用多媒体教学平台直接给学生展示开发工具和CASE工具使用方法,以及教学案例的分析、设计和开发过程;(3)建立“软件工程教学网站”,提供教学大纲、电子教案、业界动态、新技术介绍和课程实验所需要的各种资源,并为广大师生提供了方便快捷的网上交互式学习平台,最大限度满足学生自我学习、主动学习的需要。

4 实验环节安排

为了进一步提高软件工程的教学效果,在实验环节的安排上和组织上,尽可能的给学生提供一个近似于软件开发公司的开发环境,将通常学生只有在毕业后参与实际项目开发中才能体验到的软件开发过程与软件工程管理知识提前到在校期间的软件工程课程实践中。

在实验环境的搭建上,安装了当前软件开发企业所使用的主流软件开发平台和CASE工具。在实验环节的安排和组织上,强调模拟公司化管理。要求4~6名同学成立一个开发小组来模拟软件公司(可以有自己个性化的公司名称),并选择一个合适的应用项目,按照软件企业的正规开发流程组织实施,以开发实际可使用的软件作为目标,结合课程的学习进行同步开发。在整个项目的开发中,授课教师担任项目总监,以控制项目的进度和质量;小组成员可根据个人的能力特长扮演项目经理、配置管理员、数据库管理员、软件工程师、测试工程师等,以熟悉和掌握软件项目开发团队中的各角色的任务、作用、软件开发过程、规范和执行方法。在锻炼软件设计和开发技能的同时,让学生亲身体验到软件开发企业的开发氛围,并且培养学生多人之间的沟通能力和团队协作精神。

授课教师参考国家标准制定详细可行的《软件开发规范》,规定项目开发流程,各开发阶段的任务及标志性成果,遵循的规范和质量标准等。学生严格按照规范的要求,完成整个项目的分析、设计、实现及测试,并撰写相应的文档。指导教师对学生的开发工作进行必要的指导,并对学生提交的文档、报告及程序进行质量审核与交流,对检查中发现的问题和不足,要求进行改进和完善后方可进入下一个阶段。项目完成后组织答辩,让组长对他们的项目作概要陈述,并让每个小组成员说明在整个项目开发过程中所完成的工作,教师和其他同学可针对其负责的部分进行提问,这样可以帮助同学发现工作上的不足和潜在的问题,有助于提高对知识的理解与掌握。

5 成绩考核

软件工程作为实践性很强的工程学科,考查的重点不应是纯粹的理论,而是学生能否真正具备运用所学知识进行软件开发的能力,因此必须加大实践能力考核的力度。我们的评定方案是平时与卷面考试各占总成绩的50%。平时成绩的以课内实验的成绩为主,评定依据是各软件开发小组提交的文档和最终的开发好的软件,并参考每个小组成员在项目中的贡献。在卷面考试里,除了考查一些软件工程的重要原理和概念外,重点检测学生的软件分析与设计能力,综合设计题目占到试卷分值的50%以上。目的是以考核手段为导向,促进学生对软件工程知识的学习和软件开发能力的提升。

6 结束语

全新的软件工程教学体系不仅极大的激发了学生学习的积极性、主动性和创新性,同时提前为学生进行了系统的软件开发培训,使他们的知识结构能够适应软件行业发展的需要,实现与社会的无缝连接。从近几年的毕业生反馈信息看,经过软件工程系统的学习与训练后,他们的软件开发能力与素质有了明显的提高,增强了就业竞争力,特别是参加工作后能够很快胜任企业分配的开发工作,为日后的事业发展打下了良好的基础。

上一篇:艺术设计专业Photoshop教学的改革与实践 下一篇:“ASP.NET技术与应用”课程教学方法研究