软件课程教学范文

2024-05-08

软件课程教学范文(精选12篇)

软件课程教学 第1篇

《软件测试》是软件开发和系统安全人员必须掌握的一门专业课程。随着计算机软件设计人员、规模和复杂度的增加, 软件测试技术成为保证软件质量的重要手段之一。软件测试是一项专业技能工作, 包含许多理论知识和实践经验。缺少这些知识和经验, 测试的深度和广度就不够, 软件的质量也就无法保证。《软件测试》课程的教学目标主要是让学生熟悉软件测试的基础知识, 熟练编写软件测试过程中的标准化文档, 掌握软件测试流程和测试工具, 独立或合作完成相关软件的日常测试工作。《软件测试》的前置课程一般包括《程序设计基础》、《数据库及应用》、《操作系统》、《动态网页设计》, 后续课程一般包括课程实训、顶岗实习等。

2《软件测试》课程教学策略

教学策略是20世纪70年代提出的概念, 主要研究“如何教”一类的问题, 是现代教学论研究的新课题。教学策略是在教学过程中将教学思想、方法模式、技术手段三方面动因集成起来, 是教学思维对这三方面动因进行思维策略加工而形成的方法模式。教学策略是为实现教学目标而制定的, 是教学过程实施的整体方案, 包括合理组织教学过程, 选择具体的教学方法和材料, 制定教师与学生所遵守的教学行为程序。

软件测试本身可以起始于软件项目研发的各个环节, 有其特殊的生命周期。采用项目管理的方式进行策略引导, 符合该课程的专业特殊性。《软件测试》课程教学要从多个方面, 全方位地培养和提高学生的基础理论知识、软件综合研发素质、自主创新和实践训练等各项能力。课程教学应该包括综合性项目, 如单元与集成测试、性能测试、功能测试、系统测试、UI测试等, 需要特别注重案例学习的关键环节, 进一步规范、标准教学策略, 进行合理设计、管理教学执行过程。

目前, 《软件测试》课程教学过程中一般采用项目化分组式教学方式。以小组完成具体工作任务为教学核心, 结合实际项目案例, 教师指导和监督来完成教学工作。

3《软件测试》课程教学策略

《软件测试》课程一般具有较高的专业特性, 就业方向比较明确, 课程职业定向性比较单一, 就业前景较为乐观, 但是对学生的软件设计和研发能力一般要求较高, 综合性较强。在课程教学过程中结合职业特点, 需要遵循以下几个教学策略。

3.1 理论联系实际和积累与熟练策略

在课程教学过程中, 将软件测试的基础理论和实际应用结合起来, 选择或设计合理的项目化实例进行教学。项目实例必须符合教学大纲和培养方案的要求, 具有针对性、研究性、启发性、实践性和岗位适应性等特点。通过项目实例的学习和练习, 必须让学生的知识的积累度和技能的熟练度达到课程教学大纲规定的程度。

3.2 教师主导作用和学生主体性相结合策略

课程的教学以教师个人能力为核心, 在提高教师教学水平的前提下, 以教师为主导力量建设课程标准化, 对教师的教学内容、教学方法进行统一规范和设计。同时, 充分调动学生的主体积极性、主观能动性和创造性, 以期形成良好的教学互动。

3.3 统一要求与因材施教相结合策略

对《软件测试》课程内容的粗粒度项目案例进一步分解为细粒度的教学任务, 结合项目管理思想, 引入WBS (Work Breakdown Structure) 理念, 对分解后的细粒度的教学任务进行统一说明和要求, 明确任务起止时间, 监控学生完成质量。在任务分配和完成环节反馈学生学习效果, 采用思维导图方式探测学生的客观学习效果, 便于进一步差异性教学。

3.4 专业性和综合性相结合策略

《软件测试》课程需要制定标准化的课程教学计划、教学大纲和教学课件, 提倡电子化、网络化教学。对学生的专业基础知识和综合能力必须进行相应的考核, 并采用客观评价模式进行效果评估, 在实践中注重建立过程化评价体系。

3.5 教学与科研相结合策略

高校教师和学生一般需要有一定的科研能力, 在教学中应结合《软件测试》课程特点, 可以尝试师生共同协作研发、创新实用软件系统进行教学内容的更新。课程教学中要充分发挥教师主动引领作用, 积极传授学生科研经验、科研思想和科研方法。

4 结语

课程教学策略是一个复杂的集合, 既有宏观策略, 也有微观策略。在实际课程教学应用中可以采用框架式分层设计理念, 将课程的知识点、教学方法、教学原则、课时等逐步细化, 区分难易度、重难点和优先级, 形成有序、层次、权重结合的结构, 易于实现、可控和可量化。研究课程教学策略可以为教师和学生共同提供一个教学平台, 使得课程教学能够理论联系实际, 具有良好的教学指导和规范意义, 为提高教学效率和质量提供更便利的服务。

参考文献

[1]丁智国.基于角色扮演的《软件测试》课程教学探索[J].中国信息技术教育, 2014 (1) :103-105.

[2]崔晓华, 张贺, 张超, 王荣青.《线性代数》课程教学策略探讨[J].河北北方学院学报 (自然科学版) , 2007 (12) :80-82.

[3]王建平, 韩凤英.“团队协作, 角色分工”个性化教学在课改中的探索——以网页设计与制作课程教学为例[J].计算机教育, 2010 (7) :134-136.

[4]丁智国, 吕振洪.软件测试课程实验教学探索[J].计算机教育, 2012 (3) :102-105.

[5]孙小兵, 朱俊武, 李斌, 章永龙.自主学习驱动的软件测试课程双语研究性教学方法[J].计算机教育, 2014 (1) :74-78.

[6]程茂, 温静, 吴玉洁.软件测试课程的教学研究[J].河北师范大学学报, 2010 (4) :117-120.

软件工程课程教学的一些体会 第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篇

【关键词】软件测试;需求;分析;探讨

软件产业和相关信息服务业已成为全球重要的产业,已成为信息产业的核心和灵魂,是实现我国经济腾飞的重要途径之一。随着长江三角区域经济的转型,软件服务外包业将成为经济发展的新动力。软件开发是软件服务外包的重要内容,也是软件技术专业学生毕业后的主要就业方向,而软件测试也成为了外包行业中最主要的工作岗位之一。软件测试课程的目的是让学生了解软件测试的基本过程;掌握软件测试的方法和技术,这些都是软件测试工程师岗位所必须的基本能力。

一、软件测试课程设计思路

随着高校教学改革的不断深化,高校教育越来越强调实训,需要高校学生不仅掌握好基础知识,为以后的各种研究打好基础,而且需要高校学生掌握实际的工作技能来满足未来工作的需要,软件测试教学也是如此。软件测试课程应立足于实际能力培养,要打破以知识传授为主要特征的传统学科课程模式,转变为以工作任务为中心组织课程内容和课程教学,让学生在完成具体项目的过程中来构建相关理论知识,并发展职业能力。

二、软件测试课程目标

为了更为清楚的表述课程目标,提高课程目标对教学过程的指导价值,本课程采用表現性课程目标表达方法,即不再采用“掌握……”、“了解……”、“熟悉……”、“具备……职业能力”等传统的课程目标表述方式,改为按照情境教学方式中所能表现出的具体行为来表述课程目标。按照情境学习理论的观点,以项目作为载体来组织课程内容,只有在实际情境中学生才可能获得真正的职业能力,并获得理论认知水平的发展。因此,设计测试项目载体是软件测试课程教学过程中的一个关键环节,测试项目既要有在企业中应用的普遍性和典型性,又能最为有效的提升学生动手能力的手段,从而达到课程的目标。

三、软件测试课程改革方案探讨

(1)关注行业动态,让学生正确认识测试职业。软件测试在软件生命周期中占有重要的地位,是软件产品交付用户使用之前保障软件质量的重要手段,近来,软件工程界趋向于认同一个新观点,即软件生命周期中每一个阶段都应该包含测试,软件测试占软件开发总工作量的40%以上,由于测试的重要性,它慢慢的发展成一个行业,并在迅猛的发展。学生普遍对软件测试这个职业存在认识偏差,觉得测试就是文档,不需要太多技术含量,这种错误思想需要教师从课程开始给予纠正引导,以上海博为峰软件技术有限公司的客户中国工商银行举例,在4000多人的研发队伍中,软件测试人员就接近1000人的规模,而且测试团队规模还在不断扩大之中,让学生从中了解到软件测试的重要性和光明的就业前景,以此来激发他们学习的热情。(2)以就业为导向,产学研相结合,合理安排教学内容。一是应加强对学生实际职业能力的培养,强化案例教学或项目教学,注重以任务引领型项目开发来诱发学生兴趣,使学生在项目开发过程中掌握软件测试的相关基本岗位能力。二是应以学生为本,注重“教”与“学”的互动。通过选用典型项目,由教师提出要求或示范,组织学生进行活动,让学生在活动中增强职业意识,掌握本课程的职业能力。三是应注重职业情景的创设,以多媒体、案例分析、角色扮演、实验实训等多种方法来提高学生分析问题和解决问题的职业能力。四是在实训课程中应将学生编为几个小组,按行业实际将他们分配角色,该过程中强调学生的综合设计和运用能力。(3)校企合作,积极开发校外实习基地。目前社会急需大批软件测试应用能力强的技能型人才,高等职业教育注重理论与实践的联系,把学校教育与企业有机结合于学生的培养过程中,通过校内模拟训练和校外现场实习等一系列实践性教学环节,使学生了解、熟悉并掌握软件的测试流程、方法和技术等,毕业后立即就能上手。

