软件工程课程总结范文

时间:2023-04-05 20:36:47

导语:如何才能写好一篇软件工程课程总结,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。

软件工程课程总结

篇1

一、团队基本情况

团队名称:天涯涯小组

团队成员:组长:张三、李四、王五

二、项目基本概况

项目名称:无涯博客系统

主要内容:实现用户的登陆和注册、博客的与管理、点赞和评论。

三、本人在项目中的主要任务及完成情况

1)主要任务简介及完成情况

主要负责用户登录与注册模块的设计与开发

2)相关设计思路及实现成果

项目的实现使用前后端分离的结构实现。前端使用html5 + css3 + javascript语言进行编写。后端使用node.js实现。后端使用mvc设计模式。数据库使用Mysql。

项目可以实现用户的登陆注册、博客的和管理、评论和点赞。管理员可以实现文章的审核和管理、评论的管理、用户信息管理。

四、个人实训成果特点总结

特点1:增强了团队合作精神

特点2: 极大地提高了自己的动手实践能力

特点3: 学习了node.js

五、个人实训成果缺陷总结

缺陷1:敲代码的速度不够快

产生原因:平常敲代码的敲的比较少

改进措施:增加敲代码的时间

篇2

建构主义认为,学习是学生在原有知识经验的基础上对新信息进行主动构建的过程,教学要以学生为中心、设计教学环境、为学生自主建构知识的意义提供各种信息条件。针对软件工程课程的特点及其实践教学的不足,依据建构主义理论,提出软件工程课程的案例教学法。该方法从精选案例、案例分析、案例总结、案例教学效果评价四方面,给出软件工程课程案例教学的基本过程;同时,指出案例教学是在传统理论教学基础上实施的,以及案例教学过程中应该注意的问题;最后,给出案例教学效果的评价方法。教学实践表明,该方法有助于学生理解和掌握软件工程的基本原理和方法,提高软件分析与设计的能力。

关键词:

建构主义;软件工程;案例教学法

1引言

从学生学习和教师教学两方面来看,建构主义理论强调:知识是动态的,学生的经验世界具有差异性,学生学习具有情景性、互动性和主动建构性。学生学习不是被动地接收信息,不是由老师强迫性地灌输,而是学生根据自己已有的知识背景,主动地选择、加工和处理外部信息,获得新知识。学生学习知识是一个主动建构的过程,学生是学习的主体[1]。教师要根据学生建构知识的过程,设计理想的学习情景,帮助学生主动建构知识。教师在学生学习过程中起主导作用。案例教学法于1910年在美国哈佛商学院最早被使用,20世纪80年代初传入我国。案例教学法是在学生掌握一定理论知识的基础上,由教师精心选择案例,案例往往是真实的、典型的、具有代表性的[2]。通过案例情景教学,激发学生的学习兴趣,调动学生的主动性,让学生独立思考、集体协作地分析问题解决问题,得出可靠的结论,使学生在主动学习的过程中掌握课程的原理和方法,提高学生分析和解决问题的能力,激发学生的创造力,同时培养学生的沟通协作能力,对学生今后发展是十分有利的。软件工程是计算机相关专业十分重要的专业核心课程,其理论性和实践性非常强。单纯的理论教学往往会使学生感到枯燥乏味,失去学习的主动性。软件工程的理论来源于实践,是实践的理论化和升华[3],因此,只有将具体软件工程实践引入课程教学,才能使教学生动具体,才有利于学生理解和掌握相关知识。

2软件工程案例教学的必要性

目前,软件工程的课程教学大多采用理论教学为主实验教学为辅的教学手段,理论教学课时数所占比例较大,实验教学内容简单,教学中很少采用案例教学甚至没有案例教学,学生普遍感到理论知识难以弄懂,即使似乎能够听懂,也是似懂非懂,不能将所学知识应用到具体的软件开发项目中。显然,这种教学方法在一定程度上忽略了软件工程课程实践性强的特点,忽略了培养学生分析问题解决问题的能力,忽略了学生的主动性、参与性和创造性,忽略了学生是学习的主体,根据建构主义的知识观、学习观、教学观,这样的教学方法难以收到好的教学效果[4]。案例教学法是以学生为主体教师为主导的教学方法,通过对案例的分析,激发学生的求知欲,调动学生的主观能动性,使学生主动学习,掌握课程涉及的原理和方法,是理论联系实际的教学方法[5],是符合建构主义理论学习观、教学观的教学方法。因此,有必要在软件工程的课程中采用案例教学方法,通过来源于实践的真实软件工程案例,使学生在学习案例的过程中深刻理解掌握软件工程的基本原理和基本方法[6,7],并能够将所学知识灵活运用到今后的软件开发中,解决实际问题。

3精讲软件工程理论

建构主义理论强调学生是在自身已有的知识背景下构建新的知识,而软件工程课程内容在其前面已开的课程中几乎没有涉及,因此,教师在利用案例讲解前,必须给学生讲解一些基本概念和基本方法,让学生有一个概貌性的了解、感性的认识,以便在今后利用案例讲解时学生能够结合已有知识来理解案例,从而更深刻理解和掌握所学知识。所以,在实施软件工程案例教学之前,精讲软件工程理论是必要的。讲授理论知识时,教师是知识的呈现者,是知识的传授者,对软件工程课程涉及的内容要抓住重点、难点和关键点,精讲软件工程的基本原理和基本方法,尽可能使学生对软件工程的原理和方法有一个基本的认识,为下一步的案例教学做好准备。教师在传授知识时,可以充分利用多媒体课件,采用一些传统的教学方法,比如:讲授式、启发式、对比式、小结式等方法进行教学。

4软件工程案例教学法

建构主义的学习理论认为,学生学习的动力来自生存环境的压力;学习的过程是学生自己在头脑中,对知识的意义进行建构的过程;知识不是由教师传授的,而是学生自己在一定的“情景”中,借助他人的帮助,使用必要的工具和资料,通过“意义建构”的方法获得的。依据建构主义的学习理论,用案例建立“情景”,提出一个任务,让学生明白本课程的学习目标;再建立“协作”,让学生成为实现“情景”的主体,自己动手做,必要时,教师和同学之间互助与合作。然后,建立“会话”,综合所有课程的知识点,进行综合练习,提出学习过程中的问题,学生之间商讨、交流彼此的意见与学习成果,共同完成规定的学习任务;最后,学生实现“意义建构”,掌握所学知识。

4.1精选案例

案例是建立学习“情景”的关键,一个好的案例才能够引发学生思考和探索,才能有效地进行案例教学[8]。目前,软件工程中不乏成功案例,但对于具体的教学来说,还要注意由简到繁、粗细结合等教学规律,精选若干个符合学生水平、真实的小案例和1—2个综合案例。小案例侧重于重要知识点的讲解,综合案例则贯穿课程始终,使学生全面理解掌握实际软件开发中涉及的任务、方法、技术和工具。精选案例时需要注意几个方面:(1)目的性。软件工程课程的教学目标就是要使学生掌握软件开发过程及其规范,掌握软件开发、管理、维护的方法、技术及其工具。因此,在选取案例时,必须围绕这一目标,使得每个小案例都能很好地帮助学生理解软件工程涉及的各个重要知识点,综合案例则能帮助学生理解整个软件的开发过程,切实提高学生分析问题、解决问题的能力,从而提高学生软件开发、管理和维护的能力。(2)真实性。案例必须来源于现实中的真实软件项目,这样才能使学生真正感受到软件开发需要解决的问题,才能更好地理解软件开发、管理、维护的过程。(3)代表性。案例所涉及的软件规模大小、内容、方法、工具等都必须具有代表性,以便学生更好地理解软件工程,今后能够举一反三地解决实际问题。(4)启发性。案例本身蕴含的问题必须具有启发性,学生通过解决问题,能够获得启发,能够更好地理解掌握所学知识。(5)生动性。案例本身必须是生动具体的,这样才可能激发学生的学习兴趣和求知欲,进而积极地解决问题。另外,精选案例时,教师还要考虑案例涉及的关键信息、疑难问题、解决疑难问题的方法、各种可能的解决方案以及对解决方案的恰当评价等。

4.2案例分析

教师在精心准备好案例后,就要在课堂上进行案例的讨论分析了。在这一过程中,教师要充当一个与学生同样地位的人,不要认为自己就是权威,要把自己当成学生中的一员,与学生共同探讨。这样,也能营造一个自由轻松的氛围,让学生放松心情、积极思考、各抒己见。教师要认真倾听、适时肯定和鼓励,并及时做出相应的评价。当学生没有思路时,教师要进行必要的引导,使学生围绕案例涉及的问题逐个地讨论、分析、解决,实质上学生在不知不觉中就完成了“协作”“会话”和“意义建构”。总之,通过案例的分析讲解,教师要让学生真正体会到弄懂了软件工程的相关知识点,也知道如何将软件工程的原理和方法应用到具体的软件开发、管理和维护中去。软件问题答案往往不是唯一的。比如,数据流图、算法设计、软件结构设计、类图等等在软件开发中就可以有多种设计方案。因此,软件工程课程中的案例分析更注重分析过程,而不要过多地强调结果。事实上,在这样的案例分析过程中,学生更需要认真研究教材内容、相互讨论研究,才可能在发言中有理有据、逻辑清晰、头头是道。总之,只要学生在分析过程中,能够应用软件工程的原理和方法,有逻辑地分析问题和解决问题,这样的案例分析课就是成功的。

4.3案例总结

当一个案例讨论分析结束后,教师要及时总结。软件工程涉及的案例往往有不同的答案,教师要对各种答案进行有效的优缺点分析,在充分肯定学生独立思考的前提下,还要肯定学生分析的亮点和独到的见解,同时委婉地指出分析中的不足。在总结过程中,尤其要注意问题的本质,结合具体实际,给出恰如其分的评价;案例是用来说明原理和方法的,最终都要归结到总结案例所涉及的软件工程基本概念、基本原理和基本方法。只有这样,才能发挥案例分析的作用。在案例总结的基础上,进一步要求学生重新审视案例、总结归纳、消化提升,写出高质量的案例分析报告书。通过这一过程,不仅可以锻炼学生的书面表达能力和系统分析能力,而且可以使学生更系统更深刻地理解软件工程的基本原理和基本方法,为学生真正实现“意义建构”打下坚实的基础。

