时间:2022-07-19 12:55:39
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇软件测试实训总结,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
关键词 软件测试 服务外包 人才培养模式
中图分类号:G710 文献标识码:A
1 软件测试外包人才需求状况
当前,软件产业已经成为国际竞争的焦点和各国竞相发展的战略性先导产业。早在2007年,教育部等部门出台的《关于进一步加强国家重点领域紧缺人才培养工作的意见》,将软件等确定为12个国家重点领域紧缺人才培养。而在软件行业中,为了提高软件质量,降低软件开发成本,分散软件外包风险,软件测试就成为重要推动力。但软件测试业却面临着自身的严峻考验——人才紧缺。据前程无忧招聘网统计,国内120多万软件从业者中,真正能担当测试职位的不足5万,人才缺口已超20万并向30万大军挺进,并随需求逐年增长。在国外,一般软件测试人员与软件开发人员的岗位设置比例是1:1。软件测试人才需求量的加大,除了受产业先行的波及外,长期以来业界对软件测试的不重视,导致高校未有效开展软件测试人才的培养,出现教育滞后。教育滞后体现在多方面,包括专业设置、人才培养模式、人才培养方案的滞后与不协调等。
2 软件测试职业发展及能力需求分析
2.1 软件测试外包的特点
随着软件产业的发展,软件产品的质量控制与质量管理正逐渐成为软件企业生存与发展的核心。几乎每个大中型IT企业的软件产品在前都需要大量的质量控制、测试和文档工作,而这些工作必须依靠拥有娴熟技术的软件测试工程师这样专业的人士来完成。单独设立测试部门,对测试人才有强烈需求的企业大多是规模较大的一些IT企业,外资企业居多。而一些企业为了降低软件开发成本,专注于核心业务的发展,或因测试力量匮乏,往往会把软件测试工作外包给专业的测试机构来完成。软件测试外包的特点,一是涉及行业多,知识面广。二是测试团队比较大。三是接触到大项目的机会比较多,软件测试的类型包括行业应用软件的测试、本地化和国际化测试、嵌入式软件测试等。在行业软件中,以手机、家电嵌入式软件为代表的通信行业软件和汽车、电子行业的中间件成为具有潜力的软件外包领域。所以软件测试外包对测试人员的素质提出了更高的要求。
2.2 软件测试职业发展及能力需求分析
根据软件测试职业岗位与工作内容的分析,综合学院、企业、培训机构专家访谈结果,网络资料查询调研结果,不同行业、不同企业同一岗位,其岗位工作任务不同,职业能力需求的侧重点也不同。同一职业岗位在不同的行业领域对知识的要求也不同。按照软件测试为岗位主线,通过对不同行业企业所需人才岗位工作职责、能力知识需求进行系统的分析与研究,总结提炼出软件测试外包专业毕业生踏入工作岗位从初级测试工程师到成长为有丰富工作经验的测试项目经理所具有的能力与素质要求。
初级测试工程师的工作职责是按照软件测试方案和流程对产品进行功能测验;检查产品是否有缺陷;报告和跟踪缺陷及进行验证。其能力素质要求是熟悉常用的软件测试方法、软件工程知识;熟悉常用的软件开发环境,编程工具;有良好的英语阅读能力,具有良好的沟通能力。
中/高级测试工程师的工作职责是设计测试用例;搭建测试环境;根据测试设计对产品进行性能、功能等全面测试;测试工具等的开发、撰写测试报告。其能力素质要求是掌握软件测试原理流程、方法与规范;熟悉测试工具;熟练地编写测试脚本,能够进行缺陷分析及预防。具有较强的文档编写能力;较强的学习能力;高度的责任心,较强的沟通能力。
测试组长及测试主管:设计测试计划及进行测试项目的管理;项目及测试流程和工具的选择及优化;测试项目质量和进度控制。其能力素质要求是有一定的软件测试经验;能够独立完成各类测试任务;具有较好的解决问题的能力;有一定的分工协作能力。
软件测试项目经理:构建测试团队及进行测试团队的管理;制定项目测试方案和测试计划;协调测试资源,并对各种资源进行计划、分工和管理;测试项目的质量及控制。其能力素质要求精通软件测试理论、软件测试管理和自动化测试技术;熟悉软件测试开发和测试平台、自动化测试与性能测试工具;较强的测试组织管理能力、沟通协调能力;有流利的英语读写表达能力;善于团队合作,执行能力强。
3 构建并实施一站式人才培养模式
改革现有的软件外包测试人才培养落后状况,探索并实践新型人才培养模式成为软件测试外包人才培养的重中之重。烟台职业学院对此作了多方面的探索与实践,构建并实施一站式人才培养模式,为软件测试外包人才规模化培养积累经验。
3.1 软件测试外包专业人才培养目标
根据企业的人才需求特点,学院、培训机构、企业三方共同确定的高职软件测试外包专业的培养目标为:培养掌握计算机基础、软件测试专业知识、熟悉软件测试的基本方法、流程和规范,了解服务外包行业知识、发包方文化、商务礼仪,能利用测试工具对软件产品进行功能和性能测试,设计和维护测试系统,对测试方案可能出现的问题进行分析与评估,具有软件编程能力及软件工程应用能力,可从事软件外包及服务外包企业软件测试、运行、维护及质量管理等岗位工作,具有较强的外语应用能力,良好的沟通能力、协调能力和语言表达能力的技能型人才。
其岗位的主要业务范围是: 依据需求文档及设计文档,编写测试用例;依据测试用例执行测试,完成产品的手工测试、集成测试与系统测试,反馈跟踪产品BUG及用例缺陷;根据测试计划,搭建测试环境; 测试工具/系统的研究和应用。软件测试专业可考取的证书:计算机等级考试四级软件测试工程师、ISTQB国际软件测试工程师(初级)。
3.2 一站式人才培养模式内容
经过多年的实践与总结,构建了以政府为引导,实行与培训机构联姻、与企业合作的一站式人才培养模式,完成毕业即就业的角色转换。
政府引导:以我院牵头成立的烟台市服务外包职教集团为平台,与当地政府、服务外包园区建立框架性战略合作关系,根据政府出台的优惠政策,提供的各种信息资源,通过学院与企业及产业园区的互动,形成校企双方人力资源的可持续性需求供给与输出。由政府协调当地服务外包企业,与学院建立紧密型的人才培养合作联盟,联盟单位派员参与专业建设指导、人才培养,并作为学院学生的实习实训基地。
一站式培养的关键是学院通过与知名培训机构、与企业实行三方合作,通过协议等约定方式,按企业所需的人才数量与规格,采用“联合招生、委托培养、定向就业”的形式,实现人才培养的直接输入与对口输出。“联合招生”指三方共同协商确定学生来源、招生数量、招生方案;“委托培养”指招收的学员全部在学校学习、在培训机构实训,培养目标受企业委托进行;“定向就业”指学生培养结束经过综合考核评定,并参加由工信部全国注册服务外包专业认证中心设置的面向服务外包产业的专业认证项目,获得工信部相关技术等级认证,根据认证等级,由合作企业正式录用为公司员工,安排到合适的岗位就业,不能直接就业的可推荐安置到合作联盟单位或由合作企业、培训机构推荐到其他单位就业。
3.3 课程建设及实施路径
课程体系的构建和课程建设是人才培养中的关键因素。服务外包软件测试专业课程集服务外包知识课程群、信息技术专业课程群、软件测试专业课程群、管理课程、专业外语课程于一体,着力培养复合型软件测试外包人才。按照课程之间的逻辑顺序和人才职业成长规律安排课程。实施中采用分段式安排,教学团队专兼教师合作授课。部分课程安排成为选修课,学生可以根据自己的就业意向和兴趣选择学习。图1为主要课程框架体系图及实施路径。
技能储备阶段构建完整的工程知识体系。利用案例和项目强化学生对于各种知识点的理解,并通过实践训练达到一定熟练程度与规范性,完成基本知识的积累及基本技能的训练。校企各有侧重地承担教学任务,通用专业基础课程及其相关实践课程由校内专任教师承担。专业核心课程及相关实训由企业人员承担。时间安排为第一到第四个学期。
技能提升阶段主要是针对外包项目的仿真实训,建立学生的项目工程思想,根据项目分工完成工作任务,使学生充分演练项目中的多种职业角色,具备企业要求的基本职业素质。该阶段的教学任务主要由企业人员在校内实训基地完成,专任教师辅助教学。时间安排为第五学期的前半学期,同时开展软件测试等级认证培训。
岗位实训阶段,由仿真项目实训逐步向真实产业外包项目实训转变。此阶段根据学生的水平,将学生编入各项目组,参与到真实项目。通过完成外包项目,感知企业文化,熟悉工作环境,接受企业的管理,达到实战训练的岗位能力要求。这一阶段的培养任务主要由企业人员承担,专任教师协助辅导,企业工程师担任项目经理。该阶段的实训任务主要在培训机构完成,时间安排为第五学期下半学期。本阶段完成软件测试技术等级认证。
顶岗实习阶段是根据学生的职业特长及发展需求,安排学生到合作企业实习,根据学生的水平及实习企业的用人计划,成绩优秀者可直接与企业签约就业,学生的实践情况由专人跟踪帮助。对不合适的岗位,重新安排到其他企业实习就业。根据企业岗位标准的不同,时间安排为第六学期。
3.4 实行任务驱动、工学一体教学模式
树立学习就是工作,工作就是学习的理念,采用任务驱动、工学一体教学模式开展教学活动。精选典型项目或案例作为教学内容,每一项目安排1~5个不等的任务,每一任务有针对性地包括一个或几个必须掌握的知识点,学生的学习过程就是完成任务的过程,按照自主学习,仿真应用、工程应用的流程,完成学习任务。在自主学习阶段,先给学生布置任务,然后指导学生展开自主学习,根据班级人数情况,灵活选择以学生2~4人为一组的形式,进行咨询、讨论、制定工作计划、提出任务实施方案,再指导学生进行仿真设计和测试,最后在实训基地中指导学生进行工学结合实训。每一任务完成情况选2~3组有代表性的作品进行展示与答辩,然后由其他组学生进行评价,提出意见与建议。不同组完成同样的任务可能采用的方法不同。每一个项目完成后,提交项目报告,根据日常表现、实训情况、创新能力、报告的完整性与准确性,给出评价结果。
4 结束语
软件测试是一个新兴职业,其具有的就业竞争小、薪资水平高、职业发展多元化的特点,吸引越来越多的人从事软件测试工作,这为软件测试人才的培养提供了很好的发展机遇。学院与企业、培训机构合作,共同培养软件测试人才可以实现毕业即就业的一站式人才培养。这种模式,把学院的教育资源、生源优势,培训机构的教学内容,企业的实训优势及就业优势结合在一起,实现强强联合、三方共赢。但在合作中,合作的各方要加强沟通,通过一定的机制规范和约束合作行为,并通过一定的保障措施确保合作持续长久。
基金项目:中国高等职业技术教育研究会“十二五”规划项目 《基于校企合作服务外包人才培养模式的探索和实践》编号:GZYGH2011014 主持人:姜永华
参考文献
【关键词】软件测试;应用型人才;培养模式;课程群
据前程无忧网数据显示,去年国内软件测试人才缺口高达20万,今年有望突破30万人。目前国内软件测试和开发人员比例大约在1:4-1:5,而国外测试和开发人员比例为1:1,微软测试人员和开发人员的比例已达到2:1。软件测试人才正在成为我国软件行业目前最紧缺的人才之一。随着我国软件产业的迅速发展,软件测试人才的地位正在逐年提升,这种供需矛盾将变得越发突出。
目前,国内软件测试人才的培训[1]主要有三种机构:企业、高等院校和IT培训机构。企业培养的人才大多是通过参与项目自己摸索的软件开发人员,由于缺乏对软件测试全面的认识,在测试思想、技能、思维方式、沟通能力等方面都需要进一步提高。高校培养出来的人才具备一定理论知识,但动手能力较差,进入企业后需要再培养,不能立即到岗。培训机构则能弥补前两种方式的不足,但价格昂贵。
一、软件测试课程教学现状
(一)学生学习枯燥,兴趣低
软件测试是计算机专业课,课程内容理论性和操作性都很强,并且需要学习了解的自动化测试工具种类繁多。目前各个高校在开设这门课程时,大多数还停留在理论教学阶段。教师准备好课件,学生拿着课本,首先给出书上官方的定义和自己的解释,然后结合一些课本上或自己参与的项目,给出实例证明这些理论。学生容易感到内容空洞、枯燥乏味,学习时就缺少主动性,难对这门课程产生兴趣。
(二)软件测试实验开展不充分,学生实践能力弱
软件测试知识点众多,理论内容的授课量占绝大部分[2],实验课时数仅占到四分之一左右。由于实验时间、实践环境有限,日常实验教学都是验证性的小实验。由于没有一个实际的面向企业的项目支撑,很多测试过程难以进行,比如集成测试、性能测试、验收测试等等。通过对从事软件测试方向工作的毕业生就业情况调查发现,软件企业认为软件测试课程理论丰富,但还存在学生实践能力不足、测试工程师职业素质有待进一步提高等诸多问题。
(三)教师缺乏实际软件测试经验
软件测试行业发展迅速,软件测试工具种类多,更新快。软件测试这门课程实践性较强,高校计算机教师大多数软件项目开发测试经验不足[3],对软件公司软件项目研发测试过程没有切身的体会。教师在讲授这门课程时没有实际的软件项目案例可以操作,实践教学显得吃力,很难给学生软件测试方面的经验知识。
面对软件测试人才的社会需求紧迫性和软件测试教学现状,人才培养单位应该扩大软件测试人才培养规模,总结软件测试知识点,改革教学方法,培养学生兴趣,提高教学质量。
二、软件测试工程师职业能力需求
为更好地培养学生的软件测试工程师职业素质[4][5] [6],提高学生的就业率和用人单位的满意度,充分分析软件测试工程师的职业能力要求。
(一)素质要求[4][5]
1、具有团队合作精神。
2、有较强的责任感及进取精神。
3、细心、耐心,具备逆向思维。
4、技术方面的基本素质,熟悉系统的应用,熟悉办公软件的应用,熟悉基本的测试流程;熟悉测试管理工具的应用。
5、具有测试人员的学习能力、领悟能力。
6、对行业具有信心,对测试的信心,相信软件一直存在BUG。
7、良好的英语阅读和写作。
8、良好的语言及文字表达。
9、较好的沟通技巧。
10、怀疑精神具有测试人员必须保持的怀疑态度。
11、捕获用户观点的能力,强烈的质量追求,对细节的关注。
(二)专业能力要求[6]
1、对Windows、Linux、Unix等大型主流操作系统的熟练掌握能力。
2、具备快速进行应用系统部署和测试环境搭建的能力。
3、测试人员必须掌握目前主流的程序设计语言,比如C、C++、JAVA、C#、VB等多种平台下的一种或者多种语言,具备进行简单应用开发的能力。
4、熟练掌握SQL Server、Oracle、DB2等一种或多种数据库系统的使用,熟悉使用SQL语言。
5、对信息安全知识的基本掌握。
6、必须深刻理解和熟练掌握软件测试基础理论与技术。
7、精通各种测试技术,能够手工或利用相关工具进行单元测试。
8、能够进行测试用例设计、测试执行、编写缺陷报告。
9、熟悉软件测试流程和测试过程管理,能够编写测试计划,具备组织测试工作的能力。
10、掌握测试管理相关知识和软件。
11、掌握和熟练使用当前主流的功能、性能自动化测试工具以及测试管理工具,具备编写测试脚本、进行功能和性能测试自动化测试的能力。
(三)知识结构要求
1、软件知识:数据结构、操作系统、面向对象程序设计、数据库原理、C程序设计语言、WEB技术、数据仓库与数据挖掘、软件工程。
2、硬件知识:数字逻辑、微机原理与接口、计算机组成原理、计算机系统结构。
3、网络知识:计算机网络技术、计算机网络安全。
4、人文、社会学基础:原理、道德与法律、中华民族历史、大学语文、大学英语。
5、数学基础:高等数学、线性代数、概率统计。
三、软件测试课程设计理念和思路
根据软件测试工程的职业能力要求,对软件测试课程我们重新把握课程的设计理念和思路。
(一)课程设计理念
1、与企业共建基于工作过程的课程体系
根据专业办学的定位及特色,《软件测试》课程的设计理念是以软件测试员/测试工程师岗位需求为依据,以培养学生使用自动化测试技术进行软件测试的职业能力为主要目标,以测试工作的典型工作任务为导向,坚持以能力为本位的设计原则,制定突出企业应用能力和素养的课程标准,构建基于工作过程的系统化课程体系。课程组通过开展课程标准研讨会和技术培训会等形式,听取企业专家的建议,修订软件测试课程的内容,保证课程内容与企业用人需求同步;在课程功能上注重学生应用能力的培养,构建以掌握软件测试应用能力为特征的理实一体化的教学内容,做到强化技能、提升业务素质,提高学生的就业竞争力和实际工作能力。
2、和相关课程构成课程群,实现企业应用项目开发过程的案例教学环境
立足于培养满足企业应用的软件项目开发需要的应用型人才,本课程以真实的软件实例项目测试任务和过程为依据,以现代教学理念为指导,精心进行教学设计。
在构建课程体系[7]时,由专业建设及教学指导委员会,充分调查分析不断变化的市场,以企业应用软件项目开发为切入点,构建基于软件项目开发过程平台。将《Java面向对象程序设计》、《数据库原理及应用》、《软件工程》、《软件测试》、《软件项目综合实训》这5门课程,按照专业培养目标,掌握计算机软件技术所必需的理论知识和专业技能,具有较强实践能力,能在软件项目研发测试一线从事软件项目需求分析、设计、编程、测试和软件产品等工作的高素质应用型专业人才的要求,对应“软件工程师”、“软件测试师”“数据库工程师”等行业职业特征,以项目为载体,形成一个有机整体,整合成“基于企业应用软件项目开发过程”,组建了课程群。其中《Java面向对象程序设计》、《数据库原理及应用》是专业核心基础课程,《软件工程》、《软件测试》、《软件项目综合实训》是专业核心必修课。通过“软件项目的需求分析、设计、编程和测试技术”这个链将这五门课程紧紧联系在一起,并能带动软件技术、网络工程、计算机信息管理、计算机应用技术等几个专业的协调发展。
(二)设计思路
1、以软件测试工程师对软件测试的能力要求为主线,设计课程体系,强化“工程属性”,突出“项目色彩”。
在课程体系设计中,课程组以软件测试工程师对软件测试的能力要求为主线,整合“JAVA面向对象程序设计”、“数据库原理及应用”、“软件工程”并融合到以多种实际企业项目作为案例的“软件项目综合实训”实践课程中,经过优化,强化课程的“工程属性”和“企业项目开发色彩”,将原来在传统课堂教学中仅仅通过简单实验无法实现的“集成测试”、“性能测试”、“系统测试”、“验收测试”等环节在实际工程项目实训中得到实现,并努力培养学生岗位职业能力。在课程教学中,坚持以实际项目案例中的工作任务为目标,融理论教学与实践教学为一体,以案例教学为导向,结合学生考取软件测试工程师资格证书的实际需要,加强学生职业能力和综合素质的培养,提高学生就业竞争力。
2、以企业工程能力培养为重点,实行分阶段培养模式
根据企业工程能力的形成过程,课程组将教学内容划分为基础理论阶段、技术应用阶段、职业发展阶段三个阶段。其中,基础理论阶段包括测试基础理论模块,主要介绍软件测试的基本理论与技术,测试用例设计和软件测试流程,侧重培养学生的测试思维,了解并掌握软件产品质量保证的基本思想和基本测试流程,以及软件测试的方法、技术,使学生能够设计出测试案例并通过手动测试实现测试案例,为全面掌握软件测试技术,后续实施测试和测试项目管理打下坚实的基础。技术应用阶段包括测试技术应用模块,主要介绍主流的自动化测试工具,包括IBM系列测试工具、HP QTP、HP LoadRunner,企业级项目的测试实施,培养学生将测试知识和技术应用于自动化测试实施的能力。职业发展阶段包括测试项目管理和职业素质教育两个模块,主要介绍软件测试项目管理的相关技术和方法、运用工程项目方式管理软件测试过程、测试企业工作模式和软件测试人员必备素质,培养学生的项目管理能力、团队协作能力和求职应聘能力。
适当加入游戏测试、手机测试、笔记本测试等学生感兴趣的内容。我们了解到学生对游戏测试这部分内容很感兴趣,那些平时听课不太认真的学生在这个问题上都举手要说上几句,跃跃欲试,也都能说出一二。所以,课程组在软件测试这门课程中经常讨论一些游戏测试这部分内容,以引起学生的学习兴趣。
四、改革教学模式和教学方法
(一)教学模式
本着“教师为主导,学生为主体”的思想,采用双证培养、分阶段培养和教学做评一体化教学模式[8]。
1、双证培养教学模式
实行“双证培养”教学模式,将学历教育与技能学习无缝对接,学生毕业后不仅能获得国家承认大学学历证书,同时还将获得国家劳动部高级职业技能认证证书。根据学生的能力特点,推荐学生考取软件测试助理工程师、软件测试工程师、软件质量管理工程师、注册软件质量保证师(国际认证)等资格证书。双证教育使学生专业能力更强、职业素养更高、综合素质更好、更符合企业用人标准。
2、教学做评一体化教学模式
将教学场所直接设在实训实验室,师生双方边教边学边做,理论和实践交替进行,把课堂教学转向工作情境,课堂由教师为主转向以学生为中心,突出学生动手能力和专业技能的培养,充分调动和激发学生学习兴趣。学生真正变成了学习的主人,而老师只是一个引导者或答疑解惑者,可以培养学生的终生学习能力,对加强学生的计算机动手操作能力和解决实际问题的能力也有很大好处。
最后教师跟大家一起对实验结果进行讲评,并对表现优秀的学生给予鼓励,同学们情绪高涨,学习积极性高。
(二)教学方法
根据学生的实际情况,综合采用多种教学方法[9][10]。
1、项目导向教学法
以从企业精选的项目为载体,在授课过程中对项目进行分解,根据学生的个性和他们的意愿分配不同的角色,并引导学生练习操作,体验项目流程,从而形成规范的开发意识和良好的IT职业素质。学生在校内所学习到的软件开发中的各类案例,在实际工作中能够及早地进行规划。
本课程以物流信息网这个项目为主线,把整个课程的教学演变成一系列的教学情境。按照实际工作中项目开发流程的顺序,依次展开,将“显性”的知识灌输,变为“隐性”的能力培养。通过具体项目的实施,引导学生在完成项目的过程中,掌握知识,培养能力。
2、任务驱动教学法
在课堂教学活动中,如果采用传统教学方法,很难激发学生学习兴趣。应该采用任务驱动教学方法,把一个项目分解为若干个大任务,每一个大任务,又分解为若干个小任务,将任务资料发给学生。学生在教师的引导下,课下先要进行消化,然后查阅各种必要的资料,理解知识并思考提出解决问题的方法。课上教师答复学生的问题,并引导学生更深层次的思考。通过这种方法充分调动学生的学习积极性,提高学习兴趣,使学生既学会理论知识又学会用理论知识解决实际工程中的问题。
3、启发式教学法
教师根据课程教学目的、内容、学生的知识水平和认知规律,采用启发诱导方法传授知识。该方法能够充分调动学生学习的积极性、主动性,促使学生独立思考、判断、归纳解答。能较好的培养学生学习能力,达到触类旁通的教学效果。
4、小组教学法
将班内学生分成若干个测试小组,每小组成员不超过7人,每组分配不同的软件项目任务。小组成员模拟与体验软件测试全过程工作职位和角色,使学生全过程适应工作职位的要求。
各项目小组在测试项目过程中,针对不同的开发阶段,撰写各开发阶段相应的文档,并制定相应的测试计划,设计典型测试用例,使用不同的软件测试技术和测试工具,完成不同的测试目标,并进行回归测试,以实现软件测试各单项专业知识与技能整合运用的目标。在整个测试过程可以体现“学以致用”的思想,实现理论与实践相结合。
通过演练项目开发测试,不仅让同学们切身体会到软件开发的整个过程,还让同学们对软件开发中各个角色有充分的了解,同时也更深刻的体会到团队合作的重要性。
五、教师队伍建设
加强双师队伍[11]建设,坚持“引进来,走出去”原则,积极引进具有企业开发经验的高素质人才进行课程教学和实验指导,同时注重本课题组青年教师队伍的培养。采用分批次选派青年教师参加山东大学齐鲁软件学院暑期实训和定期组织青年教师去软件公司实习等方式,将企业的软件测试经验直接带到教学中,提高教师的教学水平。
我们定期引进一些软件公司的软件测试人员或者聘请这方面的专业人士为教师、学生做定期讲座,以弥补我们在教学实践方面的缺陷。
六、实验实训条件建设
为培养应用型人才,本课程注重从不同侧面提高学生的实践能力。一方面,强化课内实验教学,在校内建有多个实训实验室,另一方面,与校外多家企业建立合作关系,为学生提供实训实习平台,开展产学研合作,构建校企合作培养人才的新模式。
本课程组注重密切与行业和企业的联系,与多家软件公司进行长期合作,建立了校外实习实训基地[12],为学生提供了生产性实训和顶岗实习的场所,在真实的职业环境中完成真实软件产品的开发,体验企业文化,培养职业态度和习惯。学生毕业后可成为这些公司的正式员工,真正实现了学校、企业、学生三方受益。
七、改革考核方式
大胆改革课程考核方式[13],采用30%平时成绩+30%实验成绩+10%项目考核成绩+30%期末考试成绩方式。平时成绩主要考核学生的课堂讨论情况、课后作业完成情况及课后自学情况。实验成绩根据学生在实验中的测试用例设计和操作情况,以及测试小组的分工合作情况给以评分。项目考核主要采用项目答辩的形式考核学生对基础知识的理解和掌握情况,由教师、行业专家、学生代表组成专家组给予评分。这种考核方式更注重的是对学生学习过程和实践操作水平的考核,避免学生为考试而学习,死记硬背现象。
八、小结
通过对基于工作过程的软件测试应用型人才培养模式的探索研究,学院已取得了实质性进展,建立了软件测试课程教学团队和软件测试实验实训基地。学生的软件测试综合应用能力有明显的提升,得到用人单位的好评,提高了学生的就业率。
参考文献:
[1]龚宇辉.软件测试课程教学改革研究[J].教育与职业,2010(24):130-131.
[2]温艳冬,石冬凌.软件测试课程三级项目教学实践[J].计算机教育,2010(22):77-79.
[3]胡宏银.软件测试课程教学方法探讨与实践[J].计算机教育,2007(03):11-13.
[4]http:///link?url=5xO-IodKMsEhsyUjQhIeqybDGR-8AypYffsnAnZdMWpLRpgEhLehfzGEROxq9fIC.
[5]孙金华.软件测试人才培养与课程构建的探索[J].计算机时代,2009(6):68-71.
[6]钟素芬,叶明芷.软件测试应用性人才培养模式的探索与实践[J].北京联合大学学报(自然科学版),2007(03) :89-92.
[7]田小霞.软件测试人才培养的探索[J].福建电脑,2013(02):181-182.
[8]刘育熙,耿雪春.面向应用的软件测试人才综合能力培养模式研究[J].教育与职业,2009(11):111-112.
[9]范洪辉,朱洪锦,朱广萍.“软件测试技术与软件质量”课程教学改革探索[J].江苏技术师范学院学报,2012(12):151-153.
[10]周改云,马丽.行动导向教学在软件测试技术课程中的应用[J].电子测试,2013(04):192-194.
[11]兰景英.构建应用型软件测试人才培养实践教学体系[J].黑龙江教育学院学报,2011,(05):78-80.
[12]兰景英.应用型软件测试人才培养模式探索与实践[J].潍坊教育学院学报, 2011,(04):78-80.
[13]叶振,杜斌.开放式软件测试教学实践探索[J].现代企业教育,2011(01):140-141.
基金项目:
山东协和学院教改项目(2012xh01)。
作者简介:
李兆翠(1980.1-),女,山东莒南人,硕士,讲师,研究方向:软件工程。
关键词:应用型本科;分层次教学;软件测试;教学改革
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2016)24-0169-02
一、软件测试行业现状
近年来,我国IT软件产业呈现迅猛发展的态势,但是由于许多国内软件企业存在着“重开发,轻测试”的倾向和认识的误区,往往导致在软件开发工程师开发出一个软件后,却没有一个好的软件测试工程师对软件项目进行测试,从而导致所开发的产品出现质量问题,这也从侧面突显了我国软件测试人才的极度匮乏。国外IT企业中的软件测试与软件开发人员的比例一般维持在1∶1左右,而在国内的一些IT企业中,这一比例却仅在1∶4~1∶5之间。因此,高校如何培养符合社会需求的大批高质量软件测试人才,如何尽快建立软件测试人才的系统培养机制,进而保障软件业的健康化发展,已成为现阶段应用型本科院校人才培养极为艰巨和紧迫的任务。
二、软件测试课程的现状
当前,《软件测试》课程已从隶属于《软件工程》课程单独一章的内容发展成为软件工程专业中一门独立、必修、核心的课程,甚至有些学校已经单独开设了“软件测试”这一专业。笔者结合近几年的教学情况,总结了该课程中尚存在的若干问题。
1.授课内容陈旧,理论知识多、枯燥。随着软件开发技术的发展和进步,当前软件测试领域不断涌现出新的测试理论、测试技术、测试方法及测试工具,如:敏捷开发所引起的敏捷测试技术、探索式测试技术及快速迭代测试技术,不断普及的自动化测试催生了大量自动化测试工具的产生及应用,等等。而反观当下大多数与软件测试有关的教材及参考书,绝大部分仍以传统而深奥的理论知识为主,同时辅以传统的测试模型及测试方法的介绍,缺乏案例教学及项目驱动教学的实例,授课内容多,一个学期的课时往往不够安排,教与学的过程都显得极为枯燥乏力。
2.缺乏良好的实训平台,实验内容与理论知识难以结合。软件测试按不同的标准可分为不同的类型,如图1所示。这些不同类型的测试在理论课上往往都会涉及到,但在实验课上却难以一一展开,尽管安排了“2+2”的周课时(即每周2节理论课+每周2节实验课),但由于受限于实验案例的选择、机房上机环境的配置、缺乏良好的实训平台及学生基础参差不齐等原因,实验内容与理论知识始终难以结合。
3.“重开发,轻测试”的思想普遍存在,学生疲于应付考试,死记硬背多,考完即忘。软件测试是一门综合性强、涉及学科领域多的课程,学生普遍缺乏具体认识,大多存在“重开发、轻测试”的心理,认为只要能把系统开发出来,做不做测试都无关紧要。这也导致学生对这门课的学习不够重视,期末考试也是疲于应付,对一些基础知识甚至是软件测试领域中的常识问题,不注重理解,死记硬背,其结果必然是背得快、忘得也快。基本考核结束之后,所有的知识点也都还给授课教师了。
三、分层次概念的提出
“分层次教学”的思想源于孔子提出的“因材施教”。目前“分层次教学”的思想在高等教育领域尚处于探索与研究阶段,为适应社会和经济发展对工程创新型人才的需求,龙岩学院信息工程学院积极推行“应用型本科人才培养模式改革与实践”的人才培养方案,不断在专业培养方案、教学模式、课程体系及教学方法和手段等方面进行创新和变革,以期提高教学效果和人才培养质量。软件工程专业在上述大环境下,根据自身特点和社会市场对软件人才的需求,对课程体系进行重新调整,并按照专业能力分阶段、分层次的培养目标,运用宏观调配的方法对课程体系各知识模块进行整合与优化。
四、拟采取的措施
《软件测试》课程是软件工程专业的一门专业核心课,是培养学生软件测试理论、技术、方法和能力的重要课程,同时,软件测试也是当前IT行业最热门和紧俏的职业之一,是保证软件产品质量、提高软件可靠性、降低软件成本和风险的重要手段。基于此,《软件测试》课程必须在教学内容和教学方法上及时调整和更新,使课程建设与学科建设紧密结合,既要满足软件业对软件测试人才的需求,又要保证软件工程专业中各知识模块之间的系统性和完整性。本节以下内容将详细描述此次分层次教学改革中所采取的措施。
1.对学生分组。笔者所在学院软件工程专业,一直采用“3+1”的教学模式,软件测试课程开设在大三上学期(相比其他院校,开设时间提早了一个学期),学生经过大一、大二两学年专业基础课及部分专业课的学习,基本能找到自己的学习兴趣并定位自己的学习方向,如:有学生对某门程序设计语言,即编程感兴趣,有学生对嵌入式开发、物联网感兴趣,当然也有学生对软件测试行业感兴趣,等等。结合学生自己的兴趣及学习情况,对学生进行分组,主要分为三类,其中:I类――基础了解类;II类――一般测试类;III类――测试开发类。
2.实施不同的措施。根据课前对学生的上述分组,对不同层次要求的学生,实施以下分层。
(1)理论教学内容。结合前文第2节所述软件测试课程教学中存在的问题,将理论授课内容进行调整后主要分为以下四个部分:①软件测试基本概念篇;②软件测试技术篇;③软件测试过程篇;④软件测试项目实践应用篇。其中①中主要介绍软件测试的概念、分类及软件缺陷等内容,②中主要包含黑盒测试技术及白盒测试技术,③中主要是对单元测试、集成测试、系统测试及验收测试等进行描述,④则主要按测试模型中的不同步骤进行介绍,包括:测试需求分析与测试计划、设计与维护测试用例、部署测试环境、测试执行与跟踪、缺陷报告与质量分析报告等。
对理论教学内容所采取的策略是:I类、II类、III类不同分组的学生,都需要对①、②、③中的内容进行学习;II类、III类学生还需要对④中涉及的内容进行学习;此外,III类学生还需利用课外时间,学习与测试自动化及测试框架相关的知识。
(2)实验教学内容。结合理论教学内容及实验室配置环境等因素,在软件测试课程中所开设的实验教学内容主要有:①测试之初体验(在没有任何测试基础的情况下如何进行测试);②黑盒测试;③白盒测试;④单元测试;⑤功能测试;⑥性能测试;⑦系统测试。
对实验教学内容所采取的策略是:I类、II类、III类不同分组的学生,都需要实验的内容是:①、②、③、④;II类、III类学生还需要对⑤、⑥部分进行学习和实践;此外,III类学生还需利用课外时间,学习并实践⑦的内容。
(3)考核方式。为避免学生应对考试死记硬背的现象,将期末总评的成绩按以下标准进行:总评成绩=考勤×10%+期中×20%+实验×20%+期末×50%,即适当降低期末卷面分数的比例,提高期中及实验成绩比例。鉴于学校教务处要求,期末考试依然采用统一的试卷,但期中考试则根据不同层次的学生采用不同的试卷进行考核,实验部分的成绩也依据不同层次学生的不同表现进行评定,且要充分利用分层的优势进行考核。
3.成效。此次教学改革的受益对象主要是我校2012级软件工程共计109位学生及2013级软件工程共计106名学生。对于I类层次的学生,除了学习了软件测试基础知识之外,他们还能将学习的重心放在自己感兴趣的其他科目上;对于II类、III类层次的学生则对课本及课外知识都进行了学习,这为他们毕业之后的职业发展奠定了良好的基础。
五、结语
教学改革任重而道远,非一朝一夕能成。未来还需努力的方向在于:①引入更多的案例进行教学,丰富实验课堂;②进一步完善针对本校不同层次学生的《软件测试》课程实验指导书;③给学生加以更多职业规划方面的辅导,为当今社会IT行业中培养“全面软件测试工程师”而努力。
参考文献:
[1]余久久,张佑生,傅廷亮.软件测试课程教学思考[J].安庆师范学院学报(自然科学版),2013,19(4):121-126.
[2]毛强,彭振生.大学物理课程分层次教学改革初探[J].巢湖学院学报,2009,11(6):137-139.
Abstract: In the context of "excellent engineer education training plan", this paper looked for problems in traditional software testing course, explored software testing course construction in software engineering outstanding engineer training system, proposed software testing courses split to improve the course setting with complexity in phases, and took advantage of virtual practice platform and used spiral case teaching to closely integrate software testing and other software development course.
关键词: 卓越工程师教育培养计划;软件测试;课程建设
Key words: excellent engineer education training plan;software testing;course construction
中图分类号:TP39 文献标识码:A 文章编号:1006-4311(2013)09-0279-02
0 引言
为了解决学校培养模式单一的问题,国家提出了工程教育改革,培养卓越工程师。确定了培养具有国际视野的行业领军人才、国际认可的高级工程技术人才和创业、研发型高端人才的培养目标[1]。卓越软件工程师教育是以“卓越工程师教育培养计划”的实施为基础,旨在培养工程型的软件专业人才。南华大学于2011年成功申请“卓越工程师计划”,软件工程卓越工程师培养成为其中之一。
1 软件测试课程建设背景
随着近年来软件测试人才需求量的不断增加,软件测试人才培养成为热点,很多高校都展开了对软件测试课程建设的相关研究,在卓越工程师培养背景下,软件测试的课程建设应该有其自身的针对性。南华大学计算机科学与技术学院专业工程系于2009年开设软件工程试验班,2010年软件工程专业成为一级学科,2011年成功申请“卓越工程师计划”。软件工程专业对卓越软件工程师的培养正进行不断的探索和改革,软件测试的作为软件工程中的一个重要的组成部分,对卓越软件工程师的培养具有重要的作用,因此软件测试课程的建设是整个专业课程体系建设的重要组成部分。
2 传统软件测试课程存在的问题
传统的软件工程专业人才培养过程中,软件测试课程存在着很多问题。
2.1 软件课程开设单一 大部分的高校软件测试课程的开设十分单一,某些高校甚至只将软件测试作为软件工程的一部分提及。而在实际的工程实践中软件测试是贯穿整个软件开发的活动,在不同的开发阶段都有相应的测试理论支持和测试工具应用。
单一的软件测试课程只能简单罗列软件测试不同阶段的技术和方法,缺乏对知识的针对性和连贯性,学生很难理解不同的测试技术和方法在软件开发的各个阶段应该如何应用,导致学生只会死记硬背软件测试的条条框框而不懂如何活学活用。
2.2 理论与实践脱离 软件测试是一门实践性非常强的课程,然而测试工具和测试对象都是看不见、摸不着的软件产品,实践课程的组织和实施有较大的难度[2]。虽然大多数教师充分认识到了实践教学的重要性,在教学过程中也加强了实践的力度,但是由于没有考虑到大多学生没有参与过实际的软件开发的项目,没有接触过软件开发的流程,实践中选择的实验案例十分单一,缺乏领域结合,与真实工程相差较大。
学生在学习过程中很难理解测试在软件开发中需要使用方法及其作用,很多学生因不能感性认识测试的重要性因此对课程缺乏兴趣。
2.3 案例陈旧过时 案例教学是软件测试教学中的常用手段,对学生理解测试方法有着很重要的作用,但是目前高校教学普遍存在着教学案例陈旧过时,大部分教学都沿用了传统的教学案例。这些案例大都没有介绍软件测试的工程方法和实现过程,并且没有进行难度的区分,很难达到好的教学效果。
3 软测试课程建设探索
本专业的教师经过多年的实践,总结了大量的教学经验,按照实际工作中典型的工程师团队所需的各种技能知识为导向,按照复杂度渐增、螺旋递进的原则设置卓越软件工程师课程体系与内容,把传统的以学科知识的系统性为导向的横向课程体系改造为以个人职业角色发现和能力提升为导向的、适应团队教育培养的新型纵向课程体系。软件测试课程是软件工程卓越工程师培养课程体系的重要组成部分,课程总体跟随整体培养课程体系的大方向,并结合自身的特点进行建设。
3.1 复杂度渐增式开设课程 在传统的以面向开发为主的培养模式下,测试课程设置单一,知识针对性连贯性不强。为了解决这些问题,在专业课程开设过程中将软件测试课程课程拆分,穿插到整个培养过程中,紧密联系软件工程其他阶段的课程,并且使用案例贯穿所有阶段,复杂度逐渐递增,让学生在学习过程中循序渐进,逐步建立学习的兴趣和信心。
在第5学期分成两个阶段分别开设《单元测试与软件质量》和《软件验证与确认》。在第一阶段旨在培养学生小规模程序测试的能力不涉及复杂系统,以提高个人开发测试的基本能力为目标,学生可以运用测试课程中学习的方法在开发过程中使用,针对性强。第二阶段旨在培养学生对系统整体测试的能力,此时学生以完成基本开发能力的训练,其他相关课程的培养中也进入了系统级别。在该阶段以上一阶段培养的能力为基础,提高复杂度,跟软件开发其他阶段紧密结合。完成第5学期的测试基础课程开设之后,在第6学期还开设了《web软件测试》、《测试案例分析》、《数据库测试》等专业选修课,给有兴趣的学生提供更多的学习选择。
3.2 基础与实践并重,充分利用虚拟实践平台 课程的开设充分考虑到测试重实践,并且与软件开发其他阶段联系紧密等特点;同时也考虑到了此时学生正处于学习阶段,直接参与实际项目对学生的学习并不能起到很好的作用,因此在课程学习阶段充分利用了校内软件实训基地,创建网上“虚拟企业”,引入企业管理模式,在这种虚拟平台下,针对基础的知识点开设虚拟项目[3],模拟软件测试的真实工程环境。学生在自己组合团队中有各自的工程任务,针对性实用性很强,学生能够在完成自己任务的同时感性的认识测试岗位工作,体会到软件测试在整个软件开发过程中的作用,将单项知识技能之间关联在一起,系统的运用专业知识和技能。
3.3 采用螺旋式的案例教学,案例与其他软件开发阶段贯穿 课程采用螺旋式案例教学方法,教学案例与其他软件开发阶段贯穿,即针对同一个项目分解为基础与高阶的两个不同难度程度的案例,课程讲解的案例从需求分析,设计,实现,一直贯穿到软件测试,体现了软件开发连续的工程过程。同时贯穿的教学案例都是从高年级学生参与的实际开发的项目中提取,教师总结了在开发的过程中学生出现的各种问题,在案例讲解过程中更容易被学生所接受。教学案例一个阶段一个阶段的被不断完善,相比较传统的教学案例更加贴近学生学习实际,有一定的真实性又同时具备知识点针对性。
4 结语
本教学团队在“卓越工程师教育培养计划”背景下,结合专业现状与社会需求,总结以往开设软件工程试验班的经验和教训,一直以来不断研究探索,逐渐形成一套适合的本校卓越软件工程师培养的课程体系。其中软件测试课程的建设既遵循了软件工程师培养课程体系的大方向,又结合了课程自身的特点,而本教学团队在今后的教学过程中还将不断的改进,遵循行业发展的需要。
参考文献:
[1]全国工程教育专业认证专家委员会.全国工程教育专业认证工作手册[S].中国教育部,2009.
[2]李亚.软件测试”教学探索与实践[J].计算机教育,2008,(6):31-32.
摘要:实践教学是高职院校高技能人才培养的重要环节,在国家示范高职院校建设的过程中我们对软件技术专业的实践教学进行了一系列的改革和实践,主要包括验实训条件建设、实践教学体系构建、实践教学方法改革、核心课程建设、以生产性实训为特征的工学结合人才培养模式、与企业“零距离”的生产性实训和顶岗实习、校企“蛙式双栖”的师资队伍建设等,取得了良好的效果。
关键词:实践教学;工学结合;顶岗实习;工作过程;项目驱动
威海职业学院2003年开设计算机应用技术专业软件方向,2005年开设软件技术专业,期间先后与北京华育发国际技术培训中心合作引进印度CED-CUL软件工程师认证培训,与北京CSTP软件人才培养办公室合作联合培养软件开发工程师,2007年与上海智广公司合作引进IBM教育学院项目,联合培养软件测试工程师。特别是自2006年12月开始,威海职业学院被教育部、财政部确定为全国首批28所示范性高等职业院校建设单位,在示范校建设方案中,软件技术专业作为地方财政支持项目进行了为期三年的建设。自启动“国家示范性高等职业院校建设”项目以来,软件专业全体教师认真学习“国家示范性高等职业院校建设”相关文件精神,充分认识国家示范性高职院校建设的重要意义,本着“更新教育理念、加强内涵建设、提高人才培养质量”的目标,积极参与专业建设,大胆进行实践教学方面的改革与探索。经过三年的建设,软件技术专业在创新人才培养模式、推进工学结合、生产性实训、顶岗实习及项目驱动、基于工作过程教学改革等方面取得了长足的进步,总结形成以下有关实践教学的研究成果。
1 加强以生产性教学工厂为主体的实验实训条件建设
要加强实践环节的教学,必须完善相应实验实训条件,实验实训条件的完善是高素质技能型人才培养的基本条件。
投资108.29万元完善实验实训硬件建设。其中成功地与山东凯信职业培训学校达成“实行网络教育技能培训基地建设合作协议”,引进资金51.6万元,购置计算机120台,建成“软件开发与测试实训室”“web开发实训室”;扩充了网络工程实训室,思科网络公司捐赠了3万美元的网络设备。
投资111万元,建设图形图像制作实训室、动漫设计与制作实训室。特别是在生产性教学工厂的建设方面探索了以产权连结为纽带,建立“双向嵌入”校企合作长效机制,即通过“双向嵌入”形式,把企业引进学校,建立现代企业制度,按企业化运作模式经营,有效建立起以产权连结为纽带的校企合作长效机制。它具有企业生产、经营、管理等完整的功能和基本特征,但又有别于一般企业以赢利为目的的特征,要遵循教学的基本规律,完成学生技能训练和技能培养的任务。目前,通过校企共同投资600万元建立了威海天信电子有限公司,威海天赋软件有限公司。
2 构建软件技术专业“五位一体”的实践教学体系
本专业以职业能力培养为主线,遵循学生学习专业知识和掌握专业技能的规律,以基本技能训练、综合技能训练、岗位适应性训练、创新能力培养、顶岗实习为主要环节,构建实践教学体系,建立“五位一体”的实践教学平台,完善实践教学条件的体系化建设。到现在,分阶段建设以专业认知和基本技能训练为主要功能的实验实训室,分别是计算机软硬件发展史展览室、计算机基础实训室、基础编程实训室;以仿真训练和综合技能训练为主要功能的校内实训基地,即软件开发与测试实训基地含“软件开发与测试实训室”“web开发实训室”“网页设计与制作实训室”“动漫设计与创意实训室”等4个实训单元;以真实工作环境的岗位适应性训练为主要功能的生产性教学工厂,即软件开发中心1处(威海天赋软件有限公司);以突出个性发展和创新能力培养为主要功能的创新工作室2个,即机器人工作室、动漫与创意工作室和以顶岗实习为主要功能的校外实习基地30个,形成集教学、培训、技能鉴定、软件开发于一体的多功能、综合性的软件职业技能训练中心。
能力培养过程如图1所示。
3 多方合作办学,与企业共同制定实践教学计划
几年来我们积极拓展联合办学渠道,经过广泛论证,2004年我们与北京华育发国际技术培训中心合作引进CED-CUL软件工程师认证课程,在计算机专业中开设软件技术方向,成功地培养三届共110名毕业生;2006年5月,与中国软件行业协会签署协议,成为全国首批13处软件人才培养工程实训基地之一,合作成立两个软件订单班,在06级软件技术专业中开展CSTP软件工程师培训;2007年10月,与上海智广公司合作,引进IBM教育学院软件测试模块课程体系,在07级软件技术专业中开设软件测试方向。
实践教学的内容是否合理,直接决定了学生将来能不能顺利走向工作岗位。因此必须根据职业岗位的实际需求确定实践教学体系。我们近几年先后到北京、上海、大连、苏州、济南、青岛及威海的多处软件园区进行了广泛深入的调研,在多方调研的基础上,邀请软件企业软件开发工程师及合作单位工程师共同开展深入细致的研讨,将软件技术专业的主要工作岗位分为四大类,主要包括:程序设计、数据库管理与维护、web开发、软件测试。因此在实训模块的划分上我们以某一能力或技能的形成为主线,根据具体的岗位群最终将软件技术专业的实践教学划分为程序设计、数据库管理与维护、web开发、软件测试四个模块,每个模块分别由相应专业课的实践环节来支撑,对每门课程有针对性的设置实训课题,采用项目实战的形式展开教学,系统地训练学生的专项技能和综合能力,从而把专业知识和专业技能有机地融合为一个整体。具体的实践教学模块划分及实训实习计划表如图2所示。
4 完成核心课程建设,形成面向市场、依托行业的课程体系开发模式
为了提高教育教学质量,本专业不断优化课程体系,加强课程建设。面向市场、依托行业,让企业参与、与企业共同制定软件技术专业的教学计划。与CSTP(中国软件人才培养办公室)、上海智广、青岛软件园合作,请他们参与专业教学计划的制订,通过广泛的企业调研和对往届毕业生的跟踪调查,确定软件技术专业的主要就业岗位群如下:软件程序员、数据库设计与维护、软件测试、WEB开发。根据岗位群进行本专业的职业能力分解,将其分解为基本素质、专业能力和外语能力。
根据职业能力要求,按照每种岗位的工作过程将整个软件专业的课程体系划分为四大模块,以就业岗位为着眼点构建本专业的课程体系。具体如图3。
以工作过程为导向、职业能力的培养为目标,构建优质核心课程。主要采用“项目导向”和“任务驱动”的模式进行教材和精品课程的建设。自主编写并完成“项目导向”的特色教材:《C语言程序设计》一部。完成了《Java程序设计》《C语言程序设计》《数据结构》《网页设计与网站开发》校级精品课程建设,其中《Java程序设计》为2009年省级精品课程,《网页设计与网站开发》为2009年计算机教指委精品课程。
5 深化教育教学改革,探索和完善以生产性实训为特征的工学结合人才培养模式
人才培养模式改革的重点是教学过程的实践性、开放性和职业性。按照“以胜任职业岗位需要为目标,以职业能力培养为主线,以用人单位需求为培养标准”的原则,在积极探索“工学结合”“学训交替”人才培养模式及“项目导向、任务驱动”等教学模式的同时,重点创新了以生产性实训为特征的工学结合人才培养模式,在探索过程中,坚持了德育为先、实践为本、创新为魂的理念,具体做法如下:
(1)将德育教育贯穿人才培养的全过程,无论校内外、课堂内外,都渗透了德育教育的过程,为此出台了全面课堂管理办法,规定在课堂上不仅要进行专业课教学,同时渗透德育教育内容,教师还要对课堂的教学、环境等各个方面全面负责的管理模式;课堂外,利用班级活动、对日常行为举止的表现考核、参加集体活动、参加专业竞赛活动等项目对学生进行全面的量化考核;学生参加校外顶岗实习时,完全按照企业对员工的要求,对学生进行职业道德等方面的培养教育。
(2)改革人才培养模式,实践了“2+1”(两年在校学习+一年企业顶岗实习)的人才培养模式,加大实践教学的比例,将企业顶岗实习的时间由半年增加到一年。
积极开展“学训交替”教学模式的改革,与青岛软件园合作,先后在寒暑假和实训期间安排学生由教师带队到青岛软件园进行生产性实训,参与真实的软件开发项目,学生的实践能力得到了提高。
(3)积极开展实验实训教学方法改革,采用了以“项目导向”为主的实训教法,以“学生为主体,教师为辅助”展开教学,除第二学期为基础性实训外,第三、四学期的实训,加大生产性实训的比例,选取企业的真实的开发项目,安排学生开发小组主动到社会上去寻找课题,在企业开发的真实项目完全可以抵顶校内的实训学分;第五、六学期组织学生到企业进行实训或顶岗实习,使学生在实训实习过程中感受真实的工作氛围,做到与企业“无缝对接”,形成了具有生产性实训为特征的工学结合的人才培养模式。
6 积极开展实践教学方法的研究
6.1 在实践教学过程中,采用“项目驱动”的教学方法
具体做法是将学生划分为几个项目开发小组,每个小组选举一名组长担任项目经理,负责统筹安排。按照软件的基本开发流程展开实训,主要分为“功能分析、详细设计、测试验收”三个阶段,指导教师布置整个项目任务,每个小组制订出详细的项目计划,在项目计划中将整个项目分成几个小任务,给出进度安排。每组的项目经理按项目计划对小组成员进行分工,共同完成项目开发。在教学过程中注重培养学生发现问题、分析问题、解决问题的能力以及创新思维与技术综合应用能力,锻炼学生的团队合作能力,鼓励、敦促学生自己动手尝试,为自由思考、创造留有余地。
功能分析:首先由教师以客户的身份给出项目的总体功能要求,学生对需求进行分析,确定开发目标,制定开发计划。鼓励学生在满足基本需求的基础上,充分发挥创新能力,扩充和完善系统的功能。
详细设计:学生按照开发计划进行详细设计,通过查阅资料自主完成项目的开发,教师负责答疑。在此过程中,学生分析问题、解决问题的能力得到有效的锻炼。
测试验收:对完成的项目进行测试,教师或指定的测试小组负责验收。对于优秀作品,进行展示与点评。
6.2 在实训过程中,根据实际情况采用多种组织方式
(1)类比教学法:考虑到目前高职高专学生的现状与特点,选择的授课案例通常与学生在实训中完成的项目模块具有相似性,学生可以仿照授课案例完成项目模块的设计与实现,简化学习难度。或者在讲授一个模块的实现后,让学生设计和实现另一个有共同点的模块,
(2)成对教学法:为了降低学习难度,帮助学生克服程序设计过程中的焦虑感,借鉴合作学习理念,采用成对开发模式,对于难度较大的实训项目,学生强弱搭配,两人一组,一人操作,一人在旁边看,并定期进行角色互换。以此提高学生的学习积极性和参与意识,降低学习的难度,培养学生的合作精神和团队意识。
(3)榜样激励教学法:在教学过程中,通过展示分析高年级学生或同班(或同年级)学生的优秀作品,启发激励其他学生。实践证明,榜样激励教学法很有效,特别是展示同班(或同年级)学生作品最具激励作用。
(4)项目教学法:教师根据实训内容,设计出一个个的工程项目,以项目的形式提出教学(实验)内容,要求各小组自主完成项目。
(5)自主学习指导法:对那些比较简单或雷同的知识性内容采用“自主学习指导法”处理。指导教师通过布置自主学习纲要,指出重点难点和学习检查等途径强化学生自主学习意识,以培养学生的独立思考和创新能力。
(6)现场讨论法:在现场开发时,针对技术细节充分运用讨论法激起学生对问题的争论,活跃学习气氛,并使学生处于一种接受知识的最佳状态,自然教学效果也最佳。在选题上则注意选择有异议的操作方法或结论引导学生,达到理解的升华和实现追根问底的目的。
(7)学生演示法:在课堂实训或现场开发时,提供某些小的技术操作问题,让部分学生自己亲自演示并向其他学生解说,使学生增强解决技术问题的自信心。
(8)任务驱动法:教师提供一些实际的技术问题,要求学生在指定的期限内给出最恰当的解决方法。
7 完善生产性实训和顶岗实习,构建与工作岗位“零距离”的实践教学环境
以职业能力培养为主线,遵循学生学习专业知识和掌握专业技能的规律,以基本技能训练、综合技能训练、岗位适应性训练、创新能力、顶岗实习为主要环节,构建实践教学体系。从第二学期到第四学期,每学期利用四个周的时间,进行实训课程教学,每学期实训侧重于不同方面能力的培养。第二学期侧重于基本技能训练,主要进行程序设计能力的培养及数据库的设计与管理,主要在校内实训室展开;第三、四学期侧重于综合技能训练,主要进行Web开发方面的能力训练和软件测试能力的训练,以在校内实训室进行为主,鼓励学生到企业寻求实际的开发项目,同时利用相关工作室对学生进行创新能力的培养;第五、六学期,主要在校内生产性教学工厂(软件开发中心)或校外实训基地展开,同时完成毕业设计任务。在开发中心,学生被分成若干个开发小组,开发的项目均是企业实际项目,学生根据自己将来的发展方向和单位的实际需要重点发展以上所述的一个或二个方面的能力,从而完成毕业生从学生到职业开发人员的角色变化,实现“零距离”就业。
积极拓展校外实训基地,为学生顶岗实习创造机会。完成9个校外实训基地的建设,与青岛软件园、中科院计算所、中国软件人才培养办公室、上海智广科技公司、北京华育发培训中心、威海奥博软件公司、威海农友等软件企业合作建立实训基地,已签署协议并挂牌。
8 加强师资队伍建设,以“蛙式双栖”模式为主培养双师素质教师
在示范院校建设中,师资队伍的质量直接关系到专业建设的成败,我们提倡大力加强师资队伍的职业实践能力和职业教育教学能力培养培训。通过合作办学,利用合作单位的优势,每年安排3至5名专业骨干教师参加前沿知识与实践能力的培训,自2003年开设计算机专业软件方向以来,通过合作单位培训20多人次,使软件专业的教师能够始终掌握软件技术的较前沿技术。尤其是示范校建设以来,我们先后选派10名教师赴韩国、新加坡参加了为期20天以上的研修培训;选派6名教师到国内高校或培训机构参加专业培训;选派15名教师到企业进行为期1至2个月的顶岗实践。同时从周边软件公司聘请6名技术主管作为软件专业的实践课指导教师。
我们出台了“双师”素质教师培养的有关规定,规定教师必须通过“蛙式双栖”途径来培养,就是说教师不仅要完成学校的教学任务,同时必须有相关专业的企业的工作经历,即每年安排教师到企业工作,参与企业的研发项目与管理过程。
[论文关键词]任务驱动 项目导向 案例教学 多元整合
一、引言
软件工程课程是高职软件专业类学生的专业核心课,是理论和实践紧密结合的典型课程,主要培养学生软件开发能力和项目管理能力。但在实际教学过程中,因为缺乏明确工作任务并涵盖课程理论知识的综合项目,学生对软件工程理论感到十分抽象,对实践操作也只是囫囵吞枣,根本体会不到软件工程在企业项目开发中的宝贵作用。
针对软件工程课程,国内职业教育课程在借鉴外来职业教育课程开发理论的基础上,也有自己的创新。有一部分学校已经在这方面进行了改革和探索,但大多是单一的、松散地进行,这一状况的形成,一部分是因为现实客观条件的制约,另一部分还在于职业教育课程理论研究的不全面、不深入所致,因此重视和加强高等职业教育课程多元整合是提高高职职教课程开发质量的一个中心环节。
本文将以高职软件工程课程为例,将“任务驱动、项目导向、案例教学”多元整合的创新教学理念引领教学过程,强调动手能力,将工作过程的职业环境融入学习过程中,将学生对知识、职业能力的掌握程度提高到了实践这一层面,使得学生能真正进入到“在学中做,在做中学”的理想学习环境中。
二、多元整合创新教学理念
软件工程课程涉及软件项目计划、软件需求分析、软件设计、软件测试、软件配置管理、软件项目管理等软件开发过程中的各种问题。浙江商业职业技术学院(以下简称“我院”)所在浙江省高新中小企业众多,发展主要依靠技术进步以及科技来推动,对人才的需求也明显高移。经调查发现,目前浙江省软件行业在软件设计、软件测试和软件维护方面的人才缺口大,供不应求。因此,我们将教学重点放在了软件设计、软件测试和软件维护方面。以一个典型、完整、实用的项目“学生选课管理系统”为载体,将软件工程项目开发中用到的各项工作技能按照工作过程分布阶段任务,将项目分解成一个个案例,以任务驱动的方式完成技能的案例教学,同时也体现了工作过程的完整性,将“任务驱动、项目导向、案例教学”多元整合的创新教学理念贯穿于教学过程。
(一)明确工作岗位,分析工作任务,任务驱动学习
任务驱动学习是让学生完成教师精心设计的培养职业能力的工作任务,构建真正属于自己的知识和技能,提高分析和解决问题的能力。如何确定软件工程课程的工作岗位和工作任务是进行任务驱动学习首先要解决的课题。
为此,我们邀请软件行业专家、专业教师参照国家相关职业标准一起分析、论证软件工程工作岗位的工作过程和技能要求。在进行分析论证过程中,根据我院所在浙江省高新中小企业发展实际,结合高职学生学习特点,将软件工程课程培养的人才方向定位在软件设计、软件测试和软件维护三个岗位。我们明确了这三个岗位的典型工作过程,并详细分析了典型工作过程中的典型工作任务。
1 软件设计岗位的典型工作过程主要包括软件项目计划、软件需求分析、软件设计阶段。这些工作过程的典型工作任务有:(1)软件项目计划包括:软件项目计划内容的描述;度量项目的成本、规模、工作量和开发周期;确定项目开发过程模型;制订软件项目计划;(2)软件需求分析包括:定义需求工程过程模型;采用UML获取项目需求;采用UML分析项目需求;编写项目需求规格说明书;(3)软件设计阶段包括:策划项目的设计阶段;应用设计模式,执行系统的架构设计。
2 软件测试岗位的典型工作过程主要是软件测试阶段。其典型工作任务包括:软件项目单元测试用例设计;执行软件项目单元测试;软件项目功能测试用例设计;执行软件项目功能测试;软件项目性能测试用例设计;执行软件项目性能测试;软件项目压力测试用例设计;执行软件项目压力测试。
3 软件维护岗位的典型工作过程主要包括软件配置阶段和软件项目管理阶段。这些工作过程的典型工作任务有:(1)软件配置阶段包括:创建软件项目配置管理计划;对软件项目实施版本控制;(2)软件项目管理阶段包括:对软件项目进行项目估算;对软件项目进行风险管理;对软件项目进行质量管理。
(二)设计教学项目,培养职业能力,项目导向教学
项目导向教学是指通过一项完整的项目工作而进行教学活动的教学方法,它以项目导向、任务驱动,引领教学过程,强调实训环节,将工作过程的职业环境融入学习过程中,将学生对知识的掌握程度提高到了实践这一层面,使得学生能真正进入到“在学中做,在做中学”的理想学习环境中,使学生在学习过程中培养工作岗位职业能力。
我院软件工程课程定位的软件设计、软件测试和软件维护三个岗位有不同的职业能力要求,通过与专家分析论证,我们明确了三个岗位要培养的职业能力:
1 软件设计岗位。要求要培养的职业能力有:理解、实施软件项目计划的能力,编写、制定软件项目计划文档的能力;获取、分析软件项目需求的能力,编写软件项目需求分析文档的能力:理解项目数据模型、项目的架构设计的能力;编写软件项目设计规格说明书的能力。
2 软件测试岗位。要求要培养的职业能力有:设计和实施单元测试用例、功能测试用例、性能测试用例、压力测试用例的能力;撰写测试计划、报告的能力。
3 软件维护岗位。要求要培养的职业能力有:实施软件项目配置计划、管理的能力;实施软件版本控制的能力;估算项目成本、规模、进度的能力;预测、监控、计划、管理软件风险,实施软件质量保证计划的能力。
为了与岗位工作过程相适应,能够在项目教学过程中培养学生的职业能力,在设计教学项目的选择上我们从以下几个方面进行了探索:第一,项目必须包含上述岗位的基本工作过程,能够培养学生职业技能;第二,项目难度适中,符合高职学生的知识、技能结构特点;第三,项目开发周期相对较短,能够在教学时间内完成;第四,项目内容容易理解,贴近学生经验,以便学生集中精力完成软件工程工作过程的学习。
为此,我们精心设计了“学生选课管理系统”来进行项目教学,引入企业真实项目“网上书城”系统来进行模拟训练。这两个项目背景高职学生易理解、掌握和操作,并且包含了上述三个工作岗位职业能力。通过几个学年的教学实践发现,学生基本能掌握三个工作岗位的职业能力,并根据自己的兴趣有所侧重,完全达到了我们项目导向教学的目的。
(三)分解教学项目,激发学习兴趣,典型案例教学
案例教学实际上是一种“做中学”的形式,在经验和活动中获取知识和技能,增进才干。软件工程案例教学的实践反映出,案例选择是否合适、案例运用是否科学将直接影响到案例教学作用的发挥。
对于软件工程这样一门理论和实践都比较注重的课程来说,案例教学就显得特别重要。我们在案例教学中进行了以下探索和实践:第一,案例贴近学生生活,删繁就简,能适应课程教学时限要求;第二,案例有代表性和针对性,能基本涵盖基本的工作任务;第三,案例能让学生参与并易于模仿实践。如讲解软件项目计划时,针对学生选课管理系统这个项目,由老师描述项目计划应该要确定的内容,并引导学生分组讨论确定项目中角色一人员责任矩阵,利用甘特图等工具制订初步软件项目计划。这样学生不仅仅是去强记那些固定的原理、规则。学生通过案例更深刻地理解了工作过程中需要掌握的技能。
三、多元整合教学的探索与实践
任务驱动、项目导向、案例教学的教学方法各有特色,如何将这些教学方法整合在一个具体的教学项目中并让各种教学方法发挥其优点是我们要重点解决的问题。按照软件工程项目开发中典型的工作过程,我们将“学生选课管理系统”项目分解成一个个的小项目,每一个小项目对应着一个具体工作过程。对每一个小项目我们分成六个步骤进行项目教学:
第一步,确定每一个小项目的工作任务。不同的小项目对应的工作任务不同,有的工作任务比较独立、花费时间少,可以在—个教学单元中完成,我们称之为小任务;有的工作任务需要多个教学单元的综合实践才能完成,我们称之为大任务;在教学过程中,对大任务我们又将其分为若干小任务,并在各个小任务完成后进行分析总结,以便学生系统全面地掌握相应的职业能力。
第二步,教师进行案例场景描述,并通过典型案例演示项目中的具体任务。教师先对案例进行场景描述,让学生明白真实工作过程中这个小项目要做什么。然后通过典型案例的演示让学生体会到这个小项目要怎么做。
第三步,学生分组讨论,明确项目分工。软件的开发过程是一个团队合作的过程,将学生从成绩、性格、表达能力等方面进行分组,让不同的学生组合成一个团队进行项目的开发,既培养学生团队合作的精神,又让学生能发挥各自特长,调动学生积极性。在此步骤中,教师可以根据实际教学班组从整体上对团队的组合进行优化调整,对于一些比较难分工的项目,教师可以对团队进行指导,帮助团队进行分工。
第四步,学生根据不同分工完成典型案例的工作任务。通过项目分工,团队中每个学生有了明确的任务,可以根据教师典型案例的演示进行工作任务的模拟练习。通过这一步,让学生对工作过程和工作任务有真正的感性认识,有利于培养学生的职业能力。
【摘要】根据高职软件技术专业人才培养合格率低,培养方式落后的普遍现象,本文以长沙民政职业技术学院软件技术专业为例,通过对专业课程体系工程化改造的探索与实践,提出了课程工程化改造的思路与措施,实践证明效果显著,具有一定的借鉴意义。
【关键词】软件技术;专业课程;工程化
信息产业的迅速发展对软件技术从业人员提出了更多要求;尽管国内高校软件人才的培养数量不断攀升,但真正能够融入软件开发团队的人并不多,这严重阻碍了我国信息产业的发展。造成这一现象的主要原因是软件技术相关专业的人才培养模式落后,基础理论+实验室上机实践构成了教学的主体,普遍缺少对学生素质和工程化实践能力的培养,同时也缺乏工程化[1]实训必备的教学环境,因此很难培养出符合软件公司要求的实践型技能型软件人才[2]。长沙民政职业技术学院软件技术专业教师团队通过对学生职业素质和核心技能培养方面进行了一系列的探索与研究,通过对高职软件技术专业课程进行工程化改造的探索与实践,在教学过程中产生良好的教学效果。本文以长沙民政职业技术学院为例对此教学探索实践活动做了一个阐述与总结。
本院软件技术专业培养目标通过对面向对象的软件工程方法、数据库、.Net/Java/移动应用/WindowsStore/云应用开发技术、软件测试技术等专业理论基础知识的学习,使学生掌握程序员及相关岗位必备的理解软件设计、掌握从事软件开发先进技术、熟悉测试、实施以及现场管理等专业理论基础知识,具备良好的职业道德、职业素养,培养德、智、体、美全面发展,心理健康,具有“爱众亲仁”道德精神和“博学笃行”专业品质和较强学习能力、创新能力的高素质技术技能型软件技术专门人才。本专业教学团队通过对北京中软强网、杭州TCS公司、上海汉得信息技术有限公司等数十家公司核心岗位所需人才的能力需求调查分析与研究,发现IT行业人才所需能力主要分为三类:职业核心能力和职业核心素质。其中职业核心能力主要包括软件分析能力、软件设计能力、数据库编程能力、界面编程能力、程序编码能力、软件测试能力和系统维护能力;职业核心素质主要包括分析与解决问题能力、自主学习能力、团队合作能力、表达沟通能力、探索创新能力和抗挫抗压能力。本专业教学团队根据调研情况,对课程进行工程化体系[3],为了实现教、学、做一体化的教学目标,在讲义或教材的运用上重点阐述项目实施的方法和步骤,按照软件开发过程对教学内容进行了重构,形成新的“工程化”课程体系。
在本专业教学中采纳特色教学法ISAS教学法、项目教学法和榜样教学法。工程化课程内容组织循序渐进,从简单到复杂,从实践到理论,再到实践不断循环,使学生对技术的应用能力不断提升。项目实践划分为“四个应用层次”:①验证性项目:学生在解决一个与教师示范或操作规程中类似的、或更复杂的问题,学以致用,巩固基础知识。②训练性项目:学生借助相关辅助工具完成的项目,主要培养学生的对技能的熟练程度。③设计性项目:设计性项目是在一个训练单元结束进行的综合性项目,由学生综合运用本单元所学理论解决实际的问题,主要培养学生的分析问题、解决问题的能力和必备专业核心技能。④创造性项目:创造性应用层次是在课程结束后给出课程的课程设计题目,由学生综合运用本课程所学理论解决实际的问题,主要培养学生创新能力和抗压抗挫的能力。基于工程化的课程体系的改革与实践成果为培养更多优秀人才和提高专业人才的合格率奠定了坚实的基础。
通过多年的课程工程化改革的探索与实践,我院软件技术专业以就业为导向,紧跟行业的发展方向,依据行业人才的需求特点,全面实施学院与市场对接、学生与社会对接、教学与就业对接的培养机制,加强实习实践环节,分期分批安排学生到企业实习、实训,毕业生就业竞争优势明显,专业就业对口率显著提高。
参考文献
[1]梁艳华,潘银松,党庆一.“工程化”的应用型人才培养模式在计算机教学中的应用.四川职业技术学院学报,2015,2.
[2]臧斌宇,赵一呜,李银胜,叶德建,朱军国.际化、创新型软件工程特色专业建设.中国大学教学,2008(11).
[3]何婕.对高职院校软件技术专业人才培养模式的研究与实践.科技信息,2010(15).
作者:唐一韬 单位:长沙民政职业技术学院
关键词: 软件技术;实训教学;基本教学任务;实训能力
0 引言
当前高职教育实训教学的内容都能以就业为导向来设定,也具有一定的技术综合性。但是学校与企业联系不紧密,就导致实训内容的设置没有紧随企业的发展要求。一方面,学校没有对企业进行真正的了解,没有对企业人员岗位职业能力、职业知识及素质进行详细分析;另一方面,学校也没有请专业领域的专家和企业负责人真正参与到学校的课程设置。尽管许多高职院校与企业开展校企合作,但真正落实到实处的却不是很多,大多数都只是形式上的一种合作。因此,学校在设置课程时往往满足不了实际需求。
1 教学内容的确立
1.1 教学内容设置的思路 成立由校企双方共同组建的专业建设指导委员会,在专业建设指导委员会的指导下,完成课程体系开发任务。吸纳企业的技术骨干、行业专家参与课程的开发与建设,充分发挥校企合作理事会和专业指导委员会的作用,发挥企业单位优势,进行企业行业调研,形成岗位能力和职业岗位任务的分析报告。通过分析在软件开发过程中各工作岗位需要完成的典型工作任务,确定各软件岗位的具体能力要求;根据能力要求的复杂程度归纳总结出软件开发的行动领域,以行动领域为课程体系开发平台,按照各岗位职业成长规律,将行动领域转化为学习领域,构建由理论教学课程体系、实践教学课程体系和人文素质教育课程体系构成的“平台+模块”的基于工作过程的课程体系。
1.2 明确专业培养目标和职业方向 专业建设委员会成员通过市场调研,企业岗位分析,确定该专业培养目标,明确该专业职业岗位。软件技术专业培养目标是:该专业主要培养具有软件项目开发方法和实践技能、计算机软件设计、开发管理及测试、3G手机软件的开发等工作的高素质技能型专门人才。学生在具有必备的基础理论知识和专门知识的基础上,重点掌握程序设计方法,养成良好的编程习惯。精通三、四种平台及其软件开发技术,能按软件文档的要求进行具体的软件编码,并达到一定的熟练程度,能在各种企事业单位从事软件设计、管理及测试。
1.3 确定人才培养模式 根据上面的分析,确定“行业与专业对接、生产与教学对接、岗位与课程对接”的人才培养模式,按照实际岗位工作要求,选取典型工作项目作为实训项目;分析项目所需的知识、素质、能力,构建专业核心课程;按照“课程――专项训练――综合项目实训”教学主线,实施“教学做”一体化的课程教学、专项训练;经过综合项目实训、顶岗实习,实现与真实工作岗位的对接。
2 实训教学内容的设置
下面以山东劳动职业技术学院信息工程与艺术设计系软件技术专业为例,看看是如何设置和整合实训教学内容的。
实训教学内容按基础实训阶段、专业实训阶段、社会实训阶段循序渐进的方式进行,同时将“双证”纳入教学计划,突出实训教学的地位。立足于专业人才培养目标,探讨大学生创新创业素质模型内涵,并结合素质模型框架设计出创新创业教育课程体系,为有效地提高学生创新精神和创业能力提供思路和范例。制定完善创业教育课程体系建设。针对所有一年级新生,通过开设创新创业教育课程,培养学生的创业意识;针对二年级学生,以创新创业技能教育为主,对于有创业激情和能力的学生组建创业实习小组;针对三年级学生,结合就业创业指导课开展创业实践。把创业教育课程和专业课程结合起来,在公共课程和专业课程中渗透创业教育的理念和内容,突出创业素质和实践操作能力的培养。表1是实训课程体系结构表。
以《手机软件开发与实践》为例,设置课程的实训内容,达到理论知识、实践能力、职业素质和综合应用能力的目标。
使学生通过本课程的学习,达到如图3的目标。
3 整合多门课程,设计实训教学内容
软件技术专业第二学年第一学期,开设了《Java程序设计》、《软件测试》、《UML建模与设计》、《SQL Server数据库设计》和《软件工程》5门课程的内容,到学期末或第二学期伊始,由企业兼职教师和上述各门课程的任课教师一起,共同设计综合实训。让实训项目既包括上述各门科目的内容,又不孤立,作为一个不可分割的整体。使学生获得的知识、技能真正满足职业岗位的要求。将软件企业中的软件过程模式、软件项目组织管理方式引入项目中,将职业工作活动与教学活动融为一体,使学生在经历情境化的工作活动过程中熟悉软件工作环境和开发流程,积累实际工作经验,实现职业能力的发展。
内容整合的原则:①先进性原则。突出软件技术专业当前先进的专业知识、技术技能及发展趋势,体现职业与高职教育的发展趋势,兼顾经济社会发展的地域差异,各项要求既有前瞻性,又有现实性。②职业性原则。以国家职业标准和职业活动所需能力为依据,充分体现专业知识和专业技能相融合的教学理念,反映高职教育特色和一体化教学改革的整体水平,兼顾学生职业生涯发展需要,科学安排教学内容。
4 总结
按照上述思路对实训教学内容进行设置和整合之后,可以让学生在各门课程中学到的相对孤立的知识,运用到一个综合的实训项目中,使得学生更加理解各门课程的地位,以及课程之间承上启下的联系。对于掌握这些知识的目的更加明确,从而更有利于培养学生的相关技能。
参考文献:
[1]强昌义.教学内容的选取与整合[J].中国学校体育,2010,03.
[2]张欣波,常雪峰.高等学校数控技术课程教学与实训内容整合研究[J].中国电力教育,2014(05).
关键词:医药类院校;信息技术;项目实践
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)33-0140-02
Abstract: The computer science in medical colleges and universities has been a weak subject, how to combine the medical knowledge and computer technology, training with computer technology and medicine knowledge of the compound talent, worthy of exploration and practice. This paper proposes the teaching ideas of medical information technology in project practice oriented, based on the analysis of practice of computer professional courses in medical universities into the effect of the project, summed up the selection of training project and project training according to the computer technology and medical subject characteristics, to provide reference for medical information technology teaching in Colleges and universities.
Key words: Medical Colleges and universities; information technology; project practice
1 引言
计算机专业知识更新频率快,计算机专业学生需要具备较强动手能力才能在就业时占据优势。如何扬长避短地发挥医药类院校计算机专业的特色,寻求新的办学思路,很多学者已经进行过探索[1][2][3]。郭凤英[4]根据教育信息化发展情况,针对高等医药院校计算机专业教学改革提出了建议,从教学形式、教学内容等方面进行了分析。窦彦玲[5]分析,懂计算机技术的人不懂医药知识,了解医药知识的人在计算机技术方面没有深入研究,原因在于计算机专业教学内容和医药行业的需求无法真正结合。应该将计算机专业的教学和医药行业的具体应用有机结合起来,培养出具备医药学背景知识的计算机类复合型人才。孙燕[6]指出医药院校的计算机教学存在不足,并根据教学经验探索了教学内容改革和教学模式改革,促进医药院校的计算机教学不断提高。
本文提出了以项目实践为主导的医药信息技术教学思路,根据医药类院校中计算机专业课程融入项目实践的效果分析,总结出要精选实训项目,同时根据计算机技术和医药学科特性进行项目实训,为医药类院校信息技术教学提供参考。
本文第二部分描述了医药类院校计算机专业开展实训课程意义,第三部分是医药类院校计算机专业实训课程探索,第四部分是结论。
2 医药类院校计算机专业开展实训课程意义
智慧医疗越来越受到关注,它利用先进的物联网和信息技g,通过打造健康医疗信息服务平台,让患者与医务工作者和医疗机构进行有效沟通,提高医疗管理水平和服务水平。2015年最火热的一个词语是“互联网+”,该词语出现之前,互联网医疗领域就已经炙手可热。阿里巴巴集团和阿里健康信息技术有限公司达成合作意向,康恩贝以2.33亿元收购浙江珍诚医药4230万股股份,收购完成后将控股珍诚医药,意味着康恩贝全面入局医药电商。这充分说明医药+信息技术将会越来越重要。所以,探索以项目实践为主导的医药信息技术课程教学体系,构建理论和实践结合的课程教学模式,加强对医药信息技术方向学生的动手能力培养,提高他们的操作能力和项目实战能力,意义深远。
医药类院校计算机专业开展实训课程意义重大。计算机专业对学生的实际动手能力要求高,需要多实践。学生的课程比较分散,学完程序设计语言,数据结构,数据库等课程后,不一定明白各门课程的搭配使用。理论知识学完后,需要进行大量的实践,通过实训项目进行锻炼,提高灵活运用知识的能力。在项目实训教学时,学生参与实训项目进行实践,通过实践来深刻理解书本理论知识。学生在进行项目实训时,首先是划分成小组,选择适合小组水平的具体实训项目,根据实训项目的要求,学生进行可行性分析,需求分析,总体设计,详细设计,实施,把书上的原理运用到项目实训中,学生们的分析能力、解决问题能力得到提高。实训项目培养学生们团队合作意识,相互合作完成更大的任务。每个实训项目以组为单位完成实训具体任务,组员之间相互学习、扬长避短,共同提高。
3 医药类院校计算机专业实训课程探索
医药类院校在培养医药知识与计算机技术的复合人才时,需要精选实训项目,既要满足社会实际需求,又要兼顾学生们的实际水平。例如浙江中医药大学计算机专业依托学校医药背景,在医院门诊和住院系统、医疗仪器软件开发、和移动手机应用项目等方向展开项目实训,形成了与理论教学配套的课内实验、项目实践、毕业实习和毕业设计等实践教学体系。
第一,通过网络资料搜集、医院调研和医药企业走访的形式,搜集医药类信息技术实践项目资源,并加工成适合学生水平的实践项目库。经过综合评估,遴选出20个实践项目: 医院住院信息管理系统,医院门诊信息管理系统,挂号预约管理系统,中医临床诊疗支持系统,临床路径设计系统,健康养生微信平台,药店管理系统,基于手机二维码的诊疗信息系统,健康随手记移动软件,医院信息系统,方剂分析系统,高血脂症自测试及食疗系统,药品采购管理系统,导医咨询系统,医院门诊叫号系统,电子病历和健康分析系统,常见病辅助食疗系统,药物相关作用分析系统,在线问诊手机软件,医药知识大百科系统,每个项目都有简介,需要掌握的技能,难度等级,便于学生参考选择。
第二,合理评估参与项目实践的学生水平,为他们的项目实践制定科学的实训计划,让他们对项目实训充满兴趣,并能有效提高实际动手能力。
例如,某班级选择了医院信息系统的实践项目。指导老师会评估该班级学生的实际能力,指导他们评选项目经理、选出技术总监,以4-5 名学生为一组,每个小组完成医院信息系统一个子功能模块,然后集成为医院信息系统。学生们从软件可行性分析、软件需求分析、软件概要设计、软件详细设计、软件编码、软件测试以及软件文档书写等体验了医院信息系统项目开发过程,
第三.对参与项目实践的学生成果进行评测和点评,使得项目实践效果更优。医院信息系统开发完成后,需要进行成果演示和答辩,由3位相关课程老师组成评委进行点评和分析,并给出合理建议。学生们体验了软件开发过程,同时也培养了团队合作精神,项目实战能力大大提高。当学生们完成项目要求内容并进行演示和答辩后,取得老师的肯定,也激发了学生们学习热情。
4 结论
本文提出了以项目实践为主导的医药信息技术教学思路,根据医药类院校中计算机专业课程融入项目实践的效果分析,总结出要精选实训项目,同时根据计算机技术和医药学科特性进行项目实训,为医药类院校信息技术教学提供参考。实训课程设置和实践项目的选择还有需要改进的地方,例如需要根据社会实际需求经常更新实训项目内容,κ笛迪钅拷行分类评估等。
参考文献:
[1] 马亮,王海舜,李文胜. 中医院校计算机专业实训课程改革研究[J]. 浙江中医药大学学报,2014,38(4):481-483.
[2] 沈俊辉,马星光, 刘仁权.中医药院校计算机教学改革的探索与实践[J].环球中医药, 2010(2).
[3] 闫朝升,李丹,李巍巍,等.高等中医药院校计算机基础教育课程体系改革的探讨[J].齐齐哈尔医学院学报, 2009(4).
[4] 郭凤英,韩爱庆,张未未,等. 高等中医药院校计算机课程改革的思考[J].中国教育技术装备, 2013(3).
摘 要:本文提出了一种全新的软件项目开发综合实训模式,该模式以实际项目贯穿始终,以软件工程思想贯穿全线,围绕学生完成一系列递进的典型工作任务来组织实训内容,覆盖不同课程串联不同知识。该模式是工作过程导向在软件技术实训教学上的运用,对当今高职院校进行课程改革具有重要的参考价值。
关键词:工作过程导向;学习情境;典型工作任务;项目开发;综合实训
中图分类号:G642 文献标识码:B
1 实训教学的现状和对策
我院的软件技术Java开发方向主干课程的设置包括:“Java程序设计”、“数据库基础及应用”、“JSP程序设计”、“UML基础与Rose建模”、“软件工程”、“软件测试”、“J2EE技术”。在每门课程的最后阶段都安排了课程实训,在此过程中,学生以个体或小组形式完成一个相对真实的工作任务。课程实训可以训练学生将该课程中不同的知识和技能串联起来,加以综合应用解决实际问题。由于各门课程相对独立,即使完成以上所有课程的课程实训,学生还是难以参与软件开发的全过程,难以获得对开发过程的整体把握。即使进入专业学习结束后的毕业设计阶段,由于毕业设计教学环节与大学生毕业就业成为近年来我国高校的一个非常突出的矛盾,尤其是高职高专院校的毕业生面临着严峻的就业形势,许多学生在最后一个学期几乎都在外出找工作,提前就业上岗。高职高专院校本来就学制短,毕业设计教学环节形同虚设,严重影响了正常毕业设计教学环节的实施和毕业生的水平。
在近几年的专业建设和课程改革中,我们越来越认识到培养学生的软件开发能力、团队合作能力、工程应用能力的重要性。为此,我们专门针对高年级学生设计和开发了工作过程导向的、具有专业总结和综合性质的项目开发综合实训,通过项目实践开阔学生视野,锻炼学生的团队意识和工程意识,全面培养学生的职业素养和工程应用能力。
2 基于工作过程的高职软件项目开发综合实训设计思路
基于工作过程的高职软件项目开发综合实训设计思路包含“两个贯穿一个分解一个覆盖”:即“工程项目贯穿”、“软件工程思想贯穿”、“典型工作任务分解”和“不同课程覆盖”。
2.1 工程项目贯穿
“工程项目贯穿”,即以一个工程项目全线贯穿于整个实训过程,学生从步入实训基地开始接受项目,到最后提交一个按照操作程序、操作规范完成的,满足一定质量标准的开发成果。在确定项目时,应该把握好以下两个原则:
第一,实训项目应具有一定的应用价值和实际意义。实训项目最好以实际项目为背景,或者直接就是从实际项目提炼而来,与企业实际生产过程或现实商业经营活动有直接的关系。这样的项目能培养学生的实战经验,极大地激发学生的积极性。但是要注意,业务流程太专业太复杂的项目不适于拿来作为全程的实训项目,因为这类项目在前期的业务分析和理解上将耗费太多的时间和精力,不利于后续工作的展开。
第二,要根据教学内容和专业培养目标确定项目内容与项目难度。高职软件技术Java开发方向旨在为社会输送合格的熟练的Java程序员,而J2EE编程是Java程序员追求的最高目标,所以我们确定的实训项目具有总结性和综合性,并具有一定的挑战性。经过前导课程“J2EE技术”的学习和实践,学生已经具备了用Servlet+JSP+JaveBean (EJB)或struts框架来实现MVC架构的能力,在实训项目中我们鼓励学生整合Struts、Hibernate和Spring三个框架,综合运用J2EE的组件、框架开发技术,开发一个满足J2EE架构的多层的企业应用。
2.2 软件工程思想贯穿
在传统的“软件工程”教学中,软件工程是一门独立的理论性较强的课程,学生们缺乏实战经验,难以在参与软件开发的全过程中获得感性体会,理解软件工程的精髓。
为了培养软件工程意识,使工程化思想成为学生从事软件开发工作的行动指南,我们将软件工程思想贯穿于整个综合实训的始终。综合实训以成熟的软件开发模型为基础,以具有一定应用价值和实际意义的项目为背景,学生以开发团队的形式,按照软件开发流程,在规定的时间点完成指定的任务,经历需求分析、建模、设计、编码、测试、部署的软件工程全过程。综合实训模拟企业运作机制,模拟企业中实际存在的项目压力和工作压力,模拟真实企业开发环境,以项目的进度检查作为监控,以项目开发成果作为最后的考评。学生在实训过程中,都有机会承担项目经理、设计人员、编码人员、测试人员等全部或部分岗位角色的职责,学生的综合能力得到极大的提高。
2.3 典型工作任务分解
典型工作任务是“基于工作过程”实训课程开发的精髓。所谓“任务”就是要求学生做一件事,重要的是,这件事是按实际工作的要求来操作的,包括操作程序、操作规范、质量标准等。学生在完成各项“任务”后,会呈现出不同的“结果”。这个结果是非标准答案的,即每个学生或每个团队的作品可以不一样,对作品的评价不是简单的对与错,而很可能是好与差。而“典型工作任务”能呈现出职业的典型的工作内容和形式,在整个企业的工作大环境里具有重要的功能和意义。
在工作过程导向设计原则的指导下,结合软件行业的岗位需求,通过分析完成软件开发需要完成哪些典型工作任务,我们设计了基于工作过程的实训流程。该流程以一个软件项目贯穿始终,将整个软件开发过程分解为一系列递进的实训情境,在每个实训情境要求学生完成一个独立的工作任务,完成所有的实训情境就完成了整个软件项目的开发。
基于工作过程的项目开发综合实训流程如图1所示,整个实训由递进的6个实训情境构成(水平方向),它们对应的工作任务依次为“需求分析”、“搭建开发环境”、“设计”、“编码”、“集成和测试”、“项目部署”。垂直方向则反映了为完成某项工作任务所采取的步骤和要提交的工作成果。
图1 基于工作过程的软件项目开发综合实训流程
2.4 不同课程覆盖
按照工作过程导向设计原则,将整个软件开发过程分解为递进的6个实训情境,每个实训情境覆盖了不同的课程内容。表1列出了每个实训情境对七门主干课程的覆盖情况,可以看到,它彻底地克服了传统的课程体系只重视每门课程自身的实验,缺乏覆盖不同课程,串联不同知识和技能的综合性实验的重大缺陷,它使得相对独立的各门课程整合在一起,使整个实训成为一个有机的整体。这样的训练能使学生将以前的所学融会贯通,能有效地培养学生的综合应用能力和创新能力。
3 基于工作过程的高职软件项目开发综合实训的实施
3.1 实训项目举例
依照确定项目的两个原则,我们把为我院开发“教学资源管理系统”定为综合实训的第一个项目,要求运用Struts、Hibernate和Spring三个框架,开发一个满足J2EE架构的多层的企业应用。
该项目的业务需求是“主要完成对多媒体课件和各种多媒体素材资源的管理,方便对各种电子教学资源进行分类维护,包括浏览,查询,下载;为教师提供一个方便快捷的课件渠道,把制作的课件或搜集的素材上载到该系统,实现资源共享。本系统分三级用户:系统管理员,教师用户、普通用户(包括学生);包括以下四个方面的功能:普通用户资源浏览和下载;普通用户资源检索;教师用户资源上载;管理员系统维护”。
项目开始时,教师只给出较为粗略的业务需求,给学生留有足够的发挥空间。因为“教学资源管理系统”就是为学生和教师服务,非常贴近学生的学习生活,理解起来没有任何障碍。至于界面做到什么样子,功能做到何种程度,留给学生在撰写详细的需求分析报告时去确定,教师需要把关的是工作量和技术难度,不能太简单而达不到实训的效果,也不能太难无法实现而挫伤学生的积极性。
3.2 实训组织方式
实训采用4个人一组,每人负责一个方面的功能开发,每组设一个项目组长,项目组长除负责一个方面的功能模块开发外,还负责各模块集成。由项目组共同提交一份需求分析报告。个人一旦选择某方面的功能开发,就要全权负责该部分的设计、编码和单元测试。此外,在测试情境中,开发小组进行角色转换,变成测试小组,选择别的小组开发的软件进行测试。
3.3 实训进度安排和任务要求
本综合实训历时一个月,共72学时(4周*18课时),进度安排如表2所示,各院校可根据自己的情况作适当调整或根据需要增加学时。下面是每个情境的具体步骤、任务要求的详细描述。
3.3.1 情境1:需求分析
本情境的典型工作任务是撰写详细的需求分析报告。
(1) 首先老师对实训项目提出业务需求,讲解应用的环境、功能要求、技术要求以及实训组织方式。
(2) 实训小组组成,组合出每个小组的成员,选出项目小组长。
(3) 每个小组对功能模块分工分配,确定每个人所承担的功能模块。
(4) 各小组讨论需求分析,每个人撰写模块的详细需求分析报告。
本情境结束后,要完成以下任务:
老师要汇总出小组划分、成员分工;
项目小组提交一份详细的需求分析报告。
3.3.2 情境2:搭建开发环境
本情境的典型工作任务是搭建J2EE开发环境。我们选择的开发环境为:
操作系统:Windows NT /Windows XP
Java 平台:JDK1.6 以上
服务器:JBOSS 4.0.4
数据库服务器:MySQL 5.0
开发平台:MyEclipse 5.5
建模工具: Rational Rose
单元测试:Junit
功能测试:手工测试
(1) 首先老师对开发环境进行讲解;
(2) 学生在自己的机器上完成以下任务:安装JDK环境、安装JBOSS服务器、安装MySQL服务器、安装MyEclipse集成开发工具、安装Rational Rose建模工具、安装Junit。
本情境结束后,要完成以下任务:
1) 学生在自己的机器上完成环境的搭建和测试。
3.3.3 情境3:设计
本情境的典型工作任务是撰写详细设计文档。
(1) 老师对需求分析进行点评,指出其中的问题和修改意见。
(2) 老师以其中某个模块为例,讲解所使用技术和技术线路。
(3) 进行模块设计和数据库库表设计,模块之间接口的定义,数据库中测试数据的准备。
本情境结束后,学生要完成的任务:
对需求分析报告进行修改和完善。
撰写详细设计文档,包括类图和时序图。
详细设计包括以下组件的设计:模型实现类和DAO组件;业务逻辑组件;MVC层组件;表现层组件
撰写数据库表的设计以及测试数据,数据库表设计包括库表名称、字段定义,测试数据以表格的方式形成。
3.3.4 情境4:编码
本情境的典型工作任务是依照设计进行代码编写,以及单元测试。
老师对学生的模块设计和库表设计进行点评,指出其中的问题和修改意见。
在编码过程中,老师要对学生进行指导,帮助解决问题。学生之间应互相配合,及时修正模块设计中的错误。
本情境学生要完成的任务包括:
修订详细模块设计和数据库库表设计;
用测试数据填充数据库;
制定编码进度;
模型实现类和DAO组件的编码和测试;
业务逻辑组件的编码和测试;
MVC层组件的编码和测试;
表现层组件的编码和测试。
3.3.5 情境5:系统集成和测试
本情境的典型工作任务是小组模块集成和功能测试。
(1) 小组成员之间相互配合,完成整个系统的集成。
(2) 选择另一个小组开发的系统,根据他们的需求分析报告,撰写测试用例。
(3) 进行功能测试并提交测试报告。
本情境完成,学生要完成以下任务:
将小组内各成员开发的模块进行系统集成;
选择另一个小组开发的系统撰写测试用例,进行功能测试,并提交测试报告。
3.3.6 情境6:项目
本情境的典型工作任务是部署项目、提交成果。
(1) 学生将实训成果进行演示
(2) 学生提交可以部署的包和按工程组织的源代码
(3) 老师对各个项目小组的成果进行考评。
(4) 老师对整个实训进行点评。
本情境完成,学生要提交以下程序和文档:
源代码和可以部署的包
实训报告
4 新的综合实训模式对教师提出了更高的要求
基于工作过程的高职项目开发综合实训,覆盖面广,综合性和工程实践性强,要求按照软件工程的要求,指导学生进行软件项目开发实训,因而对指导教师的教学素养、主导作用、工程实践经历提出了更高的要求。为此我们组建了一支以具有工程实践经验的核心教师为首,由各科任课教师组成的教师团队。进入实训项目的教师必须首先对项目本身有足够的认识和理解,并且亲自做过,才能在其参与指导的实训情境中指导学生完成该情境所指定的典型工作任务。而核心教师经历过企业软件开发项目的全过程,熟悉软件开发项目的管理过程,熟悉软件开发程序的设计规范、调试过程、软件质量测试方法,以“项目经理”的身份指导学生进行软件开发实训,其关键作用是不可置疑的。
同时,新的综合实训模式必须有新的教学观念、讲授模式和管理模式。在实训过程中绝对不能再是“教师讲授学生听”,而是以学生为主体,以任务为驱动,教师重点放在讲解每个任务的需求,完成该任务所要采用的知识、方法、工具和步骤,然后由学生自己进行分析、建立问题模型,自己掌握开发的进程。教师则更象一位项目经理,控制项目进度,评定软件质量。
5 结束语
基于工作过程的高职项目开发综合实训,是一种全新的软件项目开发综合实训模式。该模式以工程项目贯穿始终,以软件工程思想贯穿全线,围绕学生完成一系列递进的典型工作任务来组织实训内容,覆盖不同课程串联不同知识。该模式是工作过程导向在软件技术实训教学上的运用,对当今高职院校进行课程改革具有重要的参考价值,同时对指导教师提出了更高的要求。
参考文献
关键词:毕业实践;软件实训;大学生就业
中图分类号:G642 文献标识码:B
1引言
当前高校普遍采用“3+1”模式教学,目的是提高大学生的实践能力,让大学生通过实习提高实践和动手能力,以达到企业需要的实际应用能力。但据我们这几年的实际调研发现,绝大部分软件专业毕业生由于知识和实践技能不足,无法找到合适的实习岗位,而软件公司基本不愿意花费人力物力培训大学生,而是需要有工作经验的人能立即进入工作状态,为公司创造效益。
在将近八个月的毕业实践期间内,部分同学由于找不到实习单位,无所事事,荒废了提高自己的关键时机,将所学的专业知识也忘得所剩无几。另一部分同学在无法找到合适实习单位的情况下,选择参加各种培训机构,而往往项目实际开发能力的提高也十分有限,实际效果与宣传相差太远。
如何真正解决以上问题,是我们义不容辞的责任。我们学院专门成立了工程实践中心,从财政预算上向实践教学倾斜,并下设各个专业的工程实践中心,高薪聘请在公司工作多年资深的工程技术专家担任实践中心负责人,实行科学教育和工程教育并重的教学理念。
2问题的分析和解决对策
软件大学生无法成功就业的根本原因就是欠缺实际开发项目的能力,再加上基本理论知识掌握得不够扎实,就无法通过企业的第一轮笔试关,即使通过笔试,在第二轮面试中,因为没有熟练的项目实际开发和解决问题的能力,无法回答企业技术主管的各种实际问题,最终难免被淘汰。
学院充分认识到毕业实践在本科生培养中的重要性,专门成立了学院工程实践中心,全面负责大学生实际能力的培养,在加强平时实验和专业实践教学的基础上着重改革毕业实践,校企合作,打造真正的毕业实践基地。
以软件工程实践中心为例,在毕业实践设计环节上进行了全面的改革和创新。专门安排八个月的毕业实训环节、利用大连软件外包城市的有力条件、与多家知名软件公司合作,成立了校内软件开发实训中心,在实训课程体系、实训项目选择、过程管理等方面完全模拟软件公司的实际工作环境和氛围,高薪聘任著名的系统架构师、项目经理担任实训负责人,按照企业的要求培养毕业生,对全院毕业生开放,自由选择实训方向(目前提供J2EE、、嵌入式、数据库管理),全程免费。刚开始时,学生倾向校外培训,报名人数较少,现在由于效果显著,知名度不断提高,选择在校内实训中心实习的学生越来越多。
3毕业实践内容体系建设
软件专业毕业生不能满足企业需求的首个原因是所学知识落后于企业使用的最新知识和技能。据我们调查,大连高校软件专业方向课在Java方向只讲授到J2EE基础,甚至有的只简单讲授了JSP,而企业已经全面使用了SSHA和RIA软件开发框架体系。学生面试时被问起是否使用Struts、Hibernate、Spring和AJAX时,头脑中简直没有这些概念,使用经验更无从谈起。
在实训课程体系设计中,我们全面采用与企业衔接的最新软件技术和架构,如Struts2、Spring、Hibernate、AJAX(熟称SSHA)、SOA技术(Web Servie, SOAP, UDDI),尤其是最近两年逐渐兴起的WEB2.0、RIA开发技术,如DWR、DOJO、EXT JS和Flex等以及整合服务器端技术和客户端技术的方法,这些已基本超越大连绝大多数培训机构的内容,使我们的学生站在了软件开发技术的前沿。
实训软件平台全面采用企业最流行的产品,如数据库使用Oracle、MySQL、DB2等,应用服务器使用JBoss、WebLogic、WebSphere、GlassFish和Tomcat。开发工具选择大多数企业普遍使用的Eclipse、MyEclipse、NetBean、JDeveloper等开源产品。
毕业实践中,学习和掌握这些最新的技术和框架与课堂学习有所不同,我们是在项目开发过程中边学边练边使用,重在自学,重在应用,每个技术都在项目中大量使用,保证同学们都能熟练精通。由于反复使用这些技术,同学们不像理论学习那样容易遗忘,他们基本能在不参考资料的情况下熟练编写相应的软件代码,这正是企业技术人员必备的基本能力之一。
4实践项目的选择和开发策略
以往毕业实践的课题都是学生成绩管理、图书管理、在线购物等简单应用项目,脱离企业实际,应用范围窄,实用价值小。
我们的毕业实践选题是针对大多数软件公司的热点应用领域,选择已开发完毕的实际项目来开发,实用性强,开发工作量大,能真正锻炼学生的软件开发能力和业务分析能力。经过认真筛选,确定了办公自动化(OA)、通用进销存、CRM、简化ERP、连锁店经营管理、物流配送管理等几个实际项目,学生们在开发过程中参观了实际企业的运作,如物流公司、服装连锁店等,实地了解软件在具体业务中的使用流程。
我们也利用各种渠道与各行业企业联系,免费为企业开发应用软件,企业也愿意与我们合作,因为不用支付昂贵的开发费用。如我们为大连今冶机械有限公司开发了外贸CRM管理系统,由项目经理带领15个实训同学,开发为期14个月,已经投入试运行,取得了企业的信任。今年初与大连北市汽车配件城合作开发大连汽车配件网,其他项目也在进一步的洽谈中。同时学院自己的所有项目完全由实践中心自主开发,目的就是锻炼学生,实现学院的无纸化办公。
在开发策略上,所有项目采用团队开发模式,每10~15人为一组,独立承担项目的分析设计和编程工作。在团队开发软件过程中,学生的团队合作能力、沟通和交流能力、工作的分配和调节能力、工作目标的确认和跟踪能力得到提高,这些是合格员工必需的,也恰恰是公司最看重而学生较欠缺的能力。在软件开发过程中,项目经理不断针对实际问题言传身教,讲解合作的策略、沟通的技巧,学生在潜移默化中提高了这些能力。
熟练运用软件团队开发工具也是软件工程师必须具备的能力之一,这在理论教学中涉及很少,学生欠缺较明显。在实训项目开发中,全面使用企业流行的团队开发工具产品,如CVS、Subvision、VSS等,所有学生都熟练掌握这些工具的使用,完成了项目的共享、更新、提交和版本管理等,为将来到软件公司工作打下了良好的基础。
5毕业实践过程管理体系
管理出效益。没有严格的管理,即使知识体系再先进,也无法保证每个开发小组都能按计划完成各自的开发任务。现在的大学生虽然对新知识渴望,对新技术兴趣浓厚,但做事普遍比较散漫,缺乏责任心,随意性严重,这些都是工作中的大忌,不及早改正这些不良习惯和作风,必将在今后的工作中酿成大错。
我们在实训过程中完全实行公司化管理,为每个准员工配备工作卡,上下班使用电子指纹打卡器打卡,杜绝代考勤,将之与学分进行挂钩,违反纪律就得不到相应的学分,严重的延缓毕业,甚至得不到学位证书。
项目经理为每个小组制定详尽的日、周、月开发计划和进度,每个小组长对经理负责。每天小组开会,总结项目遇到的问题,并布置开发任务,每个人都要求仔细填写每日工作记录表,并汇总遇到的问题。每周由项目经理召开总结会议,小组长汇报各自小组的开发进度、遇到的问题、解决方案、新思路新建议,并形成标准报告。这些环节和措施极大地锻炼了学生分析问题、解决问题、独立钻研、工作总结、语言表达等综合能力,而这些技能是在课堂教学中无法学习和掌握的,必须在长时间的工作实践中才能领悟并潜移默化地掌握。
质量是产品的生命。当今软件系统因为功能复杂,系统结构庞大,团队开发,客户要求高,开发时间短,因此对质量的要求更加严格。软件公司普遍成立了QA部门,专门负责软件测试、质量评估,对系统中的Bug进行检测。而在校学生普遍缺乏质量意识,为提高进度和工作量,编写的软件稳定性极差,初期阶段对此根本不介意,这也是历届实训在开始阶段一定会遇到的问题。
在软件实训中,专门强化学生对软件质量的责任感。项目经理和QA成员每天对各小组的项目进行测试,每周编写测试报告,统计Bug出现率,并进行学分扣除,每周召开质量会议,不断地灌输质量意识,提高每个学生对质量的重视程度。在项目的考核中,也把软件质量作为第一指标,加大质量在考核中的份额。经过长时间的教育、引导、督促和考核,到实训结束时,每个同学的质量意识都有了质的飞跃,有可能影响他们的一生。
软件成功部署后,所有开发小组召开项目总结大会,对开发项目进行综合评比,从文档编写、架构设计、代码规范、团队合作等方面进行全面考核,每个成员编写项目开发报告,总结在实训中的经验和教训、成功与不足。从每个同学发自内心的报告和发言中,我们真切地感受到他们确实成长了,稳重了,成熟了,责任心强了,经验丰富了。
6改革成果和思考
经过我们精心打造的毕业生,得到了软件公司的青睐,每期实训生近70%能进入软件公司工作,其中20%能进入较知名的软件公司,这在目前经济危机企业普遍减少用人数量的情况下是难能可贵的。用人单位普遍反映这些学生知识和技能娴熟,到企业能很快适应,在质量意识、团队合作、做事认真、工作细致、责任心强等诸多方面都符合企业的要求,有几名同学刚工作1~2年就成为公司的主力,这些都说明我们的培养模式是正确的。
模拟软件公司不如真正的软件公司,我们计划成立软件开发公司,以零利润接揽实际的国内和外包软件项目。因为面临无法按时交付受处罚的风险,强迫我们更要有强烈的责任意识,这是模拟软件项目永远达不到的。我们已经和多家软件公司接洽了很长时间,他们也非常愿意把合作初期的非关键项目外包给我们,为他们节省巨大成本,同时锻炼毕业生的能力。
近三年毕业实践环节的改革和创新证明,加强毕业实践对提高大学生就业起着非常关键的作用。大学生经过系统的毕业实践锻炼,自信心大大增强,就业竞争力提高迅速,能迅速地适应企业的要求,融入到实际项目开发中。
参考文献:
[1] 龚威,王赢,谢媛媛. 科学与工程教育并重的新型IT人才培养模式[J]. 计算机教育,2009(9):136-138.
[2] 赵国冬. 实验创新与大学生创新能力的培养[J]. 计算机教育,2009(9):30-31.
[4] 刘书勇,张国印,武俊鹏. 创新型人才培养体系研究与实践[J]. 计算机教育,2009(8):14-16.
[5] 邱钦伦. 对软件企业招聘应届毕业生的思考[J]. 计算机教育,2009(9):23-25.
[6] 马润成. 计算机专业大学生供需现状、就业形势和工作对策[J]. 计算机教育,2005(10):68-70.
关键词:软件外包服务;课程体系;软件专业;高职;工作过程
文章编号:1672-5913(2010)08-0064-04
中图分类号:G642
文献标识码:A
随着信息技术的日新月异,传统的以知识传授为主要特征的学科课程模式已不能适应社会的需求。一方面软件多层次高质量人才匮乏,另一方面软件专业毕业生面临极大就业压力,相当一部分学生无法在软件企业找到合适工作岗位。通过仔细分析发现,问题出现在目前既有的软件人才培养目标、方向、模式与软件行业各岗位对人才的职业能力需求存在偏差,而引起偏差的原因又直接是软件专业课程体系的设置不能满足软件企业对具体岗位人才的知识素养与职业能力的需求。怎样才能培养满足市场需要的软件人才,尤其是急需的中低端软件蓝领,结论是必须采取多种途径,“举校企合作之旗、走工学结合之路”,最终必然要颠覆传统的软件课程体系,重新构建以工作过程为导向的软件专业课程体系。
1 校企合作,开展软件外包服务
1,1目的和意义
“举校企合作之旗、走工学结合之路”是高等职业教育深化改革的方向,对推进高职院校人才培养模式的改革起到关键作用。现有研究主要集中于实训基地建设、订单式培养、师资队伍建设等方面。本文借鉴国外工学结合培养模式的成功经验,结合我市高职软件专业教学改革与发展的实际情况,以校企合作开展软件外包服务为切入点,研究和促进软件专业工学结合课程体系的建设。该研究有助于从根本上解决软件教学理论与企业需求脱节问题,开辟校企合作的新空间,从根本上提高软件教学与软件人才的质量培养。
1,2载体
采用校企共建方式,组建软件外包工作室,学校提供专门的场所并配置专用硬件设备,在与企业签订保密协议和知识产权归属协议的框架下,从企业引入软件开发平台、软件开发规范和各种软件开发文档,即软件生产线,实现与企业的资源共享,开展工学结合的培养模式改革,分步实施,逐渐完善,以达到构建基于工作任务为中心的软件课程体系的目的。
1,3管理
1,3,1组织机构及工作职责
采用分层分组管理的组织结构,学校负责场地、设备等资产管理和校企合作事宜,系部负责中心日常运作和学生的选拔,外包服务中心负责学生的组织,将学生分成若干项目组,一个项目组承担一个项目的开发,项目经理由教师和企业技术人员共同组成。教师负责项目组织、实施与管理、主要的技术开发、协调企业技术人员;企业技术人员负责进行项目管理和业务指导。
1,3,2学生成员选拔与考核
项目团队中学生成员主要从软件专业二年级学生中选拔,参考其一年级的专业成绩,经考核后进入候选库。项目经理根据项目要求,从候选库中选择合适的学生组建项目团队,对学生进行开发规范和基本素质的培训,然后投入到项目开发的工作中。项目经理再根据其开发工作量、技能水平、职业素质等,每学期为每个学生成员评定一次成绩。对一些综合素质较高、责任心较强的团队成员,经过严格筛选后推荐到企业实习。
2 基于工作过程的软件课程体系构建过程
通过软件外包中心业务的开展,分析软件企业实际的工作过程,根据工作过程深入企业调研,有针对性地了解高职学生能胜任的职业岗位以及岗位所对应的工作任务和职业能力,与企业技术专家共同制定课程体系。具体过程如下。
2,1学生胜任的职业岗位群及实际工作过程分析
在我院软件外包中心成立之初,计算机系即与重庆港澳大家软件有限公司、重庆亚德科技股份有限公司等几家软件公司签订合作保密协议,开展外包业务。首先由公司的项目经理为软件外包中心的老师和学生提供开发平台,然后提出具体的开发项目,外包中心老师和学生在公司技术人员的指导下,按照给出的项目需求说明书进行项目的概要设计与详细设计,然后进行编码,分模块进行测试。在完成几个具体的外包项目之后,学生逐渐了解了企业的实际工作过程,即需求分析-设计-编码-测试-维护。但经过仔细地分析、归纳与总结,结论是:高职学生所能胜任的是计算机软件测试与研发岗位群,能具体参与的工作过程为设计-编码-测试-维护。
2,2学生胜任职业岗位及企业需求量分析
在确定了高职学生能胜任的计算机软件测试与研发岗位群后,组建项目调研小组,通过调查问卷、与企业技术专家交谈、电话访问等方式走访30余家企业单位,对毕业生初次就业岗位、毕业生一年内岗位变动情况、岗位群工作任务、岗位群工作任务评价体系等进行调研,结论是:计算机软件专业学生在企业能胜任的职业岗位需求比例如下:软件技术文员占5%,Web软件程序员占40%,工业控制软件程序员占30%,软件产品测试员占20%,其他岗位占5%。
2,3学生胜任职业岗位群典型工作任务分析
在分析企业调研结果后,我院计算机系曾先后召开软件核心课程研讨会,与企业专家共同探讨各职业岗位的典型工作任务,具体如下。
(1)软件技术文员:
使用Windows操作系统、使用互联网、绘制图形、编写软件文档。
(2)Web程序员:软件需求分析、网站规划、网站脚本编写、网页与数据库关联。
(3)工业控制软件程序员:软件需求分析、应用组态软件、开发高级串口通讯、开发TCP/IP通讯、二次开发CAD矿图、二次开发综合布线施工图。
(4)软件产品测试员:单元测试、集成测试、确认测试、编写测试报告。
3
基于工作过程的软件课程体系构建内容
根据各职业岗位的典型工作任务,分析、论证、归纳软件测试与研发岗位群的可行动领域,并转化配置为专业学习领域的课程(以软件产品测试员为例,专业学习领域的构建过程见表1)。并对学习领域课程进行难度范围分类,重构专业学习领域的课程框架。具体的课程体系见表2。
4 基于工作过程的课程体系的特点
(1)新的课程体系主要体现了以.Net为主,Java为辅的设计思路。
(2)新的课程体系体现了高职教育中岗证结合的理念。为配合学生参加程序员资格考试,在第3学期的前半段特开设了“程序基础应用”与“数据结构实现”两门课。
(3)第2、3、4学期采用分段学习的方法,目的是让学生围绕具体的项目展开课程学习,在项目实习中消化巩固学过的知识,学以致用。
(4)第5学期的课程是按照国家信息化带动工业化进程的需求,将信息技术与其他行业技术的综合,扩大就业面,提高职业能力。
(5)新的课程体系是学习新加坡职教经验,变学知识为学做事,每半学期集中学习做一件事,课程开设与项目实习配合,学完以后立即通过项目实习让学生把所学技能运用于实际工程项目。
(6)新的课程体系体现以“基于工作过程系统化”作为课程体系设计总体思路。