职业学校要培养出高素质、高技能的应用性人才,需要有高质量的校内外实训基地。开展校企合作,在校外建立实训基地,既节约了学校的办学资金,促进了学校办学条件改善和提高,又保证了教学中对软件测试项目案例的需要,让学生更贴近专业领域中的实际应用,提高学生的学习热情。可由教师带队,请企业中的软件测试工程师指导,这样更便于学生在实习过程中接触当前行业中最新的测试方法和最流行的测试工具,接触企业中实际项目。

参 考 文 献

[1]匡青,朱宜炳.高职院校软件测试课程教学改革探索[J].现代商贸工业.2010(3)

[2]苟英.软件测试专业在高职院校的教学探索[J].科技博览.2010(10)

软件工程的课程教学探讨 第4篇

近年来,随着全国高校的大规模扩招,计算机相关专业的学生人数也逐年攀升。《中国大学毕业生就业报告(2009)》显示:各学科之中,计算机科学与技术已经成为就业率最低的专业之一,然而人才市场和网站IT职位的招聘却是供不应求。这一切都说明,我们的计算机教育存在着不足,作为一门重要的专业课程,软件工程教学中也存在着同样的问题。

2. 课程特点与存在问题

软件工程是涉及计算机科学、工程学、管理学和数学等领域的一门综合性学科,主要用于指导软件开发与维护过程。

2.1 课程特点

作为一门综合性课程,软件工程是对大量实践操作的理论抽象,是开发经验的总结与提炼;课程内容系统性,理论性较强,学生学习时会感到内容枯燥,缺少学习积极性;另外,课程教学内容更新速度快,操作性强,对教师自身素质的要求也比较高。

2.2 教学中存在的问题

受传统教学模式的影响, 对软件工程这样重实践的课程, 实际教学中许多老师仍然按照传统方式进行授课,导致诸多问题。经过分析,可将教学中存在的问题总结如下:

1)传统课堂的模板化教学模式

在传统模式下,课堂教学以教师讲授为主,单向灌输知识, 师生互动很少;课程实验、项目设计等多以课外作业的形式出现,很少在课内完成。作为学习主体的学生在教学过程中始终处于被动地位,致使学生无法把理论和实践结合起来。

2)教学培养目标与实际需求脱节

教学中,学生希望加强实践操作内容,从而与企业需求接轨,而这却是传统教育最欠缺的,面对枯燥的理论知识,缺乏学习兴趣与热情,也无法体会到软件分析、设计、实现、测试的重要性;而且,本科教学中多合班授课,学生人数较多,教师在实践环节难以应付,影响了教学效果。由于培养目标与市场实际需求有很大差距,从而导致了就业的困难。

3)教材内容不能及时更新

软件工程领域的理论和技术更新速度非常快,但使用的教材却因编写时间的限制等种种原因,在先进技术的应用、知识结构调整、内容取材及实践环节等方面都存在不足,这在很大程度上也制约了课程的教学效果。

4)师资素质和学生基础的问题

高校的计算机学科教师, 由于时间和环境的限制,大部分缺乏实际的项目经验,而课程又要求教师要有一定的软件开发经验,这就对教师的素质提出了较高的要求,要求教师不断提高自身的理论水平和实践能力;另外,随着高校的不断扩招,学生基础下滑是不争的事实。因此,教学中也需要考虑学生的实际水平来选取内容。

3.课程教学探讨与对策

针对软件工程课程实践性强、发展迅速的特点及专业培养的目标,笔者结合多年从事软件工程教学的实际经验,在教学模式、教学手段、考核方式等方面进行了有益的探索:

3.1 设计合理的课堂教学模式

3.1.1 改变课堂教学模式

首先,对完全以教师为中心的传统教学模式进行调整:采用案例教学法,通过实例来阐释枯燥的系统理论,以此调动学生的兴趣。课堂上选用一个完整的、精心设计的、规模和难度适当的案例来讲解,同时灵活运用各种教学方式:比如大胆采用由学生结合完成课程任务的体会,自己讲解设计内容中对课本知识的使用;采用课堂讨论的形式,活跃课堂气氛。

3.1.2 改变课堂组织形式

在课堂的组织形式上,安排学生以项目开发小组为单位,采用任务驱动的方法进行教学。首先,将具有不同能力和特点的学生分配到一个小组;接着,由各组自拟题目开发一个中、小型软件项目,要求在规定时间提交相应的作业(文档、源代码等);项目结束后,组织小组答辩:先由组长对项目的基本情况作简要陈述,然后每个组员说明自己所完成的任务并操作演示,教师针对每个学生负责的部分进行提问;最后,教师对学生完成情况进行总结。通过这种课堂组织形式可以加强学生的实践能力,培养学生的团队协作意识。

3.1.3 应用现代化的教学手段

软件工程课程理论性强,在板书讲解时内容很多,影响了进度,也难以调动学生兴趣。因此,我们结合多媒体等现代化教学手段进行教学,增强了授课的直观性、吸引了学生的注意力;不足的是多媒体教学时教室光线较暗,会导致学生精神不集中。因此,实际教学中,我们根据教学内容的实际情况,合理地把多媒体和黑板教学结合起来使用。

3.2 注重课程实践

在课堂内、外,我们都非常注重学生实践能力的培养。教学中,老师将大量的实际案例加入到学习过程中。在课程项目进行中,发现学生在任务完成中出现疑问时,通过沟通引导学生运用所学知识完成项目的开发。课堂外,鼓励学生到社会上的软件公司实习、尽早接触软件工程的实际问题,了解软件开发的全过程。

考虑到传统模式中实践时学生兴趣不大的实际情况,我们对实验内容进行了大幅度的调整,合理设计课程实践内容。每次的实验除了完成对应文档外,还增加了各阶段用到的工具和环境的实际操作,具体设置如表1:

3.3 改革考核机制

在课程的考试中,考虑到课程的特点,我们适当地增加实验考核的比例。实验成绩评定时,依据各软件开发小组提交的文档和最终完成的软件系统给出小组成绩,接下来充分考虑小组成员在项目中的贡献和组长评价给出组员的成绩;在理论考试中,除了考查软件工程的重要原理外,重点考察学生的软件分析与设计能力,促进学生对软件工程知识的掌握。

4. 结束语

软件工程是一门理论性和实践性都很强的课程,是各种开发经验的总结与提炼。通过探讨教学中存在的问题,探索新的教学与实践方法, 对于提高教学效果, 激发学生学习的热情和兴趣, 促进学生实践能力的提高都具有深远的意义。教学中, 我们把这些方法措施应用到我校2006级和2007级的教学过程中, 提高了学生学习的兴趣和积极性, 教学效果显著。

参考文献

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

软件工程课程教学过程设计的论文 第5篇

【摘要】软件工程课程软件学院软件工程专业的一门专业基础核心课程,也是一门理论与实践并重的课程。但在实际的教学过程中,存在较大的难度:知识与现实脱离、课程内容比较庞杂和抽象、教学实践环节薄弱等,对于缺乏软件开发实践经验的本科生来说,单纯地讲授抽象的理论知识往往使学生感到枯燥无味且难以理解。达不到良好的教学效果,无法满足现代软件工程人才的培养目标。为此,提出了以“应用”为导向的软件工程课程教学过程的设计,主要从教学设计原则、教学设计策略、教学内容、教学方法、课程重、难点解决方案、考核方式与评价方法等方面展开,给出了切实可行的方案,与院系“一体化”教学理念切合,通过实施,取得了一定的效果。

【关键词】软件工程;应用导向;“一体化”教学理念

平顶山学院软件学院从建系以来的培养目标就是培养应用型人才。而软件工程课程是软件学院软件工程专业的一门专业基础核心课程,也是一门理论与实践并重的课程。该课程的培养目标也应该与院系培养目标一致,培养应用型人才。但在实际的教学过程中,存在较大的难度。现有的软件工程课程存在着知识与现实脱离、课程内容比较庞杂和抽象、教学实践环节薄弱等,对于缺乏软件开发实践经验的本科生来说,单纯地讲授抽象的理论知识往往使学生感到枯燥无味且难以理解。达不到良好的教学效果,无法满足现代软件工程人才的培养目标。为此,以“应用”为导向的软件工程课程教学过程的设计显得尤为重要。

1软件工程课程的课程目标

《软件工程》课程以培养学生完整严格的软件工程观念和训练软件项目开发、管理能力为目标。通过本课程的理论教学,要求学生了解软件项目开发和维护的一般过程,建立良好的软件设计开发理念,能自觉按照软件工程的方法进行软件的开发和维护工作;掌握软件开发中传统和最新的方法与技术,学会使用分析设计工具,培养学生用工程的方法进行软件开发的能力和素质;了解软件开发过程中的各种标准与规范,包括国际国家标准、行业标准、企业规范和项目规范等。通过本课程的实践教学,训练学生运用软件工程CASE工具的能力,同时强化训练个人分析设计能力、工程实践能力、创新能力、规范化工作能力、沟通表达能力、文档写作能力、团队配合能力、自我学习与可塑性组织能力。通过本课程的理论学习与实践练习,了解软件工程各领域的发展动向;如何用工程化的方法开发软件项目,以及在开发过程中应遵循的流程、准则、标准和规范。使学生基本具备进行软件工程项目分析、设计、实现和进行有效的项目管理以及文档编写的能力。为适应计算机应用各领域对专业技术人才的需求,根据应用型本科技术人才培养目标的需要,我们坚持课程体系的科学性、系统性与开放性,关注计算机软件技术发展研究的最新动向,及时更新与充实课程内容。

2教学设计原则