4.4案例教学效果评价

案例教学是否能够收到预期的效果,可以采用以下两种方法进行检查。(1)学生个人的自我评价。通过案例教学后,学生对所学知识的掌握情况可能会有一个比较清醒的认识,比如:对相关知识是弄懂了还是模糊不清,对解决问题的方法是有思路了还是不知从何处入手,对软件开发过程是有了清楚的认识还是不知所措等等。(2)有针对性的练习题。有时,案例教学后,学生还是不能准确评价自己。事实上,仅有学生自身的评价也是不够的。这时,教师有必要出一些有针对性的练习题,让学生进行自我测试,检查学生的完成情况,从而更准确地判断学生对软件工程的基本思想、概念、原理、方法和技能等的理解和掌握情况。总之,教师通过学生的自我评价,以及学生完成作业的情况,基本可以判断案例教学效果,从而能进一步改进案例教学法。

5结论

在建构主义知识观、学习观和教学观的指导下,构建软件工程的案例教学法。一般来说,先使用传统教学法讲授软件工程的基本原理和方法,再在此基础上,进行案例教学。通过案例分析使学生进一步理解和掌握所学的原理和方法,达到理论与实践相结合的统一。该方法不仅可以激发学生的求知欲、提高学习兴趣,而且学生在案例的讨论、分析、归纳、总结过程中进一步理解和掌握了软件工程的基本思想、概念、方法和技术,有助于提高学生分析问题、解决问题、相互沟通、相互合作的能力,对学生今后从事软件开发、管理与维护有一定的指导意义。同时,该方法也要求教师本身的知识水平、教学组织能力、口头表达能力、综合素质较好,并具有一定的软件开发、管理与维护的能力,这样才能够较好地控制教学过程,实施有效的案例教学活动。我院计算机相关专业的软件工程课程教学过程中,案例教学法已被实施,并取得较好的教学效果。

作者:胡俐蕊 阳建中 陈国斌 单位:钦州学院电子与信息工程学院

参考文献

[4]袁维新.建构主义理论运用于科学教学的15条原则[J].教育理论与实践,2004,24(10):57-62.

[5]张家军,靳玉乐.论案例教学的本质与特点[J].中国教育学刊,2004(01):48-50.

[6]张霞,谢桂芳,李盛欣.“软件工程”课程教学改革的研究[J].软件工程师,2014,17(05):31-32.

篇3

一、引言

软件工程是一门交叉性的工程学科,它将计算机科学、数学、工程学和管理学等基本原理应用于软件的开发与维护中,研究重点是大型软件系统的分析与评价、规格说明、设计和演化,同时也涉及管理、质量、创新、标准、个人技能、团队协作和专业实践等方面的内容。然而,软件工程开展近30年后,人们才对软件工程核心的知识体系达成共识。在国际上,ieee-cs和acm联合组建的软件工程协调委员会(swecc)了软件工程知识体系和推荐实践swebok2004[1],为软件工程职业实践建立了合适的准则和规范集,以作为产业决策、职业认证、课程教育的依据。基于swebok,swecc进一步定义了其中可以纳入教育程序的知识体系,包括本科生软件工程教育计划se2004中的seek、研究生软件工程教育计划gswe2009[2]中的cbok、软件工程职业道德规范和职业实践。

我国2002年启动了软件工程硕士培养程序。借助于计算机科学技术、数学、管理科学与工程诸多学科,软件工程已由计算机科学与技术专业下的一个学科方向,发展为一个独立的新兴交叉一级学科。但由于我国传统的高等教育注重科学研究能力培养,工程化人才教育开展时间较短,培养体系尚在不断改革完善,因此在很多院校中软件工程学科还没有脱离计算机科学与技术的范围,所培养的软件工程人才与工业界的要求尚有一定距离,整个硕士培养过程中,课程体系的设置是影响研究生业务能力和素质的重要因素,因此以企业需求为导向,以软件工程知识体系为核心,以训练实践能力的为目标的层次化软件工程课程体系改革对促进高等教育面向社会需求培养人才,全面提高工程教育人才培养质量具有十分重要的示范和引导作用。特别是在硕士生的培养上,对课程学习与学位论文的要本文由收集整理求一般是同等并重,合理的课程体系是高等院校保证培养目标和形成办学特色的重要手段。软件工程硕士的定位和其他学生不同,这为我们的课程设置、建设与管理提出了新的挑战。

通过对国内众多高校的软件工程专业培养方案和课程设置进行分析,将其分为以下四种主要类型[3]:

(1)完全独立型:将软件工程彻底从计算机科学与技术专业分离出来,作为独立的一级学科,课程设置上综合计算机、数学、管理科学与工程等学科,偏重于数学基础,但实践能力较缺乏。

(2)以计算机科学与技术主体课程为基础,以软件工程理论课程为核心,加强实践教学型。以计算机科学与技术的课程体系为主体,教学中突出软件工程的知识体系,加强实践教学,根据企业需求或者人才市场需要,按照工程思想进行实践教学,同时校企结合,试图在实践中摸索和学习软件工程的工程理念,但在进行实践之前的软件工程理论基础不牢固。

(3)实践加强型的计算机科学与技术课程体系,在这个模式下,课程体系基本和计算机科学与技术相同,只是加强了实践环节,学生在学习和就业方面没有脱离计算机科学与技术专业,工作中所学的工程理念需要自己去学习。

(4)其他类型,鼓励学生参加各种软件大赛,推荐学生参加各种证书的考试,获取各种软件企业证书。这种类型中,学生所学内容较多,但是正是为了考试而学习,基础不扎实,同时真正的工程实践能力不够。

因此我们认为,目前的软件工程还没有脱离计算机科学与技术的范围,无论是从传统计算机科学与技术专业与软件工程专业的区别,还是本科生与研究生的区别来看,针对软件工程硕士的课程体系建设和教学改革研究都是十分有必要的,同时也是迫切的。

二、生源基础分析

gswe2009对给出了软件工程硕士的三种主要生源:

(1)在职程序员,由于没有受到过正规研究生教育,有些企业的在职人员对理论知识匮乏,因此具有系统学习的愿望;

(2)其他领域的专业人员,由于软件工程职业的兴起,以及目前人才市场对该专业的需求,使得其他领域的专业人员想要加入软件工程的队伍;

(3)没有工作经验的本科毕业生,在当前就业压力下,许多本科毕业生毕业后选择继续深造。

在我国,软件工程硕士研究生多是没有工作经验的本科毕业生,正式由于这些大学本科毕业生的基础专业各不相同,使得软件工程硕士研究生的课程设置更加复杂和重要。

三、知识体系分析

2004年8月,有全世界五百多位专家教授推出的软件工程知识体(swebok)和软件工程教育知识体(seek)两个文件的最终版本,包含了软件工程核心类的知识领域、基础类或前导类的知识领域以及其他相关领域的知识。2009年, gswe2009中的教育知识体系cbok主要来源于swebok,同时也参考了seek2004、incose2003和haskins2007。与swebok2010同步,gswe2009包含了一个新的知识领域ka(职业实践)和四个关于教育的ka(工程经济学基础、计算基础、数学基础和工程基础),同时两个在swebok中没有出现的ka(系统工程基础和职业操守指导)被加入了cbok。此外,cbok还调整了一些知识单元和知识点[4]。gswe2009由准备知识、核心知识、大学特有知识、选择性知识和顶点经验所构成。其中的大学特有知识有学生的入学基础决定,在整个硕士研究生的培养过程中,主要为学生设置学习专业核心知识之前的准备知识以及在学生职业实践课程中所需要的选择性知识,而顶点经验需要学生在学习专业核心知识和进行职业实践的过程中积累,因此,课程设置中准备知识和专业核心知识的设置以及学习方式尤为重要。

四、课程设置分析

通过对软件工程知识体系进行分析,软件工程硕士研究生应具备的主要能力有:基础开发技能、团队合作技能、发现并解决问题技能、系统建模技能、文档撰写技能。我们将硕士研究生的培养阶段分为:理论知识学习、职业实践、论文撰写三个阶段。在前两个阶段中,我们给出了三单元课程、两步实践的方式,三单元课程分别是:必选课单元、必修课单元、自选课单元,两步实践有:模拟职业实践、实际职业实践。传统的理论学习和职业实践通常是完全分开的两个阶段,但在软件工程这个特殊的学科,我们将理论学习和职业实践结合起来,在进入理论学习第二单元的同时进入模拟职业实践阶段。理论学习三个单元具体设置如下:

(1)必选课:选择工程经济学基础(例如知识产权与法律、企业管理与文化、领导学、信息经济学 、市场营销学等)、计算基础(例如算法设计与分析、高级软件工程、高级数据库、高级操作系统、高级网络技术)、数学基础(离散数学 、组合数学、 工程数学、数值分析)等准备知识中的专业主干课程按学科分类作为新生入学的必选课,取代以往将某些固定课程作为所有学生的基础课的方式,方便根据学生大学所学专业来选择自己所欠缺的准备知识进行学习,是知识的储备阶段,在本单元根据学生所选课程的成绩作为给定学分的依据。

(2)必修课:将软件工程基础中的核心知识(例如软件体系结构、软件项目管理、软件质量保证与软件测试技术、软件系统建模原理和方法、基于cmm 的软件过程改进、软件开发方法、软件需求工程)作为所有学生的必修课,培养学生能够系统全面地了解软件工程的概念,旨在学生具有扎实的软件工程及相关专业基础理论,熟练掌握软件工程知识和技能,并且具备作为软件工程师从事工程实践所需的专业能力。在学知识的同时,适当加入模拟职业实践的训练,根据学生的学习方向,将学生进行分组,进行模拟题目的训练,题目可以是各类大赛的题目、教师的科研课题以及学生自己选题,这是学生职业实践的第一步,培养学生基础开发技能、团队合作技能、系统建模以及独立创新技能,之所以称之为模拟职业实践,是因为这一步的实践题目并不是真正的软件工程课题,而是采用软件工程思想的实际课题,为下一步学生进入企业进行第二步的实际职业实践奠定基础,在本单元根据学生的课堂表现以及最后考核给出一部分成绩,另一部分成绩给出的依据是学生实践课题的完成情况以及在小组中的贡献程度,培养学生动手实践的同时,也提高了学生认识自我、团结合作的能力。

