APP下载

“软件工程” 课程项目教学法研究

2009-12-30岑宇森熊芳敏

计算机教育 2009年21期
关键词:改革与实践软件工程项目教学法

岑宇森 熊芳敏

摘要:本文系统地总结了软件工程教学的特征,详细分析了软件工程教学的现状及存在的问题,提出了课程项目教学法改革的思路和方法,并对进一步搞好软件工程教学提出了一些意见。

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

中图分类号:G642 文献标识码:B

软件工程是计算机科学与技术及相关专业教学计划中一门重要的专业必修课,是指导计算机软件开发与维护的一门综合性课程,是一门实践性很强的课程,各高校的计算机专业均开设这门课程。通过本课程的学习,使学生了解和掌握软件工程开发的技术和方法,具备作为软件工程师所需的专业能力,为从事计算机软件开发和维护提供方法上的指导。同时,软件工程的研究除计算机软件本身外,还涉及众多其他的领域,如管理科学、心理学、经济学、人机工程学等,因此,它也是一门综合性学科。进入新世纪,软件工程已经由最初的一个学科方向发展成为以计算机科学技术为基础的多学科交叉学科,在当今的信息社会中占有重要地位。如何组织好软件工程实验性教学,对于培养创新型合格的软件人才具有十分重要的意义。

1软件工程教学存在的问题

长期以来,我们培养的计算机专业的学生存在着“什么都学过,却什么都不会”的尴尬局面,专业教育、教材与应用需求严重脱节。事实上,学生就业难并不是就业市场不需要计算机人才,其根源还是计算机教学的现状所致。传统的“软件工程”课程虽然有实验教学的要求,但一般只是停留在组织学生编写软件项目若干设计文档这个单一环节上。然而,由于教育过早和长期的文理分家,导致理工科学生的文档编写是个“软肋”,他们也不感兴趣。此外,由于教学时间有限,要真正完成软件工程各阶段文档的编写,事实上也没有可能。今天,软件工程教学还面临着计算机学科发展规范所提出的更高的质量要求,同时也面临着大众化高等教育背景下所带来的客观问题。

因此,迫切需要对软件工程课程的教学体系进行工程化改造,逐步建立工程化实践教学体系,着力培养学生的工程化开发能力和职业素质,进而形成一个融基础理论、实验教学、工程实践为一体的整体化培养机制,让学生的基础知识、科学素养、专业知识、创新能力、工程能力和职业素质都得到全面均衡的发展。

2软件工程项目教学法的改革与实践

软件工程强调采用工程化的方式开发和设计软件,要求培养学生能胜任研究、分析、开发、设计、生产、测试、管理、咨询、培训等多种角色,使学生熟练掌握软件工程知识与技能,具备作为软件工程师从事工程专业所需的专业能力。随着高校扩招,教学规模迅速发展,传统的计算机教学模式在实践环节上的缺乏与不足,直接影响了计算机课程的教育教学质量,特别是对于像软件工程这种综合性、实践性很强的课程,如果没有一整套科学、合理的实验教学方法,就不可能培养出具有创新能力的合格人才。因此,切实加强软件工程课程的创新与改革至关重要。

按该课程的特点,实验内容包括软件开发的两大方法学的专题训练,即结构化(生命周期学)的方法学和面向对象的方法学,以平时实验和课程设计相结合,设置一些实验项目,要求学生利用结构化软件开发技术或面向对象的软件开发技术完成对该项目的开发。以项目作为实验环节的主线,随着课程进展布置任务,从项目开发的准备工作、系统分析过程、系统设计过程、软件测试到系统实施,结合所学习的理论知识,完成项目的开发。同时,依据国家《计算机软件开发规范》,撰写规范的技术文档。因此,主要从以下几个方面对软件工程教学作了改革与创新的尝试:

(1) 树立工程化能力培养与基础理论教学、专业能力培养并重的教学理念。

把工程化教学作为人才培养的核心任务之一,通过全面改革软件工程专业的人才培养模式、调整课程体系、充实教学内容、改进教学方法,建立工程化实践教学体系,在教学过程中全面体现工程化能力和职业素质培养的思路,进而形成了一个融基础理论、实验教学、工程实践为一体的整体化培养机制,让学生各方面的能力都得到全面均衡的发展,以适应现代软件产业的需求。

(2) 设置工程化教学阶段和企业实习阶段。

