实践贯穿始终的软件工程教学模式

时间:2022-03-20 10:44:20

实践贯穿始终的软件工程教学模式

摘 要:软件工程是一门实践性较强的课程。针对课程的特点和本科阶段教学的重点,提出以实际应用为主导的教学改革方法,通过开展课堂教学改革、校园创新实验室、校外实习基地、课外实践等一系列以实践贯穿始终的若干教学活动,提高学生学习的积极性。

关键词:软件工程;实践;教学改革

软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义:

1)Barry Boehm给出的定义:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。

2)IEEE在软件工程术语汇编中的定义是:

① 将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;

② 在①中所述方法的研究。

3)Fritz Bauer在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。

4)《计算机科学技术百科全书》中的定义:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。

目前比较认可的一种定义是:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验且证明正确的管理技术和当前能够得到的最好的技术方法结合起来。

学生对软件工程课程的理解与掌握程度将直接影响学生毕业后软件开发能力和项目管理能力,同时

因为该课程的抽象性和实践性强的特点,常规的教学方法和实践模式使学生无法真正理解与掌握软件工程的精髓,更难以做到学以致用。笔者看来,本科阶段软件工程教学的重点在于学习经过时间考验且证明正确的开发方法、管理技术等。首先,要让学生深刻意识和体会到软件工程对实际软件项目的指导作用;其次,学生要掌握相关的理论、方法和技术。在实际的教学过程中,只有将两者很好地结合,学生才能够真正地将科学的工程方法应用到今后的学习和工作中去[1-2]。

1教学现状分析

软件行业用人单位普遍认为计算机专业毕业生的素质与工作预期相差较远;计算机专业已毕业的年轻从业人员对自己前几年在大学学到的知识不甚满意。因此软件工程专业中注重实践类课程的教学内容与教学理念有必要按照就业市场的需求进行调整[3-5]。

据笔者近年的教学体会,目前软件工程教学过程中主要存在以下问题。

1) 大多数学生自身没有实际的项目经验,如果教师仍采用传统的教学方式,学生容易感到知识空洞和乏味。

2) 实践环节仍以编程为主。目前的软件工程实践环节多为老师提供若干题目,学生采取分组的形式共同完成课题。该环节老师会要求大家按照软件工程的过程和方法去做。但是,实际情况往往是:学生将任务重点仍放在程序的编写上,而作为约束开发的文档往往是学生在程序开发完成后补充上来的。这样,软件工程实践的目的并未达到,并未让学生真正领会和认识到软件工程并不仅仅是开发程序,任何一个环节对整个项目来说都是重要的。

3) 实践环节所布置的软件项目课题多没有实际的应用和用户群体,学生不过仍然是按照书本或相关参考资料来完成相应的文档或程序,学生并未学会如何将所学的理论知识应用到实际的项目中。

2创新模式

针对目前软件工程教学过程中的诸多问题,笔者在实际教学过程中进行了一系列的探索和实践。如图1所示,在课堂教学环节中,让学生担当一定的角色,学生带着任务来学习,积极参与到课堂教学活动中;同时开展校园创新实验室,真实演练软件工程的过程;此外,还建立了校外实习基地,学院还定期开展校园软件大赛等活动。各个环节有序进行,充分调动了学生学习的积极性,收效颇佳。

图1软件工程教学与实践模式

2.1课堂教学设计

教师从课堂入手,让课本的理论知识变得生动起来,富有趣味性,引导学生主动学习。课堂仍以理论知识讲解为主,但是打破以往以教师讲解为主的教学模式,让学生参与进来,做到师生互动。

课程初期,学生自愿结合组成团队,按照实际项目中的角色分为:项目经理、系统设计师、程序开发人员、测试人员、文档人员、后期维护人员等。通常,项目课题的来源是企业的实际项目。通过一个完整、真实的案例,每位学生担当实际的角色共同负责一个软件工程的项目,将课本的理论知识和实际项目完好结合起来;通过实际案例的真实演练,软件工程的各个环节和知识点逐步渗透到学习中去,很好地调动了学生的学习主动性。

2.2校园创新实验室

校园创新实验室目的在于启发学生独立思考,强调学生对知识的实际应用能力。

由于课堂学时所限,校园创新实习实验室是课堂教学的有益补充。例如,在讲解软件工程生命周期的各个阶段,要求学生提交相应的可行性分析报告、需求文档、设计文档、程序代码等,并采取相互监督的方式来检查其他小组的进展;在讲到可行性报告一章,要求每个小组采取会议形式,在实验室开展模拟招标会……课程每讲一部分内容,要求以小组为单位提交相应的文档或程序。学生通过实际的项目,将所学的理论知识应用到其中,做到学以致用。在实际的过程中,每个人在软件工程的各个环节都要实践,因此可以采取不断变换角色的方式来进行[6-7]。