(3)自选课:学生根据自己对软件工程的理解以及通过对上一个单元所做题目的分析,选择自己所需要补充的基础专业知识,自行选择和学习,培养学生发现并解决问题以及自觉学习的能力。在这一单元中,导师根据学生所选专业知识的准确性以及学习之后对该软件工程专业的认识给出学生的成绩。

传统的课程设置一般都是先学习再实践,或者是边学习边实践的过程,前者学生在学习理论的同时没有实践练习,导致学生理论与实践结合得不好,后者在学习的过程中进行实践,锻炼了动手能力,但是学生往往不知所以然,只是按照老师的讲解去实践,对理论的指导作用理解不够,而我们通过上面学习-实践-学习的过程,学生不但对软件工程相关知识有所掌握,也具备了一定的实践能力,同时也培养了学生具有不断补充知识、总结自己、提高自己的意识和能力,在实践中体会到理论知识的作用,从而能够主动学习。在这个过程中,学生在学习软件工程核心知识的同时进入了职业实践的第一步模拟职业实践,将理论和实践很好地融合在一起,使理论的学习过程不再枯燥。

在职业实践的第二步实际职业实践中,学生自己从课堂走出去,到实习基地、用人单位或者是校企合作的相关公司企业进行真正的软件工程实践,学习良好的职业道德,正规的软件工程管理方式,同时在实践中学习和总结自己的研究生学习过程,进入第三阶段论文撰写,这就避免了以往硕士研究生写论文闭门造车的现象,为论文提供了更好的实践依据,提高了硕士论文的质量,这一步通过从实践中回到学习上来培养学生的总结、概括、撰写文档的能力。

篇4

1.实践教学缺乏系统性和针对性目前许多高校“软件工程”课程除了理论讲解外,也加入了实践教学部分。往往受学时所限,实践分为软件项目若干设计文档的编写和软件工程工具的实验练习。前者受缺乏相应的开发环境、教师虚拟客户不能很好地反应现实需求、理工科学生的文字表达能力不足等因素的影响,设计文档的编写不能很好提高学生能力;后者在一定程度起到了一定的作用,但对于培养学生分析问题、解决问题、管理和团体协作能力方面仍显不足。

2.评分模式单一软件工程采用了传统的闭卷考试方式,平时成绩占总成绩的30%,期末考试占70%。平时成绩=上课出勤情况(10%)+实验完成情况(10%)+作业完成情况(10%)。任课教师通过对不同的考核内容赋予不同权重来评价学生对软件工程课程的掌握情况,主要考核学生对课程基本知识的理解。此方法不足以提高学生实际动手的能力,更不利于激发学生实际软件设计开发的兴趣。

二、现有的教学方法的分析

针对上述问题,从事软件工程的相关教师从不同角度,对软件工程课程进行了改革。归纳起来主要有如下几种教学方法改革:

1.自底向上教学法在“软件工程”课程中应用授课方式主要是用倒叙的方式贯穿完整案例(包含警戒案例),以启发、讨论、辩论的形式讲授软件工程的原理、方法及过程,使学生不觉生疏,易接受,又符合IT从业人员的工作进程。[2]

2.模块化教学法在“软件工程”课程中的应用在尊重教学规律和学生个性发展的原则上,根据课程体系和内容之间的关系,将教学部分划分为若干独立的模块,确定模块之间的关联,针对不同的教学计划要求,采用不同的模块组合有选择地进行讲授和学习。[3]

3.案例教学法在“软件工程”课程中的应用软件工程案例教学是根据“软件工程”课程的教学目的和学生培养目标要求,教师选用相应的案例作为基本素材,引导学生对案例进行调查、思考、分析、讨论、设计、开发和交流等相关活动,在活动中教授学生软件工程的原理、方法及过程,进而提高学生分析和解决问题的能力,加深学生对基本理论知识的理解和掌握。[4]

4.项目驱动教学法在“软件工程”课程中的应用项目驱动教学法是案例教学法的基础上采用“案例导向、项目驱动”的教学方法。首先,教师根据要讲授的理论知识预先准备一个或者多个小的软件开发项目;然后,将学生作为主体,以软件开发项目的研发过程为引导,采用学生小组团队合作和学生个人独立完成相结合的教学形式,组织学生开展集体讨论并完成相应的实践性活动,在研发过程中同学和老师要对每位学生所完成的每个阶段任务加以点评、督促改进、分享经验等;最后,学生将成功的软件给予演示。

5.三位一体式教学法在“软件工程”课程中的应用根据学生的认识特点和该课程自身的特点以及对“软件工程”课程在计算机科学专业的定位、教材的选取、课程培养目标的分析下,采取以综合能力培养为中心、项目实践为标准,模板、案例、指导说明为辅助的三位一体式的教学思路。[6]对目前在“软件工程”课程改革中应用的五种方法针对改革侧重点进行汇总发现(见表1),单一的教学方法只是在理论教学、实践教学和考核方式某一方面发挥了很好的作用,而不能从全面发挥效果,而对于“软件工程”课程来说三者同样重要。

三、基于多元教学法的课程改革新模式

某一种教学模式改革已经不能满足现代“软件工程”课程教学的要求,只有将多元教学模式组合在一起,充分考虑各自对课程教学的优势,避其缺点,找到一种既能使学生具有良好的理论基础,又能充分培养学生实践能力,还能准确地考核学生的教学模式。本次课程改革就是本着这样一种思想,从理论教学、实践教学和考核方式三个方面进行多样化改革。

1.理论教学内容多样化

理论知识的学习在学生以后软件项目开发过程中具有必要性和重要性,软件工程学习过程中要重视基础和基本技能的培养。学生要具有开发软件项目的能力,首先要熟悉掌握软件工程相关的理论知识,特别是对如何按照工程化的方法系统地设计、实现、测试和维护大型软件,内容包括:软件开发的基本理论、方法和技术;其次是了解目前已有系统、工具和技术。(1)授课内容引入案例。教师在教学过程中引入与理论知识相匹配的实际案例,将比较抽象的软件工程原理、方法和技术转为具体生动的案例进行诠释,增强理论教学的艺术性、科学性、趣味性、形象性,使学生能够在课堂上深刻领会和理解软件工程的思想和方法,教学效果收到了事半功倍。(2)适时更新教学内容。近几年,软件原理、方法和技术发展较快,许多适应时展的软件不断涌出,而目前的教材虽不断改版更新,但其更新的速度远远跟不上软件工程的发展。因此,教师在进行理论讲解时,除了要教授学生基本原理、技术和方法外,还要时刻关注新内容的出现。(3)制作丰富多彩的课件。采用多媒体教学手段,在课件中插入图片、动画、声音、视频等多媒体元素,使教学内容更加充实和生动。(4)课堂小组讨论。从小问题到大问题,让学生参与教学过程,有机会发表自己的看法。课堂讨论和分析试验,使理论有实践作支撑,抽象的知识变得看得见,用得着,大大激发学生学习的兴趣和自信。

2.实践教学内容多样化

软件工程理论的讲解是课程学习和技能培养的基础,而软件工程中许多理论内容如果只是教师讲解不加以实践,内容本身就会变得空洞和不可理解,例如:软件复杂性计算、软件可靠性与安全性的测量标准、结构化的实现方法等都需要学生动手实践才能更好地理解知识本身的内涵。掌握概念、原理、方法和技术,熟练应用软件开发实践中的方法和技术是“软件工程”课程对学生的培养目标。(1)课程角色扮演。教师预先选择若干小项目,班内学生根据自己对项目熟悉情况选择项目名称,划分项目小组,每组人数不超过6人,每个项目小组成员根据自身特长选择不同软件工程角色,例如项目负责人、需求分析负责人、设计负责人、编码负责人、测试负责人和用户代表,进行项目分工。项目组成员按时完成自己负责任务,撰写相应文档。教师帮助学生分析和解决所遇到问题。在整个开发过程可以体现“学以致用”的思想,实现理论与实践相结合。(2)课程设计。课程设计主要是针对高年级学生在学习软件工程课程时开展的专项训练。课程设计采取在学校内模拟IT企业环境下完成来自企业案例或开发一些具有应用价值项目或学校教师承担的开发项目的部分开发工作,也可以是学生自选项目,整个课程设计阶段严格按照工程实施的基本思想来实施。(3)加强校企合作。一方面经常邀请软件公司长期从事软件设计、开发和项目管理的工程师和项目经理,给学生讲解自己在软件设计、开发和管理中的经验,高质量软件产品需要经过怎样的开发过程,软件生命周期中标准文档如何撰写等相关内容;另一方面,利用寒暑假时间,让学生走出去,到软件产品的研发单位实地实习。

3.考试方式多样化

传统的考核方式已经不能反映学生实际软件开发的水平,也与多样化的教学模式不相匹配,为此多样化的考核方式才符合现实需求,主要包括:笔试、课后角色扮演、课程设计和项目总结。(1)笔试占总成绩的35%,主要考查学生理论知识的掌握情况和学习效果。(2)课后角色扮演占总成绩的15%。由教师根据每位学生在课后角色扮演中的具体表现进行打分,主要由3部分取平均值组成:1/3*(整个项目的成绩+自己负责完成的文档成绩+组内其他成员负责完成的文档的平均成绩)。(3)项目总结或心得体会占总成绩的15%。根据学生在软件开发过程中所撰写的经验和教训总结报告、每个小组成员建立的个人开发记录或日志的实际情况,相互打分。

四、基于多元教学模式课程改革方案