坚持以应用能力培养为本位的设计原则,教学内容、教学方法以及考核方式均围绕能力培养来进行设计。

3教学设计策略

3.1知识域覆盖

针对软件程序员/软件设计师职业,以职业所需的知识和技能为先导,突出技术理论和技术应用主线,实现知识传授与技能培养并重,体现知识、能力、素质培养“三合一”特征。理论部分突出基本知识和基本概念的表述,知识覆盖范围,着重把握理论知识的深度和要领,力求线条清晰,为后续技术方法介绍和运用提供技术理论支撑;对软件工程基础理论知识的涵盖原则是“必须的不缺、不用的不设”,对技术原理(方法)的分析原则是“举一反三”,对实践技能训练的原则是“项目运作”。

3.2技术方法先导

软件工程是一项技术性较强的工作,软件规范的实施是以技术的方式开展或进行,教学策略设计是以技术与工程为导向,围绕着软件工程项目的进程展开,一个项目的进程当中能处处体现工程特点和专有技术的特征。因此,教学设计通过项目活动及过程来呈现问题、运用相关理论知识解析问题和通过工程过程解决问题。通过项目阐明技术方法与策略运用。

3.3突出技能训练

技能训练也是本课程重要组成,践行“做中学”人才培养理念,建立课内课外一体化实践教学体系。建立“1-7课题组”课外工作机制,将学生的实践教学环节延伸到课外。学期大作业要求学生按“1-7课题组”课外完成一个实际软件系统的分析、设计、实现和模拟运作等4个过程,并按照国家标准《GB/T8567-计算机软件文档编制规范》规定的要求,提交各阶段报告,课题组完成后通过课堂答辩提交项目结果。通过技能训练学习掌握当前主流软件的软件开发方法、工程技术,并将软件工程理论知识与软件工程过程密切结合。在软件分析与设计能力培养上,主要通过实际案例或软件项目的运作,以“学中做与做中学”方式中培养和形成专业技能。

4教学内容设计

结合软件产业发展的要求,以能力需求为导向。坚持理论够用,将相关知识点分解到实际项目案例中,让学生通过对项目的分析和实现来掌握相关理论知识和软件开发技能,选择技术实用性、知识拓展性强的教学案例和实验项目,在保持传统理论知识讲授的同时,同时关注计算机软件技术发展研究的最新动向,将相关内容融入到相关的教学单元中,及时更新教学内容,并通过阶段性安排新技术讲座,布置课外读物等方式,使学生了解最新热点知识,掌握新方法。

5教学方法设计

在教学过程中,针对专业学生的特点,从实际教学出发,在对多个小软件项目的研究基础上,提出首先结合小软件项目,以传统的结构化的方法为主线全面系统的.进行教学设计,将软件工程思想贯穿于教学中,这样可以从综合的观点看待整个系统开发过程。然后以快速原型法、面向对象法为辅线扩展学生进行软件设计的思路,从而总体上提高学生进行软件设计、编写文档的能力。改进教学方法和教学手段。教学中,实行启发式、讨论式、行动导向、案例分析、项目驱动等教学,有效地调动学生的积极性和主动性,激发其学习潜能,注意学生的参与和互动。采用“提问式切入”、“问题讨论式”等方法对前述内容进行深入复习和引申,同时采用“问题引入”、“情境导入”等方法引入新的教学内容;采用“以项目开发驱动”的方法授课,将相关知识点融入项目,通过项目实现,让学生掌握软件工程技术,并对面向软件工程理论有一个直观和更加感性的认识。

6课程重、难点解决方案

6.1软件工程课程重点

软件工程基础理论,软件工程策略,面向数据流的分析方法、面向数据结构的设计方法、问题域中对象的识别、对象关联关系的建立、对象的结构层次、建立动态模型、建立功能模型,以及软件工程过程管理和配置设计。

6.2软件工程课程难点

软件需求分析模型,软件开发过程模型,软件质量分析与度量,软件设计方法、软件维护。

6.3重、难点的解决方案

软件工程所涉及的基本概念、基本方法、基本过程和应用技术,教学必须作为重点突破,主要措施是理论讲解和实践体验“双管齐下”,为学习软件工程专业知识和掌握实际开发技能奠定基础。理论讲解实施项目教学模式,以精讲和透彻分析、自主学习、探究方式和集体讨论的形式进行,引导学生理论与应用相结合;实践教学主要是通过课内、课外一体体教学体系、产学合作方式等方式,通过项目开发过程中的问题,有针对性的学习软件工程理论。引入真实企业项目,在引入项目的同时,引入企业项目经理等技术与管理人员,协助完成合同任务,将教学活动与项目实施融为一体,实现工学结合。培养学生在实践中学会发现问题、研究问题、分析问题、解决问题,培养学生综合实践能力。

7考核方式与评价方法

采用过程性考核方式,评价所有的学习结果。制定了分阶段、互评定的二次考核体系,即课程考核由三部分组成:平时考核(课堂表现、考勤)占20%,理论(期末考试)考核占40%,实践(技能)考核占40%。其中实践成绩的评定包括小组成绩和个人成绩两部分,各占50%。

8总结

该教学过程设计,切合院系在提出的“一体化”教学的理念。从这几个学期的教学效果看,取得了一定的成果。但在具体实施的一些细节中还存在一些问题,有待进一步思考、提高。

【参考文献】

[1]刘强,等.“软件工程”课程教学实施方案[J].中国大学教学,(2).

[2]刘海燕,王雅轩,等.基于项目案例驱动的《软件工程》实践教学研究[J].科技创新导报,(14).

[3]汪Z玢,叶福玲.案例与项目实践结合的“软件工程”教学方法[J].计算机教育,(10).

[4]王小磊.任务驱动与情境认知学习理论在《软件工程》课程教学改革中的探索[J].福建电脑,(7).

软件技术基础课程教学模式研究 第6篇

关键词:软件技术基础课程;专业;课程;实践教学

中图分类号:G424 文献标识码:A 文章编号:1009-3044(2014)09-1983-02

随着科技水平的不断提高,我国在计算机软件行业发展上也加快了追赶的步伐,然而与西方软件强国相比较还是远远不够的,达不到正规、完善的标准。这种状况的出现,当然有诸多方面的因素,但目前看来,对我国软件行业发展产生密切影响的,重要的在于计算机软件人才上面。现在,各大企业,已经不再单单只按大学生的学生在学校成绩的好坏作为选拔人才的标准,更注重于学生自身能否将专业知识学以致用,解决实际中的现实问题。所以说,广大高校学生在加强理论知识的基础之上,还要更多地在实际应用上狠下功夫。教学当中,其实很多的课程都是要结合实际应用一同进行的,但在常规的教学方法上,都忽略了实践应用的强化训练,单一的把课堂讲授作为教学的核心,这是不科学的。这就要求了学校在教学安排上,要更多的注重计算机软件技术课程实践教学的探寻,积极、主动的进行教学方法的研究和改革,实现理论讲授结合实践技能的全方位教学。

1 计算机软件课程存在的不足

1)经不起推敲的实践教学:随着现今高校学生不断的扩招,久而久之就出现了指导教员和专业老师的缺乏,或者外聘一些老师,水平参差不齐,这就出现了一种局面:实验内容太过老套,始终延续之前设计的那些,或者新设计出的实验内容也没有很高的质量,同社会行业无法并行。而且,很多的实验只是注重了观察和验证两个方向,以达到课程要求做标准,根本没有丝毫的创新性和研究价值。

2)教学理念的偏差:众所周知,计算机软件技术课程的实践性非常高。但是在课堂上,大多数高校老师依然单独将理论的传输作为教学的全部,主要的成绩判断标准也以其掌握的知识量作为标准,很难在教学中看到实践技能的传输。在遇到理论知识必须通过实践来验证和得出结论时,就直接忽略掉过程,只要求学生把结果死记在脑中。一味的强调理论知识的加深,就会使学生的综合应用能力变得愈发地薄弱,不能够真正让学生学以致用。

3)落后的专业课程:高校通常都不具备专业的学科建设领域,对主流的行业信息得不到认识,因此设置的很多课程都是过时,经不起历练的,这与现实要求相比显得格格不入,无法同社会上的行业发展相接轨,高校学生一走出学校大门,接触的全是自己所不了解和没接触过的内容,无法在工作岗位上得心应手,跟不上社会需要的步伐。

4)不完善的实验管理条例:高校学生能力的加强,是计算机软件技术实验课程所强调的。在大部分高校中,单独通过实验环节,不能够准确的得出学生的实践能力。计算机软件技术实验课程中,指导教员经验的欠缺,加之课程安排和内容的落后性,结合不到具体的课堂理论知识内。另外,实验室在管理方式上也存在着很大的欠缺,登记只需签个字,实验只是查看个结果,不能根本的反映出学生实验能力的高低强弱,教学管理较为零散,学生大多无法真正积极的投入到实验当中,影响了课程的顺利开展。

5)对学生的实习不够重视:高校学生的实习,可分为校内基地的实习、和在外企业部门的实习两种。目前为止,少有学校具备自建基地的条件,即便是那些校方同企业相合作的基地,也大多只是走走过场,很难有学生得到这样的机会,就算参与了也得不到有效的管理和指导。并且高校学生只有个别拔尖人才能得到学校举荐到实习单位中,大多学生还是自行寻找,找到的单位要么不属于本专业,要么是一些缺少技术含量的。学生实习机会的缺失,对高校计算机软件技术课程的教学成绩大打折扣。

2 计算机软件技术课程实践改革方案

