前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇软件测试实训总结范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
我院从2004年即开设了软件测试方向,在培养方案、课程体系、实践环节等方面作了大量的探索、研究和实践工作,取得了一些成效,也遇到了许多问题。本文对我院的软件测试技术人才的培养模式进行分析和总结,希望能抛砖引玉,与同行交流。
1两年制软件测试方向课程体系的特点
两年制软件测试人才培养的特点主要有:
(1) 学制短,只有两年;
(2) 目标是培养实用型软件测试技术人才;
(3) 要具备一定的编程能力。
上述特点决定了软件测试人才的课程体系的特点:
(1) 方向即专业由于学制短(两年),除了第四学期的毕业实训,实际上真正上课时间只有三个学期。所以软件职业技术人才不能像本科生培养一样,到大三才分方向,而必须从入校就开始分,所以软件测试方向实际上是按软件测试专业来培养。
(2) 开发与测试兼备一个合格的软件测试人员必须具备基本的编程能力和软件开发人才的基本素养。所以软件测试方向的课程除了测试课程外,还要掌握软件技术的基本课程,包括数据结构、数据库、计算机网络、软件工程,以及至少一门主流程序设计语言等。
(3) 课程紧凑、课时多由于相对于其他专业来讲,软件测试方向的学生要学习更多的课程,所以课时就多,课程安排紧凑。
(4) 实用性和实时性作为实用型软件测试人才,学生必须掌握当前主流的测试工具、实用测试技术和方法等。所以课程体系必须要具备实用性和实时性。
2课程的设置
在设置课程时,我们进行了大量的调研,经过2004级和2005级两届学生的培养实践,针对培养效果,进行了一些分析和课程改革。目前2006级的课程设置是在掌握基本的软件技术基础知识和一门主流程序设计语言的基础上,开设了“软件测试技术”、“功能测试与性能测试”、“测试管理”等软件测试专业课程。
主要专业课程设置见表1。
从功能上讲,课程的设置可以分成5个部分,对应学生不同层次能力的培养。
第一部分程序设计能力、工程化开发思想的培养。该部分的课程主要包括VB、Java、数据结构、计算机网络、数据库、软件工程等,主要是软件技术基础知识的学习,培养学生基本的程序设计能力,使之具备软件技术人才的基本素养,同时软件工程等培养学生工程化和规范化的软件开发思想。采用Java作为主要编程语言,将另一主流语言C#作为选修课,体现课程设置的灵活性。
在编程的课时和基础训练上和软件技术专业编码方向的学生一样,设置的原则:首先是一个软件测试人员必须具有基本的编程能力和经验,才能更好地搞好软件测试工作。第二是根据当前软件企业的人才需求考虑学生的就业,因为河南省绝大多数软件企业规模都较小,设置专职的软件测试岗位的较少,程序员通常又是测试员,所以使学生既能编程又能测试,拓宽就业渠道。
第二部分软件测试基础知识。主要是“软件测试技术”课程,侧重于测试理论和技术的掌握、搭建测试环境、测试工程师的基本职业素养培养。使学生在学习编程的同时,掌握对应的测试技术概念和基本知识。为进一步的实际项目测试打下基础。该部分对应有2周的一级集中实践课题,进行基本的测试训练。
第三部分主流测试技术和工具的掌握和使用、实际测试能力的强化和提高。对应的课程是“性能测试与功能测试”,该课程主要是结合实际的软件项目,介绍主流的测试技术和测试工具的使用,但并不只是性能测试与功能测试。该部分对应有3周的二级集中实践课题,分组进行实际的测试训练。
第四部分测试项目管理能力培养。主要课程为“软件测试管理”,培养学生工程化的测试思想,学习主流测试管理方法和工具的应用。该部分对应有3周的三级集中实践课题,训练项目的测试过程管理和测试管理工具的使用。
第五部分综合测试能力培养,即毕业实训。该实训为最后一个学期,学生到软件企业或实训基地参加实际的软件项目开发和测试,进行实境实习,综合地运用所学的测试和编程技术。
3实践环节
培养过程的实施可以归结为“夯实基础,强化训练”,夯实基础即培养基本的编程能力和掌握基本的测试技术。强化训练即强调实际能力的培养,通过对实际的软件项目进行测试训练,使学生熟练掌握主流的测试技术和测试工具的使用。
为了加强实际能力的培养,在正常教学的实践外,我们还在第1~3学期分别设置了一级、二级、三级集中实践课题,并要求软件测试方向的学生要与软件编码方向的学生组合协作进行,专门负责相应的软件测试工作。使学生感受到测试工作的重要性,同时培养其协作能力。一级和二级实践课题主要为验证型,三级实践课题则为设计型。
第4学期为毕业实训,采用实地场景教学,对实际的应用项目进行测试,角色模拟,项目驱动。该阶段从测试需求分析开始,一直到测试总结报告的撰写,贯穿一个完整项目的开发和测试整个过程。是对学生所学知识的一个总结和综合利用的强化。
各实践环节环环相扣,循序渐进,由易到难,由单一到综合,形成一个完整的实践体系。
集中实践环节安排见表2。
4测试工具的选择
由于软件测试工具较多,而两年制课时太紧张,所以只能学习常用测试工具的使用。我们选用的主要自动化测试工具见表3。
通过测试工具的使用,可以加深对测试原理和理论的理解,掌握主流的测试技术和方法。
5遇到的问题及采取的措施
软件测试人才作为刚兴起的职业技术人才,在培养过程中必然会遇到许多问题,相信这些问题也是其他院校在培养软件测试人才时遇到的共性问题,我们针对这些问题采取了许多有效的措施,不断改进。
(1) 对口就业较难
主要原因是我国“重开发,轻测试”的现象过于严重,很多软件公司没有专门的测试部门,测试工程师太少,开发人员兼作测试工作的现象十分普遍。但并不是说我们的培养方向不对,这正说明软件测试工程师职业还没形成规模,正在兴起时期。据2006年12月国家信产部“2006中国软件质量年会”公布,软件测试人才为2006年最紧缺的人才之一,在上海、北京等地,软件测试工程师已成为“地位高,待遇高”的“双高”人才。企业规范化需要规模和过程,软件质量问题将成为软件企业能否继续发展壮大的关键所在,越来越多的企业管理者意识到产品测试的重要性,所以软件测试工程师属于朝阳职业。
当然我们也采取了有效措施,如在前期强化基本的编程训练,使学生既能搞开发,也能搞测试,提高就业的灵活性。
(2) 教材少
软件测试作为一个新的专业(方向),目前还没有成体系的软件测试系列教材,所以在选教材时只能选与教学大纲内容相近的教材或技术书,或自己编写讲义。但给讲师授课带来许多困难。当然要很好地解决该问题需要教育管理部门和众多同行的共同努力。
(3) 测试项目实例缺乏
由于测试项目都属于公司内部资料,一般很难获得,不像通用应用程序模块一样在网上可随意找到。对此我们组织设计了一些测试案例,同时从合作的软件公司获取了一些实际项目案例,使学生能在实境中实践。毕业实训时大部分学生则直接到软件公司进行实地实习。
(4) 师资力量薄弱
师资是保证教学质量的关键,开始时师资力量较薄弱,我们采取的措施有:挑选有实际项目开发经验的老师来授课、从IT公司引进专业测试工程师、将有一定测试工作经验的老师送出去加强培训等。另外还不定期聘请IT公司的测试专家来做专业讲座,拓展学生的知识面。
CDIO培养大纲将工程毕业生的能力分为工程基础知识、个人与职业技能、人际团队能力和工程系统能力四个层面,要求以综合的培养方式使学生在这四个层面达到预定目标。CDIO不仅继承和发展了欧美20多年来工程教育改革的理念,还提出了系统的能力培养、全面的实施指导、完整的实施过程和严格的结果检验的12条标准,具有很强的可操作性。
2综合实训课程的定位与培养目标
按照循序渐进,由浅入深,逐层推进的原则,盐城师范学院信息科学与技术学院将软件工程专业的实践教学体系分为四个层次:课程实验、课程设计、综合实训、毕业设计。其中,综合实训是以前期课程实验和课程设计为基础,综合运用多门相关课程(群)知识完成一个工程项目的实战训练,并作为后续毕业设计的预演,是整个实践教学体系中承上启下的关键环节。在软件工程领域,软件开发与软件测试是目前两个主流的就业方向,也是综合实训课程训练的重点。软件开发综合实训要求以软件生命周期为主线,综合运用程序设计、数据库应用、软件工程、软件项目管理等学科知识,严格遵守软件开发的流程与规范,完成一个软件项目的开发,最后提交软件产品和相关技术文档;软件测试综合实训要求学生以软件开发综合实训所完成的软件产品为被测对象,综合运用软件测试与质量保证、软件测试流程与方法、测试框架与自动化测试等学科知识,使用软件测试的方法与技术,设计测试用例和测试脚本,完成被测软件的功能测试与性能测试,生成测试报告,并对测试结果进行分析。综合实训的培养目标为:通过软件开发与软件测试项目的实战训练,全面提升学生综合运用所学知识与技术解决实际工程问题的素质与能力,进一步加深学生对工程化、系统化原则与方法的理解,为胜任现代软件工程环境下高质量软件的开发、测试和维护工作奠定坚实的基础。
3CDIO模式下课程改革与实践
根据综合实训课程的定位和培养目标,借鉴和吸收CDIO工程教育理念和标准,按照“以CDIO培养大纲为指南、以项目为载体任务为驱动、以工程能力培养为目标”的原则,对我们综合实训课程改革进行了探索与实践。
3.1全真模拟企业环境,实施一体化训练模式
软件开发和软件测试是综合实训的主体内容,传统的训练模式将二者割裂开来,分两个阶段分别完成实训项目,这种方式没有考虑软件开发与软件测试的内在关联与协同性,与企业真实环境也不相符合;并且由于两个实训阶段时间跨度较大,项目衔接性差,效率低下,实训效果也大打折扣;而在真实的企业环境中,软件开发小组和软件测试小组共同对同一个项目负责,各司其职,协同完成整个项目。鉴于此,我们采取“全真模拟、同步协作、角色互换”的策略,实施软件开发与软件测试一体化的训练模式。具体地说,整个实训过程完全模拟企业真实环境,将某个项目分配给由若干学生临时组成的项目组,该项目组又细分为开发小组和测试小组,分别负责软件的开发与测试工作;项目完成后,开发小组和测试小组角色互换,重做该项目。实践表明,一体化的训练模式能实现软件开发与软件测试的无缝衔接,学生能在更为真实的环境中参与整个项目过程,体验不同角色的职责范围,并通过不同的角色转换,使学生更深刻认识到开发人员与测试人员协同合作对完成整个软件项目的重要性。
3.2项目驱动,全面实践CDIO
CDIO的核心就是企业与社会环境下的构思、设计、实现和运作系统,它展示了一个产品或系统完整的开发过程,也体现了“做中学”和“基于项目的教育和学习”的精髓。从软件开发与软件测试的角度,无论是以软件生命周期为主线的开发过程,还是以测试流程为主线的测试过程,无不体现着软件产品从构思到运作的整个生产过程,与CDIO理念不谋而合。这里,我们以项目为载体、任务为驱动,以CDIO方法论为指导,严格按照“构思、设计、实现和运作”四个不同阶段来开展实训过程,以培养学生对产品、过程和系统的构建能力,增强学生的工程化意识。CDIO与软件开发、软件测试过程的对应关系
3.3分组互学互助,培养团队协作能力
团队能力是CDIO大纲要求工程毕业生必备的一种能力,也是软件企业非常看重的一种职业能力。在实际实训过程中,我们模拟企业真实环境,将所有学生分为若干项目组,每个项目组又细分为开发小组和测试小组,各小组由一名组长和若干名组员构成。根据任务分工不同,每名学生都被赋予一定的角色,组员在组长的指挥协调下通力合作,共同完成实训项目。实践表明,分组模式能较好地激发学生的学习热情,提高学习效率,而且也营造了良好的学习氛围,组员之间分工协作,互学互助,学生的沟通能力、协作精神和团队意识大为提升。
3.4面向全体,务实勿虚,促进共同进步
综合实训是一种典型的自主学习课程,学生在任务的驱动下以小组为单位协作完成实训项目,但由于任务分工不合理、学生自制力差等原因,容易导致小组内个别技术较好、自觉性高的学生承担大部分甚至全部工作,而部分学生却人浮于事,使团队分工协作流于形式,不利于全体学生的共同进步与提高。为避免此类现象的发生,我们考虑在角色分配和任务分工时,尽量使学生都能承担软件设计、编码、测试用例设计、脚本设计、测试实施等较为具体的工作,使学生通过具体的训练来提高专业技能,而对于需求分析、计划制定、总结报告等相对较“虚”的工作则由组长带领全体组员共同完成;同时,任务分工也充分考虑学生原有的技术基础、兴趣爱好和特长。这种分工方式在尊重学生个体意愿的基础上使得每个人都有具体明确而又力所能及的任务分工,能充分调动学生的学习积极性,激发学生的学习潜能,促进全体学生的共同进步与提高。
3.5实施多维度考评体系,注重过程考核和能力考核
考核是对学生学习成果的认定和评价,良好的考核机制能对学生的学习过程和学习动机产生正确的指引作用,促进培养目标的达成。在实训课程的考核上,我们以CDIO大纲要求的能力培养为导向,学习过程与学习结果并举,实施多维度的考评机制,每名学生的成绩由平时成绩、所在小组成绩和个人成绩三部分组成。其中,平时成绩主要考评学生的职业态度与能力,小组成绩主要考评学生所在小组的整体表现和工程实作能力,个人成绩主要考评学生个体所承担任务的完成质量,且每项成绩的考评方式也是多元的,力求做到公平、公正、合理。在小组内部,同组学生的小组成绩相同,但平时成绩和个人成绩各异,引导学生在努力完成各自任务的同时,重视组内的协作互助,并通过各个个体的高质量工作提高整个团队的工作质量。实践表明,该考评体系既重视最终学习成果的呈现也关注学生学习过程中的表现;既重视团队整体的工作效率也关注学生个体在团队中的价值;既强调学生专业技能的训练和工程能力的培养也关注学生职业素养和个人能力的提高,有效避免了传统评价方式只看结果不看过程、评价指标单一化、评价结果趋同化的弊端。
4结束语
本人从事一年级《计算机组装与维修》教学,根据中职学校学生的升学和就业的需要,在教学中,我认为《计算机组装与维修》课程主要涉及四类主要的知识块:硬件组装(匹配)、故障检测、软件安装及软件测试。下面具体探讨“硬件组装”、“故障检测”、“软件安装”及“软件测试”四类主要的知识块如何按照“任务驱动”教学模式进行教学。
⒈“硬件组装”知识块
该知识块的教学组织与实施一般过程为:课堂设计――示范引导――模仿试做――纠错重做――复述总结。主张课堂组织以学生小组为中心,内容教学以任务为驱动,形成师生互动、生生合作的探究式学习氛围。各环节具体操作要求如下:
课堂设计――将社会需要设计为相应的课堂学习行为,形成以培养专业能力为核心、学习能力和社会能力为两翼的课堂教学预案。
示范引导――主讲教师进行操作示范,在此过程中结合录像、课件、网络、软件进一步向学生展示操作的全过程。
模仿试做――学生在观看完老师的演示后开始动手实际操作,教师巡视指导,发现个别错误与一般错误。
纠错重做――及时纠正个别错误,集体讲评一般错误,之后让学生重做一些步骤。
复述总结――最后老师对操作步骤进行复述,特别提醒容易出错的步骤和环节,总结整堂课技能要点、方法要点和社会需要要点。
例如,在“为系统安装网络硬件”课例中,抓住其中的网卡安装、插槽选择、金手指的接触情况、网卡类型的选择,IP地址的设置等几项关键技术,而在网络原理、网络ISO的分层则一带而过只作简单介绍。教师先讲解示范,接着由学生试做,同时教师巡回指导,发现个别性问题,及时指导解决;针对一般性问题,教师则讲评纠错;之后对一般性问题容易出现的环节,让学生重做有关步骤。
2.“故障检测”知识块
“故障检测”包括硬故障和软故障的检测,硬故障是指计算机硬件出现的问题,软故障是指软件运行出现的问题。该模式的一般过程为:课堂设计――预设故障――分组讨论――尝试修复――纠错重试――分析总结。上课前教师提前预设若干个可控制故障,上课开始时分组讨论每个故障产生的原因,在讨论的基础上小组尝试排除故障。这种模式采用问题驱动来展开。各环节具体操作要求如下:
课堂设计――将社会需要设计为相应的课堂学习行为,形成以培养专业能力为核心、学习能力和社会能力为两翼的课堂教学预案。
3.“软件安装”知识块
“软件安装”包括系统软件安装和应用软件安装,以及多操作系统安装。“软件安装”行为引导教学模式的一般过程为:课堂设计――软件介绍――安装提示――学生安装――个别辅导――总结提高。本模式教学以问题或任务为驱动展开。各环节具体操作要求如下:
课堂设计――将社会需要设计为相应的课堂学习行为,形成以培养专业能力为核心、学习能力和社会能力为两翼的课堂教学预案。
软件介绍――介绍所要安装的软件背景知识,包括软件的开发商、版本的演化、最新版本的功能等。
4.“软件测试”知识块
“软件测试”就是用软件对硬件系统进行性能测试,目的是观察或比较不同品牌的组件的性能表现。“软件测试”行为引导教学模式的一般过程为:课堂设计――布置任务――分组操作――结果报告――比较分析。这个过程采取任务驱动来展开。各环节具体操作要求如下:
课堂设计――将社会需要设计为相应的课堂学习行为,形成以培养专业能力为核心、学习能力和社会能力为两翼的课堂教学预案。
布置任务――软件测试包括两类任务,一是匹配性测试,一是系统优化测试。教学中可以选择某一类任务或两类任务组合进行。
分组操作――学生在明确任务后开始分组测试。
结果报告――对小组测试参数进行分析,形成一个有说服力的组件选择方案或匹配优化的测试报告。
在教学中可以充分利用学校的现有资源。现在计算机技术发展很快,各个学校都有许多淘汰的计算机,但它们都还可以正常使用。我们可以利用它们建立计算机组装与维修实验室,在加上一些典型的、比较新的演示教师机,基本就能满足教学要求,解决学生的动手操作问题。上述大部分教学都应该在组装与维修的实验室进行才能达到教学目的。
在本课程中还有很重要的组成部分那就是实训部分。《计算机组装与维修》实训的目的是锻炼和培养学生实际操作技能和解决问题的动手综合能力。学生可在基本掌握各部分内容的基础上集中进行相关实验,以加深对知识的理解和掌握。在实验的基础上进行实训,提高学生的软硬件安装水平和排除故障的能力。
本课程考试改革的目的旨在加强学生技能、能力培养,使学生重视实践性技能的学习。课程考试采用抽签抽取问题决定操作考试和口试内容的考试方法。通过建立涵盖《计算机组装与维修》各关键技术的项目库,给出各操作项目的难度系数,考试前将这些操作项目作为考试内容公布给学生,让他们全面准备,这些项目涉及组装、测试、维护和维修的主要方面,目的是要学生全面掌握操作内容。考试时,让每个学生随机抽取一个项目,学生先口头陈述本操作项目的原理、方法、步骤和过程等,然后再进行动手操作,操作完成后学生还可以再作补充陈述。教师根据操作与口试结果,以及所选择项目的难度系数,以操作与口试7:3的比例给学生评定本课程考核成绩。具体安排为整个考试总时间为3小时,包括口试和操作考试。口试陈述、答问30分钟,其余时间为操作考试时间,操作完成后学生还可以再作补充陈述。
考试程序为:
(1)学生抽取考试项目。
(2)根据项目名称,口头陈述本项目的原理、方法、步骤和过程,期间老师根据学生陈述情况随时提出问题,学生口头回答。老师做好相应口试记录。
(3)学生进入操作考试,教师和辅导教师全程监控,并做好相应的记录。
(4)操作完毕,有需要再陈述的学生可以提出补充陈述要求,否则离开考场。监考老师合议评定学生考试成绩。
如上面的考题学生基本都能回答正确,这样进入社会工作后,基本可以达到用人单位对中职计算机应用专业学生的要求。那我们的教学目的也就达到了。
附加:
本课程所需要的实验条件:
摘 要:文章以如何培养满足企业要求的软件技术人才为出发点,详细论述广州大学华软软件学院培养软件技术人才的实践教学体系及实践教师队伍建设和实践教学质量评价。
关键词:独立学院;软件技术人才;实践教学体系
软件产业正成为信息产业和国民经济发展新的增长点,然而国内的软件企业一再强调软件人才的不足,原因何在呢?软件人才教育的相对落后是影响人才短缺的一个重要因素,学生在学校学到的知识不能直接应用到企业的软件开发或测试上[1]。软件企业要加大与高校及培训机构的合作,开展“订单式”人才培养,学校在教学过程中,更加注重实践教学。广州大学华软软件学院成立于2002年,是全国300多家独立学院中唯一的一所软件学院,学院在软件技术人才培养方面的探索和实践已取得一定的成效,其中实践教学发挥了重要的作用。本文着重介绍学院软件技术人才实践教学体系的相关内容。
1 软件工程专业简介
软件技术人才的培养主要立足于软件工程专业(专业方向包括软件开发、移动互联网络应用及软件测试技术)和计算机科学与技术专业(笔者所在系的专业方向为企业级数据库应用与开发)。软件工程专业重视基础理论、工程训练、职业发展及外语能力的培养,实践课程注重软件系统分析与设计、软件开发与测试、软件质量控制与项目管理等方面能力的培养,要求本专业学生在掌握计算机软件领域基本理论知识的前提下,通过与IBM、Microsoft、SUN等业内大型企业合作,及时了解业界最新的软件开发与设计和软件项目管理技术,并能熟练使用软件工业界主
作者简介:吴爱华,男,讲师,研究方向为数据库技术、软件开发方法及软件测试技术等。
流的开发工具以及开源软件技术开发有一定质量的软件系统[2]。
1.1 专业方向
软件工程专业包括三个专业方向:软件开发、软件测试及移动互联网软件应用与开发。软件开发方向侧重邮件交换技术、短信平台应用及网络应用编程,要求学生能搭建B/S动态交互网站,熟悉软件开发方法,对软件工程有一定的了解,能胜任应用软件系统的设计、开发、测试、维护等工作。软件测试方向要求学生具备一定的软件开发能力,掌握软件测试理论与技术,侧重于单元测试用例编写,熟练应用软件自动化测试工具,搭建不同的测试环境并在不同环境下进行软件测试,了解测试管理的内容并能编写规范的测试报告。移动互联网应用与软件开发方向侧重移动通信及移动互联网基本理论知识,移动终端系统应用开发、维护及单元测试,移动互联网通信开发技术及移动互联网WAP平台搭建和移动搜索引擎开发[2]。
1.2 软件工程专业课程体系
软件工程专业三个方向的课程包括共同的专业必修课和各自的必修课。共同的必修课主要有计算机科学导论、离散数学、C++程序设计、SQL Server数据库、软件工程概论、数据结构与算法、操作系统、编译原理、Web编程。表1列举出三个专业方向相关的必修课程。
表1 各专业方向专业必修课程一览
2 实践教学体系
软件工程专业的专业课均是理论与实践并重的课程,理论课和实践课各占一半学时,通过实践教学巩固所学理论知识,培养学生解决实际问题的能力。在实践教学过程中,启发学生积极思维,利用所学理论确定实验课题的解决方案,掌握解决实际问题的方法和思路,同时也是培养创新型应用人才的有效手段。
2.1 实验课
软件工程专业的实验课分为基础性实验、综合性实验、设计性实验三种形式。基础性实验是指围绕课程某一章节的教学内容所开展的实验,是一种演示性或验证性实验。综合性实验是指实验内容涉及本课程的综合知识或与本课程相关课程知识的实验,一般以课程设计的形式进行。设计性实验是指给定实验目的、要求和实验条件,学生自己设计实验方案,并加以实现的实验,一般以项目实训(包括毕业设计)的方式进行[3]。专业基础课程以基础性实验为主,各专业方向的专业必修课涵盖基础性实验和综合性实验,毕业项目实训和毕业实习为设计性实验项目。
课程采用大小课相结合的方式,实行课程负责人负责制,课程负责人和课程组其他教师共同承担该课程大小课的教学任务,大课即理论课,小课即实验课,根据修读的学生人数分配大小课的班级,大课教室一般是容纳90至300人不等的多媒体教室,小课教室一般都是配备64台电脑的机房。
2.2 项目实训
项目实训在软件工程专业教学中占有重要的地位,主要包括两种形式:三年级学生暑期的集中式项目实训和大四第一学期的项目实训课程。
项目实训模拟软件生产流程,结合一个模拟的软件项目,让学生体验项目启动、需求获取、架构设计、详细设计与实现、测试、质量管理等完整过程,是对专业学习的一次集中总结和实践,教师通过实训项目管理平台对集中式的项目实训进行有效的管理。集中式项目实训邀请IBM、Microsoft、Parasoft等国际知名软件企业的专家指导,在实训项目中整合三个专业方向,软件开发与软件测试方向组队,移动互联网应用与软件开发与软件测试组队,目的是模拟软件企业的生产模式,使学生在未进入企业之前就对企业的生产方式有所了解,旨在培养学生软件设计、开发及测试的能力以及沟通能力和团队合作精神。
2.3 毕业设计
毕业设计是在专业课程的教学完成之后进行的一个重要环节,着重培养学生综合分析和解决问题的能力,通过综合训练深化、拓宽、运用所学知识,是学生从学校学习到岗位工作的过渡环节,同时也是衡量高等教育质量和办学效益的重要评价内容。教师结合业界新技术、新业务拟题,提供具有创新性的毕业设计课题以提高学生的创新能力,指导过程中启发学生逐步解决问题的能力。
2.4 精英班
学院设有Java精英班和.NET精英班,由软件研究所与软件工程系共同承担,成立专门的教研室负责日常管理和教学工作,通过有效的方式甄选出一批有志于从事软件开发、学习能力较强的学生,精英班加大实践教学力度,重点是项目实训,并与企业有对接项目,学历教育以外还增加了一系列专业课程,使优秀的学生接触到更多的专业知识,获得更多的实践机会,表2列举的是Java精英班的主要专业课程,表3列举的是.NET精英班的相关课程。
表2 Java精英班主要课程
(The Main Courses of Java Elite Class)
表3 .NET精英班主要课程
(The Main Courses of .NET Elite Class)
2.5 软件设计竞赛
我们组织学生参加各级专业竞赛以促进实践教学,扩大学生自主学习的时间和空间,调动学生学习的主观能动性,培养学习兴趣和创造性思维能力。学院提供开放式实验室供参与竞赛的学生使用,吸引学生在此进行实验、实训、技能训练,历年来我校学生在各级竞赛中获得较好的成绩。
1)“高校杯”软件设计大赛由广东省计算机学会主办,是省内在校大学生软件设计专项比赛的最高赛事,比赛每年举办一次,目前已成功举办20届。2006年我校成功承办第16届“高校杯”软件设计大赛,该项赛事首次由独立学院承办。本届大赛全省19所高校的25件作品进入决赛,本院学生开发的“无线远程终端”夺得大赛第一名和“创新奖”双料大奖,另一个参赛作品“Soker搜索引擎”则获得二等奖。
2)“国信蓝点杯”全国软件专业人才设计与开发大赛由教育部、工业和信息化部主办。首届比赛我校获得Java组2个一等奖,5个二等奖,4个三等奖,C语言组获得2个二等奖,4个三等奖,7个优秀奖;2011年第二届我院共有53名选手参赛,其中获得一等奖6名,二等奖10名,三等奖21名,优秀奖8名,同时我院还获得优胜学校奖和优秀组织奖。
3)“微软校园之星大赛”由微软教育培训合作伙伴ATA公司举办,旨在提高学生软件开发的创新能力,选拔优秀人才,是“微软实习生计划”的一部分。2009年软件工程系第一次组织2006级学生参加了第三届“微软之星大赛”,两个学生组队入围决赛,最终获得全国三等奖,2010年组织2007级学生参赛,三个学生组队闯入决赛,最终获得全国一等奖。
4) 广东大学生科技学术节由共青团广东省委员会、广东省教育厅、广东省科技厅、广东省学生联合会联合举办,以“营造学术氛围、提升科技素质、培养创新人才”为主题。我院软件工程系4支代表队分别闯入2011年第五届广东大学生科技学术节之首届“创新杯”粤港澳大学生计算机软件应用大赛总决赛,并最终获得两个二等奖和两个三等奖。
2.6 实训基地建设
学院的软件研究所主要负责学校信息系统的开发和维护,同时也是学生的校内实训基地,每年都会选派大三学生到研究所实习,表现优秀的留校或者推荐就业。学院自成立之初就着手与企业合作建立校外实训基地,目前为止实训基地数目达到30家,其中包括IBM、南天电脑系统有限公司、神州数码、电讯盈科、华南资讯等。
3 实践教师队伍建设
作为教学活动的直接承担及实施者,教师自身的科研实践能力直接影响实践教学的质量,现阶段独立学院教师的科研实践正是其薄弱环节,究其原因有以下几点:1)独立学院乃民办学校,缺乏吸引高端人才之优势;2)教师的来源一是退休的公办学校的教师(教授或副教授),未必有足够的精力再投入科研实践,二是刚刚毕业的大学生(本科生和硕士生),三是来自企
业,有一定的业务和工程经验,但缺乏科研能力。
加强实践课程教师队伍建设,提高教师的科研实践能力,首先要合理使用资深教师的科研资源,指导青年教师积极开展科研实践,申报各级课题;其次青年教师要紧跟理论和应用领域前沿,结合自己的专业方向努力钻研,再则学校为教师提供宽松的科研环境,并予以积极支持,可考虑与科研院所建立合作关系,选拔青年教师去培训或进修。教师在进行科研实践时,选拔学有余力的学生参与,对学生的实践和创新能力的培养是大有裨益的。
4 实践教学质量评价
为提高实践课程的教学质量,应该制定合理的质量评价指标。结合教育部的评估要求与独立学院的具体情况,主要从以下几个方面进行评价:1)实践课程的内容是否符合专业特色;2)实践课题能否培养学生的动手及创新能力;3)实践课程的考核方式是否合理有效;4)教学督导的评价及学生的反馈意见。
5 结语
以上从6个方面介绍了我院软件技术人才的实践教学体系,实践教师队伍建设。实践证明,遵循此教学体系培养出来的学生越来越多地受到企业的青睐。
参考文献:
[1] 高素梅.当前我国软件产业发展状况及趋势[N].中国电子报,2008-6-2(10).
[2] 广州大学华软软件学院软件工程专业介绍[EB/OL]. [2011-05-01]. /major01.aspx
[3] 广州大学华软软件学院. 广州大学华软软件学院实践性课程建设实施办法[S]. 广大华软[2011]10号文.
Practical Teaching System for Independent Colleges’ Talent of Software Technology
WU Aihua
(Department of Software Engineering, South China Institute, Software Engineering Guangzhou University,Guangzhou 510990, China)
软件工程是一门建立在计算机科学和工程学基础之上,同时涉及数学、管理学、经济学和系统工程等学科理论与方法的学科及专业。软件工程教育兼具科学教育属性与工程教育属性,前者培养的是软件工程基础研究人才,后者培养的是软件工程技术、应用、管理和服务人才。我校作为一所普通本科院校,结合区域经济发展实际,将软件工程专业的培养目标定位为培养应用型、工程型软件人才。即能够综合应用计算机科学、数学及管理科学等学科知识,以工程化的原则与方法为指导,胜任现代软件工程环境下高质量软件的开发、测试和维护等工作的软件工程技术、应用、管理和服务人才。该培养目标可进一步解读为以下三点:扎实的专业基础、良好的工程学意识、较强的动手实践能力。
2CDIO模式下实践教学体系的构建
软件工程是一门实践性很强的专业,应用型、工程型软件人才的培养定位更加强调学生动手实践能力的培养和工程方法学的训练,因此,实践教学的体系建设和教学效果对学生的培养质量起着至关重要的作用。借鉴和吸收CDIO工程教育理念和标准,我们从教学内容和教学方法两方面对软件工程专业实践教学体系进行了重新构建和实践。课程实验、课程设计、综合实训、毕业设计四个层次循序渐进、由浅入深、环环相扣;在教学方法的构建上,我们从工程教育的角度出发,形成了“案例牵引、项目驱动、团队合作、引导互动”的教学模式。
2.1教学内容的构建
在教学内容的构建上,我们按照“以CDIO培养大纲为指南、以项目设计为导向、以工程能力培养为目标”的原则,将软件工程专业的实践教学体系分为以下四层次。2.1.1课程实验课程实验是单门专业课程教学中的实践环节,也是整个实践教学体系的基础,对学生基础专业技能的培养具有重要作用。为了加强实践教学,我们在绝大部分专业课和专业基础课中都设置了课程实验,根据教学目标的不同,课程实验设计为验证性、设计性和综合性等不同的层次。对于实践性很强的专业课程,如程序设计基础、面向对象程序设计等,采用完全实验教学的方式,通过一个完整的项目将课程知识结构串联起来,并通过“分而治之”的形式来学习各个知识点,将教师讲解与演示、学生实地操作有机融合起来,最后完成整个项目,以培养学生的动手实践能力和专业兴趣;对于理论性较强的专业课程,如数据结构、操作系统等,采用理论讲解与上机实践并举的方式,加强学生对专业基础理论知识的理解与应用。2.1.2课程设计课程设计是实践教学体系的第二层次,是在课程实验的基础上,选择一些实践性强且具有代表性的课程作为单独课程开设综合性课程设计。例如,Java程序设计课程设计、软件工程课程设计等。与课程实验相比,课程设计具有综合性和实用性的特点,学生在教师的指导下综合运用相关课程的知识和技术完成一个完整的设计或实现。通过课程设计的训练,培养学生运用专业知识分析问题和解决问题的能力,使学生的专业技能得到进一步的提升和拓展。2.1.3综合实训综合实训是以课程设计为基础,综合运用多门相关课程知识完成一个工程项目的实战训练。综合实训以项目为载体构建知识结构,将学科知识、专业技能与工程实践有效结合,体现软件工程领域中的工程学和方法学的实施,实施技术与管理能力训练和职业综合素质综合的培养[4]。根据方向不同,我们在软件工程专业开设了两门综合实训课程:(1)软件开发综合实训。以软件生命周期为主线,综合运用程序设计、数据库应用、软件工程、软件项目管理等学科知识,严格按照软件开发的流程与规范,完成一个软件项目的开发,最后提交软件产品和相关技术文档。(2)软件测试综合实训。要求学生以软件开发综合实训所完成的软件产品为被测对象,综合运行软件测试与质量保证、软件测试流程与方法、测试框架与自动化测试等学科知识,使用软件测试的方法与技术,设计测试用例和测试脚本,完成被测软件的功能测试与性能测试,生成测试报告,并对测试结果进行分析。2.1.4毕业设计毕业设计是实现人才培养目标的重要手段,是实践教学体系中最后一个综合性、创造性的实践环节;是对学生基础理论、专业知识与实践成果的全面总结,是学生综合素质与工程实践能力的全面检验[5]。为了提高毕业设计的质量,我们从以下三方面层层把关。(1)在课题选题上,强调选题的可行性和实用性,忌空忌大,选题最好能与指导教师的科研方向或学生的实习工作相关联;(2)在过程控制上,实行师生定期交流与汇报制度,确保毕业设计按计划保质保量完成;(3)在毕业设计报告及相关材料的撰写上,从规范性和科学性两方面严格要求,确保质量。
2.2教学方法的构建
2.2.1案例牵引案例教学是实践教学中的常用手段,具有直观性高、互动性强的特点。按照CDIO大纲能力培养的层次要求,结合各实践课程的教学目标,我们在实践教学中精心规划和设置了不同层次、不同复杂度的教学案例,以案例实现过程为驱动来安排教学内容和方法。在教学过程中,以一个具体的案例为线索,把教学内容巧妙地融合在案例之中,学生以完成案例任务为目标,在老师的指引下对目标问题进行分析与分解,并通过动手实践解决问题,真正做到“做中学”和“学中做”。在完成任务的过程中,不仅使学生的动手实践能力得以提高,也培养了学生的创新意识、创新能力以及分析问题、解决问题的能力。2.2.2项目驱动工程实践能力是专业技能的进一步升华和提高,是从整体上对工程项目的一种实做能力,是工程类毕业生必备的核心素质。根据CDIO“做中学”和“基于项目的教育和学习”的思想,我们在实践教学中广泛采用项目驱动的教学模式。强调以一个产品或系统从构思、设计、实现到运作的完整的构建过程来培养学生的工程实践能力。以软件开发综合实训课程为例,在课程中引入“项目驱动”的教学理念,以软件生命周期为主线,以项目为载体、任务为驱动开展实践教学。通过一个软件产品从项目启动到需求分析、设计、实现、测试、运行维护的整个生产过程的实战,培养学生的工程能力和综合素质。2.2.3分组教学团队能力是CDIO大纲要求工程毕业生必备的一种能力。在实际教学过程中,我们模拟企业的真实环境,将所有学生分为若干项目小组,每组由一名组长和若干名组员构成。根据任务分工不同,每名学生都被赋予一定的角色,组员在组长的指挥协调下通力合作,共同完成实验项目。实践表明,分组教学模式能较好地激发学生的学习热情,组员之间分工协作、互学互助,学生的沟通能力、协作精神和团队意识大为提升。2.2.4革新考核方式考核是对学生学习成果的认定和评价,良好的考核机制能对学生的学习过程和学习动机产生正确的指引作用,促进教学质量的提高。在实践课程的考核上,以能力培养为导向,采取多元的考核方式。引导学生在平时项目实训过程中加强专业技能的训练、工程能力的培养以及综合素质的提高。(1)对基础性的课程实验,重点考核学生专业知识与技能的掌握情况,采取平时实验成绩与期末上机考试成绩相结合的方式。(2)对课程设计和综合实训类课程,重点考核学生的工程实践能力和团队协作能力。采取以作品演示、项目答辩为主的考核方式,同时规范化的文档资料也是重要的考评指标。(3)对于毕业设计,重点考核学生的创新能力。科研能力以及分析解决问题的能力,考核方式同综合实训。总之,以能力培养为导向,注重能力考评。2.2.5校企合作校企合作是培养学生的综合素质和实践能力的重要途径。为了增强人才培养的针对性和毕业生与工作岗位的无缝对接,我们同中创、中远等知名软件公司开展校企合作联合办学。充分利用学校和社会两种教育环境和教育资源,联合构建工程型实践教学队伍与教学平台。一方面,学校聘请企业一线的工程师作为兼职教师来校授课,不仅充实了实践教学队伍,更带来了企业的最新技术和行业资讯;另一方面,选派优秀教师到企业学习锻炼,参与企业项目,提升师资队伍的水平。此外,通过在企业建立校外实训、实习基地,使学生尽早感受企业文化和接触到真实的企业项目,也为学生就业积累了丰富的工程实践经验。
3结束语