基于上述改革理念,按照软件工程开发原理、方法和技术,选用典型项目案例,将学生按照项目分成若干个小组,每组人数不超过6人。每个小组对应着一个具体的项目,每个人对应着一个具体工作过程,按照如下步骤进行多元教学。第一步,教师选用合适的教学内容,制作丰富多彩的课件,对学生进行基本理论和基本技能的讲解。在每一个软件生命周期结束后,教师进行案例场景描述。教师按照理论知识的内容,选择相应的案例进行描述,学生将所学内容运用到相关案例中。教师通过案例让学生明白理论知识如何应用,学生通过案例体会到小项目中所学的原理、方法和技术是如何实现的。第二步,课后角色扮演。学生通过分组讨论的方式,完成项目分工,明确自己在项目中所扮演的角色。所有的任务通过集体讨论的方式,决出所要完成的任务,并由相应的角色人实际操作完成。例如,需求分析一章内容,学生课后进行项目小组讨论,决定需求分析的内容,进行相应的需求分析,并由扮演需求分析人员的学生完成需求报告。软件开发过程需要整个团队的通力合作,根据学生的性格、表达能力、开发能力、理论基础掌握情况等方面进行人员分组,将具有不同特点的学生组成一个团队完成项目开发。这种团队合作的方式,既能发挥学生各自的特长,又能培养学生的团队合作精神。第三步,课程设计。当全部内容讲解完成,就可以开始长达2周的课程设计内容了。这段时间要求项目小组,彻底完成一个由教师虚拟的项目。此步骤中,主要培养学生良好的科研习惯,在开发过程中及时总结经验和教训,建立个人开发记录或日志,理论联系实际学着开发软件。第四步,学生总结,教师点评。学生经过多个教学环节后,每个团队在一定程度上完成了各自的项目任务,对各自团队的成果进行总结。教师听取每个团队的汇报后,从横向和纵向两个方面对项目成果之间进行比较,从而让每一位学生明白自己在团队中发挥了什么作用,自己哪些方面不足。第五步,请进来,走出去。通过学校和企业合作的方式,一方面经常邀请软件公司长期从事软件设计、开发和项目管理的工程师和项目经理,给学生讲解自己在软件设计、开发和管理中的经验,高质量软件产品需要经过怎样的开发过程,软件生命周期中标准文档如何撰写等相关内容;另一方面,利用寒暑假时间,让学生走出去,到软件产品的研发单位,实地实习。

五、结束语

篇5

关键词:多元教学模式;软件工程;案例教学法

作者简介:司春景(1981-),女,新疆阿拉尔人,塔里木大学信息工程学院,讲师;李向阳(1973-),男,新疆阿拉尔人,塔里木大学信息工程学院,副教授。(新疆 阿拉尔 843300)

基金项目:本文系塔里木大学本科质量工程特色专业“计算机科学与技术”(项目编号:20090627)的研究成果。

中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2013)07-0098-03

“软件工程”是一门指导计算机软件系统开发、维护和管理的学科,主要利用工程概念、原理、技术和方法,将现代技术方法和正确的管理技术相结合,重点研究应用软件开发的基本理论和工程技术来指导软件系统的开发、维护和管理。“软件工程”课程是学生参加工作以后最能直接应用的一门专业核心课,它要求做出一个满足用户要求的系统,这是一个很具体的实践过程,具有很强的工程和项目背景。[1]

一、传统教学模式的问题

“软件工程”是计算机专业学生的一门基础必修课。在目前的教育体系下,大学生学习知识的主要途径是教师讲授。传统的“软件工程”课程教学模式在理论教学方面重视基本知识的教授;在教学原则上强调教学的直观性、系统性和巩固性;在教学方法上强调学生预习、教师讲授和学生反复复习记忆;在教学组织形式上则选用“填鸭式”教学。这种强调知识的单线注入和忽略学生思维训练的方法,不能很好地调动学生的学习主动性,不能起到很好的学习效果。当前高校软件工程课程教学中存在以下突出问题:

1.教材重理论轻实践

对于没有任何大型软件开发经验或参与开发的高校本科生,如果教材只关注软件工程理论的讲解,包括软件开发模型、分析和设计方法等,则学生无法将理论联系实际,所学内容不知所云,更无法在日后发展中将理论与实际相结合。

2.实践教学缺乏系统性和针对性

目前许多高校“软件工程”课程除了理论讲解外,也加入了实践教学部分。往往受学时所限,实践分为软件项目若干设计文档的编写和软件工程工具的实验练习。前者受缺乏相应的开发环境、教师虚拟客户不能很好地反应现实需求、理工科学生的文字表达能力不足等因素的影响,设计文档的编写不能很好提高学生能力;后者在一定程度起到了一定的作用,但对于培养学生分析问题、解决问题、管理和团体协作能力方面仍显不足。

3.评分模式单一

软件工程采用了传统的闭卷考试方式,平时成绩占总成绩的30%,期末考试占70%。平时成绩=上课出勤情况(10%)+实验完成情况(10%)+作业完成情况(10%)。任课教师通过对不同的考核内容赋予不同权重来评价学生对软件工程课程的掌握情况,主要考核学生对课程基本知识的理解。此方法不足以提高学生实际动手的能力,更不利于激发学生实际软件设计开发的兴趣。

二、现有的教学方法的分析

针对上述问题,从事软件工程的相关教师从不同角度,对软件工程课程进行了改革。归纳起来主要有如下几种教学方法改革:

1.自底向上教学法在“软件工程”课程中应用

授课方式主要是用倒叙的方式贯穿完整案例(包含警戒案例),以启发、讨论、辩论的形式讲授软件工程的原理、方法及过程,使学生不觉生疏,易接受,又符合IT从业人员的工作进程。[2]

2.模块化教学法在“软件工程”课程中的应用

在尊重教学规律和学生个性发展的原则上,根据课程体系和内容之间的关系,将教学部分划分为若干独立的模块,确定模块之间的关联,针对不同的教学计划要求,采用不同的模块组合有选择地进行讲授和学习。[3]

3.案例教学法在“软件工程”课程中的应用

软件工程案例教学是根据“软件工程”课程的教学目的和学生培养目标要求,教师选用相应的案例作为基本素材,引导学生对案例进行调查、思考、分析、讨论、设计、开发和交流等相关活动,在活动中教授学生软件工程的原理、方法及过程,进而提高学生分析和解决问题的能力,加深学生对基本理论知识的理解和掌握。[4]

4.项目驱动教学法在“软件工程”课程中的应用

项目驱动教学法是案例教学法的基础上采用“案例导向、项目驱动”的教学方法。首先,教师根据要讲授的理论知识预先准备一个或者多个小的软件开发项目;然后,将学生作为主体,以软件开发项目的研发过程为引导,采用学生小组团队合作和学生个人独立完成相结合的教学形式,组织学生开展集体讨论并完成相应的实践性活动,在研发过程中同学和老师要对每位学生所完成的每个阶段任务加以点评、督促改进、分享经验等;最后,学生将成功的软件给予演示。[5]

5.三位一体式教学法在“软件工程”课程中的应用

根据学生的认识特点和该课程自身的特点以及对“软件工程”课程在计算机科学专业的定位、教材的选取、课程培养目标的分析下,采取以综合能力培养为中心、项目实践为标准,模板、案例、指导说明为辅助的三位一体式的教学思路。[6]

对目前在“软件工程”课程改革中应用的五种方法针对改革侧重点进行汇总发现(见表1),单一的教学方法只是在理论教学、实践教学和考核方式某一方面发挥了很好的作用,而不能从全面发挥效果,而对于“软件工程”课程来说三者同样重要。

三、基于多元教学法的课程改革新模式

某一种教学模式改革已经不能满足现代“软件工程”课程教学的要求,只有将多元教学模式组合在一起,充分考虑各自对课程教学的优势,避其缺点,找到一种既能使学生具有良好的理论基础,又能充分培养学生实践能力,还能准确地考核学生的教学模式。本次课程改革就是本着这样一种思想,从理论教学、实践教学和考核方式三个方面进行多样化改革。

1.理论教学内容多样化

理论知识的学习在学生以后软件项目开发过程中具有必要性和重要性,软件工程学习过程中要重视基础和基本技能的培养。学生要具有开发软件项目的能力,首先要熟悉掌握软件工程相关的理论知识,特别是对如何按照工程化的方法系统地设计、实现、测试和维护大型软件,内容包括:软件开发的基本理论、方法和技术;其次是了解目前已有系统、工具和技术。

(1)授课内容引入案例。教师在教学过程中引入与理论知识相匹配的实际案例,将比较抽象的软件工程原理、方法和技术转为具体生动的案例进行诠释,增强理论教学的艺术性、科学性、趣味性、形象性,使学生能够在课堂上深刻领会和理解软件工程的思想和方法,教学效果收到了事半功倍。

(2)适时更新教学内容。近几年,软件原理、方法和技术发展较快,许多适应时展的软件不断涌出,而目前的教材虽不断改版更新,但其更新的速度远远跟不上软件工程的发展。因此,教师在进行理论讲解时,除了要教授学生基本原理、技术和方法外,还要时刻关注新内容的出现。

(3)制作丰富多彩的课件。采用多媒体教学手段,在课件中插入图片、动画、声音、视频等多媒体元素,使教学内容更加充实和生动。

(4)课堂小组讨论。从小问题到大问题,让学生参与教学过程,有机会发表自己的看法。课堂讨论和分析试验,使理论有实践作支撑,抽象的知识变得看得见,用得着,大大激发学生学习的兴趣和自信。

2.实践教学内容多样化

软件工程理论的讲解是课程学习和技能培养的基础,而软件工程中许多理论内容如果只是教师讲解不加以实践,内容本身就会变得空洞和不可理解,例如:软件复杂性计算、软件可靠性与安全性的测量标准、结构化的实现方法等都需要学生动手实践才能更好地理解知识本身的内涵。掌握概念、原理、方法和技术,熟练应用软件开发实践中的方法和技术是“软件工程”课程对学生的培养目标。

(1)课程角色扮演。教师预先选择若干小项目,班内学生根据自己对项目熟悉情况选择项目名称,划分项目小组,每组人数不超过6人,每个项目小组成员根据自身特长选择不同软件工程角色,例如项目负责人、需求分析负责人、设计负责人、编码负责人、测试负责人和用户代表,进行项目分工。项目组成员按时完成自己负责任务,撰写相应文档。教师帮助学生分析和解决所遇到问题。在整个开发过程可以体现“学以致用”的思想,实现理论与实践相结合。

(2)课程设计。课程设计主要是针对高年级学生在学习软件工程课程时开展的专项训练。课程设计采取在学校内模拟IT企业环境下完成来自企业案例或开发一些具有应用价值项目或学校教师承担的开发项目的部分开发工作,也可以是学生自选项目,整个课程设计阶段严格按照工程实施的基本思想来实施。

(3)加强校企合作。一方面经常邀请软件公司长期从事软件设计、开发和项目管理的工程师和项目经理,给学生讲解自己在软件设计、开发和管理中的经验,高质量软件产品需要经过怎样的开发过程,软件生命周期中标准文档如何撰写等相关内容;另一方面,利用寒暑假时间,让学生走出去,到软件产品的研发单位实地实习。