把工程化素质培养作为学生全培养期中自始至终关注的主线。在工程化教学阶段,一方面独立设置了多门以培养学生工程能力和职业素质为主的学分课程;另一方面对操作系统、数据库系统、多媒体技术等十多门传统课程教学内容进行工程化改造,充实工程教学内容,引入实习大作业。在企业实习阶段,建立跨度为半年的全时制企业实习制度,在著名软件企业中设立实习基地,通过真实的企业氛围和开发环境,进一步培养学生的工程能力和职业素质。

(3) 实验课程以平时实验和课程设计相结合,设置一些综合实验项目。

随着课程进展布置任务,通过调查研究、可行性研究、需求分析、概要设计、详细设计、编码、测试、维护(版本升级)及技术文档的编写,结合所学习的理论知识,完成设计。实验内容应覆盖软件工程学科的各个主要环节,覆盖软件生存周期的各个阶段,使学生通过实验加深对学科理论知识的理解。但也要避免“喧宾夺主”,在积极发展实验教育的同时,要保证必要的理论教学水平。必须充分重视和精心设计实验内容,要有可操作性、趣味性和适当的难度。可操作性保证学生都能完成实验,从而促进学生学习信心的建立,在一定程度上能减少学生抄袭的理由,克服实验数据普遍抄袭的弊病;趣味性体现“寓教于乐”,以提高学生完成实验的积极性;而适当的难度有助于激发优秀学生进一步钻研的斗志。

项目来源为教师科研课题、实践基地课题、校内应用课题和自选课题。选题的原则为:新颖、实用和规模适中。新颖代表计算机发展的主流技术和应用范畴。实用代表所选题目一定是具体单位或用户要求开发的,而不是由学生随意杜撰和随意想象的,其目的就是保证学生在软件工程实践过程有实际的场景环境(主要包括用户、领域专家和工作环境),这对于高质量的软件工程实践过程具有质的保障。

(4) 软件工程实验要求学生采用“项目小组”的形式,结合具体的开发项目进行设计,班级按项目小组进行分组,每组不得超过4人。每个项目小组选出项目负责人或项目经理,由其召集项目组成员讨论、选定开发项目。

(5) 学生分工合作,学习软件开发小组的组织和管理,将项目开发各阶段的任务明确,熟悉软件开发环境,培养团队精神,共同完成该项目的设计任务。项目中的每项任务要落实到个人,实验在规定的时间内,由学生独立完成。学生在学校机房的机器应固定下来,并安装好相应的软件,没有特殊情况不应缺席。

(6) 配置开放的实验环境:实验环境是保证实验教学活动和质量的基本条件,对于软件工程课程显得尤为重要。

项目开发不是简单程序设计,而是软件工程全过程的综合性实践,应该建立和配置相应的软件工程实验环境或实验中心。实验环境或实验中心的建设重点要放在软件工程环境和自动化开发工具的配置上。应该清楚,高层次的实验环境应是高素质人才培养的物质基础。实验环境还应该是开放性的,这有利于在学生实践过程中建立一种项目开发、科学研究和创新思维的综合效应。

(7) 分组讨论,集体交流

分组讨论是项目教学中非常重要的环节,本质上是一种概念或想法的交流。围绕项目的重点,难点,疑点,进行讨论、辩论和争论。每个学生可以自由的抒发己见、相互启迪、互相借鉴,重点是想法的交流。要求每个学生简要介绍自己对软件开发所做的分析设计,并提出自己对该软件开发流程的看法,供大家讨论与切磋,可以按照项目中所提出的问题一个一个讨论。在教师的引导下,让学生进行课堂发言,进行全体学生的交流。本阶段讨论主要解决两个问题:①小组讨论没有达成共识的问题;②按照教学目标,有意引导学生掌握软件工程的生命周期法各阶段所做的具体工作以及进行相关工作的必要性。

为了使分组讨论有效地开展,教师要做好充分的课前准备。除了熟知项目陈述的事实、观点外,还要谙知项目反映或蕴涵的原理、规则等知识,以便引导学生概括出来。要认真学习研究项目后给出的教学指南,具体拟定出课堂教学计划,这要求教师认真思考回答以下问题:希望课堂上发生些什么?如何引导这些情况的发生?讨论如何开展?时间如何安排?自己扮演什么角色?是先得结论再分析,还是相反?并对课堂讨论中可能出现的情况做出预测。教师还要依据课程目标、项目目标及教学计划的具体安排重点分析以下方面的内容:项目中反映的那些重要论题、项目中反映的情况发生的根源、项目中所反映的而学生可能设想不到的情况等。在讨论掌握上,教师要力保讨论沿预期的轨道进行,把讨论引导到问题的解决上去,并引导出与论题相关的理论知识,力争班上每个学生都至少有一次发言的机会,切实做到有效参与。

