前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的软件开发工程师主题范文,仅供参考,欢迎阅读并收藏。
【关键词】 软件工程技术;工程方法;软件复用;软件构件;软件生产线
0 引言
在软件工程技术的选择中,软件复用曾是一个技术性的难题,困扰着软件工程的发展。经过近年来的努力,该技术不断实现突破,为工业化生产提供了依据和支持。但在生产实践中,其应用与理论研究还存在一定的差异,还需要进一步研究。本文将进行软件工程方法、构件技术、生产线技术的探究,分析软件工程技术领域的新问题、新发展。
1 软件工程方法
1.1 面向过程的软件工程方法
面向过程的软件工程方法是现代工程方法中一种较为传统的工程方法,运用了结构化的分析、设计、程序开发技术,采用数据流图作为功能模型的建模工具,具有较强的可读性和维护性,并且在软件的开发设计过程中根据工作性质的不同分阶段开发。
面向过程的软件工程方法在软件的开发过程中,需要进行七个阶段的研究。第一是问题定义,即根据实际情况确定好系统的性质、规模、需要达到什么样的目标、实现什么样的状态。第二是可行性研究,通过经济、技术、社会效益、法律、操作实况等方面分析该次开发是否可行,如果不可行存在哪些问题需要改进;如果可行制定详细的项目开发技术并预测风险及解决方案。第三是需求分析,该阶段需要通过数据流程图建立模型并分析所建系统的功能。第四是总体设计阶段,根据分析阶段的模型分析结果映射成软件的结构图,进行总体结构方案的设计。第五是详细的设计阶段,需要为每个软件的模块设计界面和算法。第六个阶段为将算法转化为源代码即进行编码。第七个阶段为对系统进行全面的测试工作,包括单元、集成、确认、系统测试。
1.2 面向对象的软件工程方法
面向对象的软件工程方法是一种现代的软件工程方法,分析的基本单位为对象,将问题中的物理实体或者概念进一步抽象为具有属性和方法的对象,并将类似的对象抽象为一类,利用继承关系,通过面向对象的分析、设计、信息交流,实现该技术。在软件的开发过程中,通过对象模型、功能模型、动态模型的建立,实现各方面的需求,其中的动态模型一般通过活动图、时序图、状态图来实现;然后通过系统高层结构的建立,进行不同包的归类并定义存储方式,接着确定不同类中的服务和关联实现的算法,最后利用程序编码实现。该种方法在软件的开发过程中可以实现光滑平稳过渡,能够进行无缝连接,通过活动图可以实现算法及连接。
2 软件工程技术的发展趋势
2.1 软件复用与软件构件
目前,软件工程领域的研究重点主要集中于软件复用和软件构件方面,构件是软件技术的基础和核心,而复用是软件开发的方法与手段,软件的复用可以促使开发技术人员摆脱手写代码的低效工作模式,进行高层次的搭构件的开发与应用,是实现软件工程工业化和规模化生产的基础与保证。
开发工具的创新是软件构件化的重要支撑,构件和构架的描述、构件库的管理、可重用构件和构架的获取等方面的问题成为关注的热点。在软件体系结构中主要使用的模型为Kruchten 提出的“4+1”模型 、COM/COM+模型、EJB模型,主要采用UML建模支持工具,构建的组装方式主要有对象、接口、插头插座、面向连接等。基于复用软件的新工具开发成为了国际软件开发的新时尚,为规模化发展提供了技术动力和良好的成长环境。
建立不同层次的中间件平台是对软件重用的重要支撑,是构建技术现实化的重要体现。软件在中间平台上被抽象、隔离后才会成为构件,因此对软件复用和软件构建中具有重要影响。中间件丢弃了业务逻辑的细节,通过对应用式分布的抽象实现协同工作,其开发设计以提高良好的运行环境为依托,面向需求,屏蔽多样的系统资源,实现通用服务。制定中间件的工业化标准促进了构件的应用开发,构件指引了中间件产品的新发展,二者相辅相成促进软件产业链的发展。
标准化是软件行业发展的必要条件和基础,软件标准和软件过程标准是标准化的两个重要方面,其是否完善直接关系着软件工程的成熟与否。目前应用的两大标准框架分别是由国际标准化组织和美国国防部提出的,通过软件的一些必要标准来支持工程中的离散活动和连续活动。而我国的标准化进程较为缓慢,需要密切关注国内外制定规范,制定适合我国国情的软件工程标准,其发展趋势为基于软件周期的标准化包括开发流程、开发环境、专用工具系统的标准化。进一步实现构件技术准化和生产标准化,将为软件工程的推进提供技术依据。
2.2 软件产品线
软件产品线是软件企业进行软件复用的一种重要手段,可以帮助企业进行公共软件库得维护,并在开发过程中实现复用。软件产品线进行软件重用的出发点位体系结构或领域模型,在国内外很多的知名企业都实现了软件生产线的设置,尤其是一些发达国家由于发展较早,技术已经相对较为成熟对,很多的软件公司通过对面向单一软件产品开发系统的扩展,对传统的软件工具和技术进行了创新,实现了软件产品的大规模定制生产,提高了软件系统的可信性,并形成了技术壁垒,提高了公司的核心竞争力。
3 结束语
在软件的开发应用实践中,从工程方法的选择、工程技术的实现到生产实践的形成都发生新的转变。在工程方法选择中,将面向过程的软件工程方法与面向对象的工程方法相互结合,取长补短实现软件开发的技术精湛,软件的可读性和维护性强。在工程技术的选择中,注重构件技术的应用,通过最基本的构件来搭建系统,实现了软件复用,通过中间件和标准化完善软件构件系统,促使软件行业向着工业化、规模化、标准化方向迈进,形成软件产业的良好竞争环境。在生产实践过程中,软件生产线的开发使用,为工业化生产提供了新的技术支撑,改善了体系结构,实现了软件系统的动态行为和结果超预期目标发展的良好势头。软件生产线和构件技术结合是软件工程的重要实践方向,实现软件利用的最大化,是现在振兴软件产业的重要方面,还需要大家的共同努力。
参考文献
[1] 杨芙清.软件工程技术发展思索[J].Journal of Software,2005Vol.16, No.1.
[2] 张海藩.软件工程导论[M].北京:清华大学出版社,2008.
[3] 黄震,顾毓清.一种基于思想的软件分析模型[ J] .计算机工程,2009(1).
作者简介:
近些年,在软件工程领域,软件复用技术已经取得了显著的进步,并成为当今软件行业生产力提升的重要技术手段。本文首先对软件开发中涉及到的基本概念进行了概述,然后介绍了面向过程和面向对象这两种主要的软件开发思想,最后分析了软件工程技术的发展趋势。
【关键词】软件开发 重用 中间件
长期以来,在软件工程领域,包含代码重用、模块复用等在内的软件复用技术由于技术标准不统一、技术难题众多的原因,发展速度十分缓慢。通过最近几年的理论研究和软件工程实践,在该领域已经取得了显著的进展,有力的促进了软件开发的工业化。然而,在实际开发过程中,还存在很多有待进一步研究和解决的问题。本文分析了当今主要使用的软件工程的思想、方法,并归纳了主要存在的问题和可以采取的措施。
1 软件工程思想
1.1 面向过程的软件开发思想
面向过程的软件开发是软件工程领域中的一个重要和传统的思想,该设计和开发思想主要是通过对整个项目进行结构化的规划,基于数据流图,逐步开发每一个功能构件。遵循该思想进行的软件开发一般有较好的阅读性,同时能够在开发过程中灵活的调整工期,划分阶段。
面向过程的软件开发思想将整个开发过程划分为七个环节。第一个环节称为系统分析,即明确整个软件要完成的功能目标和实现的效果。第二个环节是可行性分析,软件开发部门要基于其已有的技术积累、经验,相关的法律、法规,经济利益、社会效益等各个方面的因素,决定该项目是否可行,如果项目具备可行性,则要对项目中存在的风险进行分析和预测。第三个环节是软件需求分析,在该环节要基于数据流程图,形成针对整个系统的需求分析文档。第四个环节是总体设计环节,该环节主要是基于软件需求分析的结果,映射结构图,并进一步形成总体设计方案。第五个环节是详细设计环节,该环节中要对总体设计环节中形成的各个功能进行详细的模块划分,并明确各个模块的功能和相互之间的接口。第六个环节是代码实现环节,即将前面总体设计和详细设计的各个模块通过合适的变成语言实现出来。第七个环节是测试环节,在该环节中,要通过合理的测试方案和测试技术,对整个软件进行各种测试,尽量减少软件当中存在的漏洞。
1.2 面向对象的软件开发思想
面向对象的软件开发思想是近些年被提出来的,随着软件工程项目的日趋复杂和庞大,该思想已经被行业内的软件开发人员广泛接受。该思想的核心是将软件开发过程中涉及到的客观实体或概念通过抽象映射为包含基本数据和功能函数的对象,具有相同属性和方法的对象的集合称为类。考虑到实体或概念之间的共性和差异,面向对象思想引入了继承的概念,实现了代码的重用。在遵循该思想开展的软件开发活动当中,开发人员一般会分析涉及到的实体、概念以及他们之间的关系,进而设计对象、类和抽象、继承关系,最终通过支持面向对象的变成语言来实现项目开发的目标。利用该思想进行软件项目的开发可以有效的提高代码的重用性,支持模块化开发,降低内部代码的耦合性和软件维护的难度。
2 软件工程技术的发展趋势
2.1 软件复用与软件中间件开发
我们知道,随着软件项目规模的不断增大,功能目标日趋复杂,完全的从头开发无疑会效率地下,浪费人力和财力资源。通过软件复用,合理利用以往开发的项目中形成的代码,可以有效的提高开发效率,而软件的中间件开发技术正式软件复用的核心和基础。
在软件的中间件开发技术发展过程中,开发环境、构件库管理技术、架构设计思想等方面的革新是至关重要的因素。目前,国际上对于支持软件复用技术的开发环境的研究和开发已经成为了一个热点问题,该方面取得的进展极大的促进了软件复用的便捷性和易用性。
软件复用的一个重要方面是形成完善的中间件体系。一般来说,中间件不考虑具体的、详细的业务处理方法,只是通过抽象思想保证分布式工作和基本功能、接口的定义。中间件的开发很大程度上依赖一个便捷高效的运行环境。此外,在软件行业发展过程中,要充分重视标准化工作。目前行业中被普遍接受到的两个标准分别石油国际标准化组织和美国提出,我国国内的标准化工作还有待进一步提高,需要我们的不懈努力来共同解决软件复用和中间件的开发。
2.2 软件产品线技术
软件产品线技术一般表现为一个产品不断推出新版本、新功能。通过该技术,能够有效的改善软件维护状态,同时,在产品升级过程中可以有效的利用已有的软件框架和代码,提高开发效率。目前,在国外很多软件公司的产品开发中均采用了该思想,以模块化思想为指导,通过模块化和构件化的形式,形成了完善高效的软件开发技术流程,提高了软件开发的效率和利润。
3 结束语
随着软件项目规模和复杂性的变化,软件开发中的很多技术也在不断出现和创新,在实际的开发过程中应该根据项目特点和自身技术现状,合理选择技术。在现阶段的软件开发过程中,要充分利用构件开发技术、产品线技术、软件复用技术,提高开发效率,不断推动软件产业的标准化和工业化进程。在生产实践过程中,软件生产线的开发使用,为工业化生产提供了新的技术支撑,改善了体系结构,实现了软件系统的动态行为和结果超预期目标发展的良好势头。软件生产线和构件技术结合是软件工程的重要实践方向,实现软件利用的最大化是现在振兴软件产业的重要方面,还需要大家的共同努力。
参考文献
[1]米晨,杜斌.软件开发实践中工程技术的探究[J].信息安全与技术,2013,01:38-39.
[2]罗海丽.不同软件工程方法在软件开发实践中的比较与整合[J].科技资讯,2010,07:29.
[3]王健,程虎.系统软件开发过程中的软件工程技术[J].计算机研究与发展,1996,04:263-271.
面向协作开发的软件配置与变更实验属于我校软件工程专业核心课《软件开发过程实战》,在第6学期开设,该实验是《软件开发过程实战》课程的最重要内容之一。学生在实验中针对真实的项目案例通过分组协作、精心设计以及完整的实践过程,达到深刻理解软件配置与变更管理的概念、熟练掌握相关软件平台与工具、切实增强动手能力与创新意识的目的。该实验连同《软件工程过程》等6门专业核心课程是软件工程专业近年来进行的所有课程、教学方法和考试等改革的中心,自2010年以来得到了教育部、山东省以及学校的一系列教学和实验改革项目的支持,共计十余项。
该实验项目“打破课程界限”、将多门软件工程核心课程知识融入一个完整的实验过程,实现了以课本为中心到以实践为中心的转变,达到了课程指导实践、理论知识在实践中还原的教学效果。该实验从2010年开设以来,已有软件工程专业5界四百多名学生受益,学生的功能实践能力和创新意识得到明显提高,相关学生获得省级以上科技活动奖励四十多项;学生的就业率得到持续提升,从2009年的71.43%提升至2015年的98.7%,且就业层次明显改善。该实验及相关课程建设也得到了教育部相关专家的肯定,认为我们施行的“基于项目的教育与学习”是实现软件人才工程能力培养的重要途径,是高校进行软件工程教学改革发展的基本方向。该实验项目作为《软件开发过程实战》的重要组成部分,在软件工程专业培养方案中具有更加重要的地位,作为提高学生工程实践能力和创新思维的重要实践环节将长期存在。
一、实验构建的目的及意义
通过该面向协作开发的软件配置与变更实验的开设,旨在达到以下主要目标:(1)加深学生对软件配置与变更管理这一软件工程专业重要知识域的理解与掌握,特别是通过实验使学生明确区分并熟练掌握项目区域、时间线、迭代、流、组件、变更等核心概念及其相互之间的逻辑关系;(2)切实增强学生在协作式软件开发过程中对软件配置与变更理论的应用能力,对相关工具平台的熟练操作水平;(3)提高学生的团队合作、团队管理能力,培养学生自主学习、自主设计的能力以及脚踏实地、开拓创新的精神。
该实验项目是我校软件工程系列核心课程的重要实验之一,通过该项目的建设不仅进一步完善实验体系、规范实验流程、提升实验质量,更将形成示范性的精品实验,为本课程其他实验以及类似课程实践环节的建设提供有益的参考与借鉴。
二、实验构建的理念和设计思想
该实验以CDIO工程教育理念为指导,深入贯彻“做中学”原则和“基于项目的教育和学习”方法[1,2]。实验过程把《软件项目管理》、《软件工程过程》、《软件质量工程》以及《软件测试与维护》等4门课程中有关软件配置与变更的知识点融入到一个完整的实践过程中,要求学生在实验中自行设计场景、践行升华理论、增强动手能力[3]并培养协作和创新意识,从而解决了“工程理论来源于实践,在实践中还原”的教学难题。
该实验设计包括一个逐步递进、结构完整的综合实践过程,学生随着实验的深入将逐步接受、运用相关的理论知识,并通过实验总结实现对知识掌握、技术运用的提升,实验方案的主要内容设计包括:(1)软件配置与变更场景设计,每个小组基于各自既定的项目案例,设计能够涵盖所有典型变更流程的场景及规划;(2)软件配置管理过程,依据规划配置开发流和组件、基础代码等资源、团队个人空间和开发任务等;(3)软件变更实施过程,协作完成变更任务开发、代码的交付与接受、检入与检出、冲突及解决等内容;(4)软件配置与变更的监控过程,从团队、成员个人、工作项和工件等角度进行项目的监控;(5)实验总结,撰写实验报告,总结所用知识点及过程状况等。
三、教学方法、手段及考核体系
1.团队协作式实验方式与企业标准化实验流程。实验中以学生意愿为主,组织学生建立了学生项目团队,采取全员参与、角色扮演、协作学习、研论教学、交流共享等多种形式,使学生成为认知的主体、知识的主动建构者。参照企业模式组建的项目团队,以学生自愿为原则,由学生按照4至5人的规模组成;每个学生都参与到团队中,依据个人愿望和能力至少扮演一个团队角色,在重点完成自己的职责任务基础上,进行交流协作,使得每个人最终都达到课程的教学目标。
制定了以企业标准化项目开发过程为主线的标准实验流程,模拟实战开发,实现“以验证实践为中心到以实际项目为中心的转变”。目标是使学生能够在近乎企业真实场景之下,使用行业先进的设计工具、开发环境进行实战训练,系统化、规范化地实施学生工程能力培养。
2.先进的协作式软件交付平台。采用了业界最新的IBM Jazz软件协作交付平台,使得在实验中学生团队不同的角色和工作环节之间,工作任务能够自动流转,工件信息自动传递,工作数据和过程自动记录、自动收集和汇报,全生命周期的可追踪性自动建立。从而使学生实现了软件交付过程中人员、项目、工具和流程的整合。
3.过程化多角度的考核评价体系。实验考核方法综合考虑了学生实验过程的平时表现(通过Jazz平台)、分组答辩和实验报告,过程监控10%+分组答辩*50%+实验报告*40%。其中“过程监控”是通过IBM的Jazz平台进行实时的监控和评分;“分组答辩”是教师给本组一个分数,该组内,由项目经理负责给该组成员打分,组员的平均分不能超过教师给该组打的分数;“实验报告”根据文档的完整性、规范性、系统性进行评分,反馈结果用于暑假小学期的软件项目实训。
四、实验设备和环境建设
实验项目在“IBM软件工程联合实验室”(与IBM共建)开展。近几年,学校在实验室建设方面投入了大量的资金,硬件设施得到了明显改善,完全按照国家相关标准进行建设。软件方面,我们购置了一整套IBM全程体验软件工程最佳实践和协作的Jazz平台来实施基于项目驱动的软件配置与变更实验,包括需求定义工具RRC和需求管理分析工具Doors;软件建模分析工具RSA;测试管理平台RQM、软件功能自动化测试工具RFT、压力测试工具RPT;协作平台RTC。
同时,实验室也非常注重文化和安全制度建设。强调合作与创新,美化实验室的学习环境,突出浓郁的知识探索氛围,培养学生良好的实验习惯等。此外,也明确了所有实验人员的岗位职责,使得实验室安全管理工作有章可循。
五、总结
作为我校软件工程专业核心课《软件开发过程实战》最重要的内容之一,面向协作开发的软件配置与变更实验在提高学生的工程实践能力和创新意识方面起到了重要的作用,该实验主要的创新点有以下几个:
1.一体化实验内容设计、独立的实验实施过程。一方面,本实验项目中进行的软件配置与变更实验内容采用了本课程中一致的项目案例,做到全程一体化设计;另一方面,该项实验又包含了完整的实验环节和过程,具有相对独立性,可单独开设、独立实施;
2.实验方法和形式上,贯彻“基于项目的教学”和“开发驱动的实践”,采用团队式协作开发方式,实现了从以“课本为中心”到“以项目为中心”、以“课堂为中心”到“以项目开发为中心”、以“教师为中心”到“以学生为中心”的转变,激发了学生自主学习和实践的积极主动性,增强了学生的工程实践能力。
3.实验技术和手段上,引入了IBM的最新软件交付平台及配置与变更管理工具,采用Scrum敏捷过程模板和企业标准化的实践流程,体现出较好的先进性和规范性。
关键词:工作过程;软件技术;课程群
中图分类号:G642.3文献标识码:A文章编号:1002-4107(2014)07-0028-02
一、基于工作过程模式的课程群开发的目的
计算机软件行业是朝阳行业,也是知识体系更新最为频繁的一个行业。如何能更好地向学生介绍新知识,跟踪新技术,为学生毕业以后工作、学习打下良好的基础,只有以软件专业课程群改革与构建为抓手。课程已经成为高校人才培养的重要中心环节,课程建设水平在很大程度上已经决定了人才培养的质量与规格。如何在课程教育环节中融入实践因素,将工作与人才培养有效结合,是高校全面提升教学质量的主要突破口。以构建基于工作过程模式的课程群开发为基础,以工作任务分析作为出发点,从实际工作结构中获取课程结构,根据工作任务特点组织课程开发。以软件开发就业岗位能力目标的需求为依据,确定明确、具体的知识目标;以课程目标、岗位工作过程和认知规律为依据,组合课程任务模块,设定课程任务内容、教学项目;以能力训练项目作为课程目标和课程任务内容的载体;以真实的职业岗位活动实例作为训练素材,实现项目任务的职业仿真性;以项目任务为平台,将软件开发的职业能力需求分析、软件开发的职业能力目标、软件开发的知识目标、软件开发课程任务模块、软件开发课程任务内容五个核心要素有机整合,融为一体,构建基于工作过程模式的软件技术专业五位一体任务化专业课程群,最终实现“教学做”三者的有机融合和软件技术人才的合理培养。
二、基于工作过程模式的课程群开发的基本思路
近几年来,黑龙江工业学院软件技术专业与多家软件企业进行联合,根据校企合作的经验,以基于工作过程模式对软件技术专业的课程群进行了重新的构思与设计。构思的整体思路为:以企业实际工作任务为中心,将理论课程、实验课程和实践课程进行有效整合,打破以往传统的以知识传授为主要特征的课程群模式,将模式转换成为以工作任务为中心,将实际项目融入课堂教学中,让学生在完成具体、真实的软件实践项目的环节中,构建相关课程的理论知识体系,并拓展其岗位相关的职业能力,同时训练其相关职业岗位技能。在设置专业核心课程时,要充分考虑到内容要突出对学生职业岗位综合技能的培养,理论知识内容的选取要以完成工作任务所要具备的知识为依据,课程内容的讲解也要融入软件专业相关的职业资格证书考取所对应的知识体系、技术能力和技能的要求,其中任何项目的学习都要以工作过程中的案例为出发点,在教学环节中,要切实通过校企合作、校内外实践、实习基地等多种途径,充分开发学习所需要的各类软、硬件资源,为学生提供模拟企业真实工作环境的实践机会。同时,要按照软件技术专业人才培养的目标,因人、因材施教,制定出符合软件市场需求的教学与实践紧密融合的人才培养方案,要充分保证以能力培养为重点,以技能学习为核心,真正做到体现“基于工作过程模式”的原则。
三、基于工作过程模式的专业核心课程的开发
专业核心课程是指专业人才培养方案中最关键的一系列课程,是学生进行专业技能的培养基础。依据软件技术专业人才培养的工作过程,从实际工作岗位为出发点,对实际工作岗位所对应的具体职业岗位综合技能进行工作任务分析,首先要创建工作任务,然后将获得的工作任务转换成为行动领域,再将行动领域转换成为学习领域[1],最后依据转换的学习领域确定软件技术专业的专业核心课程。
(一)工作任务的创建
所谓工作过程是指在真正的企业里为了完成一件工作任务并获得工作成果而进行的一项完整的工作程序,其中工作任务则是描述一项工作行为,它直接反映了职业岗位工作的内容和形式。软件技术专业人才培养宗旨是培养开发软件产品的工作过程。开发软件产品的过程一般是按照软件生命周期来进行的,即把软件开发的过程分解为需求分析阶段、软件设计阶段、编码及调试、软件测试、运行与维护等任务。因此,为了创建软件技术专业典型的工作任务,我们分析了职业岗位目标可能面对的控制台应用程序开发、GUI、WEB应用程序开发、企业架构应用程序开发和移动服务软件开发等五种工作过程所要包含的所有工作任务,同时也考虑到Java和.NET两种比较流行的开发平台,最后进行归纳整理并得到了软件技术专业的工作任务。
(二)工作任务转换行动领域
行动领域是指在有意义的行动情境中相关联的任务集合。根据实践经验,我们把软件技术专业人才培养过程划分为27个工作任务,通过对这些工作任务进行归纳总结,最后确定了10个行动领域,如表1所示。
表1职业能力与工作任务、行动领域分解表
(三)行动领域转换学习领域
学习领域是在面向21世纪的德国“双元制”职业教育改革中诞生的一种新的课程方案,或称课程模式,通过对行动领域的转换,可以得到学习领域。任何一个学习领域都可以找到和其相对应的行动领域[2]。通常情况下绝大多数的行动领域将被转换成为单一的学习领域。根据行动领域在工作过程中的相关性以及存在的联系,我们也可以将某些存在一定关系的行动领域合并为一个学习领域。如把学习领域中的面向对象程序设计与分析可以分解为需求分析与软件设计两个行动领域的相关内容。同时对内容比较多的行动领域可以进行拆分,通过拆分可以得到多个学习领域。如数据存储结构建立这一行动领域的内容被分在软件系统的数据库设计与开发和文件存储与设计两个学习领域中学习。但是也有一些特殊的行动领域的内容没有被集中到某一个学习领域,而是被融入各个学习领域中,每个学习领域阶段都可能存在。
(四)专业核心课程的确定
基于工作过程模式构建的软件技术专业课程群体系中的专业核心课程,将有效地帮助我们实施对应学习领域中的具体案例教学过程。因此,专业核心课程必须要反映工作过程中的实际环节,又要明确工作工程中的具体技术条件。学习领域所涉及的技术并不是单一的,但是我们可以通过一种具体的典型技术条件上的案例来进行学习,就可以实现该学习领域所包含的职业岗位综合技能的培养[3]。比如软件系统的数据库设计与开发学习领域中,所要涉及的技术条件虽然有My SQL、MS SQL、ORACLE、ACCESS、SYBASE等多种数据库,但在这一学习领域对应的专业核心课程中并不需要把所有的数据库管理系统都系统地学习一遍,我们只是按照软件产品开发过程中的具体要求,选择其中一种数据库技术作为数据管理工具就可以了。因此,在专业核心课程的设置过程中就安排了数据库原理与SQL Server。按照工作过程模式,将学习领域确定所确定的软件技术专业核心课程如表2所示。
表2专业核心课程设置表
开发基于工作过程模式的软件技术专业课程群,是以培养高素质技能型人才为目标,从实际工作任务进行分析,以职业岗位综合技能为本位核心课程,按照软件生命周期和软件开发的具体工作过程进行课程群设置。基于工作过程模式的教学过程要真正全面地实施,还有很多工作需要改进和完善,比如基于工作过程模式的教学评价体系、所有课程群的教学大纲及其工作任务书、任务驱动的案例教材等多方面,同时还要注意改革教学方法和教学手段,注重培养学生的自学能力和自评能力。
参考文献:
[1]郑小蓉.基于工作过程的高职软件课程体系改革的研究与实践[J].计算机教育,2010,(8).
[2]吴建明.以工作过程为导向构建高职软件技术专业课程体系[J].计算机教育,2010,(11).
[3]郭祖华等.以工作过程为导向的高职软件技术专业课程体系的研究与实践[J].河南机电高等专科学校学报,2011,(3).
收稿日期:2013-11-14
1计算机软件开发设计的方法
1.1面向对象开发设计
计算机运行中,存在设计的对象,软件开发设计中采用面向对象的开发设计方法,目的是根据软件对象的需要,设计开发的方案,结合对象的概念,设计软件的功能,利用编程语言,实现软件的功能化运行,同时按照对象的属性,设计面向对象的软件模型,构建对象之间的接口,最终按照对象的描述,表达软件设计的结果。
1.2模块化开发设计
软件开发设计中的模块化方法,是最为常用的一类,采取整体划分成个体的方式,设计程序控制,构建有层次的模块,其可隐藏模块化的设计程序,显示部分接口。
1.3数据流开发设计
数据流在软件开发设计中,掌握软件信息流的特性,判断并分析软件的需求,利用数据库确定软件的形态,基于数据流编写出软件的结构,维持软件开发设计的独立性。
2软件开发设计中的常见难题
2.1需求定位不准确
软件开发工程师,在开发软件前期,应该准确的定位软件开发设计的需求,避免软件设计的过程中出现问题。软件的需求定位不准确,很容易偏离软件设计的方向,导致开发设计的软件,达不到预期的标准,在功能和性能上出现缺陷,不利于软件开发设计的有效进行。
2.2缺乏成熟的测试
软件开发设计完成后,需要进行相关的测试,确保软件符合计算机的开发需要,致力于在测试环节中,发现软件开发设计的缺陷,避免软件运营时出现问题。实际软件开发后,工程师忽略了测试的必要性,并没有安排成熟的测试方法,或者直接将软件在计算机中运行,通过运行找出问题,降低了软件开发设计的性能和质量,潜在很大的安全风险。
2.3软件工程化问题
软件开发设计中的软件工程化问题,是由软件危机引起的,致使大量的软件呈现工程化的生产方式,由此增加了不良软件的占比。软件工程化引起的开发难题有:(1)编程不完善,软件开发工程师在编写软件程序时,遗漏程序或缺少脚本,软件虽然能够在计算机系统内完成正常的功能操作,但是软件质量达不到规范标准,增加了软件运营时的维护量;(2)软件开发设计完成后,直接进入运营状态,缺乏对应的文档资料,一旦软件出现问题,无法查询问题的根源;(3)软件工程化,推进了软件开发设计的速度,忽视了质量控制的应用,大批量的隐患软件应用到计算机系统内。
2.4软件开发环境缺陷
我国软件开发设计中,缺乏正规的环境控制,受到环境缺陷的影响,软件开发设计面临着一系列的难题。例如:软件开发环境缺陷,干扰了软件开发的安全性,软件开发设计中,有可能存在病毒插件或恶意程序,无法保障软件的安全性,此时软件的开发设计会处于被动的状态中,影响了软件开发设计的效益。
3软件开发设计常见难题的对策
3.1准确的需求定位
软件开发设计时,不仅要做好准确的测量定位,更重要的是着重分析软件开发的需求和目的,细化软件开发和设计的需求,预防出现定位不准确的情况。工程师在开发软件前期,应该提前制定软件开发的方案,方案中包含软件设计的程序、目标等,要求工程师严格按照方案落实开发的方法进行,规范开发设计的整个过程,最主要的是按照需求定位开发的过程,找准软件开发设计的点,促使软件开发设计具备实践性的优势,体现需求定位的重要性。
3.2深化测试的应用
软件开发设计中的测试,目的是预防软件引起的系统崩溃,提前发现软件开发设计中存在的问题。高效的测试,有利于提高软件开发设计的水平,实现软件的标准化运行。所以,工程师在软件开发设计完毕后,应该及时安排性能测试,根据开发软件的功能,提供对应的测试方法,特别是用例设计部分,必须结合软件开发的实际情况,优化测试资源的配置,软件测试的用例设计模块,安全技能高的测试人员,防止出现测试问题,执行测试环节,可以安排初级测试人员,按照软件测试的步骤,执行相关的测试方式并记录测试结果,提交测试报告。
3.3控制软件工程化
软件开发设计在软件工程化的问题上,应该做好有效的控制作用,可以通过聘请专业的工程师和设计师,深入研究软件工程化的问题,提供有效的控制方法,致力于控制软件的开发过程,特别是在实时软件的工程化问题上,更是要发挥技术人员的价值,管控软件开发设计的整个过程,降低软件开发设计的难度,最大程度的控制软件工程化问题。
3.4预防开发环境缺陷
我国在软件开发设计环境方面,提出了环境控制的要求,预防开发环境的缺陷,规范软件开发的过程。目前,随着软件开发设计的智能化发展及智能技术的应用,软件开发设计对开发环境的要求越来越高,必须适应现代软件的发展要求,才能规范控制开发环境,保障软件设计源代码的优质性,从软件的需求分析到设计,再到运营,均能维护环境的质量,提供标准的环境保障,预防环境缺陷在软件开发设计中引起性能问题。
4结束语
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.
关键词:复合型;软件测试;人才培养
中图分类号:TP3-4 文献标识码:A 文章编号:1007-9599 (2012) 20-0000-02
1 软件测试人才培养背景
1.1 软件测试人才需求分析。全球信息化极大推动了中国软件产业的发展,但目前与欧美发达国家还有很大差距,特别是软件测试领域。国内软件测试的现状是令人担忧的,在软件业中处于弱势地位[1]。由于一直以来,国内许多软件企业存在着“重开发、轻测试”的倾向,造成软件产品质量问题日渐突出,同时也突显了中国软件测试人才的极度匮乏[2]。从国内招聘网站搜索软件测试相关的职位来看,软件产业需要大量懂得测试理论和方法的专业软件测试工程师。
1.2 软件测试专业岗位分析。软件测试行业主要岗位为软件开发测试、网络开发测试、测试管理等6个就业方向以及初、中级软件测试工程师、Web测试员、文档测试员等23个岗位。综合来说,软件测试专业相关的岗位主要有软件开发工程师、软件测试工程师以及软件工程相关的岗位。1.3 国内软件测试人才培养现状。国内高校软件测试教学总体属于起步阶段,开设软件测试专业的院校不多,一些院校仅开设了软件测试的课程。当前,一些软件企业与行业的培训机构在积极开展测试人才的培训工作,但培训内容较单一且完全实用化,对软件开发能力要求不高。这种培训属于非专门化、专业性的培养和教育[3]。因此软件测试人才培养模式的研究具有非常重要的现实意义。
2 复合型软件测试人才培养模式
关于软件测试人才培养模式的探索,丰明聪提出了高职软件测试专业校企合作培养模式,张丽景等提出了基于倒推模式的人才培养方案。这些人才培养模式普遍对软件开发能力要求不高,这可能导致软件测试人才欠缺良好的软件开发能力,较难站在软件工程的高层次角度对软件测试等软件工程活动进行有效的管理和实施。本文提出了一种全新的复合型人才培养模式,所谓“复合型”是指能力更全面的高级软件测试人才,兼具扎实的软件开发能力、软件测试能力以及相关的软件工程能力。这样就能够站在高层次的角度对软件测试等软件工程活动实施有效的组织和管理。有了扎实的软件开发能力,可以从源头上避免软件缺陷的产生,以达到“预防为主”的目的,从而对软件产品的质量进行更好的控制。
2.1 培养目标。复合型软件测试人才面向社会对各类软件测试与质量保证等软件工程人才需求,培养高层次实用型、复合型软件工程技术和软件工程管理人才。本学位获得者具有扎实的程序设计基础、深厚的软件工程理论基础及较强的工程实践能力、研发能力和市场与国际意识,能够对软件产品的架构设计、测试和实施执行规范有效的组织和管理,及进行可靠的方案实施。2.2 课程体系建设。人才培养中重要的部分为课程体系的建设。W模型以及极限编程中的TDD(测试驱动开发)更能够体现软件测试和软件开发相辅相成的关系,复合型的软件测试人才必须具备扎实的软件开发能力,因此课程设置上必须依托一条软件开发的主线,保证每一个学期中都有开发课程。同时,软件测试的主线也将依托软件开发的主线顺势开展,由于软件测试需要软件开发为基础,因此软件测试课程比软件开发滞后两个学期。
目前主流的软件开发平台为Java和.NET,复合型人才培养方案以Java平台的开发技术为主线,如图1所示,从第一学期依次学习的开发课程为:程序设计导论Java、高级程序设计Java、JSP程序设计等,J2ME课程可以替换为Android或者IOS开发。在学习软件开发的课程的同时,另外还有两条主线贯穿于整个教学过程中,一个是数学英语、计算机网络、数据结构等课程,这些课程除了是考研相关的课程之外,也涵盖了很多基本的软件知识。另一个主线是软件工程相关的课程,例如数据库、UML等。最终达到的开发要求为:软件测试专业的学生也可以胜任软件开发的工作。
在学习软件开发课程的同时,学生从本科第二学年第二学期开始可以学习软件测试相关的课程,第二学年可以学习软件测试基础,第三学年可以学习软件质量保证、自动化软件测试、性能测试和软件工程等课程。这样,就业的选择有软件测试工程师、SQA、系统分析师等。2.3 软件测试平台的建立。软件测试平台包括软件测试实验室、实训基地等方面,可以为学生建立统一的学习、实习平台。针对软件测试实验室,可以和Parasoft、IBM等公司建立联合实验室,或者安装开源的软件测试和软件工程相关工具。其中除了开发工具外,安装的测试工具包括JTest、.Test、C++Test、JUnit、NUnit、LoadRunner、QTP、Bugzilla等。对于实训基地的建设问题,可以采用校外实训和校内实训两种方式。校外实训可以和实训机构进行合作;校内实训可以校方提供场地和机器,而实训公司提供工程师,以达到良好效果。2.4 人才模式的实施。郑州大学软件学院从2007开设软件测试专业以来,应用复合型软件测试人才培养模式培养了两届软件测试专业人才,创建了软件测试和软件工程实验室,建立了校内外的实训基地。软件测试专业学生的就业方向主要有软件测试、软件开发、继续深造、技术支持等,就业状况良好,用人单位对学生的软件测试、软件开发和软件工程的综合运用能力给予了肯定。2.5 人才培养模式探索。在复合型软件测试人才培养的基础上,人才培养模式还可以进行进一步的创新,例如:(1)加强校企合作,将企业或者实训公司的资源尽早的引入到教学的过程中,部分课程可以直接由企业或者实训公司的工程师来进行教授。(2)采用订单式的人才培养模式,开设部分的试点班供实训公司或者企业进行重点培养,使学习的方向更具有针对性。(3)软件测试平台的进一步创新,及时引入更先进的测试工具、方法、测试案例,加强CMMI、ISO质量管理知识的应用,建立更全面的软件工程思想。
3 结束语
虽然软件测试人才的市场需求呈逐年上升趋势,但是目前计算机学院或软件学院对软件测试人才的培养模式仍需完善。复合型软件测试人才具有扎实的软件开发知识以及更全面的软件工程相关知识,这对于掌握更高级、更全面的软件测试技术具有良好的推动作用。
参考文献:
[1]黄爱明.国内软件测试现状及对策研究[J].中国管理信息化.2007,(2):42-46.
[2]兰景英.应用型软件测试人才培养模式探索与实践[J].潍坊教育学院学报.2011,(4):71-73.
[3]杨鹏,贺平.高职软件测试专业的构建与探索[J].教育与教学研究.2008(2):63-66.
[作者简介]
2、一定要确定自己的发展方向,并为此目的制定可行的计划。不要说什么,“我刚毕业,还不知道将来可能做什么?”,“跟着感觉走,先做做看”。因为,这样的观点会通过你的潜意识去暗示你的行为无所事事、碌碌无为。一直做技术,将来成为专家级人物?向管理方向走,成为职业经理人?先熟悉行业和领域,将来自立门户?还是先在行业里面混混,过几年转行做点别的?这很重要,它将决定你近几年、十年内“做什么事情才是在做正确的事情!”。
3、软件开发团队中,技术不是万能的,但没有技术是万万不能的!在技术型团队中,技术与人品同等重要,当然长相也比较重要哈,尤其在mm比较多的团队中。在软件项目团队中,技术水平是受人重视和尊重的重要砝码。无论你是做管理、系统分析、设计、编码,还是产品管理、测试、文档、实施、维护,多少你都要有技术基础。算我孤陋寡闻,我还真没有亲眼看到过一个外行带领一个软件开发团队成功地完成过软件开发项目,哪怕就一个,也没有看到。倒是曾经看到过一个“高学历的牛人”(非技术型)带一堆人做完过一个项目,项目交付的第二天,项目组成员扔下一句“再也受不了啦!”四分五裂、各奔东西。那个项目的“成功度”大家可想而知了。
4、详细制定自己软件开发专业知识学习计划,并注意及时修正和调整(软件开发技术变化实在太快)。请牢记:“如果一个软件开发人员在1、2年内都没有更新过自己的知识,那么,其实他已经不再属于这个行业了。”不要告诉自己没有时间。来自时间管理领域的着名的“三八原则”告诫我们:另外的那8小时如何使用将决定你的人生成败!本人自毕业以来,平均每天实际学习时间超过2小时。
5、书籍是人类进步的阶梯,对软件开发人员尤其如此。书籍是学习知识的最有效途径,不要过多地指望在工作中能遇到“世外高人”,并不厌其烦地教你。对于花钱买书,我个人经验是:千万别买国内那帮人出的书!我买的那些家伙出的书,!00%全部后悔了,无一本例外。更气愤的是,这些书在二手市场的地摊上都很难卖掉。“拥有书籍并不表示拥有知识;拥有知识并不表示拥有技能;拥有技能并不表示拥有文化;拥有文化并不表示拥有智慧。”只有将书本变成的自己智慧,才算是真正拥有了它。
6、不要仅局限于对某项技术的表面使用上,哪怕你只是偶尔用一、二次。“对任何事物不究就里”是任何行业的工程师所不应该具备的素质。开发windows应用程序,看看windows程序的设计、加载、执行原理,分析一下 pe文件格式,试试用sdk开发从头开发一个windows应用程序;用vc++、 delphi、java、.net开发应用程序,花时间去研究一下mfc、vcl、j2ee、.net它们框架设计或者源码;除了会用j2ee、 jboss、spring、hibernate等等优秀的开源产品或者框架,抽空看看大师们是如何抽象、分析、设计和实现那些类似问题的通用解决方案的。试着这样做做,你以后的工作将会少遇到一些让你不明就里、一头雾水的问题,因为,很多东西你“知其然且知其所以然”!
7、在一种语言上编程,但别为其束缚了思想。“代码大全”中说:“深入一门语言编程,不要浮于表面”。深入一门语言开发还远远不足,任何编程语言的存在都有其自身的理由,所以也没有哪门语言是“包治百病”的“灵丹妙药”。编程语言对开发人员解决具体问题的思路和方式的影响与束缚的例子俯拾皆是。我的经验是:用面对对象工具开发某些关键模块时,为什么不可以借鉴c、c51、汇编的模块化封装方式?用传统的桌面开发工具(目前主要有vc++、delphi)进行系统体统结构设计时,为什么不可以参考来自 java社区的ioc、aop设计思想,甚至借鉴像spring、hibernate、jboss等等优秀的开源框架?在进行类似于实时通信、数据采集等功能的设计、实现时,为什么不可以引用来自实时系统、嵌入式系统的优秀的体系框架与模式?为什么一切都必须以个人、团队在当然开发语言上的传统或者经验来解决问题?“他山之石、可以攻玉”。
8、养成总结与反思的习惯,并有意识地提炼日常工作成果,形成自己的个人源码库、解决某类问题的通用系统体系结构、甚至进化为框架。众所周知,对软件开发人员而言,有、无经验的一个显着区别是:无经验者完成任何任务时都从头开始,而有经验者往往通过重组自己的可复用模块、类库来解决问题 (其实这个结论不应该被局限在软件开发领域、可以延伸到很多方面)。这并不是说,所有可复用的东西都必须自己实现,别人成熟的通过测试的成果也可以收集、整理、集成到自己的知识库中。但是,最好还是自己实现,这样没有知识产权、版权等问题,关键是自己实现后能真正掌握这个知识点,拥有这个技能。
关键词:实践与探索;软件技术
一、现代高等职业教育存在的不足
第一,与社会需求脱节。由于绝大比例的高等职业院校因为缺少实际生产运作能力,很难对学校自身的教学效果和学生专业技能的实际掌握情况进行及时检验与反馈,以方便后期的进一步优化。高职教育在一定程度上与企业的实际生产实践活动脱节,即便有很多的高等职业院校采取多种手段提升学生的实操能力,但是由于硬件或软件的不达标,其与企业的实际生产实践活动存在着较大差距,需求与培养信息不对称等诸多因素引发的培养人才与社会需求不一致。第二,师资力量相对薄弱。每年高职院校的招生人数都在不断增加,师生比不协调。对于一些比较新兴的热门专业,真正与专业对口的教师相对比较少,而教师没有对自己所学的知识及时更新,这样就无法保证专业人才的培养质量。在高职院校兼职的教师,主要来自合作企业,有着丰富的实践教学经验,但是教学方面理论知识不足,缺乏教学经验,同时具备专业技能与教学能力的人才少之又少。[1]第三,校企合作程度不足。高等职业院校现在目前较常见的是校企合作办学方式,与企业间开展冠名班、订单班等形式合作办学,但是与企业的很多合作深度不够,校企合作还处于学校唱独角戏的阶段。企业为教育提供的资源、环境和技术支持不够,学生学习过程没有将知识学习、技术训练、岗位实践完全融通,“校内学习、企业顶岗、基地实训、技能培训”还是孤立存在,教学内容和实践技能衔接度不够,跟不上企业对员工技能的要求,需要校企共建“岗学交替”的教学环境,设计“产学并行”的训练流程,将校内外学习、训练融为一体,企校共担“岗学交替”的教学任务[2]。
二、构建“工学交替、能力递进、学岗直通”的现代学徒人才培养模式
第一,人才培养目标。通过学院与惠普-济宁基地研讨,明确软件开发工程师、软件测试工程师为软件技术专业核心工作岗位,分析岗位的典型工作任务,获取岗位的知识、能力、素质要求,参考Java软件开发工程师、惠普软件测试工程师职业认证标准,确定专业核心课程,遵循从简单到复杂的认知规律,构建“平台+模块”课程体系,实施“工学交替、能力递进、学岗直通”现代学徒制人才培养模式,培养“基础扎实、技术一流、素质优良”的惠普软件开发、测试工程师。第二,构建的思路。探索软件技术专业与惠普基地实施现代学徒制人才培养模式改革,完善“企业主选、师傅主导、实岗育人、多元评价”的校企双主体育人机制,培养产业链中具有工匠精神的软件开发领域技术技能人才[3]。第三,构建路径。其一,通过校企互培共育,建成专兼合理的教学团队依托济宁市软件技术专业校企合作理事会,惠普公司20多名具有高级工程师以上职称的兼职教师参与专业教学,专任教师中高级职称以上教师占比30%以上,专业教师与惠普工程师互嵌,双师共育,建成一支结构合理专兼一体的教学团队;其二,校企共同构建“平台+模块”课程体系通过学院与惠普-济宁基地研讨,明确软件开发工程师、软件测试工程师为软件技术专业核心工作岗位,分析岗位的典型工作任务,获取岗位的知识、能力、素质要求,参考Java软件开发工程师、惠普软件测试工程师职业认证标准,确定专业核心课程,遵循从简单到复杂的认知规律,构建“平台+模块”课程体系;其三,校企共同开发专业课程、共建教学资源针对人才培养方案和教学标准,校企共同开发现代学徒教学重点课程,以开放校企合作教材为切入点,逐步吸收消化企业化项目、案例资源,共同建设立体化的教学资源,以满足“学徒”多样化学习的需要。完善制度规章,为现代学徒制教学保驾护航。
三、结束语
学院以山东省信息产业职业教育集团为载体,与惠普-济宁国际软件及人才产业基地实现校企“双主体、全过程”深度融合:专业设置与产业需求对接,培养目标与岗位需求对接,课程标准与职业标准对接,教学过程与工作过程对接,教学项目与工作内容对接。人才培养过程中实施项目化管理,构建人才培养质量监控与保障体系,形成了“人才共育、过程共管、成果共享、责任共担”的运行机制。我们将不断探索实现一个既符合学校教育规律,又适应企业岗位人才标准的现代学徒制教育模式,推进高职现代学徒教育改革进程。
参考文献:
[1]朱翠苗.“岗学交替、轮转互动”的现代学徒制教学模式的探索—以高职软件技术专业为例[J].软件,2016(37):8.
[2]姜超.高等职业院校师资队伍建设中的困境与挑战[J].高教学刊,2016(19).