“软件工程”课程教学内容及教学模式改革探索

2010-03-27 06:55罗海丽
电脑与电信 2010年8期
关键词:计算机科学软件工程课程设计

罗海丽

(内蒙古科技大学信息工程学院,内蒙古包头014010)

1.引言

“软件工程”是计算机科学与技术专业的一门重要的专业必修课程,它的内容主要涉及与软件开发和维护相关的概念、原理和方法,这些概念、原理、方法对于实际的软件开发起重要的指导作用。近几年软件工程学科发展较快,出现了许多新技术、新分支。现有的软件工程教材种类很多,但所涉及的侧重点各不相同,有必要根据不同学校计算机专业的专业方向及培养目标,选择适合的教学内容,以做到有针对性的教学;“软件工程”课程内容主要涉及与软件开发维护相关的原理和方法,这些内容若没有软件开发实践做支撑,势必显得空洞乏味。因此有必要从课堂教学、实验教学、实践教学这三个环节入手探索“软件工程”课程的一种新的教学模式。这种新的教学模式通过案例教学、实训式实验及综合实践相结合,帮助学生更好地掌握“软件工程”课程内容,并培养学生实际软件开发的能力。

2.规范教学内容

2.1 软件工程领域的知识体系

软件工程领域的知识体系如图1所示。

图1 软件工程领域的知识体系

2.2 结合计算机科学与技术专业方向精选教学内容

按照教育部计算机科学与技术专业规范,计算机科学与技术专业分为计算机科学、计算机工程、软件工程、信息技术这四个专业方向。不同的专业方向的特点及培养目标不同,因此不同的专业方向中“软件工程”课程的内容应有所不同。

计算机科学方向研究计算机和可计算系统的理论、设计、开发技术,着重于理论知识的教学和分析问题、解决问题能力的培养,以培养计算机科学研究型人才为目标。“软件工程”课程是该方向的核心课程。该方向中“软件工程”课程的内容应包括软件过程、软件过程的改善、项目管理、软件分析、软件设计、工具与环境等知识。

计算机工程方向研究计算机系统的理论、设计、实现、开发和应用。着重于理论和工程知识的教学,使学生掌握较高层次的计算机系统的分析、设计能力。软件工程是计算机系统工程的重要组成部分,因此“软件工程”课程是该方向的核心课程。该方向中“软件工程”课程的内容应包括软件过程、软件开发的方法与技术、工具与环境、软件生命周期。

软件工程方向研究如何用系统的、规范的、可度量的方法开发、维护软件。该方向的教学既重视理论知识和较高层次分析问题、解决问题的方法,也重视软件设计和工程实践。软件工程方向的知识要求几乎覆盖了软件工程领域的知识体系的全部。该方向只设一门“软件工程”课程是不够的,应设立一系列软件工程相关课程。应开设“软件工程导论”课程,用于综述软件工程知识体系及各部分知识;应开设“软件过程管理”课程,用于讲授软件开发工程、项目管理、软件质量管理、软件度量等知识;应开设“面向对象软件开发方法”课程,用于讲授目前应用广泛的面向对象的软件开发方法及该方法涉及的工具;此外,软件生命周期中的各重要阶段(如需求分析阶段,总体设计阶段,详细设计阶段,编码阶段,测试阶段)均需对应一门独立的课程,用于讲授该阶段的任务及涉及的工具方法[1]。

信息技术方向着重培养学生运用信息技术领域的核心技术、工具来构造满足需求的计算机应用系统的能力,即培养应用型人才。这一方向中的“软件工程”课程内容的选择应更具有实用性。“软件工程”课程内容应包括软件生命周期、软件开发方法与技术、软件开发过程中涉及的重要工具与环境。

3.改革教学方式

在计算机科学与技术专业的四个专业方向中“软件工程”课程都是重要的专业必修课,该课程的教学效果直接影响到专业的发展,因此有必要从课堂教学、实验教学、实践教学这三个环节入手探索“软件工程”课程的一种新的教学模式。

3.1 案例辅助教学

“软件工程”课程主要内容涉及指导软件开发的原理、方法、工具。若脱离了软件开发实践,这些原理、方法、工具会变得枯燥、难懂。在“软件工程”课程教学中引入案例辅助教学能有效地提高教学质量。课程中的每个重要知识点都应配备若干相关案例。在整个课程的教学中应有1到2个贯穿始终的综合案例。综合案例应为一个较为实际的软件系统的开发过程,包括问题定义、可行性研究、需求分析、总体设计、详细设计、编码、测试。综合案例中应包含各开发阶段中涉及的任务、技术、方法及工具。学生应在课余时间认真阅读案例,并进行分析,老师同步在课堂上讲授案例,然后学生在实验课中,按照案例中的步骤重视案例中的系统开发过程,最后总结归纳[2]。