(8) 总结归纳,消化提升

总结归纳是软件工程项目教学的最后阶段,要求学生针对每个项目写出学习报告。该报告中包含学生在阅读项目中所得到的具体收获;通过分析与设计软件,提出自己所解决的实际问题;对理论上软件工程概念和项目中的实际是否一一相对应;以及对软件工程仍然存在的困惑。通过反思进一步加深对项目的认识,真正作到理论和实践的相结合。

项目教学中,师生都要注意角色转换,如果学生仍然热衷于将自己置身于教学过程之外,只做一名旁观者,项目教学也就失去了它的价值。学生只有真正地深入项目、体验角色,才会有项目情境的“再现”,项目教学的价值才能被体现。而教师在教学过程中也要不断变换自己的角色,可充当监督员,激励启发学生,监督项目分析、讨论情况;可充当示范员,向学生演示、讲解、分析项目中的事实、图表、材料等;可充当主人翁,制定下一步的工作计划并在实施中起主导作用;可做仲裁,解决各种争端;可充当交警,使讨论回到预定的轨道上来,等等。

3项目教学法的效果

软件工程项目教学法已在我院计算机专业学生中进行了全面实施,效果显著,提高了学生按照软件工程的原理、方法、技术、标准和规范进行软件开发的综合能力和软件项目的管理能力,学生的综合素质明显增强。特别在基础技能、团队协作、资料收集、人际交流、项目规划几个方面明显具备较强的能力。

客观地说,作为第一次开发实际软件系统的学生,要在较短的时间里开发出各方面都达到真正实用要求的系统是难以完成的。实践的意义更主要是让学生经历完整的过程,体验各阶段方法和工具的应用,还有锻炼除技术以外的多方面能力(如需求分析时如何与用户交流、文档写作、成员间的协作与管理,等等),以提高其综合素质。

4结束语

今天,软件工程已经由最初的一个学科方向发展成为以计算机科学技术为基础的一个新兴交叉学科,软件工程的教学面临着计算机学科发展规范所提出的更高质量要求。计算机技术的迅速发展和高端软件人才的严重匮乏,让我们面临新的挑战。软件工程项目教学法改革还需要在以下几方面继续努力:

(1) 软件工程教学改革体系应在培养学生工具的使用与实验技能、工程设计与实现能力、评审与测试能力、团队协作与沟通能力、过程管理与控制能力等方面下更多的工夫,作更多的努力。

(2) 随着软件产业的发展和计算机应用的普及,系统测试、维护的重要性会更加突出,软件工程实践教学应在这方面有所准备,有所侧重。

(3) 软件工程教育应当给予学生“工程”的概念,以软件生命周期为主线,构建知识结构,将科学与工程有效结合,实施技术与管理的能力和素质培养。

参考文献:

[1] 张海藩. 软件工程导论[M]. 北京:清华大学出版社,2003.

[2] 郑红. 基于建构主义的软件工程教学方法探索[J]. 计算机教育,2008(10):10-14.

[3] 林松. 高校《软件工程》课程教学与实践探讨[J]. 福建电脑,2008(1):33-36.

[4] 林惠强,刘财兴,林丕源.“软件工程”课程启发式教学的研究与实践[J]. 实验室研究与探索,2008(5):8-11.

[5] 丁琼. 软件工程课程教学改革与思考[J]. 华东交通大学学报,2007(z1):76-80.

[6] 马燕,张根耀,王文发. 软件工程实验教学模式改革与实践研究[J]. 教育与职业,2006(36):25-28.

[7] 尹锋. 学习迁移理论在软件工程教学中的应用[J]. 中国大学教学,2005(2):30-35.

猜你喜欢

改革与实践软件工程项目教学法
面向区域产业的软件工程专业教学模式改革与实践
基于一体化教学《电子产品生产与管理》课程的改革
通识教育背景下行政文秘专业建设的改革与实践
依托工作室的软件工程实践教学研究
探析项目教学法在化工管路拆装实训中的应用
基于工程教育认证的《软件工程》课程教学质量建设研究 
项目教学法在中职flash课程教学中的应用探究
关于如何创新和完善计算机软件工程管理的探讨