3.考试方式多样化

传统的考核方式已经不能反映学生实际软件开发的水平,也与多样化的教学模式不相匹配,为此多样化的考核方式才符合现实需求,主要包括:笔试、课后角色扮演、课程设计和项目总结。

(1)笔试占总成绩的35%,主要考查学生理论知识的掌握情况和学习效果。

(2)课后角色扮演占总成绩的15%。由教师根据每位学生在课后角色扮演中的具体表现进行打分,主要由3部分取平均值组成:1/3*(整个项目的成绩+自己负责完成的文档成绩+组内其他成员负责完成的文档的平均成绩)。

(3)项目总结或心得体会占总成绩的15%。根据学生在软件开发过程中所撰写的经验和教训总结报告、每个小组成员建立的个人开发记录或日志的实际情况,相互打分。

四、基于多元教学模式课程改革方案

基于上述改革理念,按照软件工程开发原理、方法和技术,选用典型项目案例,将学生按照项目分成若干个小组,每组人数不超过6人。每个小组对应着一个具体的项目,每个人对应着一个具体工作过程,按照如下步骤进行多元教学。

第一步,教师选用合适的教学内容,制作丰富多彩的课件,对学生进行基本理论和基本技能的讲解。在每一个软件生命周期结束后,教师进行案例场景描述。教师按照理论知识的内容,选择相应的案例进行描述,学生将所学内容运用到相关案例中。教师通过案例让学生明白理论知识如何应用,学生通过案例体会到小项目中所学的原理、方法和技术是如何实现的。

第二步,课后角色扮演。学生通过分组讨论的方式,完成项目分工,明确自己在项目中所扮演的角色。所有的任务通过集体讨论的方式,决出所要完成的任务,并由相应的角色人实际操作完成。例如,需求分析一章内容,学生课后进行项目小组讨论,决定需求分析的内容,进行相应的需求分析,并由扮演需求分析人员的学生完成需求报告。软件开发过程需要整个团队的通力合作,根据学生的性格、表达能力、开发能力、理论基础掌握情况等方面进行人员分组,将具有不同特点的学生组成一个团队完成项目开发。这种团队合作的方式,既能发挥学生各自的特长,又能培养学生的团队合作精神。

第三步,课程设计。当全部内容讲解完成,就可以开始长达2周的课程设计内容了。这段时间要求项目小组,彻底完成一个由教师虚拟的项目。此步骤中,主要培养学生良好的科研习惯,在开发过程中及时总结经验和教训,建立个人开发记录或日志,理论联系实际学着开发软件。

第四步,学生总结,教师点评。学生经过多个教学环节后,每个团队在一定程度上完成了各自的项目任务,对各自团队的成果进行总结。教师听取每个团队的汇报后,从横向和纵向两个方面对项目成果之间进行比较,从而让每一位学生明白自己在团队中发挥了什么作用,自己哪些方面不足。

第五步,请进来,走出去。通过学校和企业合作的方式,一方面经常邀请软件公司长期从事软件设计、开发和项目管理的工程师和项目经理,给学生讲解自己在软件设计、开发和管理中的经验,高质量软件产品需要经过怎样的开发过程,软件生命周期中标准文档如何撰写等相关内容;另一方面,利用寒暑假时间,让学生走出去,到软件产品的研发单位,实地实习。

五、结束语

在多元教学过程中,理论教学利用多媒体PPT充实了课堂内容,小组讨论调动了学生积极性,不断更新的教学内容跟上了发展,以及启发式的案例教学提高了学生的能力;实践教学从课后角色扮演、期末集中时间课程设计,到寒暑假校企实习,整个过程依据软件工程思想逐步的从小角色的扮演,团结合作做一个虚拟项目,到真正到软件公司去实习工作,提高了学生的语言表达能力、分析问题能力、实践动手能力和软件工程协作、纪律等。考核方式不再是单一的方式,除了考查基本理论的掌握情况,还考核学生是否已经具备了一定的动手能力和科研能力。从理论教学、实践教学和考核方式三个方面进行多元教学,按照方案进行实施,强调动手能力,将工作过程的职业环境融入学习过程中,将学生对知识、职业能力的掌握程度提高到了实践这一层面,使得学生能真正进入到“在学中做,在做中学”的理想学习环境中。

参考文献:

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

[2]温春友,敖广武.对软件工程课程自底向上教学模式的探索[J].辽宁高职学报,2008,(3):27-28.

[3]孙知信.软件工程课程模块化教学改革的实践与思考[J].南京邮电学院学报(社会科学版),2004,(2):39-42.

[4]彭佳红,彭佳文,等.基于案例的软件工程课程教学研究[J].高等农业教育,2009,(11):60-62.

篇6

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

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

文章标号:1672-5913 (2007) 23-0038-02

软件工程工程是一门理论性和实践性很强的计算机专业课,涉及计算机科学、数学、工程学、管理学等多个领域知识,是一门软件开发中经验总结出来的理论课程。它的教育目标是让学生掌握软件开发中的管理和技术,并应用于实践。软件工程的教学成效直接影响学生今后从事软件开发和软件项目管理的能力,但是在教学实践中学生往往感到软件工程内容太抽象,实用性不大,很难达到较好的教学效果。为了能改变现有的状况,本文从课程的教学内容、教学方式、教学手段、考核方式等提出一些改革方案。

1教学内容要紧跟软件行业发展趋势

软件工程发展日新月异,软件开发方法和技术在不断的更新,虽然教材也在不断更新内容,但很难及时准确地反映当前软件发展的最新技术,因此,教师在教学过程中不能仅讲授书本内容,而是要注意新技术、新方法的传授。许多软件工程教材以结构化方法为主要内容,而面向对象方法学已是当今软件开发方法中的主流技术,因此,在制定教学大纲和教学过程中要以面向对象方法学为主,使学生掌握OOA、OOD到OOP软件开发的基本过程,掌握面向对象的建模工具Rational Rose和建模语言UML。同时,我们邀请国内较著名的软件公司的项目负责人给学生作专题报告,讲授一些当今软件企业最新开发技术和管理方法,这样不仅使学生开拓自己的知识范围,也了解了IT企业的人才需求,使他们今后走向社会不至落伍,使自己的学习更有方向性和主动性。

2案例式教学方式的探讨

2.1强化理论联系实际的教学方法

软件工程讲授的原理、技术和方法都较为抽象,由于大多数学生缺乏实际的软件开发经验,不能很好地理解软件工程的思想和原理,容易产生枯燥乏味的感觉,因此,在具体的教学中,引入一个典型的、完整的、易于理解的、具有实际意义的案例,将复杂抽象的概念用具体生动的案例进行诠释。如在讲授软件工程中的生命周期方法学时,从问题的定义,到可行性研究、需求分析、总体设计、详细设计、编码、测试、维护,均以开发一个小型的银行储蓄系统为例。这样不仅使所讲授的知识具有连续性,也使学生从具体案例中学会DFD、DD、E-R图、层次方框图、Warnier图、HIPO图和Jackson图的绘制,由此掌握这些图的真正作用和含义。

2.2组织好综合设计,培养软件开发和编写文档的能力

案例式教学贯穿于软件工程的全过程,除了通过案例来讲解软件工程的原理和方法外,还必须让学生动手参与案例的分析与设计。为此,我们在理论课后进行四周的软件工程综合设计。

软件工程综合设计应以团队合作的形式进行,每个小组5~6人分工合作,分别担任客户,项目经理,系统分析员,程序员和测试员角色,要求运用软件工程中面向对象技术、方法和按照软件过程规范分阶段实施,每个小组在教师的指点下,完成项目的开发计划、可行性研究、需求分析、概要设计、详细设计、编码、测试、用户手册和总结。同时每个阶段结束后都要有成果展示,如在分析阶段按照软件国家标准GB8567提供的模板编写相关的文档,测试阶段要给出测试方案,每个阶段以答辩的形式进行考核评分。这样不仅锻炼学生团队合作和相互沟通的能力,而且系统地消化了所学的理论知识,同时学会如何利用软件工程的原理、方法开发一个实际项目,训练项目设计的思路,培养严格规范的项目开发方法、步骤和规范地撰写文档的能力,为他们今后走向工作岗位作好铺垫。

3改革课程考核方式

软件工程作为实践性很强的一门课程,检验的重点不是理论课考试分数,而是学生能否真正掌握软件开发方法、思想和解决问题的能力,因此应适当加大实践考核的力度。我们提出方案是平时成绩占10%,软件分析与设计占40%,试卷成绩占50%。同时为了避免学生在考试时死记硬背,我们采取开卷考试,重点考查学生的软件分析与综合应用能力,应用题应占试卷的主要比重。这样提高了学生对知识理解和运用能力。

总之,要改进软件工程的教学,必须针对其实践性强、发展迅速的特点,根据软件行业需求的变化不断更新教学大纲和教学内容,设计合理的教学方式,理论与实践相结合,在突出课程基本概念和原理的同时,更应侧重于对学生的软件工程应用能力的培养和软件工程新技术、方法的传授。为国家和社会培养出符合时代要求的软件工程人才。

参考文献

[1] 万江平,等.软件工程知识体系指南综述[J].计算机应用研究,2006,10:1-3.

[2] 周苏,等.软件工程实验教学的设计与创新[J].计算机教育,2006,10:27-29.

[3] 沈备军,等.软件工程教学模式的研究和实践[J].计算机教育,2005,1:39-41.

[4] 尹锋.“软件工程”课程教学改革初探 [J].长沙大学学报,2004,4:77-80.

[5] 唐伟.《软件工程》精品课程建设的探讨 [J].福建电脑,2006,7:214-215.

篇7

通过对吉首大学连续多年所开设“软件工程”课程的教学过程及教学效果分析,结合多篇相关教改论文的分析,发现当前的“软件工程”课程教学存在以下主要问题:

1.重理论,轻实践,理论与实践结合不紧密

目前,国内高校普遍沿用传统的教学方式,以教师课堂授课为主,侧重讲授软件工程开发中的相关理论,学生被动听课,通常感觉所学内容过于抽象,无法调动学习兴趣。即使每个学校都开设了对应的实验课程,往往也侧重对学生文档撰写能力的提高,无法从市场需要出发,让学生利用软件工程的开发思想,结合需要解决的实际问题,设计出真正可行的软件系统。