合理协调高校计算机软件技术人才培养同对外社会发展的关系,主要的就在于高校的教学要同实际需要结合起来,按照当前主流发展的需要,在计算机软件技术课程设置上紧密的结合市场的需要,同实际发展的步伐齐步并进,使高校学生在具备完善理论知识的同时,还能够有着较硬的实践技能服务于企业。此外,高校还应该多推荐一些名额,让学生有更多的机会参与和投入到就业部门的时间当中去,让他们有机会接触软件开发的实际环境内,认清自己的价值,以及应该注重的方向和努力的范围,真正实现高校学生的学以致用。

1)加强对实践的重视:高校教学中,要贯彻落实理论结合实践的教学方法,计算机软件技术课程的实践环节,在巩固学生对课堂所学理论知识的基础上,还能直观的反应出自己所掌握的知识量的多少,让任课老师能有一个及时的了解,针对相关问题及时的对学生做出指正。所以说,在高校的教学安排上,要平衡理论和实践的课时分配量。同时,任课老师应当提前安排好实践课的进程,有针对性的进行教学的开展,任务清晰、条理,并要求学生对本堂课的内容以作业的形式进行试验报告的提交,如此一来,在对学生实践课达到练习标准的同时,还能确保学生的有效学习氛围。

2)基础型实验的设计:根据高校教学培养的要求,高校在校生应完成基础型实验,来实现自身所学专业知识的积累的加强,让其在实验中探寻到相关的技能和心得,为日后更深的学习做好铺垫,实验采用班级的形式,要求学生独立做完实验,然后由指导老师一并进行点评。对于那些综合性较强的实验项目和课程,考察的是在校学生理论实践结合的密切程度,这部分则使用小组参与的形式,成员分工完成一个项目,再由老师对项目单独指导,尽量做到详尽和细致,让学生能够对项目进行更进一步的认识,更多地提升其理论实践结合的能力。

3)增加学生的实习机会:对高校学生在校期间理论知识回馈的最好形式,就是进行实习,通过实习,能够强化学生的实际动手操作能力,并积累解决实际问题的经验。高校应把本校实习基地的建设,以及社会企业的合作作为重中之重,更多的提供给广大在校学生实习的机会。在计算机软件技术课程授课时,软件实践教学平台的作用是不容小觑的,它全面承载着学生综合、实践能力的提升。现在,高校通各大社会企业的往来不多,这对于在校学生实践能力的培养是很不利的,不妨采用校方同企业相合作的方法,把社会企业的项目引入到学校中来,让在校学生参与到其中,开发实际性的项目工程。如此,就能够使学生把理论知识同工作标准有机结合,达到社会需要的标准。

4)实验室的发展和创新:实验室的创新,是高校培养人才的一个重要场所,它能把各年级的同学汇集在内,一起参与到自身喜欢的项目中共同研究,它面向各个层次的人群,开展针对教师和学生的多方位教学。实验室的创新,还能够把一些头脑灵活,擅于积极主动的思维开阔的学生进行创新性的训练,发挥各自所长,研发有挑战性的项目,使自身能力切实得以实现和提升,更能完善实践教学的体系。

3 结束语

在计算机技术的飞速发展之下,计算机如那件技术课程的教学也在不断跟着节奏做出变化,并且周期性也愈发的紧凑,我们只有尽自己所能,不断的适应主流的技术,对教学内容作出及时的删改,重视实践教学课程的安排,满足学生的自身需求,才能将计算机软件技术课程做好做足。

参考文献:

[1] 卢晓勇,揭敏,刘晓强.改革传统教学模式培养创新型软件人才[J].中国高教研究,2007(4):81-82.

[2] 肖敏雷,肖敏连.计算机软件技术基础课程教学改革与实践[J].电脑知识与技术,2010,6(8):1932-1933.

[3] 郑春龙,邵红艳.以创新实践能力培养为目标的高校实践教学体系的构建与实施[J].中国高教研究,2007(4):85-86.

[4] 任杰,吴桂玲.高校非计算机专业计算机基础教学改革及学生实践能力的培养[J]. 知识经济,2011(06):78-79.

[5] 代小红,王光利.高校非计算机专业计算机基础教学改革的研究与实践[J].重庆工商大学学报,2011(03):64-67.

《软件测试》课程教学改革研究 第7篇

软件作为一种商品, 其质量越来越受到重视。没有质量保证的软件产品, 就没有市场竞争力。软件测试是保证软件质量最行之有效的方法。近几年专业性的软件测试机构和组 织迅速发展, 随之带来了对专业软件测试人才的旺盛需求, 软件测试人才的培养正成为新的热点。然而, 软件测试课程理论与实践脱节的现象还普遍存在, 这导致学生不懂如何活学活用所学知识。软件测试教学模式和教学方法改革已经迫在眉睫。 针对实际教学中发现的问题, 结合作者多年教学经验, 提出相应的解决办法, 以期能提高软件测试课程的教学质量和效果。

1 软件测试课程开设的背景

自计算机诞生以来, 程序的编写与测试就同时出现了。只不过当时的测试只是现在所说的调程序, 只是为了证明程序可以正常进行而已。测试是没有计划和方法的, 测试用例的设计和选取也都是根据测试人员的经验随机进行的。

进入20世纪90年代后, 计算机技术日趋成熟, 软件应用范围逐步扩大, 软件规模和复杂性急剧增加, 与此同时, 计算机出现故障引起系统失效的可能性也逐渐增加。由于计算机硬件技术的进步, 元器件可靠性的提高, 硬件设计和验证技术的成熟, 硬件故障相对显得次要了, 软件故障正逐渐成为导致计算机系统失效和停机的主要因素。福布斯的一篇文章就曾指出, 每年在软件产品几百万行代码中找到并纠正错误, 业界需要花费600亿美元。

如今在软件产业化发展的大趋势下, 人们对软件质量, 成本和进度的要求也越来越高, 质量的控制已经不仅仅是传统意义上的软件测试。传统软件的测试大多是基于代码运行的, 并且常常是软件开发的后期才开始进行。而在整个软件开发过程中, 测试已经不再只是基于程序代码进行的活动, 而是一个基于整个软件生命周期的质量控制活动, 贯穿于软件开发的各个阶段。

国外的软件厂商极为重视软件测试,在欧美等软件产业发达国家的软件企业中, 测试人员与开发人员的配置比例一般已达到1: 1甚至1: 2, 而国内软件企业, 平均8个软件开发工程师才对应1个软件测试工程师, 比例严重失衡。随着近几年国内软件企业对软件测试的日益重视, 产生对软件测试人才的大量需求, 国家信息产业部发布的最新报告显示, 我国目前软件人才缺口高达40万。即使按照软件开发工程师与测试工程师1: 1的岗位比例计算, 我国对于软件测试工程师的需求便有数十万之众, 而目前, 我国软件开发工程师与测试工程师岗位比例达到6:1, 还远远低于国际水平。预计在未来10年内, 我国IT企业对软件测试人才的需求还将继续增大。

为适应我国经济结构战略性调整的要求和软件产业发展对人才的迫切需要, 实现我国软件人才培养的跨越式发展, 亟需针对该课程展开深入的教学改革。

2 教学现状

软件产业迅速发展, 软件测试的作用越来越重要, 软件测试人才需求量剧增。目前国内软件测试人才的培养主要有3种途径: 其一是在各高校的计算机科学与技术专业和软件工程专业中开设软件测试课程; 其二是社会上各类软件测试工程师的培训课程; 其三是软件企业通过对员工进行培训。其中第一种占大部分比例。很多人员对软件测试存在错误认识, 认为这是一个效率低, 工作性质简单的一项软件开发工作的辅助性工作, 而事实上在国外如微软公司其开发和测试人员比例为1:2, 随着我国软件软件产业的发展, 软件测试也越来越受到重视。因此, 加剧了软件测试人才的需要, 据统计未来几年软件测试工程师的需求将急剧增加。

软件测试课程很注重学生的实践能力的培养。但在目前的教学还存在以下问题:

(1) 课本内容理论性过强

由于课时的限制, 相关课本中大部分内容都是有关知识的直接讲解, 只能包含少量项目案例。课本内容的理论性过强, 理论知识的抽象性和概括性使得学生在对课程的理解上大打折扣, 同时也让学生无法有效地进行理论联系实际的训练。因此, 在课程最初的知识讲解阶段, 学生经常会有“只要能考试通过就行”, 以及“等到实际工作需要的时候再学也不迟”等的错误想法, 影响了课程学习的积极性。而软件测试应包括理论和实践, 是理论和实践性并重的课程。有由于这个行业比较新, 相关专业教师缺乏经验, 致使大多数高校开设的软件测试课程有些纸上谈兵。教师授课流于基本概念和基本理论的讲授, 且由于内容本身的抽象、缺乏实践, 使得学生感觉枯燥乏味。

(2) 软件项目管理水平的高低偏重于经验的积累

想要提高实际的软件项目管理水平, 除了掌握有关基础知识外, 需要大量的实践经验, 而当前的教学模式对此帮助有限。学生对于实际的软件项目开发的经验略显不足, 对项目管理更没有概念。填鸭式的传统教学不能提高即将走向社会的学生的相关经验和技能, 很容易让学生对于这门注重实践的课程失去自信心。

(3) 传统的课堂教学手段单一

由于社会的进步, 当代大学生思维活跃, 兴趣广泛, 很容易受新兴事物的影响, 对所学的课程有更高的要求。而传统的教学模式是教师课堂讲解知识, 学生被动接受, 这无法激发当代大学生的求知欲, 使得大学生在思想上有依赖, 不能对所遇到的软件项目问题积极思考应对, 长此以往使得大学生对于该课程的学习失去兴趣。因此, 如何提高大学生的积极性, 使大学生从被动学习转变到主动学习, 增强课程的理论联系实际的能力, 增加学生的实践能力, 是课程改革研究的重点。

