时间:2023-05-31 08:33:43
序论:速发表网结合其深厚的文秘经验,特别为您筛选了11篇软件开发基础知识范文。如果您需要更多原创资料,欢迎随时与我们的客服老师联系,希望您能从中汲取灵感和知识!
计算机技术的发展是日新月异的,特别是近年来,随着各行各业经济建设和社会发展,需要不同的软件和技术为经济社会发展服务。近年来,随着我国的各项技术的不足和发展程度不够,我们在此技术的基础上提出了更高的要求。我国的自主创新能力和软件开发创新能力发展不足是我国目前所面临的主要困境。这些技术创新阻碍禁锢了我国的社会发展。提高软件开发能力和投入产出效率是目前亟待解决的。特别是软件开发技术在我国发展面临着诸多技术阻碍和科研投入不足的问题,更加需要我们进行技术创新和技术发展。
软件开发成功与否关键在于,主要取决于我们对于其中主要矛盾和关键要素的掌控程度。软件开发过程中的关键性要素对于整个过程起着决定性作用,主要的要素有:计算机基础知识,自主创新能力,团队合作能力,运用能力。上述这几条是实现软件技术进步的关键要素。
一、计算机基础知识
计算机出现于1946年的美国宾夕法尼亚大学,出现之初主要是为了实现军方的联系和巩固国防的目的。随着计算机技术的发展和进步,他已经不仅仅局限于某个特定的领域,而是广泛的应用于社会生产和生活的方方面面,计算机技术在如今的发展已经处于中期阶段,许多计算机技术和软件技术已经相当先进,运行效率高,计算速度快的特征使得这些技术已经成为我国技术发展的主要依托。我国的计算机技术起步较晚,发展速度慢,自身的发展基础和实践经验都不够丰富。因此,我国的软件开发技术相对落后,需要借鉴发达国家的技术和软件开发资源作为我国计算机发展的基础和平台,实现我国技术的发展和进步。我们只有熟练的掌握了计算机基础知识,才能够在运用的基础上进行软件开发。计算机基础知识是经过实践的检验,并且在实际需要中不断地改进之后才最终形成的理论,包括操作系统,计算机资源开发系统和信息管理系统,信息处理系统等理论知识。这些主要的理论知识都是实现转变和创新的主要理论依据。
二、主创新能力
软件开发能力实际上主要取决于团队和群体的自主创新能力,自主创新能力是实现理论发展和进步的源泉。因此,只有具备了自主创新能力,才会在当前的环境下提出更多的疑问,并且能够应用全新的思维和方式来解决实践发展中出现的问题。我们只有通过这样的方式才会真正的促进技术的发展和进步。目前,我国的CPU技术依然处于落后阶段,中国国内自主开发的CPU处理效率低,运行慢。刚刚诞生就意味着即将被淘汰。可以看出,我国的技术创新动力和水平远远落后于世界。造成我国计算机技术落后的根本原因在于我国的自主创新能力低下,总是因循守旧,不能够自主的进行技术创新开发。
因此,加强自主创新能力,创建创新型国家是实现可持续发展的根本途径,软件开发领域的自主创新思维和能力将会引领世界范围内的变革和发展。自主创新能力实际上是一种非常规的视野和思维来解决实际中出现的问题,这样就为现实问题的解决增加了新的途径。
三、团队合作能力
技术共享与成果交流是实现发展和进步的一个重要因素,面对着庞大的计算机系统和复杂的软件难题,一个人的能力在这样庞大的任务面前显得微不足道。只有加强团队合作和交流,实现发展环节无障碍才会促进团队内部的成长和进步。面对复杂的软件开发问题,只有加强任务的分配和团队内部的交流沟通才会提升发展效率,少走弯路。
四、接受和运用能力
中图分类号:G712 文献标识码:A 文章编号:1007-9599 (2012) 11-0000-02
一、引言
为培养应用型和技能型软件开发人才,在高职软件技术专业中实施三阶段技能递进培养模式,该模式将技能培训分为基本技能积累、专业核心能力培养和综合技能培训三阶段。基本技能积累阶段包含培养学生基本操作技能和编程技能的课程,如程序设计基础等课程;专业核心能力培养阶段包含培养更高一级专业能力的课程,如桌面应用程序开发、web应用程序开发等课程;综合技能培训阶段是在前两个阶段的基础上,开展以提高职业行动能力为目标的综合技术应用训练。
学生在教学阶段递进过程中需要通过大量实践掌握软件开发技能,因此每一门专业核心课程都设置相应的实训课程,这些课程与综合技术应用训练都是以软件开发项目为载体,通过实训,使学生提高实践能力、积累实际软件开发经验。为实现实践教学过程与软件开发过程的对接,必须采用相适应的教学模式以及提供合适的软件开发实训环境。由于培养费用、实践场地的限制,让每个学生都走上实际工作岗位参加真实环境中的项目开发存在很大的困难。在软件开发实训课程中采用基于虚拟实训的实践教学模式可以很好的解决上述问题,虚拟实训作为一种打破时间、空间限制的实训方式在节约教学投资、优化教学情境和实现资源共享等方面均起到十分重要的作用。
二、构建基于虚拟实训的实践教学模式
(一)构建思路
根据对软件开发人员岗位需求的调研,软件产品开发工作过程包括项目立项、需求分析、设计、编码、测试等一系列工作。工作任务对工作和技术的要求为熟悉软件开发流程,掌握相关开发技术,具备良好的代码编码习惯及技术文档编写能力,有较强自学能力、分析和独立解决问题的能力、团队合作精神和沟通能力。
为达到学习过程与工作过程的一致性,引入虚拟公司形式,采用虚拟环境与真实项目相结合、虚拟员工与真实管理相结合的方式,构建基于虚拟实训的实践教学模式。在学校的实训室中,模拟公司的工作环境,以真实项目为载体,按照公司的软件项目开发流程完成项目开发,缩短学生所学知识和应用的距离。通过教师学生员工化,模拟公司开发部的组织结构,教师担任项目经理的角色,完成岗位相应的工作,包括协调人员配置、制定项目解决方案、监控项目执行、提供技术指导、组织项目评审。学生担任开发部普通员工的角色,在软件开发员岗位上完成项目开发各阶段任务,在项目实践过程中熟悉规范的软件开发流程,掌握高效的软件项目开发方法和技能。
(二)内容结构
基于软件开发岗位工作任务的要求,构建具有“工学结合、校企结合、虚实结合”特点的虚拟实训教学模式。该模式主要由四部分组成:知识培训、项目实施、项目管理和项目评审。各组成部分涉及三大类角色:项目经理(教师)、项目组长(学生)、项目成员(学生),项目经理负责完成知识培训和项目管理,项目组长和项目成员负责项目实施工作,项目经理、项目组长和项目成员共同完成项目评审。
知识培训部分:包括专业基础知识、实训项目涉及的关键技术与知识以及项目应用领域知识的培训。专业基础知识培训包含软件工程基本知识、特定语言的代码规范、团队开发规范、技术文档编写、软件测试用例的执行和记录等项目开发支撑知识。关键技术与知识的培训由项目经理根据课程目标和项目特点展开,包括关键技术和常用架构的学习、企业最新技术和开发工具的引入。领域知识培训是指项目应用领域背景知识的介绍,例如财务管理系统的开发背景涉及金融财会的相关知识。
项目实施部分:项目实施是虚拟实训教学的重要组成部分,包括实训任务分解和项目实现。项目组接受来自项目经理的实训任务,由项目组长进行任务分解并分配到各项目成员。项目成员按照企业软件开发流程执行项目实施各阶段的典型工作任务。
项目管理部分:项目管理包括进度控制和过程检查两部分,由项目经理实施以保证实训项目按实训计划、实训大纲的要求如期完成。项目经理指导项目组长制定项目开发计划,根据项目计划监督各组的工作进度。过程检查部分包括设定过程检查点以及阶段通过标准,项目经理按照通过标准审查阶段成果,确保项目完成质量。
项目评审部分:项目评审部分由项目演示交流和项目考核两部分组成。在项目演示交流环节,各项目组介绍开发过程、演示项目运行结果、进行项目答辩。在项目考核方面,采用多元化的考核体系,注重对学生实训过程的评价,在项目经理考核的基础之上,参照项目组长评价,得出最终评价结果。
手机的软件开发需要语言知识与计算机基础知识。安卓需要Java基础,IOS需要OC基础。
计算机基本知识包括算发与数据结构、操作系统、数字逻辑等基础课。而软件工程专业与计算机科学与技术专业有完整的学习以上知识的方案。
介绍:
1、软件工程:
是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。
关键词:
信息与计算科学专业;软件开发能力;实践教学;就业
1研究意义及问题分析
在认真分析就业市场发展的新形势下,高校数学院系迫切需要采取有效的措施去解决数学本科生的就业问题。切实做到专业设置与社会需求相对接,目前,从已毕业的数学专业的就业方向看,从事软件开发行业的人居多,而其中约有80%左右的学生是去市场上软件开发方向培训班培训过的,为了节省学生的时间和费用,数学类专业有必要设置具有特色软件开发方向课程模块,培养学生的软件开发能力。根据就业市场所需积极进行数学类专业软件开发方向人才培养的研究与实践。提高数学本科生的综合竞争力切实帮助学生找到合适的就业出路。信息与计算科学专业软件开发能力培养旨在培养具有软件开发背景的综合性数学人才;使得数学与计算机专业的有机结合,形成一套独具风格和特色的教育培养模式,给用人单位明确地显示数学类专业学生在从事软件开发时的优势。数学系的学生到软件企业中大多作软件设计与分析工作,这部分人才在软件开发行业紧缺,而计算机系的学生做程序员的居多,原因就在于数学系的学生分析推理能力、逻辑推理能力强,数学思想的建立比计算机系学生强,这是数学专业学生从事软件开发的优势,也是培养数学专业学生软件开发能力的意义所在。
2信息与计算科学专业特点与特色课程设置
信息与计算科学专业人才培养应该尊重数学学科教育的发展规律,强化学生数学基础,着眼于学生的就业,瞄准社会对数学类人才的规格要求,注重应用技能的训练与培养。在专业定位上,坚持:强化数学基础,兼顾专业类别,突出因材施教,培养综合能力的办学原则。根据就业市场所需积极调整专业设置,把办学规模和专业设置与市场接轨。2.1设定该专业软件开发方向人才培养的目标:学生不仅能进行数学理论研究,同时会运用计算机工具,更主要的是他们能将两者有机地结合起来,将理论与实际紧密结合,进行软件开发、信息管理与处理等。这是既有别于数学专业又有别于计算机专业的特色。突出数学专业学生的思维优势。
2.2加强师资队伍建设。采取“稳定、培养、引进”相结合的方法,培养一批既懂数学又懂计算机的教师队伍,为专业教育质量提供师资保障。
2.3理论教学培养学生计算思维和算法设计分析能力:通过开设数学分析、离散数学、高等代数、概率论与数理统计、数值分析、数学模型等课程,培养学生的计算思维,使学生具备建立数学模型和解决实际问题所必备的数学知识和抽象逻辑思维能力。数学上功底扎实,在软件编程上的优势尽显,项目的设计模式格外地优化,程序逻辑条理也格外地清晰。因为数学可以培养人的逻辑思维能力,而程序设计需要很强的逻辑思维能力。所以无论从事什么具有扎实的数学基础是必要的。
2.4构建合理的软件开发方向的课程群,培养计算机应用软件的开发能力:通过开设高级语言程序设计(C语言)、数据结构、面向对象程序设计(C++与Java)、算法设计和分析等课程,有针对性地培养学生掌握算法设计与分析的方法,使学生熟练掌握常用算法、掌握算法设计与分析的方法和步骤,通过开设数据库原理及应用、软件工程、数据库编程,加大学生综合系统设计开发,使学生掌握中小型软件系统的架构、算法分析和设计能力,掌握软件系统分析与设计的方式方法,提高学生综合系统编程能力。
3软件开发实践教学体系研究与实践
改变传统的教学模式,培养学生的实践能力。包括:与行业人员合作的教学方法、案例式教学、精讲多练、机房授课、项目式考核等。整合实践教学内容,探索基于学生就业竞争力的实践教学体系;加强和完善实践教学条件:包括专业实验室建设、长期稳定的校外实习基地建设。丰富实践教学内容。做到把课堂搬到企业去,把理论用在实际。针对目前软件开发方向应用广泛的语言,信息与计算科学专业重点开设C语言、C++、Java、软件工程具有适应市场的竞争力的课程。这些课程能很好的与就业市场对接。我院已经有合作的校外实习基地—达内科技培训机构大庆分部;哈尔滨承德培训基地。大一实践课程设置:19周至22周,实践课程以Java程序设计为列。校内60学时的Java基础教学,边教边练,随堂消化。使学生掌握Java语言的基础知识,熟悉Java类库中最主要的类,掌握和面向对象程序设计的基本原则和特点。“Java技能实习”通过几个Java小项目的开发,培养学生Java编程能力,加深学生对Java语言的基础知识和面向对象程序设计的理解;大二已有Java基础的学生去达内实校外训基地,由校外指导教师指导项目实战。做到校内校外的课程安排有机结合,不脱节。同时通过走访已经毕业的学生的工作单位,了解当下的就业形势。充分发挥信息与计算科学专业学生的专业能力。大三暑期,学生实训走出去,去一些公司实习,让学生体会到学有所用。为大四就业打下经验基础。
4结束语
针对信息与计算科学专业的特点,结合办学思想和培养目标,特设置了该专业的计算机类课程,调整了教学内容,将数学知识和数学思维融入软件编程,体现专业特色,改革了教学模式与考核方式,并注重培养和考核学生的实践创新能力。通过两年的教学实践表明,对于信息与计算科学专业计算机类课程的改革思路是行之有效的,激发了学生学习计算机类课程的兴趣,开发了学生的潜能,提高了学生的编程能力和解决实际问题的能力。扩大了本专业学生就业面,培养出有一定数学基础和实践能力的从事软件行业的人才。实现推动数学类本科专业快速发展。
参考文献
[1]董立华,刘艳芹,数学专业创新性应用型人才培养的探索与实践[J].衡水学院学报,2012.
[2]方木云,戴小平,培养学生软件开发能力的软件方向课程群建设[J].安徽工业大学学报,2007.
[3]杨韧,基于体系建设的数学类专业实践教学改革[J].实验室研究与探索,2013.
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2014)02-0042-03
软件工程是计算机科学与技术专业开设的一门核心课程,学生掌握软件开发过程和主流的软件开发方法是软件工程课程教学的基本目标。受教学资源、既定培养方案、学生个人条件等诸多因素的影响,软件工程课程教学中还存在一系列问题。我们根据软件工程课程特点,在近几年的教学实践中,对软件工程课程的教学内容、教学方法、实践教学方式等进行了逐步调整和改进,解决了软件工程课程教学中存在的部分问题。
一、软件工程教学中的问题
软件工程是一门伴随着软件危机的出现而发展起来的、集工程性和应用实践性为一体的课程。由于软件规模不断扩大、软件环境更迭频繁、软件危机的表现形式多样,致使软件开发的新方法、新技术层出不穷,软件工程课程的内容处于一种不断改进和发展的状态。但目前软件工程教材内容相对滞后,且多以软件开发理论和设计原则的形式呈现,软件开发案例等应用性内容偏少。在教学过程中,受教材内容影响,教师习惯从软件开发理论、软件设计原则出发安排教学内容,忽视软件开发案例在教学中的支撑作用,教学内容与实际应用脱节。软件开发过程包括软件体系结构设计、数据库系统设计、应用程序设计、软件系统实施等多个环节,所以软件工程教学内容还涉及除软件工程之外的其他多门软件类课程。受教学资源和课程计划学时等因素的制约,软件工程的教学内容往往缺乏相关软件类课程之间的实质性联系,且实践教学内容和时间相对不足。加之学生少有软件项目开发的机会和经历,致使学生感觉软件工程课程内容难以理解、不够实用,缺乏整体感和系统性。针对上述问题,我们将新的教学内容注入软件工程课程;通过案例教学强化软件工程课程的实用性特色;以层次化方式组织实践教学,使学生在软件开发基本技能、综合分析问题能力、软件系统开发经历、团队协作意识培养等方面得到系统训练。
二、软件工程教学的改革思路
1.调整教学内容、注入教学案例。在教学内容方面,对较陈旧的教材内容进行精简,并增加与现代软件开发方法和技术紧密相关的教学内容。针对软件工程教材内容普遍重视理论、实用案例不足的状况,将案例教学法[1]引入课堂教学中,通过案例分析对抽象内容进行诠释,帮助学生理解软件开发理论和原则。
2.贯通学科知识、突出综合特色。软件工程课程内容覆盖面较宽,与数据库系统原理、程序设计语言、算法设计与分析等软件类课程内容交织,为了实现相关课程之间内容的贯通、拓展学生的学科知识、提高学生综合分析和解决问题的能力,将专题学习(Project-Based Learning)[2]、任务学习(Task-Based Learning)[3]和基于问题的学习(Problem-Based Learning)[4]等教学方法不同程度的引入课程教学中,突出软件工程课程的综合性、实践性特色。
3.拓展实践环节、培养工程能力。软件工程实践教学直接影响学生的软件开发能力,学生软件开发能力的提高是一个循序渐进的过程。在常规的软件工程课程培养方案中,主要安排了基础实验内容,对学生的工程化意识和综合实践能力的培养重视不够。采取分层次、分步骤安排实践教学内容,由基础实验逐步过渡到综合实践的教学方式,可以将软件工程学科概念和学生的软件项目研发能力逐步整合在一起,使学生在软件工程实践过程中逐步掌握学科知识、提高软件项目的分析设计和实施能力。
三、软件工程教学改革的实践
1.课堂教学中的案例教学。案例教学可以强化软件工程理论与实际应用问题的结合。通过典型案例分析,可以对抽象的软件工程原理和准则进行直观诠释,帮助学生理解课程内容。
教学案例通常不是孤立的个案,一组精心设计的教学案例可以帮助学生理解基础知识、掌握基本技能、提高运用知识的能力。以软件需求建模为例,在讲述软件系统行为模型的描述工具状态转换图时,使用几个不同的教学案例,由浅入深地分析状态转换图的作用、使用规则以及如何描述系统的行为三个方面的问题。首先,以学生比较熟悉的操作系统中的一个进程为例,通过状态转换图形象的描述了进程的就绪、运行、等待和完成四个状态及其转换关系,着重说明状态转换图的作用。第二个案例是机票预订系统的行为模型创建,介绍状态转换图的画法规则。机票预订系统行为涵盖机票查询、机票预订、订单支付等几个分支,比较完整地展现了状态转换图中的图符及使用规则。实际的软件项目通常比较复杂,软件需求建模要考虑多种条件、各种异常状态,所以将复印机控制程序作为第三个案例,其状态转换图包括复印机正常工作流程、中断处理流程(比如复印过程中复印纸用完等情况)、硬件故障处理流程等几种系统行为。
2.问题式教学模式的运用。软件开发过程是一个综合性的系统工程。软件工程课程内容与多门先修的软件课程密切相关,软件开发项目是一个多学科贯通的综合实践问题。对于软件工程课程,从教学内容到教学形式都应该倡导调动学生的主动学习情绪,即学生能够基于自己的思考和实践解决问题。我们在软件工程教学改革实践中,提出了一种主动式、知识探究型的教学模式——问题式教学模式。问题式教学活动中,教师依据课程内容和学生的知识结构、设计具备一定挑战空间的非良构问题;将学生组织成学习团队;学生通过分析、解决紧密联系实际的非良构问题来探究问题背后隐含的概念和原理、拓展学科知识、提高实践能力、培养团队协作意识。[5]问题式教学方法注重教学内容的实用性,在一定程度上激发了学生的学习主动性、强化了学生的软件开发实践能力。
3.实践教学环节的调整。从学生运用软件工程基础知识的能力、系统化的个人职业技能训练、软件项目的开发能力和团队协作意识四个层面出发,将软件工程实践教学划分为基础实验和综合实践两个层次。
基础实验培养学生对软件生命周期组成阶段的理解,重点训练学生对需求分析、软件设计和软件测试阶段相应开发技能和工具的掌握。基础实验的内容偏重于设计型,实验形式又具有验证型的特征。基础实验是课堂教学中案例教学法的延伸和应用,教师在课堂上通过教学案例阐述如何运用软件工程理论、技能和工具;学生在实验过程中,模拟解决与教学案例类似的软件问题,以实践的方式体会和巩固软件工程知识。基础实验强调对每个学生进行软件工程基本技能的完整训练,学生通过实验获得软件开发过程的认知、掌握软件工程的理论和方法,提高个人的软件项目能力。
软件工程综合实践侧重对学生软件项目开发能力和团队协作意识的培养,是一个系统化的工程实践活动,实践内容涵盖软件项目开发的完整过程。学生可以通过综合实践环节获得较真实的软件项目开发经验。
在综合实践环节,教师要为学生提供兼具普适性和创新性特色的综合实践题目。普适性意味着实践题目要具备明确的可操作性,学生能够通过综合实践活动体验软件项目开发的基本规范、经历软件开发的完整过程、巩固软件工程理论知识和技能。所以综合实践题目应该与现实中的实际需求密切相关,这类需求明确具体,学生的感性认识深刻。考虑到学生组织成不同的软件开发团队、每个团队要完成各自独立的软件项目开发工作,实践题目还应该具备在知识需求上基本相同、但应用背景不同的特点,使学生容易借鉴类似的软件开发案例、从中汲取直观具体的软件设计和实现经验。题目的创新性特色体现在软件开发技能方面引导学生温故知新、举一反三;即对满足普适性要求的实践题目,进行适当的需求扩展和功能延伸,要适当保持问题的非良构性、保留一定的不确定性和疑点,留给学生思考空间。在综合实践题目的创新性层面上,学生需要在问题的牵引下去适当学习专业以外的知识、搜集提炼信息、补充项目本身缺失的条件,最终制定可行的软件项目实现方案并解决软件实施问题。综合实践题目的创新性特点,可以在一定程度上激发学生的创造性思维潜力、扩展学生的专业视野。
软件工程综合实践环节是学生对软件开发过程的模拟体验,现代软件开发工作多以团队协作方式进行。所以对学生而言,需要组建软件项目开发团队并进行成员角色分配。组建项目团队时要考虑学生的认知优势、学习习惯、学习兴趣、动手能力、逻辑思维能力,性格特点等因素,引导学生按照既发挥个人特长、又优势互补的原则进行团队组建和工作分工。
四、结语
将精心设计的典型教学案例注入软件工程教学内容中,可以有效改善软件工程教材内容偏重软件开发理论和软件设计原则、弱化软件开发实践的状况。知识探究型为主要特点的问题式教学模式可以激发学生的学习主动性、拓展学生的学科知识、提高学生综合分析和解决问题的能力。基础实验与综合实践相结合的层次化实践教学方式,将学生的软件工程基本技能和软件项目研发能力整合在一起,使学生在软件项目的分析设计和实施能力的训练、团队协作意识的培养方面获得完整体验。
参考文献:
[1]Hay·P,Katsikitis·M.The expert in problem-based and case-based learning:necessary or not?[J].Medical Education,2001,35(1):25-30.
[2]Robert Michael Capraro,Scott?W.Slough.Project-Based Learning:An Integrated Science,Technology,Engineering,and Mathematics(STEM)Approach[M].Sense Publishers,2009.
[3]B·R,Simone Grin Verlag.New Media and Task-Based Teaching/Task-Based Learning:Web Quests[M].Grin Verlag,2010
[4]Boud·D& Feletti,G.I.(eds.).The Challenge of Problem-Based Learning,2nd Ed[M].London:Kogan Page Ltd.,1997.
苏州大学软件工程专业以计算机科学与技术学科为基础,强调软件开发的工程性,使学生在掌握计算机科学与技术方面知识和技能的基础上熟练掌握从事软件需求分析、软件设计、软件测试、软件维护和软件项目管理等工作所必需的基础知识、基本方法和基本技能,突出对学生专业知识和专业技能的培养,培养能够从事软件开发、测试、维护和软件项目管理的高级专门人才。
其主干课程有高等数学、大学物理、物理实验、线性代数、概率论与数理统计、程序设计语言、数据结构、离散数学、操作系统、编译技术、软件工程概论、统一建模语言、软件体系结构、软件需求和软件项目管理等。
(来源:文章屋网 )
1.前言。我国软件行业已形成较大的规模,软件行业的从业机会逐年递增,而处于软件人才金字塔结构底部的“软件蓝领”更是需求巨大。面对强大的市场需求,如何才能培养出符合要求的“软件蓝领”以适应市场的需求呢?运用“项目带动式”教学可更好地培养出“软件蓝领”。
“软件蓝领”是指进行软件开发工作的初级技术人员,主要从事比较基本的程序代码编写、调试、测试等重复性的工作,一般对外语和技术水平要求较低,但需要有一定的实践经验。因为软件行业的发展速度快,新的知识、新的技术、新的工具不断出现,所以还需要“软件蓝领”有较强的更新知识的能力。
“项目带动式”教学是指围绕项目开展学习的一种教学模式,本质上是一种应用(或仿真应用)驱动,是一种软件教学的互动。项目为中心的学习模式,既让学生学习到软件开发知识和技能,使学生对软件开发具有一定的工作经验,使之易于适应工作后的软件开发环境;还将在编写软件的过程中,培养学生的自主学习能力和群体协同的能力,培养学生的责任心和完成项目的决心。这种教学方式适合“软件蓝领”的培养,尤其适合在职业技术院校中采用,可以很好地让学生在完成项目的同时掌握基础知识,培养其自学新知识、新技术的能力。
2.软件“项目带动式”教学的概念与特点。软件“项目带动式”教学模式,围绕“软件蓝领”职业岗位能力的形成、科学设计和选择项目,根据特定的完整的软件工程项目所需要的知识、能力和素质结构,进行教学方案设计,按照软件工程项目的操作流程组织实施教学,使学生在项目开发的过程中,获取知识和经验,达到人才培养的目标。项目是指具体的软件工程项目或软件生产项目,可以是模拟的项目,也可以是具有实战性质的项目。项目是人才培养的核心要素,具有完整的流程,贯穿于人才培养的始终。学生在项目实施中学习知识,锻炼技能,掌握技术,提升职业素养,实现培养目标。
软件“项目带动式”人才培养模式的特点是将教学过程与软件项目工程充分地融为一体,围绕项目工程的需要构建课程体系,组织实施教学,有利于瞄准岗位设课程、瞄准能力搞教学,提高教学的针对性和实效性;在项目工程的具体实施过程中学生根据自己的兴趣和特长,重点选择不同的职业岗位、扮演不同的角色,学习目的更明确、针对性更强,有利于学生个性的培养,也为学生未来的择业奠定良好的基础;以具体工程项目或生产项目带动教学,使整个教学过程能始终贴近生产第一线,学生可以及时了解行业的发展趋势,掌握最新的设计理念、管理理念和工程施工技术。学校可以更准确地了解市场对人才的需求状况,及时主动地调整教学内容。改革教学方法,使培养的人才具有更强的社会适应性和就业竞争力。将专业教育融入行业背景,有利于学校专业教育与市场行业运作的衔接,有利于实现学生与行业、与社会的“零距离接触”,真正实现职业技术教育以需求为宗旨,以就业为导向,产学研相结合的教育理念。
3.“项目带动式”教学的实施步骤。
3.1 以项目带动教学的教学目标。从企业的实际需求出发,中职“软件蓝领”需要掌握的技能主要有两种:
3.1.1 必备技能。包括:
①基本理论知识技能,包括计算机基础知识、数据结构和算法、操作系统知识、工具软件、测试软件;
②网络知识技能,包括网络基础、综合布线系统知识;
③计算机程序设计语言知识,至少包括一种计算机编程语言,例如C、C++、JAVA等;
④软件设计开发工具,包括Visual Studio、Jbuilder等;
3.1.2 附加技能。包括:
①软件工程与项目管理知识,包括CMM流程、PMP(项目管理)相关知识、软件开发模型。
②团队沟通协作能力。
针对这些教学目标去选项目,在完成项目的情况下带动教学内容的学习。
3.2 以项目带动教学过程的实施。项目将贯穿整个教学的始终,在完成项目的过程中学习知识,在学习的同时完成项目,理论教学和实践教学同步进行,相辅相成。
理论教学的进行要结合具体工程项目进行讲解,引导学生分析、讨论,获取知识,提高解决实际问题的能力。通过教学,使学生明了所学知识为何种工程项目(或生产项目)的实施服务,对培养何种能力有效。提高教学的针对性,调动学生学习的积极性,实现理论教学与工程实践的有机融合。
实践教学的进行需先筛选项目,项目选择与教学时间和进度相关,通常选择难度适中、对开发技能要求较低及工作量与教学时间相吻合的项目。这里以使用VC开发一款类似计算器功能的软件为例详细说明“项目带动式”教学的实施步骤。
首先由教师制定和本项目的工作流程和工作计划。
通常软件项目的工作流程如下,这些工作流程可参考软件成熟度模型(CMM)。
①计划制定;
②需求分析;
③软件项目开发;
④软件项目测试;
⑤版本;
⑥版本结束。
接下来按照项目要求进行角色配置。一般软件工程相关的人员包括项目经理和开发人员。项目经理可以由老师兼任,老师同时负责对项目方案总体的把握。在这个项目中,根据功能可分为界面和计算两个部分,可以据此将学生分为两个小组,称为A组或称界面组和B组或称计算组。每个小组确定一位小组长,负责对各组组内的工作内容和工作计划进行跟踪和汇总。另外一个重要角色是项目配置管理员(CMO),负责对软件产品本身涉及的工具,配置物料进行归档管理。
接下来按CMM流程开展项目。在“项目带动式”教学中,教与学的相辅相成主要体现在如何解决项目进行过程中的难题。项目本身是有很强的目的性的,真正的项目要求必须按照规定的进度,符合要求的质量进行交付。学生和老师必须在项目进展过程中想很多办法,不断提升个人的技能,才能保证项目成功完成。在项目开展过程中,将暴露出众多问题,而圆满地解决这些问题,既可以锻炼学生的动手能力,独立解决问题能力,还可以增强学生适应项目环境的能力,更重要的是,可极大的鼓舞学生的信心。
通常项目开发中主要的问题可以分为以下几类,针对性地解决这些问题,将可以最大限度的发挥“项目带动式”的优势。
①学生基础知识不扎实的问题。学生对项目涉及的基础知识掌握不够,无法满足项目开发的所有知识点需求。此时教师应启发学生进行相互学习和培训,或者引导学生主动去寻求这些知识进行自学。即教师应力避直接告知正确方式或结果,而是通过引导,“授之以渔”。对于学生反馈较多的问题,说明这是较普遍而又必须克服的,则教师可以提前将相关材料准备妥当,结合当前项目进行充分说明,以保证项目的进度和质量不受影响。
②项目小组间的团队合作问题。较中等的项目都可以分为多个项目小组,各自完成项目一部分功能,最后汇总为单一软件。教师在划分项目小组时,须充分考虑到人力与工作量的问题。较单独的项目功能可独立为小组,各小组间接口尽量要简单明确,防止因为接口问题产生的内耗。
③项目质量问题。教师在项目的早期应引导学生重视测试问题。“项目带动式”方法较重视学生动手能力培养,并应兼顾项目开发的质量评估,以确保学生在项目实施中收到良好的训练。教师可以在项目开发前期指定一到两位学生参与测试计划的写作和测试用例的写作。他们可以是各小组中开发人员,也可单独出来,仅做测试。教师参考测试学生的测试结论,对项目进行评估,甚至可以对项目小组直至每位负责开发的学生的工作进行评估。
在克服了上述诸多问题后,“项目带动式”教学一般会取得成功。由于软件项目基本不需要场地,又不会造成较多的人员花费,软件项目本身已经有较成熟的开发管理流程(例如CMM模型),又有较多的知识获取渠道,如网络、开源社区、其他知识共享体系,因而将“项目带动式”教学应用于软件项目,应用于“软件蓝领”人员的培养中,比较便利,易于规范化,是教学法的一种新的应用,更有利于填补我国软件人员的缺口。
4.运用项目带动教学模式培养软件蓝领注意事项。
4.1 适当的项目决定了该教学模式的成败。项目是“项目带动式”人才培养的核心要素,必须妥善选择。软件开发项目可大可小,需要根据教学环境综合考虑,包括计算机资源、学生本身已经具有的软件开发素质、学生人数等。必须准备有一定难度,通过努力可达成质量要求的项目,尤其是具有实战性质的项目,因为这种项目还可以通过互联网,获得认可,更加有利于总结经验获取信心。软件项目的获取,可来自本校的实际需求,例如排课表,排座位等软件开发;可以从校企合作中获取;可在互联网上获取一些适当需求,作为仿真开发的输入。
4.2 科学的设计项目开发流程。项目开发流程设计的恰当与否,直接关系到学生对知识的掌握,关系到专业培养目标的实现。设计项目流程时应注意:
4.2.1 项目流程要覆盖多角色,保证学生深入了解角色配置。项目开发不能仅包括一到两个流程,必须涵盖整个的软件开发流程,使学生对各个流程中工作任务有较好的理解,加强学生对软件开发团队的理解。
4.2.2 项目流程要明确,开发计划尽量详细完整。每个项目开发的关键步骤(称为里程碑)需要在项目开发时即制定下来,并到每一位项目参与者。教师的工作环境犹如“作战室”,跟踪项目的进展,适当的调整工作计划等等,都需要及时开展并到各角色。
[论文摘 要] 本文通过分析企事业单位信息化建设人才的需求,探讨高校信息管理与信息系统专业人才职业定位,研究信息管理专业人才知识体系构成,提出信息管理专业人才培养新模式,为信息管理与信息系统专业人才走出就业瓶颈提供可参考的人才培养新思路。
1现状分析
高校的专业设置受到社会分工的直接影响。一般说来,高校的专业设置主要以满足社会已有专业分工为原则,使大学生一毕业就能很好地适应专业工作岗位。
然而,信息管理与信息系统(以下简称信息管理)专业的设置却有些特殊。中国信息技术发展与应用起步较晚,远远落后于发达国家。为了尽快与发达国家接轨,加快国家信息化建设的步伐,在社会专业岗位并不清晰的情况下,中国高校纷纷开设信息管理专业。
从20世纪80年代开始,信息管理专业从无到有,发展非常快,至今已遍布全国各大高校。信息管理专业的职业定位从建立至今始终处于探索状态,虽然国内外学者一直在研究探索信息管理专业的教学体系、职业定位,但是大多没有系统化地从信息管理专业社会职业定位的角度来反思学生的知识构成与专业技能,使得教学体系的改革始终与学生就业脱离,没有从根本上实现信息管理专业学生专业培养与将来就业的直接接轨。
从理念上说,信息管理专业是一个管理学与计算机科学交叉的专业,所学的课程一般包括管理学相关课程、计算机相关课程和信息管理相关课程等。学生的就业方向可以是管理、计算机和信息管理,侧重在信息管理。
但从实际就业情况来看,信息管理专业毕业生应聘工作岗位时,往往会出现这样的情况:管理技能不如管理专业的学生,计算机技能学生不如计算机专业的。人才市场上提供的信息管理岗位需求比较少,且多数是要求从事电子化办公秘书工作,没有多少专业技能可言,这样的岗位各专业的本科生都可以胜任。由此反映出现行的信息管理专业在职场上没有体现其特有的、有别于其他专业的自身职业素质和技能,这是影响信息管理专业实现可持续发展的关键问题。
2信息管理专业人才职业定位分析
教育部在《普通高等学校本科专业目录和专业介绍》中对信息管理与信息系统专业的业务培养目标做了明确规定:本专业培养具有现代管理学理论基础、计算机科学技术知识能力,掌握系统思想、信息系统分析和设计方法以及信息管理等方面的知识与能力,能在国家各级管理部门、工商企业、金融机构、科研单位等从事信息管理及信息系统分析、设计、实施管理和评价等方面工作的高级专门人才。
根据上述培养目标来检索具体的社会岗位需求,发现国家企事业单位或部门在招聘的时候很少提供信息管理专业岗位需求,即使提到也是等同于计算机相关专业要求。
国家企事业单位信息化建设已经进入高速发展轨道,信息化战略地位、信息化推进组织体系、 信息化政策规划体系、信息化基础设施等已初步建立。信息化建设已经成为衡量企事业单位核心竞争力的重要指标,我国现阶段正处于信息化建设期,毫无疑问,社会需要信息化建设人才。
以企业信息化建设为例,其信息化人才需求包括技术领域、制造领域、管理领域等方面信息化建设人才,同时需要计算机硬件系统购置与维护、软件系统开发与维护、网络环境维护、信息化建设规划等方面人才。
技术领域信息化建设主要要求计算机辅助设计专业;制造领域信息化建设主要要求计算机辅助制造专业或自动化专业;管理领域信息化建设一般要求计算机及相关专业。
很明显,信息管理专业岗位应该在管理领域(覆盖政府机关、工商企事业单位等各行业管理领域)信息化建设,重点要放在信息化建设规划,管理信息系统分析、设计与开发,信息系统软件引进、实施与维护上。
从我国信息化建设现状来看,企业内部在信息化建设方面的岗位需求没有进行专业细分,它将管理信息系统软件的分析、设计、开发、引进、实施、维护和信息管理等工作需求统归为做软件。因此,企业招聘应届毕业生的入门要求就是能够编程,包括企业内部覆盖销各职能部门的信息系统软件,也包括企业各层次网站系统开发。而政府机关、事业单位则以网站系统开发和工作流管理为主。
也就是说,信息管理专业人才进入企事业单位的基础技能是软件开发,这一点与计算机软件专业毕业生就业要求相近。但在开发过程中,信息管理专业人才优势逐渐显露出来。即在系统需求分析过程中,信息管理专业学生更容易理解管理者的要求,对管理理论思想方法的掌握使其能够在理解现行管理系统的同时提出更高的管理信息化建设思路。
根据上述分析,信息管理专业人才要在信息化建设中找到合适岗位,软件开发技能培养是未来就业的敲门砖,而管理理论思想和方法的掌握则是其未来成为企业CIO的奠基石。
3信息管理专业人才知识体系构成
信息管理与信息系统专业培养的专业技术人才既不是计算机软件开发人员,也不是管理人才,它不同于计算机科学与技术专业,也有别于工商管理等管理专业。它的专业知识体系是二者的融合,与二者有很多交叉,又有很大差别。在基础理论上它强调管理学基础,在应用技能上则强调信息系统软件开发能力,编程能力将是其走入社会成功就业的基本要求。
应对现行的社会需求,信息管理专业人才知识与能力的构成至少要包含下述几个方面:
(1) 经济学、管理学等方面理论知识
要求信息管理专业学生学习掌握经济学的基本理论与分析方法,掌握企业管理相关理论知识,知识面涉及企业计划、采购、生产、财务、销售、人力资源等多方面管理理论知识。
(2) 计算机科学与技术方面基础知识
要求信息管理专业学生学习掌握计算机基本组成、操作系统、数据结构、数据库原理、程序设计基础、网络基础知识等。
(3) 管理学思想理论方法综合应用能力
要求学生能够综合运用所学的管理学理论与方法、经济学理论与方法、运筹学方法、应用统计学方法解决实际管理问题,这需要在教学过程中以案例引导方式培养学生自主思维、自主学习、自主解决问题的能力。
(4) 信息系统软件开发能力
要求学生在掌握计算机科学与技术知识的基础上,综合运用数据库技术和相关开发工具,实现信息系统软件的开发。
(5) 应用信息技术解决管理问题的能力
要求学生能够综合分析现行管理存在的问题,借助信息技术的应用,结合管理流程再设计,提出管理信息系统综合解决方案。
作为一个从事管理信息系统分析、设计、开发和维护的信息化建设人才,要掌握必需的管理学理论知识,并在此基础上强化信息系统分析、设计与开发能力。对于信息技术的掌握,不能只是认识和了解,必须经过信息系统软件开发的磨炼,形成系统化应用信息技术的能力,才能支持学生进入信息化建设行业中,胜任信息化建设规划,管理信息系统分析、设计与开发,信息系统软件引进、实施与维护等信息化建设工作。
4建立信息管理专业人才培养新模式
为了能够适应当前社会需求,信息管理专业人才培养必须以就业为导向,将理论教学和实践教学密切结合,将信息管理专业学生培养成为既有扎实的理论知识,又有一定专业实践技能的跨学科复合型人才,真正实现信息管理专业人才培养与社会岗位需求的零距离对接。 信息管理专业人才培养需要分阶段确定培养目标,通过各阶段学习与积累,逐步达到人才培养目标。
(1) 信息管理专业管理学基础能力培养
以理论教学为主,结合案例教学,培养学生管理学基础。参考教育部规定,开设下述课程:经济学、会计学、市场营销学、生产与运作管理、组织战略与行为学、管理学原理、应用数理统计、运筹学等。
(2) 信息管理专业管理运营技能培养
以提高学生的运营管理方面专业素质为目标,在掌握管理学基础知识的基础上要求学生掌握经营管理的综合运用能力。开设ERP沙盘模拟演练实验课,通过实际运营的模拟演练,将学生对理论知识的掌握上升到实际运用阶段。同时,通过运营能力的竞赛激发学生专业学习兴趣,培养学生系统管理思想,提高学生综合运用管理知识的能力,使学生建立立体的管理学思维方式。
(3) 信息管理专业计算机基础能力培养
在管理学基础知识培养的同时,培养学生计算机基础能力,主要开设下列课程:计算机导论、数据结构、操作系统、数据库原理与应用、程序设计语言、网络工程、软件工程等。
以提高学生的计算机技术方面专业素质为目标,要求学生掌握简单软件开发能力。结合信息系统分析与设计课程,建立软件开发基础实验室,通过对数据库、程序设计语言的综合运用,提高学生对计算机技术的基础应用能力。
(4) 管理信息系统分析与设计思想的培养
在管理学基础知识和计算机基础能力培养的基础上,开设企业资源计划(ERP)原理与应用课程,开设ERP系统操作实验课,培养学生将管理学知识与计算机知识综合应用能力,强化学生管理信息系统集成设计思想,提高管理信息系统分析设计能力。
(5) 管理信息系统软件开发能力的培养
开设信息系统分析与设计课程,开设软件开发实训课程,要求学生完成一个管理信息系统的开发,提高学生的软件开发能力。结合学生的毕业设计,要求学生完成管理信息系统分析、设计、实施全过程中,使学生具备信息化建设人才岗位需要的能力。
5结束语
当然,信息管理专业人才培养新模式的推出将对旧教学体系有很大冲击,特别是对本专业专任教师的知识构成和技能要求非常高。
学生专业思维方式的形成是通过每一门课程的学习、每一位授课教师专业思维方式的渗透而逐步形成的。这涉及专业人才队伍知识构成的改变,涉及整体教学课程的调整,对师资力量提出了有别于管理专业和计算机软件专业的、更高的专业技能要求。
信息管理专业专任教师的知识构成要兼有管理学知识和信息技术技能,同时要求进行过管理信息系统软件开发,否则很难在学生的4年学习过程中逐步引导学生建立系统分析、设计、实施,用信息技术工具解决管理问题的完整的、系统化的专业思维方式。特别是学术带头人应该具有实际管理信息系统开发经验和大型软件实施经验,能够从专业发展角度引领信息管理专业人才培养方向,达到高质量、高目标的专业人才定位。如果以管理学方面教师或计算机方面教师作为学术带头人,由于其专业思想的局限,会导致专业发展向某一方面侧重,造成信息管理专业学生只懂管理、计算机相关技能很差,或者有一定的计算机相关技能、管理理论基础却很薄弱的情况。
另外,在实际教学过程中,虽然将编程作为学生的基本技能培养,但更要注重学生的分析与设计能力的提高。编程能力是信息管理专业学生就业的基础,而在信息管理专业人才未来的职业生涯中,能够助其良好向上发展的应该是分析与设计能力。
在当前学生就业形势非常严峻的大环境下,如何最大限度满足社会对专业人才的需求,合理调整专业人才培养体系,实现教育与就业的近距离对接,这是当前高校专业教育必须思考的问题。从本科生职业定位入手,研究适合学生专业的社会需求,明确岗位所需要的专业技能,针对不同学习阶段,确定不同的相互关联的人才培养目标,形成完整的教学体系,将是未来高校专业人才培养体系调整的新思路,也是解决高校教育与社会就业脱离的人才培养新模式。
主要参考文献
[1] 中华人民共和国教育部高等教育司.普通高等学校本科专业目录和专业介绍[Z].北京:高等教育出版社,1998.
中图分类号:G646 文献标志码:A 文章编号:1674-9324(2016)48-0024-03
一、引言
软件工程是一个新兴专业,主要目标是培养工程型、应用型的专业软件人才。随着素质教育改革的不断推进,软件工程专业的建设也面临着全新考验。软件工程建设重在实践,只有在不断的实践中才能提升学生的技术和技能,为社会提供适用的专业软件人才。本文结合近年来我院软件工程专业的建设实践,探讨校企融合下应用型软件工程实践教育模式的改革,旨在培养具有动手实践能力和创新意识、能很好地适应市场需要的高素质软件工程应用型创新人才。
二、应用型软件人才培养模式
软件工程专业以计算机科学与技术学科为基础,强调软件开发的工程性,要求学生在掌握计算机科学与技术方面知识和技能的基础上,进一步熟练掌握从事软件需求分析、软件设计、软件测试、软件维护和软件项目管理等工作所必需的基础知识、基本方法和基本技能,突出对学生专业知识和专业技能的培养[1],使学生成为能够从事软件开发、测试、维护和软件项目管理的高级专门人才。
1.强调专业实际应用能力的培养。通过高校、企业双方的合作融合,引入实训机制,形成以“3+1”模式为框架、产学一体化为特色的应用型软件工程专业人才实践与创新能力培养平台,并把在企业培养的1年时间分散在学生大学四年的学习过程中,使学生能不断接触软件行业与企业[2],循序渐进,逐步加深学生对行业的认识与理解。
2.目的是形成“工程化教学―课程实验教学―基地实习实训―真实项目开发”的培养过程,建立“课程实践―项目实训―项目开发”的教学、实训模式,引导学生树立系统、科学的工程项目概念。
3.由学校和企业双方共同研究制订实践教学方案、共同实施,目的是提高学生的动手能力以及解决实际问题的能力,使学生毕业后能很快适应软件企业的要求[3]。
4.每学年根据教学计划以及教学实施的具体情况,在大一至大三期间,请合作企业选派资深工程师来校开设相关技术讲座,并选择部分专业课程由合作企业选派师资负责课程实践教学、实训的具体实施,学生在大四的时候再集中到合作企业进行强化训练。该专业学生4学年期间的实践活动简表如下表1。
通过改革软件工程专业的人才培养模式,结合“3+1”合作模式,借助企业的平台,按学期逐步推进、锻炼和提高学生的实践能力和综合素质,锻炼学生适应社会的需要,使学生能不断接触软件行业与企业,使其观念及早融入社会,循序渐进地加深学生对软件行业的认识与理解[4],逐步形成“课程实践―项目实训―项目开发”的教学、实训模式。
三、实训体系构建
通过高校、企业双方合作融合,将实训引入软件工程专业的本科教学中,探索校企融合下应用型软件工程教育模式的改革。以JAVA专业实训为例,我们的实训目标是提高学生的动手能力以及解决实际问题的能力,使学生毕业后能尽快适应软件企业的要求。在企业项目经理和学院教师的共同带领下,通过实训中的具体项目,将原来分散的专业知识系统化,把整个项目的实施过程,贯穿于学生理论知识学习的始终[5],使学生获得综合性应用锻炼,进一步了解标准软件开发过程与规范,掌握软件开发的基本技能,锻炼其团队协作精神。
1.实训内容和阶段。我们的实训分两个阶段进行:第一个阶段的校内专业实训为基础实训,一般以基础性的、业务简单的项目为案例,训练重点放在编码实现上。第二个阶段的企业工程实践为大中型项目实训,一般由合作企业从其案例库中选择其之前实践过的真实项目作为案例,内容涵盖一个软件项目开发的整个生命周期,目的是通过项目的强化训练过程,提升学生的基础知识、基本技能和基础技术,熟悉企业级的运行环境和框架。两个阶段的实训都贯穿软件项目开发的整个生命周期,包括项目管理、需求分析、技术储备、系统设计、编码、测试、提交、项目评审等阶段,但第一个阶段侧重于技术储备,体验软件项目的开发过程,培养学生掌握软件项目的调试方法和技术[6]。以JAVA实训为例,在技术储备阶段,第二个阶段侧重于项目的开发流程和各类项目文档,培养学生养成良好的编程习惯、了解行业前沿应用状况和项目开发的业务流程和知识,提高学生的表达、沟通和团队协作能力,进而养成良好的职业习惯。具体实训的内容和阶段如下图1所示。
通过项目的实战训练过程,提升学生的基础知识、基本技能和基础技术,熟悉企业级的运行环境和框架。通过完成案例项目的需求分析、系统设计、编码、集成、测试和项目评审过程的实践,了解软件项目的开发流程和规范。
2.实训目标。我们的实训目标按阶段的不同,具体内容也有所区别,要求学生实现的分段目标的侧重点也有所不同。
(1)第一个阶段的校内短期实训:该阶段属于基础实训,在实训过程中引入单元测试技术、软件工程、质量管理和ISO体系概念,让学生了解到企业软件开发对质量的要求和管理方法,提高学员对自己编写的软件的测试和调试能力,修正和增强学员对软件测试和质量的意识。在实训过程中引入新的Web标准、HTML5、CSS3、Canva、SVG等,为学生将来进入互联网或移动开发领域,进行基础知识、基本概念等的技术储备。以JAVA实训为例,该阶段的实训目标如下表2所示。
(2)第二个阶段的企业工程实践:该阶段为大中型项目实训,在大三第二学期校内短期的基础实训、学生技术发展规划的基础上,按照Java方向、Android和PHP前端开发三个不同的专业方向,在合作企业实训基地分组进行项目实训。期间结合加强项目训练和创新创业指导,培养学生的敬业精神、团队精神;以及如何把个人价值观和公司的价值观进行有效的衔接。以JAVA实训为例,该阶段的实训目标如表3所示。
3.预期成效分析。通过校企融合,借助于校企合作平台,探索应用型软件工程实践教育教学模式:一是能使学生获得实践经验,提高学生的综合素质和就业竞争力;二是可为学生提供更多的与企业接触机会,创造就业机会[7],扩大学生的就业渠道;三是可以为高校双师型教师的成长提供平台和环境。
(1)提高学生的综合素质和就业竞争力。有关统计信息表明:我国软件专业毕业生,无论是本科软件工程专业,还是高职软件专业,其就业率和专业对口率都不是很高;另一方面,企业又普遍反映找不到合适的软件人才。之所以会出现这样的“两难”局面[8],纠其原因在于目前高校软件专业的培养与企业对软件人才的需求不对称,学生在学校所学的知识和技能无法紧跟市场,实践动手能力方面相对较弱,与企业直接顶岗的要求存在比较大的差距。校企合作模式,能在一定程度上弥补这方面的不足。
(2)提升学生的就业能力,扩大学生的就业渠道。软件工程的发展与信息社会的发展和需求是息息相关的,而目前高校该专业的教育模式仍然集中于过多过泛的基础教育,教学方式仍然沿袭以理论讲授为主的模式,导致学生的实践能力与理论能力失衡[8]。因此,我们通过校企融合,整合优化培养方案,围绕培养目标,深化软件人才培养模式改革。从第二学年开始,每个学年度请合作企业的资深工程师为同学们进行实践训练,通过实训,使同学们逐步对大型软件的开发流程和方法有一个初步的了解,体验软件开发的工作氛围,逐渐树立基本的职业观念,以便到毕业时,能很好地适应软件开发相关技术岗位,提升就业能力,创造就业机会,扩大学生的就业渠道。
(3)培养“双师型”教师。在校企合作的基础上,选派部分教师到企业参与相关项目开发实践,培养教师的“双师”素质,提升教师的工程经历和软件项目设计、开发经验,了解大中型软件项目设计开发过程,提高教师实际工程研发能力,为双师型教师的成长提供平台和环境,使专业教师得到工程能力的锻炼和提高,为以后“任务驱动、项目导向”培养模式的开展提前做好师资储备。
此外,通过校企融合模式,培养应用型软件工程人才,还可为企业培养更多优秀的应用型软件人才。
四、结语
大学培养出来的软件人才在层次上来说应该是中高级的,他们受过良好的基础教育和理论教育,但由于传统的闭门造车式的培养模式,缺少实践的机会,而且所教授的理论和技术跟不上企业的现实需求,导致传统学历教育模式培养出的软件工程专业学生往往是理论知识有余而实践操作经验不足,毕业生不能够马上和完全适应企业的需要。因此,当前高校软件产业人才培养与实际需要存在着一定程度的脱节,学历教育与不断变化的市场需求的矛盾相当突出。而校企融合模式下应用型软件人才培养模式可以在一定程度上缓解这一矛盾,为企业培养更多优秀的应用型软件人才。
参考文献:
[1]柳婵娟,邹海林.基于校企合作的应用型软件工程人才培养模式研究[J].计算机教育,2011,(24):9-12.
[2]张广泉,杨季文.面向校企合作的软件工程人才培养模式探讨与实践[J].计算机教育,2008,(21):29-32.
[3]张丽.软件工程本科专业校企合作人才培养模式实践[J].农业网络信息,2015,(8):137-139.
[4]徐洪智,覃遵跃.校企合作共建软件工程专业实践教学体系[J].实验室研究与探索,2013,32(6):128-130,160.
[5]王爱民,谷川.软件工程专业校企合作实践教学模式研究[J].实验技术与管理,2012,29(1):143-145.
1.人才培养方向目标定位不清晰
软件工程专业硕士应当仅限于软件工程师的培养。软件工程具有极强的工科属性,其人才培养,除软件工程科学硕士和计算机科学技术一样,可培 研究型人才外,专业学位应当清晰定位于培养具有软件工程必备基础知识,在软件工程某一领域具有较强专业知识与技能的工程师。
2.师资比较缺乏,尤其是双师型师资缺乏
软件工程正式成为独立的学科时间相对较短,软件工程师资大多来源于计算机科学与技术专业。计算机科学与技术专业可以胜任软件工程基础课程,但这部分教师往往缺乏工程实际经验,在教学中往往表现为重理论轻实践。省属高校十分缺乏来自软件企业一线的项目经理以上的技术管理人员充任实践课程教师。
3.培养模式陈旧,不适应国家教育部要求
由于全日制软件工程专业学位研究生2009年才在全国开展,很多高校沿用学术型学位研究生培养模式,忽视了国家对专业学位研究生培养要求中的专业实践能力的培养,未能很好地开展专业实践教学。
4.课程设置陈旧,不适应软件企业的人才需求
大多数高校软件工程研究生课程设置大多套用计算机科学与技术专业的课程设置,未体现软件工程学科特点。原因主要是因为师资缺乏、招生规模较小,出于节约培养成本的考虑。
二、一种实用的软件工程全日制工程硕士培养解决方案
四川师范大学作为四川省属高校中最早开设计算机科学与技术、软件工程本科生培养的院校之一,在软件工程工程硕士培养的诸多问题上,做了一些有益探索与研究,针对性地提出了一套适合于省属高校软件工程全日制工程硕士培养的解决方案,希望能为同类型高校提供人才培养的借鉴。研究生培养方案的制定,重点需要解决课程体系设置、培养流程规划与控制。对专业学位研究生而言,还需要解决专业实践能力的培养与训练这一关键问题。
1.课程体系设置
软件工程学科正式确立的两个标志性文件是2004年IEEE推出的软件工程知识体(SWEBOK)和软件工程教育知识体(SEEK)。两个文件内容相近,都包含了软件工程核心类的知识领域、基础类或前导类的知识领域,以及其他相关领域的知识。软件工程研究生的培养从原则上说应遵循上述两个文件,围绕上述知识领域进行教学。但由于这两个文件将软件工程的知识体系划分为知识点,各领域之间必然存在重复和交叠。在课程设置上无法照搬上述两个文件。以SEEK为基础,我们对软件工程的课程设置进行规划。整个课程设置被分为五个层次,分别为工程基础课程、计算机基础课程、软件工程核心课程、扩展课程和实践课程,如图1所示。课程开设顺序大体按照五个层次由低到高依次开展。其中,工程基础课程提供软件工程所需数学理论基础、外语能力培养、软件工程文档写作、论文写作基本功训练。计算机基础课程提供软件开发必须的计算机基础知识,如网络、算法和数据库知识。
相对于本科课程而言,此类课程讲授内容更深入全面。软件工程核心课程设置了高级软件工程、软件体系结构和软件测试与质量保证三门课程。高级软件工程侧重于软件分析与设计、软件工程过程、软件开发案例分析。软件体系结构侧重于结构风格、案例研究、共享信息系统、结构描述、结构的分析与评估、特定领域的软件体系结构和流行的软件体系结构等。软件测试与质量保证着重于软件质量的改进,讨论如何提高软件质量的方法。扩展课程包含系列领域知识课程,研究生可根据研究方向选择两门;软件开发工具讲授最新流行的软件开发、过程管理所需要的软件工具的使用,以实践教学为主。软件开发新技术研讨课程以讲座形式开展,教师和学生均可作为一个专题的主讲。实践课程包含校内实践、校外实践和毕业设计三个环节。
2.培养流程与实施
教育部明文规定,专业学位研究生学制原则上为两年,同时要求应届本科生进行专业实践不少于一年。一般来说,研究生在校课程学习时间应有一年左右,加上专业实践的一年,如何合理安排学习计划,在两年内完成培养环节成了一个现实的重要问题。我校以周为单位制定了四川师范大学软件工程专业学位研究生培养流程,如表1所示:上表规划了研究生培养中的几个关键环节,依次为报到入学、课程学习、校内实践、校外实践、开题、毕业设计、论文写作和送审答辩。第一学期研究生主要是课程学习,同时在校内导师指导下开展文献阅读和编程能力锻炼。第二学期前半学期结束理论课程的学习。后半学期和暑期开展校内实践和毕业设计开题工作。第三学期研究生到实习基地进行校外实践。从第二学期后半段和整个第三学期,学生在专业实践的同时,需完成毕业设计。从第二个寒假开始直到第四学期前六周,研究生完成毕业论文的初稿。从第七周开始,进行论文修改、、盲评和答辩工作。
从培养流程表可以看出,这种安排具有两个显著特点。一是理论课程学习安排在一个半学期完成,二是实践课程分为校内实践和校外实践。研究生理论课程学习任务并不重,完全可压缩到一学期半,同时可为实践提供更多时间。校内实践非常有必要。由于是省属高校学生大多能力一般,为保障学生进入企业能融入研发团队从事技术工作,必须先期培训其实践能力。这种安排时间较为紧凑,也比较合理,符合专业学位研究生侧重于实践能力培养的要求,也在两年的学制内确保了研究生的实践时间不少于36周。
三、专业实践能力的培养与训练
软件开发能力是软件工程专业硕士必备的核心能力,其能力培养既是对前端课程学习效果的检验,也是后端毕业设计和就业的必然需要。我校将软件工程专业硕士实践能力培养融入了众多环节。从前期的实验型课程教学,到中期的校内实践、再到后期的校外实践和毕业设计。实验型课程教学解决软件设计开发的基础技能,校内实践解决中小规模软件设计开发能力,校外实践和毕业设计解决中大规模软件设计能力。
1.实验型课程教学
包含软件工具的使用训练、软件开发环境的搭建、软件开发案例分析和新技术研讨。软件工具的使用训练学生单个软件开发工具的使用,如项目管理软件Project、开发文档化软件Rational、软件测试工具LOADRUNNER、QTP、TD等。由于这些工具结构分散,还需进行开发环境的搭建训练。开发环境搭建训练内容一为搭建基于微软的VSTS和VisualStudio的开发平台,适合.net方向;内容二位、为搭建基于IBMRSA和Eclipse的开发平台,适合J2EE方向。软件开发案例分析中研究生将自己放在决策者的角度来思考项目所涉及到的具体问题,增强了学生的实际应对能力。新技术研讨促进学生或主动或被动地掌握了一些新兴技术,拓宽了技术领域。
2.校内软件开发实践
采用项目驱动形式开展。要求研究生必须申报各类实际的软件开发项目,如四川省苗子工程、学校研究生科研创新项目、学院研究生科研创先项目。研究生可组织本科生参与项目实施,但必须任项目组长,在项目中担任核心角色,完成软件需求文档审定、软件架构设计、软件详细设计、大部分编码工作、测试方案制定等重要工作。
3.校外软件开发实践
在上述环节经历后,研究生已经掌握中小规模软件开发的基本技能,此时将研究生派到实习基地,实战参与企业软件开发项目。其实践由校内导师和企业导师共同负责。前期技能的培养已保证研究生胜任企业中一般性的软件开发角色。
4.毕业设计
研究生在校内和校外实践的36周中,还需要同时进行毕业设计的开题、实施。研究生可结合企业实习工作完成毕业设计。专业实践的考核分为定期汇报和实践环节结束汇报两种形式。研究生应每隔两个月集中汇报一次实习期工作心得,取得的成绩等。实践结束时在全院公开汇报,其成绩作为实践课程成绩。
实训是一种新的实践教学形式,最早在职业技术教育中开展,其目的是解决毕业生走向职业岗位时达不到岗位要求的问题。由于职业教育的定位是面向岗位的职业技能教育,培养生产一线的操作人员,所以实训教学以系统地训练岗位技能和技术运用为主。近几年,高校为了解决毕业生由于不能适应工作岗位技能要求导致就业不畅的问题,加强了以培养学生实践能力为主的实践教学改革。许多院校的软件工程类专业(方向)在学生进入实习之前,增加了实训教学环节。由于对实训教学目标定位的认识不同,导致在实训的时间长度、内容、要求和管理上有很大差异,对实训教学的研究和建设投入不足。本文结合我校计算机科学与技术专业(软件工程方向)人才培养的实践,以及我们对本科软件工程实训的认识,介绍我校软件工程实训的目标定位和对相应课程体系的探索、实践情况。
1软件工程人才培养课程体系
我校是以教学为主,培养应用型人才的地方本科院校。我校的计算机软件工程人才培养定位是:“掌
握计算机科学与技术学科的基础知识与技能,具有一定的工程技术基础和较强的实践动手能力,具有创新精神、竞争意识和良好的团队合作能力,能够适应技术进步和社会需求变化,能够从事计算机应用软件开发与管理的高素质软件工程人才”。根据国家对本科人才培养“宽口径、厚基础、强能力、高素质”的总体要求,和教育部高等学校计算机科学与技术教学指导委员会的软件工程专业规范[1],我们构建了简称为“211”结构的课程体系,它主要包括大学基础教育、专业教育、职业技能与技术应用教育、综合素质培养四大板块。即在大学一、二年级,用两年的时间进行大学基础教育,包括人文社科、身心健康、工具(外语、计算机、文献检束等)、专业基础等,以学生长远发展需要,提升基础知识层面和综合素质,为后继的专业课程学习做铺垫为目标;三年级进行系统的专业教育,以专业核心知识和基本能力培养为主,以提升学生专业知识层面和专业基本能力为目标,同时开启必要的专业方向课程,为后继的职业技能培养做铺垫;四年级进行面向岗位的专业职业技能培养和技术应用创新教育,以学生就业为目标,其主要的教学形式是实践教学。课程体系结构如图1所示。
图1人才培养课程体系结构示意图
2目前国内软件开发实训存在的主要问题
目前国内开展软件实训的机构主要有三类:企业或软件行业协会投资的社会培训机构;由政府、企业等多方投资建设,独立运营的实训机构;校企合作共建的实训基地,这中间又有两种,一种是以学校投资为主,实训基地建在校内;另一种是学校进行必要的投资,实训基地建在企业。实训开展形式主要有三类:1)学校将实训委托给社会培训机构或企业,由他们负责学生实训教学;2)学校与社会培训机构或企业合作,派出实训指导教师与承担实训教学任务的机构共同实施实训教学;3)由学校自己组织在校内进行实训教学。由于承担实训任务的主体各自的利益目标不同,各自的擅长不同,实训对象所拥有的基础不同和各自对实训的理解不同等多种原因,造成目前软件实训存在以下主要问题:
1) 实训的内容体系设计单一,通常只要求通过训练掌握某项具体的开发平台技术,追求的是程序代码的实现。
2) 用于实训的软件开发项目小,软件开发过程的控制与管理、软件质量控制与保证、团队的合作与协调等软件工程的重要内容和思想体现不出来,使得学生在实训之后,没能体会到软件工程的特点和重要性。
3) 实训指导教师的软件项目开发经验少,工程素质不高,同时缺乏相关的教学经验,不能保证软件工程的思想、技术、方法和要求在实训中得到贯彻落实。高校教师在软件开发的工程能力和经验上缺乏,而来自企业的指导教师在软件工程理论和实训教学方法上存在明显不足。
4) 实训所需的工具、平台等条件不足,不能保证实训目标全部实现。
5) 实训的团队合作、团队目标管理往往被忽略,这使得经过实训之后,学生的团队意识,与人沟通、协调、合作的能力没有明显的提高。
6) 实训中学生对新知识、新技术学习的能力培养没有得到应有的重视和训练,鼓励创新的机制和措施不够,这使得经过实训之后,学生除在具体某项技能方面有所收获之外,在学习能力、技术应用能力、接受新事物和创新意识等方面收效甚微。
3软件工程实训课程体系建设
实训是一个综合、系统的工程,其目的是提高学生的知识、技术应用能力,积累工程实践经验,从而提高职业技能,实现从学生向职业工作者的转化。对于以上存在的问题,我们认为师资、课程体系是核心和基础,实训项目是关键,在干中学,在学中干是行之有效的方法。以下仅就软件工程实训课程体系的建设进行探讨。
3.1目标定位
课程体系反映了对人才培养的知识和能力要求[2]。本科软件工程型人才的实训定位应该从软件开发企业的岗位要求、学生职业发展空间、初步能够适应多种岗位需要等多方面考虑。从学生初次就业的岗位看,软件开发人员的主要岗位有程序员、测试员等。这类人员需要有良好的理解设计和程序的能力,能够在一种开发平台上熟练地进行规范的程序设计和相应的程序测试,能够清楚自己所做工作与他人工作之间的关系,理解自己所做工作在整个(或局部)设计中的作用。从职业发展空间看,软件开发人员经过2~3年的实际工作锻炼,应能够承担软件工程师的角色,承担必要的分析、设计、任务分解、技术指导、协调和管理任务。所以,本科的实训目标定位既要面向现实,又要给学生发展的潜力和意识。我校的软件工程实训的目标定位是提高软件开发程序实现技能,提高软件工程知识、技术应用能力,积累软件工程实践经验,实现从学生向软件职业工作者的转化。具体要求是:
1) 熟练掌握一种软件开发平台及相关技术,能够用它们进行规范的程序设计。
2) 掌握软件测试的方法,初步能够设计测试方案,用测试数据集完成相应的软件测试工作。
3) 理解软件生命周期中各环节的主要概念,初步掌握各环节的主要工作、所采用的技术和实施方法,初步掌握有关工具的使用,能够用它们完成相关的分析、设计工作。
4) 了解软件开发的过程控制、质量保证和管理的方法和特征,理解它们的重要性。
5) 理解团队及各种角色的作用,掌握交流勾通、协调合作的必要方法,形成团队意识。
6) 形成快速学习专业知识和技术的能力,查阅相关技术资料(含英文资料)的能力。
7) 了解、体验软件企业的工作环境、形式和要求。
3.2构成原则
实训以项目为载体,以软件开发的工作流程为驱动实现知识、技术、能力和素质的全面提高。实训课程体系作为实现实训目标,制定实训计划的基础和核心,应坚持以下原则:
1) 以企业实际需求为导向,以能力培养为核心,以学生适应软件技术岗位为目标,以职业岗位技能为重点,兼顾长远发展。
2) 注重知识、技术、能力、素质的协调发展,使学生通过实训既学习了知识和技术,又提高了应用知识、技术的能力,升华了自身的素质。
3) 以职业技能训练为重点,突出技术应用能力培养,强调在应用中创新,通过解决问题来体现技术和人的价值。
4) 课程体系应具有开放性、灵活性,能够即时反映软件技术的发展。
5) 课程体系要与人才培养方案的课程体系衔接,有明确的应用软件开发领域,体现自身特色。
3.3课程体系内容
我校的计算机专业软件工程方向人才培养计划课程设置以计算机科学优先,接着是软件工程基础和软件开发平台技术基础课程,将软件工程的技术与方法、软件开发的管理、软件开发平台技术的深化、职业综合素质等方面的课程统一综合到实训课程体系中;以互联网应用软件开发为平台,以管理信息系统和电子政务/电子商务为应用领域。实训过程以软件项目开发工作流程为主线,内容涵盖项目开发的全过程,保证学生能够体验到软件开发的全过程。实训以职业技能和技术应用为重点,教师讲解不超过总时间的20%。软件工程实训课程体系如图2所示。
1) 在实训之前开设软件工程与技术基础课程群。它主要是为学生进入实训之前奠定必要的技术、
图2软件工程实训课程体系示意图
工程和应用领域知识基础。主要课程有软件工程导论、面向对象设计方法、信息管理系统设计与开发、C#语言程序设计、.Net架构程序设计(或Java语言程序设计、J2EE架构程序设计)、XML语言、Linux操作系统(或Unix操作系统)、电子商务、电子政务等。
2) 开发技术平台课程群。它是在.Net开发平台(或J2EE开发平台)基础之上进一步深化、细化有关技术,提高在开发平台上的软件实现能力的一组课程。主要课程有人机交互与界面设计、数据库程序设计、数据接口程序设计、Web Services设计、应用安全程序设计、动态服务组合、新技术介绍等。
3) 软件工程技术与方法课程群。它是一组提高学生软件工程意识、技术和方法的课程,是学生今后向高层次软件职业人员发展必备知识和能力。它培养学生具有软件工程的理论知识,能够应用它们指导软件开发的实践。要求学生掌握常用的需求分析与设计工具,具备一定的软件分析与设计能力,了解软件开发的管理过程和技术。主要课程有:软件需求分析、软件设计与体系结构、软件详细设计、软件测试与质量保证、软件过程与管理、软件分析与设计工具等。
4) 职业综合素质课程群。它是一组提高学生非技术方面的综合素质的课程。它培养学生团队意识、沟通合作能力、专业资料获取与专业外语应用能力,使其具有良好的职业道德和一定的工程经济概念,了解现代软件企业的运行与管理。主要课程有团队激励与沟通、工程经济学概念、信息社会与职业道德、软件成熟度模型与软件企业管理等。
在课程体系中,开发技术平台课程群是学生实习、初次就业体现自己的技术和能力的主要内容,同时它是更好地理解、掌握软件工程技术与方法中诸课程的基础。所以,它是实训的重点。软件工程技术与方法是中、高级软件职业人员必备的知识和能力,需要在大量的工程实践中去提高认识和积累经验。它在实训中以体验、领悟为主,重点是训练分析、设计的方法和相关文档的规范表达。职业综合素质课程群的知识对于学生步入社会,在职场上取得成功很重要,并且它是实训取得成功的基础性知识,要贯穿整个实训过程。
3.4评价指标
实训所包涵的内容和重点是实训成功的核心和
基础。为了科学评价与不断优化实训内容与重点,通过向行业专家咨询和实践,我们初步建立了一个实训课程体系评价指标体系[3]。它主要由职业技能、工程实践、专业知识和职业综合素质几个方面构成。评价指标体系如图3所示。
图3课程体系评价指标体系
4结语
我校从2005年开始,通过与微软合作,引进微软职业技术教育课程,开始在计算机本科教育中用一定的时间进行职业技术教育。通过对两届学生的教学实践,我们感到微软职业技术教育课程相对本科人才培养存在着软件工程方法、技术方面内容薄弱,而微软
开发技术内容过细的问题。2007年,我们通过对有关教学内容的调整补充,整合成软件工程实训。实训大大提高了学生软件开发技术的掌握和应用能力,增强了学生的就业能力和质量。2007、2008届参加软件工程实训的学生,90%以上到软件开发企业就业。学生的知识结构、技术水平和能力、综合素质等得到企业好评。
参考文献:
[1] 教育部高等学校计算机科学与技术教学指导委员会. 高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)[M]. 北京:高等教育出版社,2006:12.
[2] 舒蔚,万常选. 计算机专业程序设计课程体系架构的研究与实践[J]. 吉林大学学报:信息科学版,2005(8):1-4.
[3] 韩春燕,高晓兴,姜慧妍,等. 软件工程专业课程体系优化方法研究与实践[J]. 计算机教育,2009(4):70-73.
Research on Curriculums in Software Engineering Training
YUAN Lei, HUANG Jian, NING Bin