2.教学内容无法反映技术的快速更新

随着信息技术的快速发展,人们积累了大量的软件开发经验,并不断出现许多新的软件开发方法和开发工具。另一方面,由于人们利用软件处理问题的领域不断扩大,问题的复杂度也不断增加,这些均需要人们不断调整软件工程授课的内容,增加新的软件开发思想、软件开发方法和软件工具使用等方面的知识。而目前,由于教材内容更新速度远远跟不上技术的更新,使得教学内容也无法及时更新。

3.课程考核无法真正反映学生对知识的掌握程度

首先,目前大量的考试仅用于检验学生对课程知识的掌握程度,促进学生进一步学习的功能无法实现,让学生对考试的认识浮于表面,同时还导致了部分学生害怕考试,在心理上抵制考试。其次,考试形式单一,由于期末考试容量有限,时间比较固定,不能全面、客观、及时准确地反映学生对知识的掌握程度,无法发现具有巨大潜能的同学。此外,一方面,由于考试在课程结束之后进行,结果分析则需要等到学期结束才能进行,根本无法对学生的学习过程进行指导;另一方面,考试结果分析也进行是对成绩分布做出简单的统计分析等,没有深度考查其中的原因。由上可见,现有的课程考核无法反映学生对课程知识的掌握,更无法体现学生应用课程知识的能力。

“软件工程”课程的教学改革策略

课程的教学改革将从教学的知识体系、课程教学实施、实践课程改革及考试改革等四个方面进行实施:1.以IEEE-CS与ACM最新的软件工程知识体系为基础框架,结合教育部高等学校计算机科学与技术教学指导委员会组织撰写的软件工程课程教学实施方案,从当前软件工程的理论和实践出发,融合企业的先进技术和最佳实践,构建以统一开发过程、面向对象技术和UML语言为核心内容的“软件工程”授课内容体系、授课大纲及授课进度安排。

2.课堂教学改革:在课堂教学中,主要采用案例教学的策略,通过利用各种不同类型的案例的讲解,让学生通过对实际案例的学习,将抽象模型与实际应用结合起来。在案例的选取过程中,需要遵循以下原则:(1)实用性原则,即所选案例能够满足专业培养的需要,可用适当的课时对案件进行讲解,有利于学生对软件工程开发过程的理解。(2)完整性原则,所选的实例能完整反映软件开发的全过程,在授课过程中,可以通过对同一案例不同阶段的持续讲解,让学生逐步学会对项目的分解和分析。(3)规范性原则,即所选案例的描述、分析、设计以及文档的撰写等符合软件工程专业规范要求。(4)多样性原则,即所选取的多个案例之间要具有一定的差异性,让学生能体会到不同的软件设计方法、不同的软件开发模型以及不同工具使用等方面的特征,以便于在实际工作中能合理选择,灵活运用。在授课前,教师首先要选择好合适的案例,设计好案例讲解的流程,并预留若干问题供学生思考与讨论。在讲授过程中,教师需要对案例的应用场景及注意事项做出交代,引导学生积极思考,并在学生的讨论过程中记录好重点问题。在学生讨论结束后选代表发言,并由教师做出一定点评和总结。

3.实践教学改革:通过“软件工程”课程项目库建设,在实践教学过程中依据学生的学习能力、兴趣等分成不同小组,并为每个小组分配合适的项目进行实验。实验中需根据学生的特点进行角色分配,为了更好的完成专业培养目标的需要,在实验过程中还需将学生的角色进行适当轮换,让每个学生能体验不同角色在不同阶段的职责与任务。

4.考核机制改革:通过随堂考查、实验考核、项目分组评分、试卷考试等多种方式,全面考核学生对知识点的掌握情况,及时准确的了解学生学习效果。此外还需完善课程的试题库、试卷库及项目库的建设。

总结

篇8

关键词:软件工程;知识体系;本科教育;研究生教育;教学改革

每种工程职业都有一个职业基础知识体系及其推荐的实践。这一知识体系多数情况下可以组织成正式文档,并为理论指导文件、教育程序、培训程序、专家认证或职业执照等。在国际上,IEEE-CS和ACM联合组建的软件工程协调委员会(SWECC)了软件工程知识体系和推荐实践SWEBOK2004[1],为软件工程职业实践建立了合适的准则和规范集。基于SWEBOK,SWECC进一步定义了其中可以纳入

教育程序的知识体系,包括本科生软件工程教育计划SE2004[2]中的SEEK、研究生软件工程教育计划GSwE2009[3]中的CBOK、软件工程职业道德规范和职业实践[4]。国内有过较好实践的有南京大学的软件工程教育知识体系[5-7]。

本文在分析SEEK和CBOK的基础上,求精与重构软件工程专业学科教育知识体系,包括:1)按照“新视角、新认知、新方法”确定计算基础部分在教学中的重点,解决SEEK对CS知识单元的“鸵鸟”化处理问题;2)基于教学实践总结求精本科阶段软件工程最小核心教育知识点。该项工作试图能够更好指导各个层次教育机构的教学活动,适应从具有国际竞争能力的高端工程型软件人才到面向具体应用领域的基础软件开发实用人才的多层次培养需要。

1SEEK分析

SE2004[2]定义了本科生软件工程教育知识体系SEEK,包括知识领域(KA)、知识单元和知识点3个层次,采用Bloom分类法,并在知识单元级别给出了最小核心课时数。SEEK共有10个知识领域,42个知识单元,最小核心学时数为494,详见表1。

SEEK历经5年实践,其系统性、全面性、先进性和实用性均得到了较好验证。但作为确立软件工程专业的第1版教育知识体系,SEEK过于强调新学科确立的知识领域,忽视了对继承学科的相关知识领域的描述,从而影响到相当一部分教育机构对于知识体系的理解和执行。如:1)计算机科学基础拥有140个核心学时,占SEEK总核心学时数的三分之一,但仅仅作为一个知识单元存在,如何执行?SE2004建议去参考CS2001,但是CS2001中的知识领域仅对应于SE2004中的知识点,大多数教育机构很难理解SE如何调整求精CS,因此很难对CS的核心课程进行调整与改革。2)很多教育机构反映软件工程相关知识领域的核心学时数比较多,在高等教育大众化阶段下,应该允许教育机构根据自己的人才培养定位,适当削减本科阶段的软件工程核心学时数,也有益于培养面向某一应用领域的实用型软件人才。

2CBOK分析

GSwE2009[3]给出了研究生软件工程教育知识体系CBOK。CBOK以SWEBOK的组织和内容为蓝本,但进行了一些修改。包括:1)加入了系统工程基础和职业操守指导两个新的KA。2)重新安排或修改了一些知识单元和知识点,如人机交互设计被加入到软件设计KA;工程经济学单元被加入到软件工程管理KA;风险管理单元被加入到软件工程管理KA;

软件检验和有效性验证单元被加入到软件质量KA;以及部分名称的改变和知识单元/点组织的改变。值得注意的是,即将的SWEBOK2010也在进行同步修改。

GSwE2009 指出了软件工程专业研究生面临宽泛的入学准备条件,包括:1)获得过相关学士学位;2)学习过SwE相关课程;3)具有2年的SwE相关经验。CBOK则具体组织为预备材料、核心材料、大学特有材料、选择性材料、顶点经验等部分。学生对每个KA所应该掌握的程度,CBOK使用了K(知识)、C(理解)、AP(应用)和AN(分析)等4个级别。

CBOK预备材料指出了学生在进入硕士阶段学习的时候所必须具有的知识,这些知识可以从大学本科的教育、软件开发经验、机构的认证课程中获得。表2给出了对预备材料的分析,SE2004是这一部分知识元素的主要来源,但在组织上与SEEK有所不同,反映了对SEEK 5年实践的总结和提高,对我们更好地理解SEEK有较大意义。

CBOK核心材料给出了研究生课程所应该覆盖的核心知识体系,按照相当于15学分的教学时间来定义。即核心知识体系的学习由比总学时数50%略少的时间来达到,其他时间和课程将会被分派去提供加深核心领域(Bloom级别的提高)和专注于某个选定的应用领域。表3给出了对核心材料的分析,其中百分数表示在总课时数内所占的比例,相加不超过50%。

3研究目标

本文结合最新的GSwE2009中CBOK教育知识体系和即将的SWEBOK2010,总结SE2004中SEEK教育知识体系在我国高校5年的教学实践,从加强实用性的角度重构与求精SEEK以与CBOK接轨,适应我国高校软件工程专业多层次教育的需求。

在人才培养上,我们的定位如下:

1) 研究生教育知识体系保持CBOK的灵活性与可伸缩性,允许高校针对多入口情况灵活设置教学体系。

2) 本科教育知识体系既适应高水平大学软件工程专业培养具有国际竞争能力的中高层次工程型软件人才的需求。

3) 本科教育知识体系又适应应用型大学软件工程专业培养面向各个应用领域的基础软件开发实用人才的需求。

在人才培养目标上,力图使得学生具有如下能力:

1) 掌握核心知识。

2) 熟悉某个应用领域。

3) 知晓职业道德。

4) 能够利用系统工程原则指导软件工程。

5) 具有团队合作精神、交流表达能力。

6) 具有协调折中能力。

7) 具有综合能力。

8) 具有终身学习能力。

9) 具有对新技术的分析应用能力。

10) 能够在某个KA上追求深度。

在教学知识内容设计上,我们的要求如下:

1) 软件工程专业强调扎实宽泛的知识基础。软件工程师在工作环境中需要广泛地了解涉及产品开发的诸多知识领域,并在具体产品构造中灵活运用该领域的前沿技术。

2) 软件工程专业强调从事该领域工作的实际体验。在教学实施中应该重视体验实际软件开发工作的过程,熟悉实际应用的方法与工具,以使毕业生能够更快地融入今后的工作。

3) 软件工程专业强调分析与解决实际工程问题的方法与能力。解决实际工程问题的能力是软件工程教育的核心问题,要重视培养学生分析、设计、构造、实施、维护实际工程问题的知识与能力以及围绕实际工程问题的组织、协调与管理的知识与能力。

4) 软件工程专业强调与实际应用领域的结合能力。软件的应用无所不在,熟悉一个或数个应用领域的相关知识,并将其与软件工程核心技术相结合,是对该专业毕业生的基本要求。