校园创新实验室模拟软件公司开发管理模式,是学生课外科技、课外实践、开发训练、社会服务活动的基地,为学生在校期间提供了良好的就业实战平台。校园创新实验室具有以下特点:

1) 打破以往固定上机时间模式,开放时间为每天早上7点到晚上10点,时间较为灵活,学生可以根据自己的时间合理安排。

2) 每个实验室由2~3位同学负责管理实验室的硬件设备,软件维护升级等相关工作,每个实验室配备一名教师辅助管理。

3) 实验室每天有固定人员值班,负责学生的签到以及日常的管理等。学生负责人定期将签到表汇总提交相关课题指导教师。

4) 实验室的环境布置采用分组圆桌形式,方便小组的讨论和交流。

2.3校外实习基地

我校与本地的软件企业联合,开展校外实习基地,在课程结束后进入软件工程校外实习环节,让学生融入到真实的开发环境中去。

有了上一个学期的理论基础和校内创新实验室的经验,我们根据实际情况,有选择地让学生进入企业,跟随项目组一起,参与到真实的项目中去。校外实习过程中,要求学生认真记录项目过程开展的各项工作,并积极参与到各阶段的工作中去。所有环节结束后,要求学生以报告的形式将自己的体会告诉大家。作为课堂教学的补充,我们通常请同学重点讨论下面的内容:

1) 软件工程生命周期在实际项目中和理论上的是否一致,有哪些不一样的地方,为什么在实际中要这么做。

2) 软件工程对实际项目的指导作用在哪里。

3) 今后教学的改革重点在哪里,如何更加有效促进校企实践教学的改革。

学生的总结很重要,除了能够规范自己今后在软件行业的开发流程,对低年级的同学也有较好的启发。

2.4丰富的课外实践

为了提高学生学习的兴趣,我校还开展了“三个一”工程,即一种程序设计语言及平台、一个作品、一万行代码经验。在学习过程中让学生带着问题去看书,带着任务去学习,在软件工程后面的学期要求每位学生完成一项实用性课题。

我校每年都要举办计算机技能大赛、软件知识大赛和软件设计大赛三大赛事,从技能到知识再到设计,与课程学习紧密配合,从课外的另一条学习路线促进学生自主学习。

此外,我校组织学生参加省级各类软件大赛,如省青年创新软件设计大赛、省程序设计竞赛、省大学

生程序设计竞赛、863软件园杯大赛等,我校选送的学生软件作品多次获得嘉奖。

学校还多次邀请行业工程师、学术专家给学生做报告,让学生们接受了一些最前沿的科技信息,受益匪浅。

3结语

结合我校近几个学期的教学改革情况来看,较以往取得了更好教学效果。

1) 每个学生都是带着任务来学习的,学生上课积极性较以往有较大提高,课堂气氛活跃。

2) 学生对软件工程课程的重要性有了更深刻的认识,对其在软件整个过程中的指导作用有了更好的体会和理解。

3) 就业率有所提高。学生因为有实际的项目经验,受到用人企业的欢迎。

当然,目前的教学方式还有待于进一步改革,如学生因为掌握的编程语言有限,所以在后期的校外实际项目中显得力不从心;此外,实际项目的周期有长有短,和学生的学习实践结合不是很好。如何把校企实践教学结合的更加紧密和有效,是我们今后的研究和探索内容。

参考文献:

[1] 普雷斯曼. 软件工程:实践者的研究方法[M]. 郑人杰,译. 北京:机械工业出版社,2006:2-12.

[2] 林丕源,刘才兴. 本科软件人才培养探索与实践[J]. 计算机教育,2009(16):77-79.

[3] 张学辉. 新就业形势下软件工程专业实践教学探索[J]. 计算机教育,2009(15):127-128.

[4] 林丕源,刘才兴,张明武,等.以就业为导向的软件工程专业的实践教学改革初探[J]. 实验室研究与探索,2007,26(12): 238-240.

[5] 郁书好,苏守宝,刘正余. 基于项目驱动的软件工程教学模式研究[J]. 皖西学院学报,2009(5):60-62.

[6] 张炜,陈峰,祝勇仁. 开放式创新实验室建设与学生创新能力培养模式的研究[J]. 高等理科教育,2008,78(2):70-73.

[7] 白广梅. 关于创新实验室建设的思考[J]. 实验技术与管理,2007,24(2)136-138.

Teaching Module of Software Engineering Based on Practices

YANG Hua, SHENG Jianhui

(Department of Computer Science and Technology, Zhongyuan University of Technology, Zhengzhou 450007, China)

Abstract: Software Engineering is a strong practical course. According to the features of this course and the focus of undergraduate teaching, this article puts forward an application-oriented teaching method, carries out a series of teaching activities such as teaching reform, the campus laboratory, practice bases outside school, extra-curricular series of practice and so on. These reforms effectively improve the enthusiasm of students.

Key words: Software Engineering; practice; teaching reform

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:计算机基础课程的开放式教学体系构建 下一篇:“数据库系统应用”课程教学研究