3.2 实训式实验

实训式实验是通过实例演示及模拟、课堂练习、课后作业这三个环节使学生通过实验训练很好地掌握相关技术及方法。实训式实验包含如下三个环节:

(1)实例演示及模拟

每个实验,教师应先讲解实验步骤及要求。之后教师讲解并演示一个案例,在此过程中学生同步模拟每个实验步骤。教师做一步,学生跟一步,若有学生出现问题,教师及实验员应及时辅导使其能跟上大家的进度。

(2)课堂练习

案例讲解演示之后,教师应布置1到2个类似练习题,学生参照前面所讲解的案例,按步骤完成这些练习。学生练习过程中教师应全程指导,实验课结束时学生应将实验结果以电子邮件形式发给教师,并书写实验报告。

(3)课后作业

实验课结束时,教师应布置一个相关作业,学生在课下参照教师讲解的实例及课堂练习完成作业,以巩固相关知识。

3.3 综合实践

“软件工程”课程的教学中应注重综合实践环节的建设。综合实践环节包括以下三个方面:

(1)“软件工程”课程设计

“软件工程”课程应设置两周左右的课程设计。课程设计的目标是让学生体验软件开发的全过程,且学会与他人合作,培养团队精神。课程设计过程中,学生分成若干小组,每个小组选择一个项目,该项目的规模应与课程综合案例的规模类似。每个小组应完成项目的问题定义、可行性研究、需求分析、总体设计、详细设计这些阶段。各个小组由组长负责组织、分工、控制进度等,对小组成员的最终课程设计成绩有一定的分数浮动调整权;组长带领全组顺利完成任务,总评可加一定分数。小组完成项目之后,应提交项目开发各阶段文档及课程设计报告。

(2)与其它课程的课程设计相结合

计算机专业的很多课程(如数据库原理、信息系统开发、数据结构、C语言等)的课程设计都与软件开发相关,可将这些课程的课程设计作为“软件工程”课程的辅助课程设计。在这些相关课程的课程设计中,可通过恰当地选择设计题目,将软件工程的原理、方法、工具应用于这些课程设计中,使学生体会到软件工程方法与各种软件开发的关系。

(3)与毕业设计相结合

计算机专业的毕业设计主要是进行实际的软件开发。目前毕业设计中学生一般面临全新的题目,设计过程中学生既要分析研究系统又要熟悉开发工具,这样很多学生会觉得头绪太多,忙不过来,最终不能完成一个理想的系统。鉴于此可将毕业设计作为“软件工程”课程设计的延续,延用课程设计中的分组,每个小组延用课程设计中的题目。由于课程设计时间较短,课程设计时各小组只进行了粗略并且简化的项目开发,在毕业设计的半年中,各小组可在课程设计的基础上进一步完善扩充已有成果,按照软件工程的步骤最终得到比较理想的系统。

4.结束语

“软件工程”课程应根据不同学校的专业方向及培养目标合理地选择教学内容,这样才能做到重点突出;“软件工程”课程的教学中应通过案例教学、实训式实验及综合实践相结合,帮助学生掌握“软件工程”课程内容,并培养学生实际软件开发能力。

[1] 计算机科学与技术专业规范起草小组.计算机科学与技术专业(软件工程方向)规范与专业建设研究报告[M].北京:高等教育出版社,2005.

[2] 王忠群,刘涛.《软件工程》教学方法的研究[J].现代计算机,2009,05:86-87.

[3] 陈昊,明仲.在软件工程实验教学中引入敏捷方法的探索[J].计算机教育,2008,24:46-47.

猜你喜欢
计算机科学软件工程课程设计
Privacy Preserving Solution for the Asynchronous Localization of Underwater Sensor Networks
龙凤元素系列课程设计
中秋明月
探讨计算机科学与技术跨越式发展
浅谈计算机科学与技术的现代化运用
重庆第二师范学院计算机科学与技术专业简介
依托工作室的软件工程实践教学研究
基于工程教育认证的《软件工程》课程教学质量建设研究 
关于如何创新和完善计算机软件工程管理的探讨
基于Articulate Storyline的微课程设计与开发