3 改革方案

现在国内的软件测试行业仍处于发展阶段, 软件测试人才也很匮乏。因此, 高校软件测试课程教学应以市场为导向, 全面加强课程建设和师资队伍培养, 才能为社会输送合格的软件测试人才。

目前, 在全国各院校中, 普遍开设软件测试课程, 通过对多个院校的软件测试课程的教学大纲展开了调查和分析。课程总学时最高为96学时, 最低为24学时, 既有专业必修课, 也有专业选修课。针对该人才培养目标的需要, 软件测试课程教学内容改革的主体方向是突出知识点的辐射效应, 培养学生的求知欲, 鼓励自主学习、独立思考。教学内容构建的基本原则如下。

(1) 理论教学内容注重基础性、实用性和先进性 , 突出知识点的辐射效应。

受计算机专业和软件工程专业本科培养计划的限制, 软件测试的学时不足, 而课程需涵盖的知识内容包括基础理论、测试方法、测试实践、测试工具和测试管理等, 涉及的知识领域很广, 教学内容中无法囊括以上所有知识领域。应该尽快将软件测试课程设为必修课, 并且将学时在保证32学时的基础上逐步提高到48学时。

(2) 实践教学内容注重综合性、创新性。

软件测试是一门实践性很强的专业基础课, 通过实践教学应能锻炼学生的动手能力, 培养其创新意识, 加强学生的团队协作精神。将教学内容规划为阶梯式教学, 循序渐进地指导学生从基本的功能测试入手, 进而到程序测试, 再到一定规模的系统测试。

软件测试课程改革应从以下几个方面进行:

(1) 采用多种教学手段

充分运用计算机教学的特点, 在课堂上采用各种新的教学手段。除了幻灯片外, 还加入其他多媒体教学手段, 比如测试工具演示动画, 项目的计算机模拟等。首先丰富了教学内容、提高知识的信息容量, 保证理论知识与实践相联系, 使得学生充分理解学习课程的目的、理解规范化的软件测试过程, 掌握软件测试的基本原则、方法和工具等。同时, 通过利用多种新教学手段修正学生的错误认识, 在观看了一些实际的场景录像后, 认识到以前接触实际项目太少, 特别是大型项目, 从而认识到软件测试的确是一门需要掌握大量知识才能刚刚入门的学科。

(2) 组织学生分析案例

为了提高学生的实际项目经验, 增强学生解决实际问题的能力, 除了课本知识外, 还搜集了大量来源于实际项目的案例, 在课堂上通过计算机模拟的形式, 让学生认识到软件项目管理中的实际问题是复杂和层出不穷的, 需要在课内课外努力学习, 不断学习。在案例教学中, 注意采用启发式教育的手段, 引导学生进行正确思考, 解决实际的问题。比如在第一章软件测试概述, 通过一些鲜活的案例, 比如: 美国火星登陆事故、千年虫问题、导弹防御系统等, 认识软件测试的重要性, 以及失败的惨痛教训。

(3) 以就业为导向, 合理安排教学内容

软件测试课程应注重理论与实践相结合, 打好理论基础, 重视实际操作能力的培养, 其结构要与学生认知结构相统一, 应以软件测试基本理论为基础, 课堂讲授与学生讨论相结合, 突出实践教学环节。教学内容分为理论教学、上机实验、课 程设计3大部分, 在教学过程中采用案例教学, 并增加配套实验的学时。课堂教学包括软件测试基本概念、各种测试技 术和方法、测试用例的设计、软件测试项目的组织和管理等; 上机实验要同步安排, 主要是一些基础实验, 包括白盒测试、黑盒测试等, 通过学习实践, 让学生掌握软件测试最基本的一些方法。在学生掌握软件测试的一些基本理论和方法基础上通过上机实验加深对理论的理解。 在此过程中, 使学生理解和掌握软件测试技术和各种具体的测试方法在项目中的应用, 感受软件测试项目的工作流程和实施细节。实践教学与理论教学相辅相成, 以达到理论联系实际的教学效果。

(4) 组织项目小组

在学期末课程设计, 将学生编为几个小组, 该过程中强调学生的综合设计和运用能力, 主要是让学生掌握在实际项目应用中各种测试方法的使用, 熟悉测试项目中的管理, 感受软件测试项目的工作流程。

为了学生能够对于实际项目的体验更加深刻, 在课程一开始, 就让学生按照个人意愿组成最少不少于2人的项目小组, 让学生结合课本知识, 选取一个较大的有实际应用价值的软件项目, 或以前学习C语言、C++语言等课程做的课程设计为基础, 结合课本中各个部分的知识和要求, 分别进行有关“策划测试过程”、“测试设计”、“测试实施”、以及 “测试管理”的报告, 并做成PPT报告, 并在课堂上演示和讲解整个测试项目。整个项目由学生通过团队完成, 通过这样的课堂模拟, 可以达到以下目的:

(1) 通过项目小组让学生体会团队合作和获得软件项目管理与被管理的实际经验。

(2) 使得学生真正进行团队合作完成较大的实际软件测试项目。

(3) 通过进行团队PPT报告和现场模拟 , 让学生充分体会到软件测试项目管理。

(4) 让学生灵活运用课本的理论知识对软件测试项目进行开发和管理, 而不是以往的背诵知识应付考试, 克服“死读书和读死书”的现象。

(4) 关注行业动态, 让学生正确认识测试职业。

学生普遍对软件测试这个职业存在认识偏差, 觉得测试是软件开发工作的辅助, 不需要太多技术含量, 是比较琐碎的为人挑错的活, 这种错误思想需要教师从课程开始给予纠正, 有了正确认识, 才能学好这门课程。比如上“中华英才网” 或“前程无忧网”搜索测试人才招聘信息, 从中了解软件测试的重要性和光明的就业前景, 以此激发他们学习的热情。还要让学生知道, 测试工作对知识的要求其实很高, 不仅要掌握软件测试技术, 还要具备软件系统分析、软件系统设计和软件编程等方面的能力, 让学生能主动、全面提高自己的能力应对行业的需求。软件测试人员要有严谨的工作习 惯、良好的沟通能力、团队合作精神。而学生对软件测试技 术的重要性和就业前景的了解, 是激发和促使他们主动学习的重要推动力。

(5) 开发校外实习基地, 促进学生实践经验的提高。

近些年, 随着高校扩招毕业生找工作越来越难。在这样的大环境下, 高校毕业生学生要进入大型软件企业工作也就难上加难。如果由学校出面与企业建立合作关系, 建立校外实习践基地, 便解决了这一难题。保证了教学中对软件测试项目案例的需要, 让学生更贴近专业领域中的实际应用, 提高学生的学习热情。校外实习时, 可由本校老师带队, 请企业中在职人员指导, 这样更便于学生在实习过程中接触当前行业中流行的测试工具, 接触企业中实际项目。学生实践经验的提高, 必将对其找工作带来促进作用。

在学生完成全部的专业课之后, 可以选择在大四阶段, 学生企业实习可以采取, 根据学生本人自愿, 学校推荐, 用人单位审查的原则, 经三方认可后签订联合培养协议书, 学生参加企业的工作实习, 培养岗位技能, 实现人才的职业能力与企业工作岗位的直接对接。在此期间, 学生还要完成毕业设计任务。

4 结语

软件测试是一门专业基础课, 该课程对于计算机软件专业的学生十分重要。特别是使得即将走向工作岗位的理工科大学生从 “学生”向“工程师”过渡的课程之一, 能够提高学生的团队合作精神, 运用理论知识解决实际问题的能力和培养学生的创新思维。对该课程的教学从几个方面进行了探讨, 首先提出软件测试课程教学现状, 然后对软件测试课程改革提出了方案, 比如在课堂中增加新的教学手段, 做到理论联系实际, 组织软件测试项目小组进行项目的开发和管理, 进行大量实际案例的分析、讨论和点评, 使得学生理解课程目标, 深入掌握理论知识并将所学知识灵活运用于实践, 采用创造性思维解决问题, 同时拥有良好的团队协作能力。从实践的效果来看, 学生的课堂情绪很高, 对课程学习的积极性大幅度提高。

软件测试在国内软件行业正越来越受到重视, 社会需要大量的软件测试人才, 这给毕业生带来了机遇, 同时, 软件公司希望招收有技术有经验的员工, 又给毕业生和高校带来了挑战。软件测试人才培养刚刚起步, 机遇和挑战并存。由于很多工作仍处于摸索阶段, 因此, 需要学校、教师和学生的共同努力, 为社会培养出大批合格的软件测试人才。

摘要:介绍了软件测试课程开设的背景和软件测试课程教学现状,提出了软件测试课程改革方案,实现理论与实践教学的统一,调动了学生的学习积极性,深化了教学改革。

《软件测试》课程教学改革设计 第8篇

软件测试员是软件行业主要的工作岗位。《软件测试》课程是软件技术专业的核心课程。随着项目化课程改革的深入, 该课程几经变革, 名称也从《软件工程 (2) 》、《软件测试工具与实践》、《软件测试》不断演变。笔者2011年初荣幸地得到华师大职研所付雪凌博士的亲自指导, 将基于工作过程的项目化教改引入该课程, 经课程团队努力建设, 于2010年被评为学院精品课程。下面围绕课程定位、 课程特色、教学方法与手段、教学环境与条件、课程的重点、难点及解决办法等方面介绍该课程的建设情况。

