《软件工程》实践性教学改革探讨

时间:2022-09-22 04:11:12

《软件工程》实践性教学改革探讨

摘要:软件工程是一门指导软件开发和维护的工程学科,是一门理论性和实践性都很强的课程。针对软件工程的课程特点,本文从更新软件工程教学内容、改革教学方法和手段、注重实践环节和课程设计、改善教学环境等方面,探讨了侧重实践的软件工程课程教学改革。

关键词:软件工程;教学改革;案例教学

“软件工程”是计算机及相关专业的一门专业课,是培养学生的软件开发能力和项目管理能力的一门重要课程,反映计算机专业人员综合应用的素质和能力。它要求学生在学习过程中不仅要注重概念、原理、方法和技术的掌握,还要注重方法、技术的实际应用。然而,在实际教学中,很多学生认为这是一门理论课,内容繁琐,感到枯燥,学习兴趣不大,待到用时又不知如何运用这些知识。同时,软件工程是计算机科学与技术领域的一个重要的学科,如面向对象的开发方法、CASE工具与环境、软件重用技术、网络环境下的软件开发技术等有了长足的发展,而目前的教材内容、实践环节等方面存在严重的缺陷,制约了软件工程课程的教学效果。

本文结合作者多年来的软件工程课程教学和科研的实践经验,就软件工程教学内容、教学方法和手段、实践环节安排、教学环境乃至考核方式等方面进行了一些探索和研究。

一、结合行业发展,不断更新教学内容

教学内容是连接教师与学生的纽带,是教学改革的重要内容,具有开放性、综合性,应体现学科之间的相互联系、体现现代性,反映科学发展、知识更新规律。

《软件工程》课程是一综合性学科,涉及计算机科学、管理学、数学、心理学等相关学科的知识。随着计算机科学的迅猛发展,与相关学科的联系更加密切。为适应21世纪学科发展的需要,要适当压缩传统的面向过程方法学内容,力求反映20世纪90年代以来面向对象方法学的最新进展。在教学过程中以软件开发过程为主线,重点讲解软件开发的分析和设计方法,内容涉及软件工程方法、工具、过程三要素,使学生从工程的角度认识软件开发,对软件开发有比较完整和深入的认识,了解国内外软件工程学发展的现状和趋势,并且在更广阔和更高层次上加深对软件工程学的认识,为后续课程及相关工作的开展打下坚实的基础。

在教材选择方面,宜采用中英文教材结合的方式。对于基本理论和基本方法部分使用中文教材,对于新方法、新技术以及国际标准等内容则直接使用相关的英文资料,并鼓励和推荐学生课外阅读英文资料,更好地了解其最新发展。

二、采用立体化教学手段

在软件工程的教学过程中,采用多种立体化教学手段,拓宽学生的知识面,以及更强的独立思考、团队协作和解决问题的能力。

1.多媒体课件。采用多媒体教学手段,制作内容丰富、形象生动的课件。这些课件不仅能形象地讲授软件工程基本原理,而且使得课堂信息量更大,教师还可以演示和讲授软件工程工具。还有部分课件被制作成自学模式,以便于学生课外扩展知识。

2.双语教学。对软件工程可进行双语教学,采用国外优秀的原版教材,课堂板书和作业都采用英语作为工作语言,并鼓励学生使用英语解答;同时给学生提供英文的课外阅读资料,让他们及时了解国际上学科的最新发展。

3.实践。在课外,采用大量的项目演练。项目以团队操练的方式进行,一个项目组由5~6名学生组成,分别担任项目经理、客户、上级经理、系统分析员、程序员和测试员等角色。由教师为其提供一个虚拟的项目情景和要求。项目组根据项目需求,制定项目计划,进行分析、设计、编码和测试,运用所学知识,分工协作、查资料、探寻问题的解决方案。应注意培养学生遵守职业道德、法律和纪律,尊重知识产权。必须发挥团队的作用,提高学生在团队中工作的能力,培养学生交流、沟通、协调及与用户合作的能力。进入课程设计阶段,学生就能够进行实际软件项目开发。

4.课程网站。建立软件工程网站,组织和帮助学生的探索性学习,促进学生的主动发现和主动探索,扩展课堂教学。在网站上课程安排、教学大纲、师资介绍、作业、多媒体课件、实践要求、常用软件工程模板、自测题等内容,同时提供大量有价值的参考书籍清单和电子文献,供学生随时查阅,学生还可以随时和教师在网上进行交流和答疑,变学时有限的教学为在读期间的全程教学。

5.探索校企合作。软件工程具有显著的实践特点,其教学内容必须与当前软件行业的发展和需求保持同步。因此学校应该与实力雄厚、管理规范的软件企业建立合作关系,及时了解行业发展动态,调整教学内容。聘请既有理论知识又有开发经验的软件工程师为学生做有关先进的工程技术和管理规范方面的专题报告,让学生了解企业开发软件项目的全过程、软件开发的实际问题、行业现状以及发展趋势,及时调整学习方向,增强学习的主动性和积极性。

三、进行案例教学

软件工程讲授的原理、技术、方法都很抽象,容易产生枯燥乏味的感觉。为了使学生能深刻领会和理解软件工程的思想和方法,在教学中引入实际案例,将复杂抽象的概念用具体生动的案例进行诠释,能够收到事半功倍的效果。具体可采用以下步骤:

1.设计一个典型的、完整的、易于理解的、实际的软件项目案例。在整个教学过程中结合该案例讲授每个知识点,将实际案例作为贯穿所有知识点的主线。该案例最好来源于授课教师直接参与的软件项目,授课教师对其全部细节能够准确掌握。

2.讨论案例。在讲授一个重要的知识点后,安排一到两节的案例课,针对知识点设计多个案例。教师用语言叙述案例,其中隐含着有待解决的问题及其所处的客观条件,学生通过认真阅读案例,查阅相关资料,理出头绪,明确给定条件,找出主要问题并做好记录。然后分析问题,制定针对性的措施,提出解决主要问题的可行方案,并对方案进行初步评价。

3.组织小组讨论。将学生分成五至六人的小组,每位学生运用所学知识对案例进行分析、说明,提出解决的措施,重点阐述分析、设计的理由。然后,大家集思广益,小组内展开讨论,并由专人记录,讨论的重点是对各个解决方案的相互对比和分析评价。最后,选出一个较为合理的解决方案,或者对所有方案进行整理和归纳,得到一个最佳方案。

4.小组代表发言,集体讨论。每组派一名代表上讲台,讲述本组对案例的理解、分析、判断、论证和决策过程,说明解决问题的方案和分析设计结果。对于同学发言老师要给予必要的引导,鼓励他们多角度、多因素地观察分析问题,培养学生的知识迁移和拓宽思维的能力,启发他们学以致用的意识。然后,组织全体同学进行分析、讨论、评价。对于非确定型的决策问题,同学问往往存在着意见分歧,结论很难统一。这一过程可以增加学生对软件开发项目的感性认识和兴趣,提高他们分析问题和解决问题的能力。

5.教师总结。在案例讨论结束时教师要进行总结,因为解决案例问题的决策方案不是唯一的,所以教师的总结应是就整个讨论情况做出评价。对正确的论点给予肯定和完善,指出一

些原则性的问题,特别是对某些问题可以更深一步思考,进行启发式诱导。

案例教学法通过案例贯穿软件工程各知识点的讲授,将枯燥的理论与实际紧密结合,变抽象为具体,帮助学生充分理解和掌握各知识点;通过组织学生参与案例讨论,让学生置身于模拟的真实环境中,扮演不同的角色,身临其境,真正从“工程师”的角度考虑问题,学习如何应用知识解决问题,是软件工程课程进行实践性教学改革的一个重要环节。

四、强调实践教学环节,合理安排课程实践

软件工程课的目的是使学生能够真正在大型软件开发活动中贯彻软件工程的思想,正确使用软件开发方法,提高软件质量。为加强实践环节,教学中可采用以下方法:

1.重要的基础概念和基本方法必须进行实践。例如,需求分析建模的重要工具数据流图、实体关系图和面向对象建模等,这些知识看似容易掌握,但做起来可能会漏洞百出。在讲述相关内容时,应及时安排实验,检验学生是否掌握基本工具的使用。

2.将CASE工具贯穿于所有的软件开发活动。例如,在介绍基于UML的面向对象软件开发方法时,学生即可通过RationalRose针对实际应用问题构造UML模型。

3.根据软件工程课程实践性强的特点,结合教学进度,开设综合性的设计型实验一《软件工程课程设计》。该课程设计与《软件工程》课程的理论教学内容紧密配合,同步进行,让学生通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养创造性的工程设计能力和综合分析、解决问题的能力。

课程设计的具体内容是:在教师指导下,按照软件工程的开发技术和管理规范,开发小组进行“应用软件项目开发”。课程设计过程中,开设1~2次“软件新技术讲座”,并提供丰富的“教学资源”,为学生提供帮助。其主要内容是按照“案例导向、项目驱动”的设计思想,模拟软件企业先进的软件项目管理和开发过程,进行“应用软件的开发实践”。以项目开发带动软件工程的理论学习,又以软件工程的理论来指导软件开发的实践。使学生得到较全面、系统和规范的软件工程实践的训练,培养创造性的软件设计能力和综合分析、解决问题的能力。

软件开发是智力活动,同样的软件项目,不同的软件开发组织和人员采用的方案,耗费的时间、资源、成本,软件产品的质量可能相差很多。一个重要的因素是软件开发组织和人员的创新能力和水平。因此,在教学和软件开发活动中应营造一个宽松、和谐的环境,努力培养学生的创新精神和创新能力。

五、重视教学和科研环境建设,建立软件工程实验室

有效地使用软件工具和软件开发环境,对提高软件开发质量、效率,保证按时交付具有十分重要的作用,应加大软件实验室的建设力度,重视流行软件工具和软件开发环境的有效使用,提高学生的软件开发能力。如面向对象的软件建模方法、数据建模方法、软件度量方法、软件测试方法、现代软件管理方法、开发工具Rational Rose、Power Designer等不仅教师要掌握,学生也要尽可能熟悉。要熟悉和掌握的软件工程工具包括:分析设计工具、程序设计工具、软件测试工具、配置管理工具等。将这些工具贯穿教学及其软件开发活动,既有利于教师提高自身的研发能力,也能够让学生接触和学习各种CASE技术,锻炼他们的软件开发能力。

软件工程实验室需要配备适用的软硬件设施和比较科学先进的软件开发工具,以便为软件工程的教学和研究创造『必要的环境与条件。通过实验室建设,不仅可以加强教学效果,还可以进一步提高教师的科研水平。

六、改革教学评价体系

作为实践性课程,软件工程的考试方法有别于其他课程,检验的重点不是理论考试成绩,而是学生能否在软件开发过程中贯彻软件工程学的思想和方法。考核不仅是检验学生学习和掌握课程的情况,更重要的是鼓励和督促学生学习的主动性,注重学生综合知识和应用能力方面的考核。我们提出的方案是:平时作业占10%,课程设计占40%,笔试占50%。笔试要注意两个方面:一是反对死记硬背,进行开卷考试;二是卷面综合性题目、实践性题目占主要部分,重点考查学生综合运用理论知识的能力和方法,考核学生对软件工程思想和软件开发方法的实际掌握程度。

信息化需要大批软件人才,为适应信息化建设的需要,“计算机科学技术”学科的内涵和方向都需要扩展。软件工程是一个充满活力的新兴学科,软件工程教育以计算机科学为基础,需要从更新软件工程教学内容、改革教学方法和手段、注重实践环节和课程设计、改善教学环境等方面进行探索和研究。此外,还需要该门课程的教师不断学习、更新和实践新理论、方法和技术,提高自身的理论和科研水平,以科研促进教学。

上一篇:对构建现代冶金工程教育新模式的思考 下一篇:大学英语课堂教学中的言语控制