5) 软件工程专业强调综合运用各种方法与技术的能力。选择合适的方法与工具并有效集成,是构造软件产品的重要能力,再学习能力是对软件工程师的基本要求,选择与决策是一个软件工程师的核心素质。

6) 软件工程专业强调工程观、职业道德和团队合作能力。树立工程理念,在工程原则和方法指导下遵从职业要求,以团队方式完成软件项目,是一个软件工程师所应具备的素质。

4工作路线

在技术路线上,软件工程专业教育知识体系的重构与求精遵循以下途径:

1) 用软件工程的世界观统一审视和重新组织软件工程教育知识体系。SEEK回避了计算机科学基础相关知识,通过直接借用CS2001,导致SEEK在教学实施时成为CS和SE两种观点的混合体,各高校在对计算机科学传统课程改造时遇到较大困难。求精后的教育知识体系试图站在软件工程的新视角来重新编写和组织计算基础相关知识领域,站在软件系统构建的高度全新认知计算系统知识的教学,运用解决具体软件设计问题的新方法来处理计算机科学传统课程的教学改革,从而达到在软件工程专业有效改造CS传统课程的目标。

2) 求精本科教育阶段的软件工程知识,适应更多教育机构多层次教育的需求。根据我国高校5年教学实践,多数学校普遍认为软件工程相关知识的教学内容偏多。特别是对于应用型高校软件工程专业来说,重点是培养学生在软件工程思想指导下的针对应用领域的软件开发技能。CBOK定义的研究生准入条件和准出条件也在另一方面印证了SEEK的部分软件工程知识可以移入研究生阶段。因此笔者在认真调研的基础上对软件工程相关知识领域进行求精,设置核心教学课时最小值,作为大学软件工程专业的最低要求;同时把SEEK规定的核心教学课时取为最大值,作为高水平大学软件工程专业的办学参考;有关高校可以根据自己的人才培养定位在两者之间浮动,实现自己的办学特色。

3) 适应我国高校教学的具体诉求。计算机科学与技术一级学科研究生联考对软件工程专业教学产生影响。因此在重构计算基础相关知识领域时,把SEEK中与数据结构、计算机组成、操作系统和网络相关的核心课时数设置为最小值,作为软件工程专业办学的基本要求;同时把联考要求规定的核心教学课时取为最大值,作为部分高校软件工程专业的办学参考。

4) 研究生教育知识体系采用CBOK。软件工程专业研究生教育程序面临相对宽泛的入口。软件工程专业本科毕业生需要在某个KA、某个应用领域和实践上得到深造;信息类专业本科生或接受过IT培训的学生需要在软件工程知识和实践上受到良好训练,并把这些知识与他们原先的工作领域或以后想从事的应用领域相结合;在SwE方面有过两年工作经验的人,严格的软件工程训练则更加重要。不同的人有着不同的学习诉求,因此在建设教育知识体系与相关课程方面,良好的灵活性与可伸缩性尤其显得重要,CBOK较好地解决了这一诉求。

5) 遵从SEEK与CBOK。本文给出的学科教育知识体系以SWEBOK为基础,是用软件工程视角统一规整、重构和求精SEEK与CBOK后得到的,其基础和知识产权均属于SWECC。

5重构和求精后的软件工程教育知识体系

软件工程教育知识体系包括本科生和研究生两个部分,其中研究生教育知识体系完全采用CBOK,本科生教育知识体系在SEEK基础上重构与求精。

重构的方法是采用软件工程视角全新组织SEEK中的计算基础、数学与工程基础等两个知识领域,重新划分为数学基础、程序设计基础、计算系统基础和工程基础4个知识领域。此外,原计算基础中的软件构造升格为知识领域,原计算基础中构造工具与分布在软件工程各相关知识领域中的工具知识点合并为一个独立的知识领域,后者与系统与应用知识领域一样,不设核心教学课时数要求。

求精则依据CBOK的研究生准入条件和我国高校对SEEK的五年教学实践。首先,求精软件工程各知识领域和工程基础知识领域中各知识点的本科教学要求;设置核心教学课时数最小值,作为本科毕业生最低教学要求;把SEEK原先核心教学课时数设置为最大值,供部分高校在教学设计时参考。其次,针

对我国高校计算机一级学科研究生联考的现实,对数据结构、算法、计算机组织结构、操作系统、网络与通信等知识单元进行扩展,SEEK原先核心教学课时数设置为最小值,作为本科毕业生最低教学要求;联考特别要求作为核心教学课时数最大值,给有研究生考试需求的高校参考。

表4给出了重构和求精后的软件工程专业本科教育知识体系,采用Bloom分类法,知识点的掌握程度用k(知识)、c(理解)和a(应用)标记;重要程度用E(核心)、D(推荐)和O(选修)标记;共有13个基本知识领域,52个知识单元,建议核心学时数最小值为381(E),最大值为520(E+D);另有软件工具和系统与应用两个扩展知识领域。

研究生教育知识体系参考第二节关于CBOK2009的描述。

6结语

本文从实用性角度出发,对SEEK进行了重构和

求精。用软件工程的统一视角组织、细化和求精本科生教育知识体系,从而使本科生教育知识体系具有较好的灵活性、适用性和可伸缩性,并较好地与CBOK衔接,共同组成完整的软件工程专业教学知识体系,从而能够有效指导我国高校软件工程专业的本科生与研究生教学体系设计。

参考文献:

[1] Guide to the Software Engineering Body of Knowledge[EB/OL]. [2010-10-11]. /.

[2] Software Engineering 2004. Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering[EB/OL]. [2010-10-25]. /ccse/.

[3] Graduate Software Engineering 2009 (GSwE2009): Curriculum Guidelines for Graduate Degree Programs in Software Engineering[EB/OL]. [2010-10-25]. /.

[4] Software Engineering Professionalism[EB/OL]. [2010-10-25]. /about/se-code.

[5] 骆斌,丁二玉. 南京大学软件工程专业本科教程[M]. 北京:高等教育出版社,2009.

[6] 张大良,骆斌. 软件专业应用型人才培养的研究与实践[J]. 南京大学学报:自然科学版,2009(增刊1):1-5.

[7] 骆斌,张大良,邵栋. 软件工程专业的课程体系设计[J]. 中国大学教学,2005(1):32-33.

Analysis, Reconstruction and Refinement of Software Engineering Educational Knowledge Body

LUO Bin1, ZANG Bin-yu2, DING Er-yu1

(1.School of Software, Nanjing University, Nanjing 210093, China ; 2.School of Software, Fudan University, Shanghai 200433, China)

篇9

关键词: 软件工程; 任务驱动教学法; 案例教学法; 项目驱动教学法

中图分类号:TP311.5 文献标志码:A 文章编号:1006-8228(2017)05-50-04

Discussion on teaching model of software engineering course

Li Ling

(Computer Science and Control Engineering Institute, North University of China, Taiyuan, Shanxi 030051, China)

Abstract: Software engineering is a major course in computer specialty, which plays an important role in improving student's abilities of software development, teamwork, communication, innovation and self-learning. Aiming at the problem that the course teaching is emphasis on the technology more than the management, this paper expounds the educational objectives and the teaching contents based off the educational objectives. In order to improve students' interest in learning, the framework for the implementation of task-driven teaching method and case teaching method is put forward, and the application of project-driven teaching method in practice teaching is expounded.

Key words: software engineering; task-driven teaching method; case teaching method; project- driven teaching method

0 引言

软件工程课程是一门研究用工程化方法构建和维护有效、实用、高质量软件的学科,是计算机专业人员必修的一门主干课程。它以数据结构、面向对象程序设计、数据库原理及应用、操作系统等课程为先驱,糅合了工程化软件开发思想,旨在让学生通过本门课程的学习,理解软件工程的基本原理、软件项目开发各阶段的任务,掌握传统的结构化设计方法和面向对象的开发方法,建立以工程化思想管理软件开发维护进程。对提高学生的软件开发能力、解决问题和创新能力以及项目管理、团队合作能力具有重要意义。

软件工程一直是高年级专业课程中教学难度较大的一门课程。从对学生就业单位的问卷调查和访谈结果来看,教学效果未达到理想状态。究其原因,有四个方面。

第一,本课程理论性强,如何引发学生兴趣是重中之重。单纯引入案例教学,没有良好的组织过程,学生仍未能有“身临其境”感觉,无法达到教学效果[1]。

第二,本课程是一门综合性课程,起于理论,必须将理论应用于实践中,理论实践相结合,学生对知识点才会有深刻体会。目前教学仍有重理论轻实践特点,理论与实践有所脱节。

第三,实践过程的组织耗时耗力,评价体系不完善。软件工程的实践环节涉及到数据结构、程序语言、开发环境、数据库等多方面知识,因此实践的开展,易受到先驱课程没有学好或没有拓展、遗忘等影响。需对学生知识状况进行摸底评估。对于实践过程耗时长,要考虑如何引导学生高效工作;如何评估划分不同学生知识结构的层次;针对学生良莠不齐情况合理管理及高效引导实践进程。而目前对实践过程的评价,除了印象分,仍是以最终结果评价为主,有失公正性,对学生的团队协作能力培养也是桎梏。

第四,本课程知识体系一直存在重技术轻管理的误区。现工程教育认证标准在各大高校逐渐推展开。工程教育认证,明确将项目管理能力、承担团队成员以及负责人的角色能力、沟通能力等写入了毕业要求。加大学生软件工程管理能力教育力度,培养符合工程化认证标准的人才,是需要我们反复思考加实践来推进的。本文从软件工程课程培养目标、教学内容体系、课程教育方法三方面出发,浅谈对软件工程课程教改的一些思路。

1 件工程课程培养目标

本课程旨在培养学生软件工程理论知识、职业技术能力、职业素养三方面的能力。理论知识方面,要求学生掌握传统的结构化开发和面向对象开发中各阶段的任务、任务完成的步骤,以及相关模型建立的方法。职业技术能力方面,要求学生基本掌握使用Microsoft Project进行软件项目管理,使用visual Source safe进行版本控制、使用 Rational Rose和Viso进行软件系统建模,使用JTest进行辅助测试、使用loadrunner进行压力测试。职业素养方面,通过组织学生进行团队项目开发,培养学生项目管理能力,谈判、沟通、写作能力及团队合作能力。

