《软件工程》的教学

2024-06-19

《软件工程》的教学(精选十篇)

《软件工程》的教学 篇1

一、在教学中采取两种不同的教学思维:

一种是按概念、理论、方法、举例、总结的传统理论系列模式进行教学;另一种是按实际工作中的思维方式进行讲解。即先由实际现象启动, 激发学习兴趣, 归纳讲解一个经典应用案例, 如通过开发大学生比较熟悉的学籍管理系统, 逐步进行系统的分析、设计、编程、测试等工作, 归纳总结软件的开发方法及项目管理思想。这种以理论教学同案例驱动的教学方式相结合, 针对性强、贴近实际应用, 对提高学生的学习兴趣, 促进理解, 加深印象, 效果明显。

二、加强教师与学生之间面对面的沟通。

尽管在以前的教学中, 我们利用校园网上开发了网络实验教学辅导系统以及交流平台, 目的是加强和巩固了学生在课堂上和在教师指导下的实验内容, 使学生在计算机“不断线”的情况下进行学习, 实践证明效果并不理想。而通过师生面对面的交流, 指导教师能与学生针对所开发项目进行深入的交流和分析, 使学生亲身体会在软件开发过程中所必须完成的系统规划、需求分析、软件设计、程序编码、测试、运行和维护等一系列工作。在讨论中, 学生思维活跃, 讨论之后形成完整的书面资料, 如需求规格说明书、总体设计说明书、详细设计说明书等。实践证明, 这种由教师参与的学生讨论, 可以充分调动和激励大学生的想象力和创造力, 对于学生理论学习与开发实践的结合效果极佳。

三、编程实践加强分组合作。

软件工程的前序课程是一些程序设计课程, 这些课程的作业任务往往是由学生单独完成, 而规模稍大的程序却是由多人共同为完成的。因此为培养学生的项目管理思想, 实践教学过程中, 教师根据学生的具体情况进行分组, 以4-6人为一组, 自主分工合作, 锻炼学生的分工协作和交流能力。课程的最后由每组组长在课上给全班同学作15分钟的讲演。讲演要求以幻灯的形式边讲解边做演示, 其它学生对不解处做提问, 由该组成员作回答, 所有组讲演完毕, 老师对每组的优缺点做出评议, 以帮助大家以后的学习。另外, 大学生设计的案例可以保存下来作为本课程知识的拓展和延伸, 也可以作为教师的一种宝贵教学资源供教学参考或供学生设计时参考, 从而形成一个不断积累, 不断提高的良性循环。这样的实践教学环节, 学生投入了很高的热情, 积极, 认真的作前期资料的整理, 后期演示文稿的制作, 以及讲解的准备, 大家齐心协力, 分工明确, 每组在课后自发组织开会, 讨论方案。讲解主题丰富, 有深度, 有趣味。对于在教学中发现的很优秀的学生, 我们将会纳入到教师的实际科研工作中, 对于老师、学生都是一件有意义的事情。

总上所述, 软件工程课程具有较强的系统性、综合性和实践性, 已成为培养大学生具有计算机应用知识和能力的重要课程。我们在多年的教学实践中逐步形成了自己的一些特点, 当然还要不断的向其他兄弟院校的同行学习, 共同发展、共同提高。

摘要:本文从《软件工程》课程的特点以及培养目标出发, 探讨了在大学《软件工程》课程中如何进行教学设计, 并在总结自身教学工作的基础上, 提出了实施案例教学的一些方法和途径。

关键词:案例,教学,软件,工程

参考文献

[1]软件工程导论 (第6版) , 清华大学出版社, 作者:张海藩、牟永敏ISBN:9787302330981, 印刷日期:2015-5-14

软件工程课程教学的一些体会 篇2

陈中育

(浙江师范大学计算机学院,浙江金华321004)

摘要:在分析软件工程课程教学特点的基础上,讨论了软件工程课程教学对学生软件开发习惯的一些影响,提出了软件工程课程教学对教师素质的一些基本要求。

关键词:软件工程;课程教学;开发习惯;教师素质

Some Pedagogical Experience of SE Curriculum Instruction

Chen Zhong-yu

(Institute of Computer Science of Zhejiang Normal University, Jinhua321004, China)

Abstract: Analyses the characteristic of SE curriculun instruction, Discusses the influence of SE curriculun instruction upon the develop style of the students, Presents some basic requirement of teacher culture about SE curriculun instruction.Keywords: SE;Curriculum Instruction;Develop Style;Teacher Culture

0引言

《软件工程》是计算机科学与技术专业必修的一门专业课程。本人从事大学计算机专业本科生《软件工程》课程教学近十年,在教学过程中深感学习该课程的重要性,这不仅是因为软件工程与计算机专业其他先行基础课程的密切关联,更为重要的是软件工程掌握的好坏直接关系到学生毕业以后的软件开发思路和工作规范,甚至关系到我们国家整体软件产业在世界软件产业中的生存空间。

当前国内各大高校纷纷开办软件学院,其中一个非常重要的趋势就是先行开设软件工程专业,这也说明软件工程知识是整个计算机软件领域的核心内容。本文作者试图根据自己在教学中的一些体会和认识来分析在软件工程课程教学中我们到底应该坚持让学生着重学习哪些知识、使学生得到什么能力的培养。

1软件工程课程教学特点

(1)课程特点

《软件工程》课程是一门要求基础课程较多、应用实践性较强、与产业标准行业规范衔接、概念多、涉及面广的课程。属于在高年级开设的专业必修课程,要求学生学习软件工程的基本原理、概念和技术方法;自觉遵循软件工程方法论中的一些规范和工业领域中的一些行业标准;目的是提高软件开发的生产率,减少软件开发和维护中的错误,确保最终用户软件产品的质量。

(2)要求基础课程较多

要求学生在学习软件工程之前已经完成高级语言程序设计、数据结构、数据库系统概论、操作系统、计算机网络等先行课程的学习。这些课程都是计算机专业的一些重要基础课程,也是衡量一个学生是否具备计算机领域开发的技术能力。

任何大规模的软件项目开发最终是由很多开发组织、很多开发人员的集体参与、协作完成。具体的技术工作就是依赖于这些先行课程的能力,而软件工程所涉及的却是从工程技术、工程组织、工程管理、软件体系框架上的一系列难题。

(3)应用实践性较强

我们认为目前高校大多数计算机专业的培养目标应当定位在软件工程师,而不是计算机科学家,这应该是大多数高校计算机专业教学改革的出发点和根本点。作为软件工程师一个根本的能力就是实际软件开发能力问题,在课程学习尤其是软件工程的课程学习必须坚持软件开发技术开发能力的培养。在教学中必须强调理论学习与应用实践的结合,把握软件工程的发展方向,为学生在社会实践、毕业论文、毕业设计中能理论联系实际参与实际项目开发打下基础。

(4)与产业标准行业规范衔接

随着信息时代的到来,软件产业已经成为全球高科技产业发展的最主要的推动力。对于中国的软件业而言,如何抓住机遇,跻身国际软件强国之列,已经成为一个首要的问题。毫无疑问,现实的中国软件产业面临着巨大挑战,国情与我们类似的印度经过短短的十几年发展时间,印度以其软件公司的规范化和软件开发实力占有了全球市场的相当大份额,印度的软件出口额几乎是中国的30倍。目前,中国软件企业有5000家,是印度的5倍以上,但其中80%是小作坊式企业,不能形成较大的规模,一个根本的原因是我们的开发没有很好地执行软件规范化和行业标准所造成的。

造成这种局面,我们的软件教学体制也有责任,我们必须在软件工程的课程教学中认真学习软件开发的通行规范和标准,课程教学与与产业标准行业规范衔接。

2软件工程课程教学对软件开发习惯的影响

(1)什么是软件开发习惯

其实从某种程度上讲行为习惯与做事风格是等同的两个概念,记得在史济民主编的《软件工程原理、方法与应用》一书中是这样描述风格的。所谓风格,就是作家、画家和程序员在创作中喜欢和习惯使用的表达自己作品题材的方式。

从70年代以来,软件工程发展到今天,编码的目的从最初的强调程序执行效率到强调程序结构清晰到对象封装。伴随着程序设计语言从过程设计到面向对象的程序设计,随着软件工程技术的深入研究、发展和运用,人们逐步认识到,在大型系统的开发中,规范一致的开发习惯非常重要,增进成员之间的相通讯交流,减少因不协调而引起的问题,提高软件重用程度,软件开发的习惯也从过去的个人作坊到团队合作,从过去的强调过程代码编写到强调流程管理,从过去的强调代码实现到强调规范化文档编写,从过去的过程模块技术到现在的组件技术、构件技术、应用中间件技术。

(2)程序设计语言选择习惯

任何软件系统的实现都必须选择至少一种程序设计语言来完成,选择语言工具一个重要的评价标准就是看它能不能很好的解决所需要解决的问题,而不是开发小组成员能否使用某种语言工具。我们在实际教学中遇到很多学生选择语言上主要看自己是否喜欢和掌握程度来决定,虽然这样的大多数语言能解决大多数问题,但这样的选择原则是错误的,也不利于跟踪和利用最新软件开发工具和环境。软件工程是发展的,随着新技术新方法的出现,我们的开发方式也必须随之变化。

值得一提的是,就软件工程现状而言,我认为任何从事软件开发的人员都必须掌握两种语言。其中C是非常基础的语言,它对于培养软件开发的基本思维方式,培养良好的软件开发习惯,培养模块化、结构化等基本软件开发技能都具有非常重要的作用。同时,掌握了C,也就获得了通向程序底层环境的通行证,可以在需要的时候深入到任何的层次,解决需要解决的各种问题。而C++的最大特点,除了对C的基本特性的继承外,最重要的就是他可以培养程序员完整的面向对象编程的概念,及基本的技巧,还可以使得开发人员充分了解WINDOWS等多任务操作系统上程序运行的基本原理,从而为实际的应用开发提供最基础的思维模式。

(3)善于合作开发的习惯

我们必须看到,现在的软件业已经不是发展初期的软件业了,如今软件业的产业化规模已经相当大,要想在市场上取得成功,一个产品需要有非常多的人力、物力、财力的投入。什么是产业?它是一个通过计划、合作、创新,通过市场化的运作来创造价值的活动。对于

一个产业来说,个人作坊式个人英雄主义色彩几乎是中国软件产业的一个软筋。

我们发现高年级的学生大都积累了编程经验,也参与过一些开发实践,但是我们在软件工程教学中要求学生自由组合、合作开发、团队作战等思想时,他们马上感到无所适从,觉得自己一身编程能力无法得到发挥。教师在课堂上必须给学生说明:每个人的技术特长需要封装在软件开发的各个阶段细节上,一个成功的产品,必须经过严格的产业化运作,包括规划、开发、测试、包装、宣传、营销、客户服务。必须强调编程高手孤高倨傲、急功近利是非常有害的。

(4)用软件工程观点思考问题的习惯

我们周围很多从事计算机教学、科研和开发的专业人员有一种普遍的错误认识,认为软件开发主要的是技术问题,认为“不采用软件工程”也能做好软件产业化工作,这正是我们国内软件产业界落后思想的表现,也是软件企业短视、个人自由散漫、高傲自大的表现。如果这样的思想被多数人认可,将是我们软件产业界的一大悲哀。

曾经有一位同事这样评价软件工程这们课程,说软件工程其实就象是教育学,当然他的态度是教育学并不重要软件工程也不重要。如果我们的计算机教师都是这样的观点,那么我们怎么能让学生正确认识软件工程的重要性呢?

我们的问题决不在于需不需“软件工程”的争论,这本身就是无可置疑的。问题在于怎样去利用软件工程的思想和方法服务于我们的软件开发工作,这才是关键之关键。如果没有真正理解软件工程的根本思想,生搬硬套一些规程、一套文档格式和一些方法,只能给软件开发工作带来干扰和破坏,不会产生任何建设性作用。

所以,我们在教学中首先应该普及的是软件工程的基本思想,把它灌输到每一个学生的头脑之中,那么,软件工程的基本思想究竟是什么?我想也会有许多不同的观点,但我认为这样几点应该是共同的:(1)软件的开发一定要以产业化的思想来看待,强调合作和规范,杜绝随意性;(2)软件的开发过程一定要采用某种方法进行进度和成本的控制;(3)软件的质量必须得到保证,保证的措施一是提高开发过程的质量,二是通过严格测试;(4)客户的需求永远是软件开发的终极目标,客户的需求一定要准确,并且一丝不苟地满足;(5)软件开发的所有成果必须存在于容易理解的书面文件中,而不是仅仅存在于软件开发人员的头脑中。

3软件工程课程教学对教师素质的一些特殊要求

(1)丰富的大型软件系统开发经验

软件工程本身是一门实践性很强的课程,没有实践开发经验、大型系统分析能力的教师

很难胜任软件工程课程教学任务,这是软件工程教师应该具备的一个很重要的素质,目前无论业界还是高校计算机专业最缺的正是这样的专业人员。

(2)良好的语言沟通和文字表达能力

虽然作为教师本身就应该有这样的素质,但是软件工程教学中这种素质尤为重要,面对用户需求理解和表达,面对计划报告的书写,面对合作团队的组织、沟通和协调,等等,都必须具备这方面的素质。

(3)一定的市场运作能力

我们必须明确地告诉学生,你所开发的软件产品必须被用户接受被市场认可,了解市场把握市场善于运作市场也是教师应该具有的素质之一。

(4)较强的工程经济分析能力

软件作为一个工业产品,它应当赚取足够的利润,才能使软件开发组织生存下去。因此,从事软件开发的软件工程师应当具有较强的工程经济分析能力,能够分析软件产品的市场前景和经济价值,并做出合理的投资效益预测。

(5)健康的心理素质

开发软件本身就是一项艰苦的脑力和体力劳动,成功开发一个软件产品,要经过反复修改,要花费大量的进间和精力,这些都要求软件人员有较好的心理承受能力、团队合作精神、成果分享精神。

4结束语

以上这些思考只是从软件工程教学中容易被忽视的一些问题,希望以此话题引起同行们的思考和争鸣。

《软件工程》课程教学方法的探索 篇3

关键词:教学改革;软件工程;教学方法

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2012)02-0163-02

一、概要

1968年秋,NATO(北约)科技委员会召集近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。会上首次提出软件工程的概念[1]。软件工程是指导计算机软件开发与维护的工程学科;是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理措施和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它[2]。虽然软件工程应用了几十年,软件人才依然紧缺,大部分大学毕业生刚毕业缺少项目经验、实用技能和职业素质。用人单位不得不再投资,对刚毕业的大学生进行再培训,IBM公司和Microsoft公司对新员工的技术培训就是一个很好的例子。虽然各高等院校意识到这一现象,对软件专业、计算机应用专业都开设有软件工程课程,但是由于软件人才培养的实践性、连贯性、分工协作性,使得在大学环境下培养软件人员的方法、手段上面临着不少困难,具体表现在:软件专业的大学生在校园里缺乏实战项目、大学缺乏软件项目经理、缺乏有实际软件项目开发经验的教员。目前国内《软件工程》教学还是老师讲得多,学生做得少。学生也只是注重具体的编程能力,对于软件开发项目的全局不够重视,团队观念不够强,学生学得不扎实,兴趣不是很高。鉴于本文作者具有国内外软件开发公司的多年工作经验、多个项目的项目经理的工作经验,具有国内外大学的学习、科研经验,具有《软件工程》、《软件开发》、《项目管理》等课程的教学经验,特此介绍《软件工程》课程的教学方法,从理论和实践两个方面促进高校《软件工程》课程的教学改革,目标是充分调动学生学习的积极性、主动性和能动性,培养学生大型软件开发项目的综合能力。

二、教学目标和内容

本课程的教学目标是让学生掌握求解软件的基本思想、工具、技术、过程和方法,为从事计算机软件开发、测试与维护奠定良好的基础。从实用的角度讲述软件工程的基本原理、概念和技术,强调软件开发过程的方法研究,使学生掌握软件分析、设计、实现和测试等基本技术以及面向对象分析和设计的基本方法。通过案例研究和实践,实际运用软件工程的原理,掌握软件项目管理和团队开发的基本技能。具体内容包括软件工程与软件过程概念、结构化分析、设计和实现、面向对象的分析、设计和实现、软件项目管理基础、统一建模语言基础等内容[3、4]。

三、教学方法

众所周知,大学本科软件工程及其相关專业的学生,在大学学习期间,对软件开发接触的不是很多,特别是大型的项目,更是时间上和环境上的不允许。因而学生更注重于具体的编程技术而缺乏项目组及其团队精神。为此我们探索对《软件工程》课程的教学进行改革。中心思想是以学生实际情况为基础,以实际项目开发为主线,以企业软件开发过程中的问题为引导,特别是以本人多年的企业软件开发经验为实例,在讲述理论知识的同时,举出软件开发过程中遇到的实际问题,并讲述利用理论知识和其他知识解决问题的方法。为此特别设计若干个实际开发案例。从课程的第一节课开始,就要求学生和实际的开发案例联系起来。随着理论知识的逐步讲解,软件项目的实际开发过程的各个阶段也接着逐步进行。每一个阶段的完成,就是下一个阶段的基础及开始。最终系统地完成整个软件开发任务。具体来说,就是将课程讲解分成软件需求分析、系统原型建立、系统设计实现、系统测试、和系统总体报告等五个相互关联的软件开发阶段讲解,考核方式也是围绕着这五个阶段,要求学生每个阶段都提交阶段报告,最后现场演示并提交总体开发报告。这样既解决了以往教学上理论讲解和实际软件开发脱节的问题,又解决了对众多学生考评的问题。下面以一个冰酒销售系统为实践案例进行说明:首先,在教学的第一堂课,就提交给学生软件开发案例,即用户(冰酒销售商店老板)自述:“我是一个果园农场主,又是一个冰酒供应商。我向市场上提供不同种类的冰酒。我的客户可能是小商店、超市、批发商、或个人。客户可以通过电话购买冰酒,也可以到我的商店上门买酒。我以前是将每一次客户及购买信息登记到一张卡片上,并计算费用。我还要根据客户不同的要求送货,当然送货费用越远越高。我将所有的卡片放到一个盒子里以便查询。月末我还要对卡片进行统计。随着我的销售量的增加,我发现越来越难于应付了。现在需要用电脑系统来管理。”让学生已开始就有思想准备,就有一个目标,就有一个问题,即如何去完成软件开发任务。然后引导学生要有团队精神,要求学生自行组成软件开发小组,每一个开发小组4人,最多5人,最少3人。并将软件开发任务和以大作业形式分五个阶段提交报告的考核形式及要求分发给学生,使学生能够真正从软件工程和实际软件开发的角度对该课程的学习内容和要求有一个初步的认识。接下来的课程内容按照上述实践案例的实际项目开发过程进行分阶段段讲解和实施。第一阶段是软件需求分析阶段。本阶段首先讲述软件工程与软件过程概念,然后讲述结构化分析的方法和手段,再接着引入面向对象的程序设计和面向对象的需求分析方法,组织学生讨论,模拟软件需求调研以及起草用户需求分析报告。本阶段结束时,每个开发小组提交一份软件需求说明报告。报告内容要求包括报告封面、目录、各组员单独起草的软件需求说明报告、组内讨论分析结果及每个成员对该报告的贡献比例、和开发小组提交的软件需求说明报告。注意事项:可以按照不同的报告模板格式书写,但是主要内容不要遗漏,主要内容应该有实体关系图、数据流图、数据字典、概要功能说明、和详细功能说明。第一阶段提交的软件需求分析报告,我们会及时批改并反馈给学生。第二阶段是系统原型建立阶段。该阶段是在第一阶段的基础上进行的。在该阶段,主要是介绍各种软件工程的开发方式,包括结构化开发方式和面向对象的开发方式,并选择目前比较流行的原型建立快速开发方式对冰酒销售管理系统进行开发。特别强调系统原型的建立一定要在第一阶段的软件需求报告的基础上实施,切忌想当然的自行设计。该阶段结束时要求提交系统原型报告,其内容要求有报告简介、报告目标、报告范围、定义及缩略语、系统原型设计(对于本案例,主要是界面设计)图示及文字说明,报告后面必须有附录,即大作业第一部分,按照老师反馈信息修改后的小组提交的软件需求说明书。第三阶段是系统设计实现阶段。本阶段是在第一和第二阶段的基础上进行的。在第三阶段,主要介绍结构化程序设计的准则,包括模块化、抽象、迭代、信息隐藏、启发性规则以及面向数据流、面向数据结构的设计方法,同时介绍面向对象的程序设计的基本方法、设计风格,以及统一建模语言等设计工具。第三阶段要求在软件需求说明报告和系统原形报告的基础上提交系统设计、实现报告。报告内容及格式要求有简介、目标、范围、定义及缩略语、系统设计(包括用例图、类图、顺序图、活动图、和功能模块图及其文字说明)、系统实现(包括描述系统实现的环境,开发工具等)、参考、和附录(包括文档说明、小组成员贡献说明等)。第四阶段是系统测试阶段。本阶段是在第三阶段系统实现的基础上进行的。这一阶段主要讲解软件测试的各项技术和测试方法。要求学生提交测试计划和测试报告。其中测试计划内容应该有范围说明(冰酒系统概述和文档描述)、参考资料、测试计划(包括单元测试、集成测试、和系统测试的测试进度,对功能和性能进行测试的测试方案,测试环境,和测试人员安排)、和测试说明(包括功能测试说明,要求提供测试用例,例如系统进入测试、客户管理测试、产品库存管理测试、订单录入测试、订单修改测试、单查询测试、订单统计测试,以及性能测试,例如压力测试、系统反应速度等。软件系统测试报告内容应该有范围说明、参考文献说明、测试结果概述、详细测试结果说明(包括各功能模块的测试,要求截图及说明)、和总体评价。在完成了上述四个阶段的任务后,就是第五阶段的系统总体报告阶段。本阶段主要是概括总结,综合、串通上述四个阶段。在此阶段主要介绍软件开发过程中遇到的一些实际问题,而这些问题往往与各阶段的衔接有关。同时介绍软件项目管理,引导学生以项目经理的视野去看待问题。作为对学生的考核,要求各开发小组提交系统开发总体报告,同时作现场演示汇报,每一个学生对其他小组的演示进行现场评分,作为最终分数的一部分。

本教学方法以一个实际开发案例为主线进行讲解,解决了大学校园里缺乏实际软件项目开发的难题,提高了学生的学习兴趣,同时避免了大批学生一个老师带造成的程度差异,考核繁琐等问题。本教学方法在深圳大学软件工程专业09级50多名学生进行实验。学生们对《软件工程》课程有了初步的理解,特别是对团队精神和项目经理角色有了深刻的体会,教学效果良好。

参考文献:

[1]Roger S.Pressman,SoftwareEngineering-A Practitioner's Approach,Sixth EditionM].McGraw-Hill,2005.

[2]Jeffrey L.Whitten.系统分析与设计方法(第6版)[M].肖刚译.机械工业出版社,2004.

[3]张海藩.软件工程导论(第五版)[M].清华大学出版社,2008.

[4]张海藩.软件工程(第3版)[M].人民邮电出版社,2010.

作者简介:朱安民,分别于1987年和1990年获得同济大学计算机科学专业学士和博士学位,于2005年获得加拿大圭尔夫大学计算机工程专业博士学位,目前是深圳大学计算机与软件学院的教师。

《软件工程》双语教学的实践与思考 篇4

双语教学是指将母语以外的另外一种语言直接应用于语言学科以外的其他学科的教学, 使第二语言的学习与学科知识的获取同步进行。2002年在教育部高等教育评估中心的《本科教学评估方案》中首次出现了双语教学, 由此, 这种全新的教学模式得到迅速推广。近年来, 全国大部分高校都在本科生中进行了双语教学的尝试, 目前正处在不断地摸索和积累经验的过程中。2010至今, 笔者担任了我院《软件工程》双语课程教学任务, 从双语教学模式、教学方法和手段等方面作了一系列探索, 并在课程结束时作的一个抽样调查, 并对教学进行总结。

二、双语教学的实践

1. 课程的选择。

在我院软件工程的本科教学中, 我们选择了《软件工程》这门专业课开展了双语教学的实践与探索。原因有二:第一, 这门课程的专业术语较少, 易于掌握;第二, 有利于他们后续课程软件工程专业英语的学习。

2. 教材的选择。

教材选自《软件工程》课程的双语教学当中, 我们选择了由Ian Som m ervill著作的《Software Engineering》 (第八版) (英文版) 为教材, 但是由于课时的限制 (要求为20学时) , 对使用该本书时在内容上做了相对应的删节, 讲授了Chapter1, Chapter4, Chapter6, Chapter7, Chapter11, Chapter14, Chapter16, Chapter17Chapter23, Chapter25.同时参照清华大学出版社出版的张海藩写的《软件工程》的内容进行有所增加。

3. 教学方法与手段。

由于原版英文书当中涉及大量的框图及程序流程图等, 因此授课形式采用多媒体方式, 授课语言为中英双语, 课件语言以英文为主。

三、双语教学的调查及分析

1. 调查对象。

调查对象为我院软件工程专业2010~2011学年期间选修《软件工程》双语课程的本科生。有软件工程083班学生共53人, 软件工程0910班学生共48人, 软件工程0908班学生共45人选修。

2. 调查方法。

采取不记名答卷方式, 遵循自愿原则, 在此学年课程结课以后, 向选修这门课程的学生发放和回收调查表。共计发放调查表分数:146份, 回收146份, 回收率为100%。

3. 调查项目及结果分析。

调查问卷主要参考了教育部高教司的《教育部普通高等学校本科专业双语教学情况调查问卷 (学生卷) 》 (教高函[2006]73号) , 并在此基础上由笔者进行了再加工与设计, 共23题, 主要调查学生英文水平、本次双语课程教学效果、教学模式、教材和考试等的看法及双语教学定位和双语学习措施等方面的内容。调查项目及结果见表1~表3, 表中未作说明的均为单选项。

由上述表1和表2可知: (1) 学生的英语水平参差不齐。41.7%的同学通过了国家四级英语考试, 但也有30.82%的同学未通过四、六级英语考试。 (2) 大部分同学认为在本科教学中开设双语课程是有必要的。 (3) 认为双语教学的主要目标是提升专业知识和能力的占37.23%, 认为主要目标是提升外语知识和能力的占34.04%。这说明同学们认为双语教学中提升专业知识和能力与提升外语知识和能力同等重要, 且提升专业知识和能力略高一筹。

由表3 (见下页) 可知: (1) 从学生角度看, 认为双语教学在课堂上外语授课比例没有统一标准的为36.96%;课堂上外语授课比例30%左右的是32.6%。这两项数据表明学生期待在双语课上, 既能提高自己的英语水平, 又能学到专业知识。 (2) 关于教材, 44.9%的同学选择国外原版教材, 36.95%对于现在采用的英文版教材不愿意读, 认为老师需要提供中文参考资料的达到76.08%, 52.16%的同学认为选择“中、英文参考资料”的形式为好。这一系列数据给我们在教材选择及建设上提出了新的思路与要求。 (3) 关于考试, 选择外文命题, 中文答题30.4%;选择外文命题, 自由作答的同学为28.26%。这说明学生对英文答题有着考虑与顾及, 害怕用英文答题, 但又想尝试用英文去答题, 他们是希望上一个层级的。 (4) 学生认为在授课过程中, 老师应该以专业知识为主, 讲述时兼顾教材上的内容。 (5) 33.33%同学认为教学方法和手段是决定双语教学质量和效果的最主要因素。 (6) 另外还有部分学生认为:双语课程根本无法提高英语水平, 且增加了学习负担, 没有必要开设。有39.1%的同学认为双语课程会增加学习负担这些学生大多英语水平相对稍差一些, 因此感觉有些吃力。另外还有36.96%认为稍有增加但能承受;开始不适应, 慢慢适应的占52.17%。

4. 双语教学的建议。

因为计算机学科最新的思想和成果都是来自国外, 所以在教学中应该实施双语教学的模式。这样会对学生以后的工作大有益处。在开展双语教学的过程中, 应该适当控制班级规模, 充分考虑实际情况。在教材的选择上, 也应该比较慎重, 尽量选择国外著名高校的原版教材, 使学生能够接触比较地道的专业英语, 但原版教材内容往往较多, 价格较贵, 高校的教学课时在不断地压缩, 减少。在现有的条件下, 应该以原版外文教材做辅助, 采用中文教材或自编双语教材, 用中文和外文交替讲述相关的定理和关键词。期末考试也尽量采用开卷, 让学生尽量使用英文编写, 且考试成绩应该占总成绩的比例要低, 以免学生对考试产生过大的压力, 尽量让学生在轻松的环境中学习。构建双语教学的师资队伍开设双语教学对教师也提出了很高的要求, 语言能力、知识水平都应该达到一定的层次, 双语教师一定要具有两种语言的熟练地沟通能力, 掌握大量的理论和专业知识, 能够将专业知识灵活地运用到双语教学的过程中, 使教学任务能够顺利的进行。且学校在双语教师的培训过程中, 也应注重培养本土的教师, 定期培训, 使教师的专业知识有所增长。

在现有形势下, 双语教学对于软件工程专业非常重要, 学校一定要加大力度使其有效的执行。但它依然处于探索阶段, 需要在教学的过程中不断地总结经验教训, 在不断地探索实践中使双语教学能够有效的进行。在软件工程专业中, 语言也仅仅是一个载体, 给学生提供学习英语的机会, 教学还是控制在使学生掌握专业技能知识为主。

摘要:本文介绍了笔者双语教学实践经验, 并在课程结束时作了一个抽样调查, 调查采用问卷的形式。根据回收的有效问卷, 笔者整理、统计出相关数据与结果。本文是对此次教学实践和调查结果所作的一个总结, 希望能对将来更好地开展双语教学有所帮助, 并希望会对校方和同行参考、讨论有所价值。

关键词:双语教学,实践,问卷调查,软件工程

参考文献

[1]马颍丽.双语教学的实践与问卷调查[J].C om puter Education, 2009 (07-0107-04) .

《软件工程》的教学 篇5

摘要:软件工程实践是弥补软件工程教学实践性不足而设置的综合性实践类课程,涉及多门课程,对相关课程的依赖性很强。把所学知识应用到软件工程项目模拟开发中,对学生来讲难度很大。为解决这个问题,我们采用项目驱动与微课混合教学模式,收到很好的教学效果。

关键词:项目驱动;微课;软件工程实践

21世纪社会进入信息化时代,各行业都与软件产业有了千丝万缕的联系。在这种形势下,社会需要大量软件产业从业人员。虽说软件人才培养数量逐年上升,但是培养质量不能满足现代信息化社会需求。这是由于我国计算机相关专业教学采用传统教学模式,使学生在学习软件工程课程时受限于死板的理论,不知道如何把这些理论变成方法论从而指导软件开发。因此,必须增加软件工程实践以弥补理论教学的不足。软件工程实践把理论与实践进行有机组合,不仅克服了教学形式单一的弊端,还使学生软件工程课程学习实现了知行合一[1]。不仅如此,软件工程实践还通过课程设计对计算机相关课程进行梳理和整合,对专业课程实验环节进行重组和系统规划,提出“项目驱动,做中学”理念,使教学过程更接近职业。单一的教学模式不能满足学生需要,所以网络平台就成为一个必不可少的学习通道。网络平台上除了日常教学资料外,还可以嵌入微课,以其短小精悍、学后即用的特点及时指导学生实践。微课教学能够与实际案例相结合,在一定程度上弥补了软件工程课程学习时间不足的缺陷[2]。

1软件工程实践现状

软件工程实践的目的在于提高学生专业实践能力和综合能力,不同于实验课,也不同于专业实习,是对计算机相关课程的一次综合实践[3]。软件工程实践涉及多门课程,例如高级语言设计语言、数据库原理、软件工程、软件架构设计和软件测试等。这些课程和软件工程实践直接相关,但目前没有把这些课程串联起来,每门课程独立讲授。在软件工程实践指导过程中,各任课教师对自己所负责的课程独立辅导,使得实践时间和效果都无法保证,不能灵活解决学生在实际软件开发过程中遇到的.问题,无法培养学生创新能力,无法达到软件工程实践学以致用的目的。

2软件工程实践改革思路

从以上分析可以看出,传统教学模式对学生软件工程实践的指导力度不够,时间也不能保证,最主要的是形式呆板,不能灵活有效地指导学生解决在软件开发过程中遇到的各种问题。为此,我们在软件工程实践中应用了一种比较先进的教学方法―――微课。微课教学时间一般为10~15分钟,非常适合软件工程实践教学[4]。微课可以对某个知识点和实际操作方法进行讲解,形式简单,内容集中,可有针对性地解决具体问题;资源共享,可供师生在线观看,非常适合碎片化学习和急救式学习。微课教学以软件工程实践具体项目所需要的知识点为中心逐步展开,内容集中在教学重、难点上,可介绍一些先进、实用的软件工程工具的使用方法。软件工程实践涉及的课程较多,为避免教学内容混乱,应由一名具有软件开发经验的教师授课。授课方式也与之前有所不同。教师只起辅助作用,解决学生在软件开发过程中的疑难问题,对复杂知识点学生通过录制的微课在线下自学。这就需要对微课资源进行系统、全面而又不失重点地构建。在软件工程实践教学中,可以把微课链接到网络平台,逐步建设。通过网络平台,学生不仅可以学习所需知识,而且可以与教师进行互动,就不明白的知识点向教师请教,把单向灌输变为双向学习。这样,学生的学习效率得到极大提升。

3软件工程实践微课资源建设

3.1微课内容选取和排序依据项目驱动教学模式

根据项目所需知识点从前向后录制微课。如第一个微课针对开发项目所用工具的选择。学生在大学期间学过很多计算机编程语言,可以根据自身情况进行选择,但不能盲目选择,否则在开发过程中很容易出现意想不到的麻烦,因此对开发工具的选择非常重要。按照这个逻辑,依次构建面向对象的软件分析微课、软件设计微课、数据库设计微课、数据库编程微课和网络编程微课。总之,微课内容和顺序不再以单独的课程标准来确定,而是通过实际项目,按项目驱动逻辑和顺序组织,并且要依据项目背景,结合问题情境完成微课教学设计。把微课中提到的文档资料链接到网络平台,以便学生下载学习。总之,学生可以根据自己的学习情况自主选择观看微课,基础较差的学生也完全可以通过微课学习,进行项目开发模仿,弥补之前知识储备的不足。

3.2加强“双师型”师资队伍建设

软件工程实践是实际项目的演练,绝对不是照本宣科的教学,这对指导教师的能力提出了非常严苛的要求。没有软件实际开发经验的教师原则上是不能指导学生的。为了更有效地完成实践教学,学校应聘请软件企业的高级人才,让他们指导教学,并加强企业理念和企业管理等方面的教育。这对学生正确认识专业现状与发展前景有极大帮助。这种“双师型”师资队伍保证了教学与市场紧密结合,为今后学生就业奠定了坚定基础。

3.3软件工程实践案例和实验室等资源同步建设

实践思维的软件工程教学方法浅析 篇6

关键词: 实践思维    软件工程    教学模式

1.引言

软件工程是计算机专业重要的专业基础课,偏重应用性和实践性,是从事工程造价管理不可或缺的核心能力。软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。软件工程课程教学内容具有理论知识更新速度快、实践性高的特点,目前授课中存在教学内容与授课学时的矛盾、教学内容枯燥、实践教学时间短、内容少等问题。本文采用CDIO的视角对软件工程课程教学模式进行探讨,以增强教学效果,夯实学生的理论知识,提高学生实践能力。

2.软件工程课程概述

软件工程课程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。软件工程课程涉及如下内容:程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。软件工程的创新模式是一种以学生为中心结合实际软件工程案例,多学科交互式学习获取工程知识和技能的先进教育模式。通过软件工程教育模式,学生既深入掌握技术基础知识、培养学生的职业技能,又为未来工作提供可持续发展动力。软件工程理念强调大工程概念,打破学科间的壁垒,多学科融会贯通地宽口径培养;注重学生综合能力培养,如技术能力、实践能力、团队合作和沟通能力等;以行业为背景,教学内容与行业同步发展,使学生在实践中完成能力培养。十几年间,已有几十所高校加入软件工程国际合作组织,在工程教育中取得了良好效果。

3.软件工程课程教学中存在的问题

3.1软件工程课程学时的问题

随着软件行业飞速发展,越来越多的新方法和新技术出现,在软件工程计价与计量过程中需要补充大量内容,使教学内容涉及面越来越广,内容大量增加。然而,培养方案中软件工程所占学时数基本不变,要求教师在授课过程中对教学内容有所取舍,增加课堂授课的知识量,传统教学模式已不能满足现状,因此软件工程课程教学模式改革非常迫切。

3.2软件工程教学内容单一

软件工程课程的教学内容不仅越来越多,而且十分枯燥。各种软件工程生命周期、概要设计、详细设计等构成软件工程课程的核心内容都是条款性文字、说明性文字,不仅十分抽象,而且十分晦涩难懂。学生见到软件工程教材往往十分迷茫,抓不住學习重点;教师偏重理论学习效果有限,偏重案例学习理论知识又掌握不牢,工程实践知识非常少,因此,教学模式的选择十分矛盾。

2.3软件工程内容过于简单

软件工程实训是软件工程课程唯一的实践环节,一般高校都安排1到2周的实训时间。软件工程是实践性很强的课程,短时间的实训,学生学到的知识点有限,很难实现预期教学与学习目标。同时,实训内容主要集中在利用造价软件设计,编码开发等方面,然而真正的软件工程内容偏少,学生对整个工程周期的造价实践较少,缺乏对工程造价的全面了解。

4.实践思维的软件工程课程教学模式改进措施

4.1优化教学内容

基于实践思维的软件工程的教学内容,软件工程内容与国家现有编码规范、软件成熟度等规范有密切联系,而且是主要构成部分。因此,教师应该在一定学时要求下,以现时适用的政策规范为基础,让学生在软件编码设计中真正弄清楚软件工程的含义及作用。深刻理解软件生命周期各个子过程的具体实现。

4.2改变软件工程教学模式

基于实践思维的软件工程课程,将以学生为中心,教师从主导地位转移至辅助地位,教师给学生设置工程情景推动学生主动学习。例如,在概要设计部分,预先给学生分组,设置软件工程课题的情景,提供简要的功能框图,学生在教师讲解过程中置身于项目中,团队配合完成工程量计算,在实训中,完成软件工程的各个生命周期。这种教学模式能最大限度激发学生学习热情,培养学生独立思考处理问题的能力。

5.结语

本文针对软件工程教学中存在的问题,分析软件工程课程教学模式,提出基于实践教学理念的软件工程课程教学模式的改进措施,为软件工程课程教学模式改革提供借鉴及充足的理论依据。

参考文献:

[1]谭庆平,宁洪,毛晓光,王挺.硕士"软件工程"课程的教材建设与教学改革[J].高等教育研究学报,2000(01).

[2]许旻鸿.实施《软件工程》项目管理教学的实践[J].机械职业教育,2004(09).

[3]赖振丹.软件工程课程教学实践与探讨[J].广西商业高等专科学校学报,2005(01).

软件工程教学改革的思考与实践 篇7

1. 软件人才需求现状

近10年来, 我国各类高等院校虽然培养了约50多万计算机软件人才, 仍不能满足社会对软件人才需求的巨大缺口。与此同时, 软件人才的质量存在很多问题, 由于与实践严重脱节, 导致大量拥有较高知识体系的大学生不能很好地胜任软件开发工作, 他们往往需要用人单位进行3-6个月的岗前培训才能上岗, 从而造成软件企业用人成本的增加, 严重制约了应届毕业生软件人才的就业。究其原因, 软件工程课程的学习与实践脱离是一个非常重要的因素。

2. 传统教学法存在的问题

软件工程作为计算机科学专业的核心课程, 旨在培养学生的软件开发能力和项目管理能力。软件工程的教学效果对学生毕业后从事软件开发和管理有着重要的影响[1]。为了适应经济社会发展的新需要, 很多高校都在探索推进软件工程课程的改革, 也取得了很多成果。然而由于受应试教育思想和行为主义学习理论的影响, 现在的软件工程教学普遍存在以下问题: (1) 教学方法陈旧, 不能很好地调动学生学习的积极性[2]。教学过程古板、没有感召力, 造成学生学习兴趣下降, 达不到预期的教学目的。 (2) 教学内容落伍, 没有及时增加软件工程发展的新知识、新方向, 禁锢了学生视野的拓展。 (3) 缺乏完整的项目训练, 与实践严重脱节, 无法满足软件企业发展的需要。

二、教改思想

当前教学中存在的问题已经严重阻碍了软件人才的培养, 针对这种情况, 我们对软件工程课程进行了较为系统的改革, 在建构主义教学理论指导下, 按照“激发兴趣、传授新知、案例教学、完整项目实训”的设计思想, 课堂上采用灵活的教学方法, 激发学生的学习兴趣;同时有选择地介绍软件工程学科发展的新动向, 拓展学生的视野;通过案例教学, 把现实中的例子穿插到课堂中, 使知识与实践很好的融合, 充分发挥学生的主观能动性, 同时加入讨论环节, 使他们主动掌握所学知识及其在实际案例中的应用;放弃分散的项目开发, 以完整的项目作为实训题目, 使学生能更好的将所学的知识进行串联和汇总。项目实训时模拟软件企业先进的软件项目管理和开发过程, 培养学生软件开发的实战能力。

根据“激发兴趣、传授新知、案例教学、完整项目实训”的设计思想, 我们制定了具体方法来进行落实, 下面做详细的阐述。

三、教改方法

1. 发挥学生的主体作用激发学生学习的兴趣

在建构主义学习环境下, 和传统教学相比, 教师和学生的地位、作用已发生很大变化。上课过程中, 以学生为主体, 充分发挥学生的主观能动性, 让学生主动地参与到获取知识的过程中来, 可以很好地提高课堂教学效果。

兴趣是最好的老师, 学生的学习兴趣的高低, 对于教学效果的保障具有非常重要的意义。软件工程是一门知识庞杂、抽象的课程, 如果在学习过程中又死记硬背的话, 学生就会觉得枯燥无味, 学习兴趣当然不会高。

采用情景教学的模式可以很好地激发学生的学习兴趣, 比如讲解项目管理这部分时, 给学生设置更多的环境, 提供足够多的案例, 让他们作为项目负责人来根据这些情况分析使用什么管理模式和周期模型, 这样可以增强他们的参与性, 让他们有更多的兴趣来深入学习。

在上课过程中, 针对每一部分不同的知识内容, 让每位同学选择不同的角色, 根据这些角色完成相应的任务, 在任务完成后可根据需要进行角色互换, 让学生们能最大限度地感受软件企业的开发氛围和管理过程, 提升他们的学习兴趣, 使他们所学的知识与实践充分结合。

2. 传授新知识拓展学生视野

上课过程中, 除了讲授课本上的基本理论和方法以外, 要重点介绍软件企业目前所使用的主流开发技术、管理技术以及相关的CASE工具, 使学生的知识结构与社会需求一致。同时, 随着社会的发展, 软件工程出现了很多新知识、新动向, 在上课过程中, 有选择地向学生介绍软件工程最新的发展, 鼓励学生开展探索式学习, 从而拓展他们的视野, 这对学生更好地适应社会发展需要是大有益处的。

3. 案例教学和完整项目实训结合

学习知识是为了应用, 案例教学法能够使学生通过实际案例将教学内容更好地与实践相结合。采用案例教学, 通过教师的引导, 学生能更好地掌握软件开发过程中的基本原理和方法。学生通过参与到课堂教学过程, 可以充分地讨论案例中涉及的实际问题, 为以后项目实训的开展打下坚实的基础。在采用案例教学过程中, 案例的选择也很重要, 我们注重选择一些贴近学生实际的题目进行分析。另外, 为了保持案例的与时俱进, 我们及时对案例进行不断充实、完善和更新, 努力保持案例的“新鲜”。

案例教学很好地解决了理论知识点的应用, 若希望学生对软件开发有完整的实践经验的话, 须和完整项目实训相结合。

在软件工程的教学过程中, 虽然现在有很多高校采用了项目驱动法, 但是存在一些普遍的问题, 比如项目的选择上与实践脱离严重;实践环节中采用的是孤立的项目, 不能很好地把所学的软件工程知识串联起来。每个知识点或者单独的几个知识点是一个项目, 其他知识点又是别的项目, 这样带来的弊端就是学生不能整体地理解软件工程, 不能解决软件开发过程中遇到的实际问题。我们采取的完整项目实训法教学, 采用一个完整的项目贯穿软件工程实训的整个过程, 使学生更好地完整地理解软件工程在项目开发过程中各个阶段的作用。完整项目实训不仅能提高学生灵活运用软件工程的能力, 而且可以使学生在需求分析、编程与程序调试等技能上受到严格的实战训练。通过完整项目实训环节, 将学生所学的软件工程的知识有机结合, 使他们所学的知识点整合在一起, 这能很好地提高学生实际项目的开发能力。

四、加强完整项目实训环节

软件工程是一门实践性很强的课程, 项目实训环节是对教学质量的检验和提高, 可进一步提升学生的能力, 它是培养学生的实践能力、创新能力和协作能力的重要手段。根据完整项目实训思想, 在教学过程中, 我们主要采取以下方法加强项目实训:

1. 选择实践性强的项目

采用软件工程的方法进行项目开发, 项目的选择非常重要, 不宜选择过大的项目, 应该选择实践性强的、学生熟悉的项目, 这样才能达到实战锻炼的目的。在完整项目实训中, 我们鼓励学生选择这些题目: (1) 图书借阅管理系统。 (2) 学生信息管理系统。 (3) 寝室用电管理系统。 (4) 学生选课系统。这些项目与学生结合紧密, 实践性强, 学生能够很好地对这些项目进行需求分析, 能真正达到实战的目的。

2. 明确实训任务加强监督

在项目实训过程中, 应对于每个阶段所应完成的工作任务予以明确, 对于应提交的成果做出详细的要求, 规范项目实训报告, 按照软件工程的要求[3], 从问题定义、可行性分析、需求分析、总体设计、详细设计、调试分析、用户使用说明、测试结果等几个方面组织材料。把各个阶段的任务进行细化, 罗列出每个阶段所需提交的材料和每个阶段需完成的任务, 让学生有清晰的项目实训轮廓, 从而提高完整项目实训的效果。

在项目实训过程中, 严格加强监督。毕竟完整项目实训的内容是环环相扣的, 前一个阶段任务的完成情况直接影响后续工作的进行, 如果前一阶段的工作没有完成, 后一阶段的工作也就无法进行。所以在实验的各个阶段要加强指导和监督, 监督的形式可以多样化, 除了日常的指导和督促外, 可以通过项目小组内部和项目小组之间的点评和评比, 使学生加强交流和沟通, 互相学习。通过实践, 我们发现这样的督促方式效果更好。

五、成绩考核

软件工程是一门实践性很强的课程, 考查的重点不单是理论知识, 更需考察学生运用所学知识进行软件开发的能力。成绩考核分为两个部分, 实训考核和理论知识考核。

完整项目实训环节的考核采取指导教师检查和现场答辩的方式。指导教师检查环节要求教师认真检查各个项目实训小组所完成的任务情况, 并做好记录。现场答辩要求学生陈述自己在项目实训小组中所完成的任务、解决问题的具体思路, 答辩老师根据项目检查的情况和学生答辩情况, 对学生所完成的任务进行点评, 表扬学生的优点, 对于学生的不足提出改进性的意见和建议。在答辩过程中, 加入现场提问环节, 加强学生之间的交流, 使他们能取长补短, 共同进步。

理论知识考核主要体现在期末考试中, 在期末试卷中, 除了加强软件工程的基本原理和方法的考核外, 重点考核学生的软件分析与设计能力, 提高综合设计题目所占的分值。目的就是以考核手段为导向, 促进学生对软件工程知识的学习和软件开发能力的提升。

六、总结

根据“激发兴趣、传授新知、案例教学、完整项目实训”的设计思想, 我们采用的教学方法, 极大激发了学生学习的兴趣, 拓展了学生的视野, 充分发挥了学生学习的主观能动性。通过案例教学、完整项目实训方式, 加深了学生对课堂知识的理解, 培养了学生的综合从业能力, 促进了学生全面发展。从毕业生反馈的信息看, 经过我们系统地训练, 他们的综合软件开发能力有了较大的提高, 使他们能很快融入软件企业开发的节奏, 为他们今后的发展打下了良好的基础。

参考文献

[1]齐治昌, 等.软件工程教育:迎接网络时代超大系统的挑战[J].中国大学教学, 2009 (3) :23-25.

[2]栾好利, 杨政.“软件工程”项目教学改革方案研究[J].计算机教育, 2009 (4) :52-53.

项目驱动的《软件工程》教学法初探 篇8

一、项目驱动教学法介绍

项目驱动教学法是一种建立在建构主义学习理论基础上的、有别于传统教学的新型教学方法。建构主义教学设计原理强调, 学生的学习活动必须与任务或问题相结合, 以探索问题的解决方法来驱动和维持学习者的兴趣和动机。“项目驱动”教学模式的主要特点是“以项目为主线、教师为主导、学生为主体、注重实践”。将该思想运用到软件工程的教学过程中, 就是按照软件工程思想将软件开发项目按阶段展开并贯穿于整个教学过程。通过项目的导入, 有效激发学生的好奇心和求知欲, 促进学生主动学习;通过项目的逐步展开使学生不知不觉地掌握抽象的软件开发和项目管理知识, 并对软件开发过程产生系统的认识;经历整个过程能培养学生分析、解决问题的能力和团队协作精神, 最大可能地将理论转化为自己的经验。

二、项目驱动教学法的实施

项目驱动的软件工程教学法包含课堂讲授和项目实施两个部分。教师在课堂向学生传授软件工程的原理和方法, 介绍常用开发环境、开发工具, 使学生有一定的理论知识准备和平台准备。项目的实施由学生根据所学方法进行项目开发。在实施过程中, 教师必须及时评价学生的阶段性成果。此三步就形成了学习—实践—反馈的良性过程。本章剩余内容将详细阐述项目驱动的软件工程教学实施过程。

1. 准备阶段。

教学内容:软件工程概述;补充介绍选题方法。实践内容:分组与选题。 (1) 分组。将一个班的学生分为若干个项目组, 每组3~5人, 每组有一名组长作为项目经理组织后续的项目开发, 负责给成员分配角色, 如系统分析员、软件设计师、软件开发工程师、软件测试工程师。根据角色, 每个成员都有相应的任务。 (2) 选题。在项目驱动教学法中, 项目选择是关键步骤, 关系到整个项目能否顺利实施。因此, 在各组自选项目时要注意:尽量选择自己熟悉的流程来构建软件系统, 如图书馆借还书系统;所选系统有3~5个功能模块, 过于复杂则难以把握, 过于简单则缺乏整体性;尽可能选择与实际需要相结合的项目、科研创新基金项目等;项目开发所需的软硬件都是可获得的, 所需开发技术是学生已掌握的或短期内可掌握的。最后, 教师要认真审查学生选题, 避免重复, 控制规模, 确保可实现。

2. 需求分析阶段。

教学内容:软件需求分析原理、结构化分析法、面向对象分析法;补充介绍主流建模工具、开发平台、Web开发环境。实践内容:深入了解和分析需求, 形成文字化需求说明;安装建模工具, 使用Rose/Visio进行需求建模, 绘制用例图和活动图, 完成软件需求分析报告。配置开发环境, 熟悉开发环境的使用, 编程实现“登录”功能。教师及时批阅和评价需求分析报告, 重点检查用例分割的粒度是否合适, 指出学生在运用方法和工具解决实际问题时存在的不当之处, 对突出问题进行集中讲解, 确保学生建立正确的认识, 树立信心。

3. 软件设计阶段。

教学内容:软件设计原理、结构化设计法、面向对象设计法;补充介绍平台设计、界面设计及工具的选择、数据库设计及数据库管理系统的选择、程序设计语言及编程环境的选择、出错处理。实践内容:在Rose/Visio中绘制类图、顺序图、状态图;用PDL对关键处理进行描述;对典型界面进行设计;数据库基表设计;完成软件设计报告。编程实现“读取数据库数据并显示到页面”的过程。教师及时批阅和评价软件设计报告, 重点关注类图的合理程度、顺序图表达细度等, 指出存在的问题, 确保学生充分经历软件设计阶段的各种设计任务。

4. 实现和测试阶段。

教学内容:软件测试方法、主流测试工具介绍。实践内容:编写系统源代码;设计测试用例, 进行单元测试、集成测试和系统测试;完成系统测试报告。教师及时批阅和评价测试报告, 指出可能存在的漏洞。在系统完成后, 根据开发文档对系统进行整体检查, 重点关注学生常常疏忽的出错处理问题, 在软件用户友好性方面提出更高要求, 增强其专业素质。

三、结束语

初步的教学尝试表明, 在项目驱动的软件工程教学模式下, 教师和学生的工作量都有大幅增加。教师必须熟悉开发过程和主流开发平台, 必须有实际开发经验以应对学生遇到的各种问题, 必须积极引导和评价以增强学生开发软件的自信心和成就感。学生则必须依据自身能力进行自主学习与协作学习, 在项目开发过程中充分发挥主观能动性和创造性思维, 全面提高其作为软件专门人才的综合素质。

摘要:《软件工程》是我校计算机专业本科阶段唯一一门综合性课程, 除了介绍软件开发的过程、原理、方法, 还需综合运用多方面的专业知识。抽象的理论知识和高度的实践性使之成为老师难教、学生难学的课程。文章提出采用项目驱动教学法来解决目前软件工程教学中存在的问题, 将项目开发贯穿于教学过程, 设计了各阶段教学内容、实践内容和实施步骤。教学实践表明, 该方法能全面提高学生的动手能力, 加深对理论知识的理解。

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

参考文献

[1]舒新峰, 陈莉君“.软件工程”教学改革与实践[J].教改纵横, 2009, (4) :59-60.

《软件工程》的教学 篇9

CDIO工程教育理念是从2000年起, 麻省理工学院和瑞典皇家工学院等四所大学经四年的探索研究, 创立了CDIO工程教育理论, 并成立了CDIO命名的国际合作组织。CDIO代表构思 (Conceive) 、设计 (Design) 、实现 (Implement) 和运行 (Operate) , 以产品研发到运行的生命周期为载体, 让学生以主动的、实践的、课程之间有机联系的方式学习工程[1]。

1 软件工程的教学现状

长期以来, 计算机软件工程课程的教育, 会让学生感到“什么都学过, 但什么都不会”的尴尬局面, 这完全归咎于专业教育、教材及应用研究需求严重脱节。“软件工程”在传统的教学过程中, 理论讲授过多, 对软件工程中所涉及到的软件项目的各大阶段, 成果物等都只是泛泛而谈, 最多给学生相应的文档模板以观摹。由于课程教学时间有限, 完成各阶段文档的核定可能性也不大, 这使得学生没有了动手的机会和能力。这使得教师在教学中仅仅起到一个现成信息的载负者和传送者, 而学生则仅仅起到了一个记忆器的作用[2]。基于种种原因, 软件工程这门工程性课程亟待以一种工程型教育模式进行改革。

2 软件工程课程的基于CDIO的教学改革实施

在历年的软件工程教学过程中, 本课程教学团队对其以CDIO模式进行了教学改革探索。总结经验, 本文将对教学改革实施的以下几方面进行讨论。

2.1 准确定位教学目标

课程的教学目标决定着课程的教学内容。软件工程作为一门专业必修课程, 我们希望通过本课程的学习, 学生能了解软件生命周期中各阶段软件开发的技术, 较好地掌握软件工程中的基本概念、方法及步骤。同时学会用UML建模语言进行面向对象分析、设计及软件工程中的UML模型的绘制, 最终得出相应的项目各阶段交付物, 为以后开发大型复杂软件项目打下良好基础。

除此以为, 为了更好的以CDIO为指引, 本课程教学团队就课程对学生产生的能力进行了能力指标细化。在课程大纲中对其要求学生最终达到的能力, 诸如:核心知识熟练应用能力, 系统思维能力, 推理和解决问题能力, 交流及协作能力等, 进行了与课程内容的一一对应。此举让教师和学生都能更为清晰和明确地了解最终的目标, 更能确保教学质量。

2.2 实践与知识点相结合

在软件工程当中, 有许多的理论知识点。而这些知识大多都是抽象和枯燥的。根据CDIO教育理念, 课堂的教学知识围绕着项目的解决而展开, 强调的是知识点间的关联及知识点与实际工程项目的关联[3], 在不弱化理论知识的前提下, 将理论与实践有机的结合在一起, 不仅增加项目的趣味性和真实性, 同时还加强项目的可操作性。

在软件工程的教学过程中, 确定适当的可行项目尤为重要。项目的确定应以学生常见的, 熟知的, 且项目规模大小合适的项目为宜。这样做的好处是可以让学生尽快地对相关项目的需求进行熟悉。在教师给出的项目模型实例的参考和指引下, 学生可以较好地绘制出需求相关的UML模型图并产生相关的文档报告。

2.3 开展以阶段性项目为中心的实践教学

项目在软件工程教学当中起着举重轻重的作用。根据CDIO教学模式的理念, 学生应在“做中学, 学中做”[4], 教师不再是站在讲台上的主角, 而应走下讲台, 成为项目的引导者, 掌控者, 同时学生以小组为单位进行分工合作, 对项目进行分析、设计、实施等阶段操作。

在软件项目开发的生命周期中, 各阶段前后相互有机的结合在一起。但在实际的开发过程中, 各阶段不会很明确的分隔开, 而在教学过程中, 受课程教学时间的限制, 将项目进行阶段性划分, 根据项目计划的时间线进行项目挨近和成果审核, 就成为教师的主要任务。

2.4 建立合理的学习评估方法

根据CDIO教学模式的评估是以学习为中心, 是高校教学活动中的重要环节, 它即有反馈功能, 又有导向功能。[5]评估和教学不再好似传统教学当中相互脱离, 二者在新的教学模式下是相辅相承的。将评估纳入到教学过程当中, 不仅能够对学生所掌握的知识、能力进行考核, 更多的还可以通过对过程进行监督和管理, 能对学生的协作能力, 团队合作意识、态度等多方面的软素质能力进行考核。除此之外, 除了传统的笔试以外, 我们可以采取多种丰富的考核方式, 如:口试, 课堂表现, 产品审查, 记录, 项目报告, 答辩等多种形式来获取学生学习的反馈, 并让学生也参与到考核当中来, 让考核更为公平, 公开和公正。

3 结束语

在软件工程课程教学的各个环节中引入CDIO教学模式, 能更好地激发学生的学习兴趣, 将学习的角色从受众变成主动者, 让学生从枯燥的理论学习环境中解脱出来, 加强动手能力。小组项目教学的方式能更好地培养学生理论应用能力, 团队合作能力, 问题解决能力, 提高工程实践能力。从而尽可能地达到与企业用人标准进行无缝链接, 促使生理我好地适应软件开发相关的工作。

参考文献

[1]陶勇芳, 商右慧.CDIO大纲对高等工科教育创新的启示[J].中国高教研究, 2006 (11) :81-83.

[2]辛动军.中国电力教育[J].面向实践的“软件工程”课程教学方法探讨, 2010 (6) :79-80.

[3]项薇.基于CDIO理念的《工作研究与分析》创新教学[J].宁波大学学报 (教育科学版) , 2010 (5) :104-105.

[4]Edward F.Crawley.重新认识工程教育—国际CDIO培养模式与方法[M].顾佩华, 译.北京:高等教育出版社, 2009.

《软件工程》的教学 篇10

软件工程是一个学科方向, 所以它涉及的学科领域多, 概念多, 知识点多, 更新内容多而且学科知识体系繁杂, IEEE的软件工程知识体系指南 (SWEBOK) 中界定了软件工程的11个知识领域[1]。每一个分支又各自可以成为一个知识体系。软件工程同时是一门边缘学科, 与别的学科有很多交叉点, 学科紧跟软件开发的前沿技术, 更新快。

2 当前教学中存在的问题

(1) 该课程是本科生的一门课程, 是本科教学的难点。采用传统的教学方法, 课程设置只有理论课, 没有实践课。教师讲, 学生听, 降低了学生学习的积极性。

(2) 软件业的发展日新月异, 新的开发技术不断出现, 国内的课本跟不上业界的发展, 那么教师在教学过程中加不加新的技术及研究成果, 加多少?加多了与国内实际软件业的发展脱节, 不加跟不上发展形式[2]。

(3) 软件工程是计算机类相关专业的高年级课程, 与前期课程联系紧密, 但在实际教学中, 对其联系的重视程度不足, 没有设置课程设计, 没有将前期所学知识及时进行梳理及综合应用, 只是讲本门课程的知识。

3 教学方法探索

其实软件工程这门课理论性和实践性均较强, 如何将理论与实践相结合, 是这门课程的问题所在。国内外关于软件工程教学方法的探索一直在进行:CDIO的教学模式, 与行业人员合作的教学法、基于项目维护的教学法、强调团队合作的教学法、OPEN-ENDEDNESS教学法、项目驱动教学法等等[3]。

尽管教学方法很多, 但是我们应寻求一种适合于地方性应用型大学的教学模式。对于我们的学生来说, 这门课更应侧重于实践。希望通过本课程的学习学生掌握软件工程的有关概念, 了解各阶段的主要技术、方法与工具, 具备协助和管理软件开发的基本能力。同时, 强调文档模板的书写。

我们在教学过程中采用的是基于项目实践的教学模式。

4 具体教学实践

我们的软件程课程是计算机相关专业大三的第二学期开设, 36课时。第一讲课首先将本门课程的教学计划、大纲、教学意义、目的、要解决的问题、达到的目标做讲解, 然后给学生布置任务, 给学生可选的题目或者学生自选题目并自行分组, 每组最多3人。到第二讲课, 学生基本选好题目并做好分组工作。从第三周开始学生开始做前期的准备工作, 理论课讲解进行的同时学生开始需求分析, 这期间学生的工作是查阅资料、小组讨论, 论证需求的可实行性, 需求规格说明书的书写。第六周, 开始交需求分析。主讲教师进行前期评阅, 第七周开始由学生分组讲解, 讲完后由同学提问, 讨论, 评议这个项目的可行性, 最后由教师对该项目进行总结, 目的是让学生能够完成真实可见的项目, 需要2周的时间。随着课程的讲解, 学生逐步完成概要设计、详细设计、编码、测试和提交的环节。主讲教师认真批阅学生交的作业, 及时将批改意见反馈给学生。在这里我们不要求学生做一个多么复杂的项目而是让学生将整个软件工程的过程做一完整的了解[4]。

在理论课的讲解中, 首先要让学生知道这门课的重要性:这门课是将前面所学课程系统化、并综合应用的一门课程, 涉及到的课程有:程序设计与问题求解、数据结构、操作系统、数据库系统、面向对象的程序设计等, 而且在毕业设计过程中要用到软件工程的知识。在具体的教学内容上, 重点讲解面向对象的设计, 但是面向过程的设计方法不能忽略;既要有学生管理系统、教务管理系统等信息管理系统的例子, 又要联系生活中常用的如洗衣机, 微波炉等设备所涉及的嵌入式系统的理解;还要将诸如敏捷开发和极限编程等概念引入到教学中, 使学生对于业界的新技术发展更加了解, 以便跟上市场需求。

5 教学效果

由于学生自主选择可持续进行的小项目, 然后每组进行讲解、讨论、提问, 无论是技术上的还是能力的培养方面都取得了好的效果。

在需求分析阶段, 学生讲解, 老师和同学提问相结合的学习方式, 使学生的学习积极性提高, 毎组讲解完成后针对老师和其他同学提的意见进行积极修改, 有些小组交了几次的修改稿, 而且出现很多新颖而实用的自选题目。

在项目实践的过程中培养了学生的资料搜集能力、独立思考能力, 合作能力、课题设计的能力、各阶段文档的编写能力。

通过“做”从中“学”从而掌握《软件工程》这门课程的原理、方法、技术和文档的书写标准, 对于结构化程序设计过程和面向对象的程序设计过程也进行了充分理解[5]。

6 进一步的教学探索

(1) 将该课程的实践环节与数据库课程设计相结合, 加强学生动手能力的培养; (2) 在具体的教学实践中, 首先确定实验教学方案, 包括每一个实验环节的任务、方案及要求;及时公布实践教学方案, 按实践教学计划执行各实践环节;审定实践教师资格; (3) 让学生走出去 (政府或企业) , 撰写调查单位的软件; (4) 与行业人员互动, 将主持或参与过大型项目的人员请来, 举办技术专题讲座, 谈从事软件开发应具备的技能以及个人在学校学习中应具备的知识储备, 让学生了解当前软件开发, 特别是大规模软件开发面临的挑战及对策并回答学生在学习中的困惑。行业人员也可以扮演客户角色, 向学生提出各种需求问题。校内专业教师和企业教师合作完成。

软件工程不断地向前发展, 而我们为了培养更适合市场需求的学生, 就要选好教学内容, 这是一个艰巨的任务, 需要我们长期不断的努力。

参考文献

[1]韩万江.软件工程案例教程[M].北京:机械工业出版社, 2011.

[2]杜晶, 李瑛, 张燕红.基于CDIO理念的《软件工程》课程建设研究[J].现代计算机, 2014 (01) :49-51.

[3]李广原, 马楠.国外软件工程教学法初探[J].计算机教育, 2011 (01) :86-90.

[4]范锐, 王晶, 梁春林.《软件工程》课程教学改革的探讨与实践[C], 2010Third International Conference on Education Technology and Training (ETT) , 2010, 420-423.

上一篇:油田勘探开发经济效益下一篇:新老产品