1课程定位

(1) 高职类软件专业就业定位。根据市场调研, 结合高职教育培养高素质技能型人才的总体目标, 高职软件专业的就业首岗定位为程序员、测试员、软件运维人员。

(2) 测试员职业岗位能力分析。熟悉测试阶段、测试流程、规划测试 (分配人力资源、设备资源、安排测试时间) ;熟练运用各种黑盒、白盒测试方法并设计测试用例; 熟练使用测试用例管理工具;熟练使用缺陷管理、跟踪工具;熟悉配置管理工具;熟练使用黑盒、白盒自动化测试工具原理;熟悉主流操作系统 (或手机操作系统) ;熟悉主流数据库;熟悉甚至熟练掌握一到两门高级编程语言 (C+ +、C#、Java等) ;熟悉一到两门脚本语言 (VBScript、 JavaScript、Perl、Python等) ;熟悉网络知识;精通所测软件产品的业务逻辑;良好的中外文沟通能力。

(3) 基于职业分析的课程定位。教学目标是让学生掌握软件测试的基本理论、技术和方法, 使教学对象具备软件测试的必备专业知识、技能和素养, 从而为成为软件测试工程师奠定必需的理论知识与实践基础。

(4) 与其它课程的关系。软件测试的前期课程主要有:软件工程、操作系统、数据结构、面向过程和面向对象程序设计、计算机网络基础、数据库设计及应用、Web项目开发等软件程序员必修的专业基础和专业课程。

其后续课程是《软件测试实训》, 引入CMMI3行业标准并通过一周的项目化实践将前期所学的知识贯通, 强化测试工具的使用。

2课程特色

(1) 学科建设。本课程设计是在华师大课程专家的指导下, 运用基于软件测试的典型工作过程理论, 突出项目化课程建设, 专业教师与软件企业工程师共同开发课程的模式。

(2) 课程设计以软件测试典型工作任务为基础。本课程立足于实际能力培养, 对课程内容的选择标准作了根本性改革, 打破了以知识传授为主要特征的传统学科课程模式, 建立起以软件开发典型工作任务为中心组织课程内容。现在的软件测试方法、工具种类繁多, 层出不穷, 但其软件测试过程基本相似, 都要经过测试需求分析、编制测试计划、设计测试用例和编写测试数据、搭建测试环境、执行测试、BUG管理、编写测试报告几个环节。根据CM- MI3的过程定义, 我们以测试计划编制、设计测试用例、搭建测试环境、执行测试和BUG管理、编写测试报告作为本课程的典型工作任务。

(3) 以学生情境学习和做中学为中心。按照情境学习理论的观点, 只有在实际情境中学生才可能获得真正的职业能力, 并获得理论认知水平的发展, 因此本课程要求打破纯粹讲述的教学方式, 实施项目教学以改变学与教的行为。这是教学模式的一个重大转变, 要有力地推动这一转变, 需要以项目为载体来组织课程内容。学生在完成具体项目的过程中构建相关理论知识, 并发展职业能力。软件测试是软件质量保证的最主要途径, 也是改进软件开发过程的重要途径。经过与软件企业专家深入、细致、系统的讨论分析, 结合学生的学习生活情境, 根据CMMI3的过程改进思想, 本课程最终确定了软件测试的6个典型环节, 即测试计划编制、设计测试用例、搭建测试环境、执行测试和BUG管理、编写测试报告。 同时选取两个企业的真实项目作为教学载体, 一个用于教学, 一个用于学生课后练习。课程内容以高职学生比较熟悉的企业网站测试为例, 突出对学生职业能力的训练, 理论知识的选取紧紧围绕工作任务进行, 同时充分考虑了高等职业教育对理论知识学习的需要, 并融合了相关职业资格证书 (软件评测师) 对知识、技能和态度的要求。

在项目课程设计中, 项目载体设计是一个关键环节。 本课程确定了以典型软件测试作为载体的项目设计思路。 根据软件外包产业的实际情况, 我们选择两个学生比较了解的软件产品, 以保证软件测试知识、技能的完整性。通过对典型软件测试过程的提炼, 学生可获得比较完整的软件测试能力。

3教学方法与手段

(1) 教学方法。教、学、做为一体的教学模式;多媒体教学;用企业实际成本核算资料作为教学素材;引进企业真实项目。

(2) 教学手段。和企业共同开发的多媒体教学软件; 课程网站。

4教学环境与条件

(1) 师资队伍结构。本课程教师中, 有3名来自企业的兼职教师, 具有丰富的实践经验, 专兼职教师比例为5: 3。整体“双师”结构优良, 双师比例达到87.5%;本课程教师分别来自全国不同的著名高校, 有良好的学历结构, 其中具有研究生学历或硕士以上学位的教师6人, 占75%。兼职教师能力强, 对该课程的开发和实施提供强大支撑, 详情见表1。

(2) 校内外实训条件。软件测试综合实训室;睿泰、软通动力测试冠名班;3个校外实训基地。

5课程重点、难点及解决办法

(1) 课程重点。软件测试课程重点:软件测试基础理论、软件测试策略、测试用例设计、自动化测试工具、较完整的测试项目实践, 以及软件测试过程管理和环境配置。

(2) 课程难点。包括单元测试技术、测试用例设计, 特定环境下使用测试工具对应用系统进行测试等。

(3) 解决方案。1理论讲解和实践体验“双管齐下”。 理论教学模式以精讲和透彻分析、问题导入、自主学习和集体讨论的形式进行;实践教学主要是通过贯彻两个层次的实践活动、项目综合测试等培育综合测试技能;2通过产学合作方式, 培养综合实践能力。引入真实测试项目, 以“商业化”的方式模拟签订测试项目合同, 并以教学的形式执行合同。

6结语

《软件设计》课程交互式教学探索 第9篇

关键词:软件设计,网络教学,交互式,教学模式

0引言

学生是教育的根本,“以学生为本”的教育观也成为冲击传统教育形式的一股力量。杜威认为,教育应该是“做中学”,皮亚杰的教育理论是“建构主义”,这也是全球教育的基础理论。

网络早已经使资讯变得无国界无时域的限制,教育形式和教育理念也随之而发生了变化,教育对象也与以往有所区别。面对网络带给教育的冲击,如何运用最先进的教学理念实现网络下的交互式教学成为摆在教育工作者面前的问题。

针对这样的问题,研究并提出一整套网络下的交互式教学策略,成为需要解决的重要教学课题。因此,以《软件设计》课程为例,提出了该课程的网络教学模式。

1软件设计课程交互式教学设计

1.1课程分析

《软件设计》在计算机软件开发相关专业中占据专业必修课的重要地位,但是由于学生作为软件开发的初学者,对软件的开发过程了解甚微,仅有软件设计知识也只是从书本上照本宣科,教条化的概念掌握,没有较多软件开发经验的人是无法深入理解软件设计的技巧和内涵的。因此,只凭在一个学期课程上有限的课时, 无法解决软件设计涉及到的问题。

目前学校也针对学生对课程理解程度较差的问题,建立了网站形式的教学资源库,但是这些教学资源网页基本上都是静态网页,没有交互性,更无法及时解决学生在学习过程中遇到的各种问题,从而导致学生失去学习兴趣和信心,处于半放弃状态。

2.2交互式教学模型

传统教学中,学生与教师的交互基本上仅限于课堂上,很多疑问无法得到及时解决,以至问题越积越多直至对学习失去兴趣。交互式教学能够避免这种消极因素,实现师生之间、学生之间相互交流,促进学生学习以及教师及时了解学生对知识的掌握动态。交互式教学模型如图1所示。

2.3教学案例

将交互式模型应用在《软件设计》课程当中,研究教学效果。

教学目标为某超市销售管理系统登录模块的实体类设计。该知识点的教学设计思想如图2所示:

教学对象为2012级软件技术专业某班共32名学生。

传统教学只限于课堂上,而交互式教学扩展到了课后。将两者的教学效果进行对比,学生的学习成绩提高了20%。大部分学生都能够在原有基础上有所提高,并且及格率也提高到了98%。

3结论

软件测试课程教学改革探索 第10篇

软件测试是软件开发过程中必要的实践环节,是保证软件质量的重要手段[1]。它对测试人员的专业知识要求全、专业技术要求强、专业能力要求高。人才市场对软件测试人才都有很大的需求量。掌握软件测试技术、构建软件测试环境、编写软件测试用例、开展软件测试工作并有效进行软件测试管理,具有较强的现实意义。

2 现状

软件测试课程是高职院校计算机软件专业的一门必修课,它是一门操作性实践性很强的课程。传统的教学模式很难将知识传授给学生,如果没有实训环节的支持,用灌输式教学方法枯燥地讲解测试理论、测试方法和测试工具,会使学生产生抵触和厌学的情绪。但软件测试实验和实训的组织和实施有较大的难度,既有实验工具和环境的要求,也有应用项目的要求,如果不做合理的选择,容易造成实验实训的随意性。软件测试课程的教学有几种方式:软件公司合作办学、项目教学法、建立校外实训基地等等。相比较而言,基于实训平台的软件测试,在高职院校实施起来更切合实际。

目前在高职院校开设的《软件测试》课程主要有以下几种教学模式:(1)与软件公司合作办学。(2)请软件公司员工兼职授课。(3)采用项目教学法。(4)建立校外实训基地,学生在软件公司参与实际的软件测试过程。以上的方式虽然能够在《软件测试》课程的教学中取得了一些效果,但总体来看还存在着很多问题。国内最典型的合作办学是和IBM公司合作,利用IBM软件学院的一系列理念和工具来进行,但不是每个高职院校都有机会和IBM软件学院合作。软件公司员工作为兼职教师授课,虽然他们实践经验丰富,但普遍缺乏授课经验。项目教学法是目前比较好的教学方法,但选择合适的项目来进行教学比较困难,同时,软件测试课程还需要一些测试理论的指导。建立校外实训基地,难以选择到合适的企业。据了解的情况,在校企合作建立实训基地合作成功的案例并不多。高职院校要么是找不到合适的企业进行合作,要么就是将校企合作流于形式,为了合作而合作。校企合作还存在体制障碍,企业追求的是效益利润。而没有经验的实习生,他们不但不能提高企业的效益利润,反而增加了企业的管理成本。

3 基于实训平台的软件测试教改探索

基于实训平台的软件测试教学改革采用理论教学和实践相结合的办法,在理论学习的基础上,在实训平台上采用项目教学法。这样既实现了软件测试课程的教学目标,同时又合理的利用了学校的现有教学资源,摒弃了校外实训的缺点,同时也节约了软件测试课程的教学成本[2,3,4]。

在课程内容的安排上,将《软件测试》课程划分为四个模块分别组织教学。《测试理论》课程是理论模块,《功能测试》、《性能测试》和《测试管理》等课程是实践模块。《测试理论》课程系统地讲解软件测试的理论和方法。《功能测试》、《性能测试》和《测试管理》等课程要求学生通过学习和实训。

业界目前流行的平台主要是HP公司和IBM公司的系列功能测试、性能测试和测试管理软,以及部分开源项目。开源项目虽然使用成本低,但软件的操作没有商业软件便利。实验和实训是软件测试教学中的重要环节。在测试理论的教学中,拟安排黑盒测试、白盒测试、单元测试和集成测试4个实验。在功能测试、性能测试和测试管理中,引入一个具体的软件成品项目电子商务管理系统EShop[5],来完成功能测试、性能测试和测试过程的管理,以模拟实际的软件测试过程。

测试理论部分主要讲解软件测试的基础理论,软件测试过程,软件测试方法等。主要内容包括静态测试与动态测试,黑盒测试与白盒测试,人工测试与自动化测试。单元测试,集成测试,确认测试,系统测试,验收测试,面向对象软件测试。在测试用例设计方法中,重点介绍黑盒测试的边界值分析法、等价类测试、因果图法、基于决策表的测试、错误推测法。白盒测试的逻辑覆盖、独立路径测试、循环测试等[6]。

实践教学环节主要覆盖功能测试、性能测试和测试管理。这部分的内容需要结合软件测试工具和实际项目。功能测试拟采用QTP,性能测试采用Load Runner,管理工具采用Quality Center,项目采用电子商务管理系统EShop。随着开源测试工具在业界的广泛应用,这部分内容也需向学生传授。以下对测试工具分别做简单介绍。

Quick Test Professional(QTP)是HP公司出品的B/S系统的自动化功能测试工具,广泛应用于软件的功能测试和回归测试的自动化。QTP采用关键词驱动,大大简化了测试的创建和维护。QTP提供了很多插件,支持录制和回放的功能。QTP支持的插件有:.NET、Java、SAP、Terminal Emulator等,QTP支持的脚本语言是VBScript。

Load Runner是HP公司出品的预测系统行为和性能的负载测试工具。它通过模拟大量用户实施并发负载以及实时性能监测的方式来确认和查找应用系统存在的问题。通过使用Load Runner,软件企业能够最大限度地缩短测试时间、优化性能和加速应用系统的发布周期。同时,Load Runner支持广范的协议和技术,适用于各种体系架构的自动负载测试,并能预测系统行为及优化系统性能。

Quality Center(QC)是HP公司出品的基于Web的测试管理工具,它提供了一种完整的测试流程解决方案。Quality Center可以应用于测试流程的所有阶段,包括测试需求、测试计划、测试执行和缺陷的跟踪管理。Quality Center可以集成QTP、Load Runner以及第三方和自定义测试工具、需求和配置管理工具,还可以创建报告和图来监控测试流程。通过使用Quality Center,可以提高测试效率,节省测试时间,更好的对测试流程进行控制。

自动化测试工具几年前一直是商用工具的天下,这几年以Selenium为首的一系列开源工具不断攻城掠地,不但国内的互联网公司、大型行业客户也纷纷拥抱开源自动化测试工具,因此有必要在课程中引入开源测试工具。功能测试工具以Selenium为代表,它是Thought Works专门为Web应用程序编写的一个验收测试工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7、8、9)、Mozilla Firefox等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好的工作在不同浏览器和操作系统之上。测试系统功能——创建衰退测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。性能测试工具的代表是JMeter,它是Apache组织的开放源代码项目,用于压力测试和性能测量。它最初被设计用于Web应用测试,后来扩展到其他测试领域。JMeter可以用于对静态的和动态的资源例如Servlet、Java对象、数据库、HTTP和FTP服务器等的性能进行测试。它可以模拟服务器、网络或对象的巨大负载,以测试它们在不同压力下的性能表现。同时,JMeter还提供图形化界面,可以比较直观的分析系统的性能指标。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。开源测试管理工具以Testlink为代表,Testlink可用于管理测试用例,从测试需求、测试计划、测试用例管理和用例执行,到最后的结果分析,一套完整的测试流程控制,帮助测试人员有效的控制测试过程。

4 结论

软件工程课程设计实践教学探索 第11篇

【关键词】实践教学 课程设计 科技竞赛

【中图分类号】G642 【文献标识码】A 【文章编号】2095-3089(2014)02-0243-02

一、软件工程课程实践教学现实情况

长期以来,由于软件工程课程偏重于方法学理论的讲授,其中心是软件生命周期的工程技术方法。然而这些技术和方法,对于缺乏工程开发经验和管理知识的在校学生来说非常难以理解。在实践教学中学生感觉软件工程理论对软件开发的帮助作用不大[1]!尽管实践教学对学生有严格的要求,但是他们往往为了能完成任务的考核,只能按照要求粗略地完成或者收集现成的文档来充数,而未能通过实践对所学的知识进行理解与消化。此外,靠死记硬背的知识、概念常常未能得到有效理解,从而难以转化为软件工程技能。多年来,各个学校在不断地探索和改进其实践教学方法,当前也有些对传统实践教学改进的方法并且取得了一些效果[2][3]。经过对这些方法的分析,可知其大致可分为两类:一类是直接套用软件工业界的要求,但学生缺乏技能和实践条件对任务根本无法完成,只能敷衍了事,达不到对软件工程知识理解和应用的目的;而另一类则是要求不明确且缺乏规范,因要求过于简单而无法达到增强对软件工程理论应用的目的。

鉴于这样的情况,学校迫切需要对软件工程实践教学加以改革,逐步建立实践与理论紧密结合的教学方法,着力培养学生的工程化开发能力,进而形成一个融基础理论、实践教学和参加软件科技竞赛的一种培养机制。因此,使课程设计成为对课堂教学的有效补充是实践教学改革的一个重要任务[4]。

二、“课程设计与科技竞赛”相结合的实践教学方法

课程设计与科技竞赛相结合就是要打破传统实践教学法的不足,充分调动学生学习的积极性和主动性,极大地激发学生的学习兴趣,以实践教学活动带动软件工程理论的学习。这样实践教学就能改变成为对理论知识的巩固应用和对工程实践能力培养的主动学习方式,从而使教学出现可喜的变化。它能把教师要求转变为以学生自主要求,把常规工程文档写作转变为以任务为驱动的分析、设计和实现的学习。

该实践教学是在教师的指导下由学生实施的一个较为完整的“项目”而进行的实践教学活动。参照科技竞赛题目的特点,并依据软件工程理论、方法的特点,制定了本课程设计的知识要求结构如图1所示。在软件工程理论知识的基础上,挑选某种易于扩展、应用的工程技术方法,在软件工程规范文档的要求下进行课程设计。从而使其按需求分析、总体设计、详细设计、实现和测试的流程来开发软件。这样,经过课程设计较为完整的项目训练,能有助于对学生工程技能的培养和对工程理论的理解,最终使学生在有限的时间内,对软件工程的核心理念有较好的把握。它能帮助学生有效地参与各级软件类科技竞赛,提高自己就业时的信心和社会竞争力,使其毕业后能够顺利过渡到实际的软件应用开发中,并在实践中对软件工程理论加以检验和完善并逐步锻炼成为社会急需的各类软件人才。

课程设计与科技竞赛相结合的教学方法是以学生为主体,教师为辅助,在课程设计实践中加深对软件工程理论的理解,培养学生在工程实践中发现知识与分析、解决问题的能力。要达到这样的实践教学目的,软件工程课程设计要做到以下的要求。首先,关于课程设计与科技竞赛相结合的教学内容的设计上,要以学生兴趣为中心自由选择题目。针对实践教学要求,学生选择合适的题目是保证该实践教学顺利开展的关键。因此,题目要以理论教学内容为依据,同时要考虑学生的知识结构特点和实践教学的要求。此外,题目要注重以解决身边的软件需求为背景,充分使其既包含教学知识点,又能激发学生软件开发的兴趣,达到培养学生软件工程能力的目的。其次,实践指导老师要提供合适的示范案例,并不断地引导学生向正确的方向前进。由此,在课程设计的准备阶段需要对为完成设计所需的基本知识进行明确且扼要地讲透。这样学生在遇到困难时,才知道行进的方向而不至于迷茫和不知所措!在课程设计中,要使学生明确课程设计的要求,并尽快地掌握工程的基本方法和使用工具的基本技能。同时,应尽量使学生独立地解决设计中所遇到的问题,而教师则需要对学生进行全程的指导和监督。再次,应确定合适评价标准,客观考核学生的学习效果。主要方法是以学生完成课程设计的情况来评价学生的学习效果,要求各课程组定时汇报开展的进度和情况,并及时地对各阶段性成果进行评价。

三、课程设计的教学实施

根据实践教学的具体要求,对课程设计与科技竞赛相结合的教学方法开展了研究,并总结出该方法的大致流程如图2所示。其基本指导思想是以案例示范为核心,不断地引导学生对其选定的课程设计进行改进,使其能满足掌握需求分析、软件设计与实现以及测试的基本技能,并把不断改进贯穿到整个设计中。由此,课程设计应从课程设计准备,精选小项目案例文档示范,课程设计题目的选定,课程项目的设计与改进,教师和学生一起对设计结果的评价与改进进行精心地组织。因此,准备阶段就是对训练内容所涉及的工程知识进行精炼概括与总结,使学生知道如何去应用这些知识。此外,示范的项目案例要进行精心的选择,使其能够覆盖课程设计实践教学要求,又要精干有效,易于参照与模仿学习,切忌过于庞杂。教师应把课程设计准备知识与项目案例进行参照讲解,让学生彻底了解训练的要求。在题目的选择上,可以适当地提供一些精选的小应用软件题目,让学生参照选择或根据生活经验自拟题目。并在项目设计中进行全程的监督和引导,并随时指出其设计和参照示范项目和实践要求的差距。对各阶段结果,应组织一些志愿学生和做得好的学生对各阶段结果进行评价并给出改进建议。如此不断地迭代改进,能够使学生较好地掌握软件工程的基本技能,并巩固对应的软件工程理论知识,从而取得举一反三的示范效果。这样就能够使学生理解并掌握一些基本的需求获取与分析、系统分析与设计等软件生命周期的技能,并学会软件工程规范文档的编写与应用。

在与科技竞赛相结合的问题上,可根据学院、学校和省市以及全国举办的一些科技竞赛题目来进行课程设计。通过小组成员的共同努力,把课程设计完成的作品,加以整理、改进并完善作为参赛作品,这样参赛作品往往在各类软件竞赛中具有较强的竞争力。而且,获奖对于学生在就业市场上信心的形成具有巨大的影响力,而且对于他们今后走向社会,对自己的发展定位有着较好促进和帮助作用!

软件工程课程教学方法研究 第12篇

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

软件工程是一门理论性较强的课程,在日常教学过程中存在以下问题:

1.1 学生对软件工程的抽象理论容易感到枯燥乏味

软件工程涉及众多专业领域,它是一门多学科交叉学科,课程内容具有抽象化、系统化、理论性强等特点。不像程序设计课程能随时动手设计实现程序,激发学生学习的兴趣和热情。学生在接受抽象理论的时候,容易感到内容空洞、枯燥乏味,学习时就缺少主动性,难对这门课程产生兴趣。

1.2 实验教学效果差

软件工程在教学过程中,只有一个学期的教学量,由于知识点众多,理论内容的授课量占绝大部分,实验课时数仅占到四分之一左右。由于教学时间及实践环境有限,学生很难要真正完成开发一个项目,并编写软件生存周期各阶段文档工作。同时,有些实践内容显得太复杂太耗时,对教师和学生的要求都很高,不太适合初次接触软件工程的学生。

1.3 学生很少有机会去参加一些大型项目

在学校里学生开发的一些程序,一般都是小型软件系统。学生开发的系统大多只是给任课教师大概地检查一下,一般不会交付使用,没有经受用户的真正严格的检验,甚至没有经过完整的测试,学生看不到需求分析、设计、代码里面的错误,更不用提对错误进行维护修正了。小型软件系统在规模和复杂度上都远远不如实际开发的系统,学生对软件生命周期的各阶段的重要性体会不深刻。

2 解决方案

针对软件工程教学过程中出现的种种问题,可以从以下几方面来设计解决。

2.1 改进教学方法,加强案例教学

软件工程中很多原理、技术、方法都比较抽象,为了使学生能深刻领会和理解软件工程的思想和方法,教师要提高授课的艺术性、科学性、趣味性、形象性,在教学中创造条件引入实际案例[2],将复杂抽象的概念用具体生动的案例进行诠释,能够收到事半功倍的效果。

在实际教学过程中,以本人参与开发的《网络信息过滤软件系统》为实例,讲解软件生命周期的各阶段。同时向学生提供项目《基于虚拟现实的交通事故现场模拟再现和图像测距研究与实现》的研究背景,供学生课下讨论分析该软件的需求、设计、代码、测试及软件开展时如何进行项目管理。在课程开课不久,就向学生提供曾经有名的“绿坝花季护航[3]”过滤软件,让学生分析该软件的主要功能、性能、成功和失败。

软件文档是软件的重要组成部分,是软件系统开发各阶段的工作成果和评价依据,因此软件文档的撰写能力是软件开发人员必须具备的素质。在讲授基本原理的同时,把规范的软件文档模板提供给学生,作为本课程的文档标准,要求学生按规范进行文档编写。同时向学生提供一些模板实例,如汽车管理系统,提供了软件生命周期各个阶段所需的文档资料。这样使学生既有文档模板的指导又有文档实例的参考。

2.2 以模拟项目开发为手段的实验教学模式

开设综合性的软件工程课程实验,以模拟项目为驱动,按软件企业项目管理和开发模式,进行软件模拟项目开发实训,培养了学生的创新意识与实践能力。

将班内学生分成若干个项目小组[4],每小组成员不超过7人,每组分配不同的软件项目,如工资管理系统、图书管理系统、学生信息管理系统、酒店预订系统等。小组成员模拟与体验软件工程全过程工作职位和角色,使学生全过程适应工作职位的要求。

各项目小组在开发项目过程中,要遵照软件开发的工作流程,做好可行性研究、需求分析、总体设计、详细设计、编码、测试、维护及依据文档规范标准进行各阶段文档的撰写,各项目小组发现问题、小组会同指导教师分析问题、解决问题。在整个开发过程可以体现“学以致用”的思想,实现理论与实践相结合。

各项目小组通过演练项目开发,不仅让同学们切身体会到软件开发的整个过程,还让同学们对软件开发中各个角色有充分的了解,同时也更深刻的体会到团队合作的重要性。

2.3 适时更新教学内容

软件工程的课程教学内容除了讲授教材内容之外,还应该结合软件工程的发展和国内外软件企业的人才需求现状,不断更新教学内容[5]。软件工程发展日新月异,目前的教科书很难及时准确反映,因此在教学中不能拘泥于教材内容的限制。在讲解基本原理、基本概念和基本方法的同时,要注重一些新方法新技术的讲授。例如向学生介绍软件项目管理的内容、软件开发工具、IEEE软件项目管理计划、CMM(能力成熟度模型)以及ISO9000等国际标准等。以此同时,多给同学们补充介绍一些软件工程最新研究动态,最新的理念以及软件工程中重要的会议、杂志、论坛、网站。引导学生课下查阅学习资料,教授学生自我学习方法。

2.4 加强校企合作

经常邀请企事业、软件公司里长期从事软件开发和项目管理的软件工程师和项目经理,到课堂上给同学们讲解高质量的软件产品的诞生历程,并用多媒体演示软件生命周期中每一个阶段的标准文档资料。同时给学生提供一些比较成功的软件产品的研发单位,让同学们在课余时间实地考察实习,在实际环境中体验软件开发环境和开发过程。通过这些活动,不仅能让学生加深对所学过的知识,还能够激发学生的学习热情和动力。

2.5 改革课程考核模式

由于软件工程理论性较强,考核方式往往以理论考试为主,这种考核方式会促使部分学生考前抱佛脚,考前死记硬背,降低学生学习的积极性。软件工程除了理论性较强之外,还是一门实践性较强的课程,除了理论考核之外,还应注重学生综合知识和应用能力方面的考核。建议课程考核应该包含平时作业、课堂表现(发言与讨论)、实验、理论考试这几部分。采用这种考核方式,促使学生加强对知识的理解和运用,课堂踊跃发言,提高学习的主动性和创造性。

3 总结

软件工程是一门理论性较强的课程,在日常教学过程中存在学生对理论学习感到枯燥,学习兴趣性低,实验效果差等问题。这对这些问题,本人从改进教学方法,加强案例教学,模拟项目开发的实验模式、更新教学内容,加强校企合作,改革课程考核方式等方面来解决问题。实践表明,学生学习兴趣积极性大大提高,并能用“工程化”思想进行简单软件设计开发,教学取得较好效果。

摘要:软件工程课程在日常教学过程中存在学生对理论学习感到枯燥,学习兴趣性低,实验效果差等问题。这对这些问题,文章将从改进教学方法,加强案例教学,模拟项目开发的实验模式、更新教学内容,加强校企合作,改革课程考核方式等方面来探讨解决问题的方法。实践表明,学生学习兴趣积极性大大提高,并能用“工程化”思想进行简单软件设计开发,教学取得较好效果。

关键词:软件工程,教学方法,案例教学,校企合作,教学模式

参考文献

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

[2]傅尔胜,齐艳珂.软件工程教学若干问题的思考[J].大众科技,2007(8):172-173.

[3]绿色上网-绿航网官方网站[EB/OL].http://www.lssw365.net/.

[4]刘春.多方位的教学改革与实践—软件工程[J].大庆师范学院学报,2007(10):155-157.

上一篇:民族性国乐下一篇:模糊马尔可夫链预测