2 软件工程课程教学内容

工程教育认证基本思想是,以社会需求为导向,革新教学模式[2]。因此,我们应该根据社会需求,合理确定知识结构。基于社会需求及课程培养目标,本课程内容分为理论和实践两部分。

理论部分主要内容如表1所示。

实践部分旨在引导学生将理论应用于实践中,加深对理论的理解,并锻炼学生的软件需求分析、设计、开发能力。针对面向过程软件工程,设计了《期末成绩统计软件》模拟案例。针对面向对象软件工程,设计了《小型图书管理系统》模拟案例。整个项目实施过程,以学生分组形式进行,培养学生的软件开发、谈判、沟通、写作能力,团队合作能力,全面提升学生的职业素养。

3 软件工程课程教学方法

软件工程是一门工程化的课程,理论性、实践性并重。如果教师采用传统“填鸭式”教学方法,以平铺直叙的方式对课本内容进行PPT讲解,极易让学生失去学习兴趣,降低教学质量。教师要想让学生充分了解并掌握本课程知识,必须具体问题具体分析,不同的教学内容采用不同的教学模式。例如针对软件工程课程各类知识结构特点,采用任务驱动教学法、案例教学法、项目驱动教学法、自学等多种方式混合的综合教学方法,以此激发学生的好奇心和解决问题的好胜心,调动学生积极性,提升课程教学效果。

3.1 课堂教学方法

3.1.1 任务驱动教学法

任务驱动教学法是建立在建构主义学习理论基础上的,有别于传统教学的新型教学方法[3]。建构主义是一种关于知识和学习的理论,强调学习者的主动性,认为学习是学习者基于原有的知识经验生成意义、建构理解的过程,而这一过程常常是在社会文化互动中完成的。建构主义的提出有着深刻的思想渊源,它具有迥异于传统的学习理论和教学思想,对教学设计具有重要指导价值。

任务驱动教学法是“以任务为主线、教师为主导、学生为主体”的教学方法。通过巧妙设计,将教学知识点融入到一个个具体任务中,引导学生通过学习新知识新技能来完成任务,达到新知识的理解掌握,并提升学生分析问题解决问题的能力。在此,简述本人在面向对象软件工程需求分析阶段教学中,对任务驱动教学法的运用和一些教学体会。具体过程如下。

⑴ 描述问题。教师首先提出一个实际项目-小型图书管理系统。对项目问题定义进行简要阐述。

⑵ 提出需求分析任务。将教师本人作为客户,要求学生获取小型图书系统需求。

⑶ 执行任务。学生根据自生经验,通过各种方法获取需求,并将需求表述。获取需求过程中,学生用到的通常的是与教师面对面沟通方法,沟通方法单一且因为沟通歧义,会导致获取需求与实际需求矛盾,或只为实际需求的一部分。教师就此引导学生,学习情境分析、问卷、试用客户老系统、简易应用规格说明技术、快速原型等多种获取需求方法。获取需求过程中,要对需求结果进行表述。学生通常会用文字以段落方式长篇大论。这种方式逻辑不严谨,且容易产生误解。教师引导学生学习使用用例图及用例文档的表述方式,并让学生对用例图方式与段落式表述方式比较,达到对用例图的理解、认可及掌握。

3.1.2 案例教学法

案例教学法是基于一定的教学目标,以包含疑难问题的实际情境的描述即“案例”为载体,教师扮演设计者和激励者的角色,鼓励学生积极参与讨论,运用所学的理论知识去识别、分析、解决问题,使学生达到对所学理论知识的深入理解及掌握,并提升学生解决问题的创新能力。在此简述本人在面向过程软件工程总体设计方面对案例教学法的运用和一些教学体会。具体过程如下。

⑴ 学习软件设计原理、模块内聚、耦合、启发式规则。

⑵ 基于《小型考务处理系统》数据流图,使用面向数据流的设计方法映射出结构图,将该结构图作为案例提供给学生。要求学生根据软件设计原理、技术等相关知识对结构图进行结构优化。

⑶ 个体准备。每位学生独立思考,准备优化材料,包含理论来源和结构图处理方式。

⑷ 分组讨论。按3-4人一组对学生分组,并进行组内讨论,给出结构图优化的统一意见。

⑸ 按组发表意见。每组推选一个代表,叙述本组对结构图的逐步优化方案及理论来源。

⑹ 总结阶段。留出一定的时间让学生自己进行思考和总结。随后,教师根据每小组总结的结果,同学生一起进行汇总归纳,并依据教师自身的优化经验对结论进行点评补充。

3.1.3 自学

大学生要具备一定的自学能力。软件工程课程要求学生掌握Microsoft Project、visual Source safe、Rational Rose、Viso多个软件的使用。教师可在课堂上对这些软件的学习做适当引导,并布置学习任务及作业,及时检查并纠正错误。

3.2 实践

软件工程课程的实践环节,可采用项目驱动教学法组织实施。项目驱动教学法是一种以教师为主导、学生为主体、项目为媒介,通过实践方式完成项目,以提升学生综合能力和职业素质为目标的系统教学方法。

项目驱动教学法用于软件工程课程的实践环节。主要实施过程如下。

⑴ 学生分组。每个项目小组,设组长1名,组员3-4名。为避免学生自由组队强强联合造成的“马太效应”,教师发动班干部辅助完成分组工作,M量做到强弱联合组队。

⑵ 项目布置。教师具有实际意义的多个项目问题描述。通过分配或自主选题方式提供给各项目小组。每个项目在一个班级中最多重复三次,以防小组间抄袭。公布内容抄袭处罚办法,达到警示作用。

⑶ 项目实施。项目小组选用合理过程模型。将教师作为模拟客户,严格按照软件工程思想完成项目。完成项目过程中,着重从如下几方面进行监控。

第一,在项目实施的各个阶段,必须提交相应文档。具体包含《关于系统规模和目标的报告书》、《软件项目开发可行性分析报告》、《需求规格说明书》、《系统设计说明书》、《测试计划》、《用户使用手册》。文档要求符合软件文档规范。

第二,必须运用Microsoft Project、visual Source safe、Rational Rose、JTest、loadrunner 等作为软件工程支撑环境,辅助进行软件开发。

第三,坚持阶段性的考核。

传统实践环节考核,通常是项目完成后,以小组答辩形式进行的终极考核方式[4]。这种考核方式,无法在实践过程早期及中期,发现学生项目进展的重大问题并及时纠正。尤其对某些自我约束能力较差的学生,也可能出现实践前期自由散漫工作进度缓慢,后期又无法按时完成的情况。

猿纸锥涡钥己朔绞较缘糜任必要。考核成员由教师和项目组长担任。考核成绩由各阶段考核成绩、最终项目答辩成绩按比例计算。各阶段考核中,将小组项目的组织过程、小组成员的参与情况、成员对项目本阶段的贡献等多个方面,都作为考核指标。通过阶段性考核方式,既督促、鼓励了学生的积极参与态度和团体合作精神,又能够及早让项目小组认识到本组工作不足并抓紧改进,最重要的是阶段性考核方式较终极考核方式更公正客观。

4 总结

根据本科工程教育认证标准,现今社会对计算机相关专业人才的能力要求越来越全面。计算机专业人员要具有软件开发能力、团队合作能力、创新能力、自学能力等多方面综合能力。根据多年的教学经验,本文从培养目标、教学内容、教学方法三方面阐述了进行软件工程课程教学改革的一些经验。分别论述了任务驱动教学法、案例教学法、项目驱动教学法等几种方法在课堂教学和实践教学中的实施过程。这些措施激发了学生创新意识,调动学习积极性,对提升学生综合能力切实可行,达到了课程培养目标要求。工程教育认证的基本准则是持续改进,我们将在软件工程课程现有教学方法的基础上,合理运用各种教学辅助工具,对新的更合理的教学方法进行长期的不断的探索。

参考文献(References):

[1] 王辰尹,衣杨.面向应用型IT人才培养的软件工程教改关键问题研究[J].计算机教育,2014.8:27-31

[2] 贾玉祥,陈争艳.面向工程教育的软件工程案例分析与实践课程[J].现代计算机(专业版),2015.27:9-12

篇10

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

“软件工程”是一门理论与实践并重的基础课程,在教学实施方面存在较大的难度。现有的软件工程课程存在着体系不统一、定位不明确、知识与现实脱离等问题,课程内容比较庞杂和抽象,教学实践环节薄弱。因此,如何使教学内容先进、讲授生动实际、实践效果良好,一直是软件工程课程教学需要解决的难点问题。

1.软件工程课程教学改革现状

普通高校传统的实验教学过于强调理论知识的积累,这限制了学生个性的发展、技能的培养和创新素质的形成。其课程设置与实践教学内容都严重滞后,实践教学学时占总学时也很少;在实践教学内容方面对理论内容进行验证的实践教学环节占较大比例,而有利于培养应用能力的综合性、设计性实验等实践性教学比例偏少;在实践教学安排上仍采取先理论,后实践的顺序来确定实践教学环节。特别是对实践教学内容、方法及过程与创新性应用型软件人才的培养目标是否相适应等问题的研究还相当不够。具体体现在:

(1)实践教学体系设置不够完善,缺乏对实践教学的过程管理,没有建立配套的质量监控与评价体系。

(2)对实践教学的认识不到位,存在着重理论,轻实践;重课内,轻课外的倾向,缺乏对实践教学内容的总体设计,实践教学的内容及形式陈旧。

(3)实践教学教学方法单一,仍旧采用以教师为主以灌输为主的教学方法,使学生的主观能动性、动手能力和创新精神的培养受到了很大的限制。

(4)不重视工程化思想的培养,普遍缺少对学生工程能力和职业素质的训练,没有很好利用先进的实践教学管理平台跟踪管理学生实践项目。

(5)实验设备和计算机专业教师严重不足,目前的实验室设备与管理模式已很难满足实践教学的要求,缺乏具备行业工程领域背景和国际化背景的高水平创新实践教学团队。

2.改革教学方式

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

2.1案例辅助教学

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

2.2实训式实验

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

(1)实例演示及模拟

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

(2)课堂练习

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

(3)课后作业

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

2.3综合实践

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

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

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

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

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

(3)与毕业设计相结合

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

参考文献: