前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇软件开发基础知识范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
关键词:高职;软件开发课程;虚拟实训;实践教学
中图分类号:G712 文献标识码:A 文章编号:1007-9599 (2012) 11-0000-02
一、引言
为培养应用型和技能型软件开发人才,在高职软件技术专业中实施三阶段技能递进培养模式,该模式将技能培训分为基本技能积累、专业核心能力培养和综合技能培训三阶段。基本技能积累阶段包含培养学生基本操作技能和编程技能的课程,如程序设计基础等课程;专业核心能力培养阶段包含培养更高一级专业能力的课程,如桌面应用程序开发、web应用程序开发等课程;综合技能培训阶段是在前两个阶段的基础上,开展以提高职业行动能力为目标的综合技术应用训练。
学生在教学阶段递进过程中需要通过大量实践掌握软件开发技能,因此每一门专业核心课程都设置相应的实训课程,这些课程与综合技术应用训练都是以软件开发项目为载体,通过实训,使学生提高实践能力、积累实际软件开发经验。为实现实践教学过程与软件开发过程的对接,必须采用相适应的教学模式以及提供合适的软件开发实训环境。由于培养费用、实践场地的限制,让每个学生都走上实际工作岗位参加真实环境中的项目开发存在很大的困难。在软件开发实训课程中采用基于虚拟实训的实践教学模式可以很好的解决上述问题,虚拟实训作为一种打破时间、空间限制的实训方式在节约教学投资、优化教学情境和实现资源共享等方面均起到十分重要的作用。
二、构建基于虚拟实训的实践教学模式
(一)构建思路
根据对软件开发人员岗位需求的调研,软件产品开发工作过程包括项目立项、需求分析、设计、编码、测试等一系列工作。工作任务对工作和技术的要求为熟悉软件开发流程,掌握相关开发技术,具备良好的代码编码习惯及技术文档编写能力,有较强自学能力、分析和独立解决问题的能力、团队合作精神和沟通能力。
为达到学习过程与工作过程的一致性,引入虚拟公司形式,采用虚拟环境与真实项目相结合、虚拟员工与真实管理相结合的方式,构建基于虚拟实训的实践教学模式。在学校的实训室中,模拟公司的工作环境,以真实项目为载体,按照公司的软件项目开发流程完成项目开发,缩短学生所学知识和应用的距离。通过教师学生员工化,模拟公司开发部的组织结构,教师担任项目经理的角色,完成岗位相应的工作,包括协调人员配置、制定项目解决方案、监控项目执行、提供技术指导、组织项目评审。学生担任开发部普通员工的角色,在软件开发员岗位上完成项目开发各阶段任务,在项目实践过程中熟悉规范的软件开发流程,掌握高效的软件项目开发方法和技能。
(二)内容结构
基于软件开发岗位工作任务的要求,构建具有“工学结合、校企结合、虚实结合”特点的虚拟实训教学模式。该模式主要由四部分组成:知识培训、项目实施、项目管理和项目评审。各组成部分涉及三大类角色:项目经理(教师)、项目组长(学生)、项目成员(学生),项目经理负责完成知识培训和项目管理,项目组长和项目成员负责项目实施工作,项目经理、项目组长和项目成员共同完成项目评审。
知识培训部分:包括专业基础知识、实训项目涉及的关键技术与知识以及项目应用领域知识的培训。专业基础知识培训包含软件工程基本知识、特定语言的代码规范、团队开发规范、技术文档编写、软件测试用例的执行和记录等项目开发支撑知识。关键技术与知识的培训由项目经理根据课程目标和项目特点展开,包括关键技术和常用架构的学习、企业最新技术和开发工具的引入。领域知识培训是指项目应用领域背景知识的介绍,例如财务管理系统的开发背景涉及金融财会的相关知识。
项目实施部分:项目实施是虚拟实训教学的重要组成部分,包括实训任务分解和项目实现。项目组接受来自项目经理的实训任务,由项目组长进行任务分解并分配到各项目成员。项目成员按照企业软件开发流程执行项目实施各阶段的典型工作任务。
项目管理部分:项目管理包括进度控制和过程检查两部分,由项目经理实施以保证实训项目按实训计划、实训大纲的要求如期完成。项目经理指导项目组长制定项目开发计划,根据项目计划监督各组的工作进度。过程检查部分包括设定过程检查点以及阶段通过标准,项目经理按照通过标准审查阶段成果,确保项目完成质量。
项目评审部分:项目评审部分由项目演示交流和项目考核两部分组成。在项目演示交流环节,各项目组介绍开发过程、演示项目运行结果、进行项目答辩。在项目考核方面,采用多元化的考核体系,注重对学生实训过程的评价,在项目经理考核的基础之上,参照项目组长评价,得出最终评价结果。
(三)应用过程
关键词:软件工程教学;案例教学法;问题式教学模式;层次化实践教学
中图分类号: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.
[5]卢莹,林荫.问题式教学模式研究[J].计算机教育,2011,(14):98-101.
[论文关键词] 企业信息化 信息管理与信息系统 企业资源计划 ERP沙盘
[论文摘 要] 本文通过分析企事业单位信息化建设人才的需求,探讨高校信息管理与信息系统专业人才职业定位,研究信息管理专业人才知识体系构成,提出信息管理专业人才培养新模式,为信息管理与信息系统专业人才走出就业瓶颈提供可参考的人才培养新思路。
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.
[2] 胡昌平.面向21世纪的中国信息管理类专业教育[J]. 情报学报,1999,18(1):3-9.
关键词:软件工程;实训;课程体系
实训是一种新的实践教学形式,最早在职业技术教育中开展,其目的是解决毕业生走向职业岗位时达不到岗位要求的问题。由于职业教育的定位是面向岗位的职业技能教育,培养生产一线的操作人员,所以实训教学以系统地训练岗位技能和技术运用为主。近几年,高校为了解决毕业生由于不能适应工作岗位技能要求导致就业不畅的问题,加强了以培养学生实践能力为主的实践教学改革。许多院校的软件工程类专业(方向)在学生进入实习之前,增加了实训教学环节。由于对实训教学目标定位的认识不同,导致在实训的时间长度、内容、要求和管理上有很大差异,对实训教学的研究和建设投入不足。本文结合我校计算机科学与技术专业(软件工程方向)人才培养的实践,以及我们对本科软件工程实训的认识,介绍我校软件工程实训的目标定位和对相应课程体系的探索、实践情况。
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
(Mathematics and Computer Science College, Xiangfan University, Xiangfan 441053, China)
关键词:软件工程;课程体系;培养方案
软件工程教育兼属科学教育和工程教育范畴,软件工程的科学教育属性主要是引导学生对人类意识与智慧进行科学理解、增强运用软件本质特性(构造性与易演化性)和解决具体问题的能力;而软件工程的工程教育属性主要是引导学生综合应用计算机科学、数学、管理等科学原理,借鉴传统工程的原则、方法,提炼和固化知识,通过创建软件来达到提高质量、降低成本的目的。然而,McKinsey Global Institute2005年10月发表的一份报告称,我国2005年毕业的60多万工程技术人才中适合在国际化公司工作的不到10%,主要原因是中国教育系统偏于理论,学生在校期间几乎没有受到Project和团队工作的实际训练,这对我国高等院校工程教育改革与创新提出了挑战,也为软件工程专业建设指明了方向。
合理的课程体系是高等院校保证培养目标和形成办学特色的重要手段。目前,我国1900多所普通高校中虽有100多所院校开设了软件工程专业,但与当前软件工程技术发展差距较大。为了培养出既有理论知识又有应用技能的工程型实用软件人才,软件工程专业课程体系必须进行改革。对此,本文结合CC2005、SE2004、SWEBOK、国内软件工程专业课程设置现有的研究成果,探索软件工程专业本科教学课程体系建设问题。
1 软件工程专业课程体系设计策略
计算学科本科教学常用的课程体系设计策略主要划分为:课程启动策略、课程组织策略、特色课程设置策略。课程启动策略主要包括:1)围绕算法设计展开的算法优先策略;2)自底向上展开的硬件优先策略;3)从计算机导论展开的广度优先策略:4)强调编程能力的程序设计优先策略;5)强调系统使用命令优先策略;6)从面向对象展开的对象优先策略。
课程组织策略主要有:1)基于主题的组织模式,它把知识体系中的每个知识域组织成一门或几门课程;2)基于系统的组织模式,它把每类计算机软硬件系统设置成一门或几门课程;3)混合模式,在课程设计时不考虑区分前两种方法,兼而有之。特色课程设置策略主要依据本校办学特色和研究专长来确定。
由于软件工程教育兼属科学教育和工程教育范畴,其科学属性和工程属性决定了软件工程专业本科教学课程规划,一方面要强调工程性、技术性、实用性、系统性、综合性和复合型,另一方面要强化基础软硬件知识在解决复杂软件构造和应用方面起到的关键作用。对于课程启动策略而言,传统计算机科学专业的课程启动方式并不适合于本专业,但工程优先策略似乎也不适合于没有任何计算机基础的本科生;同样,在课程组织策略上,基于主题的组织模式更多地具有科学研究属性,而基于系统的组织模式又不利于基础知识强化;此外,特色课程设置时,有时会缺乏全面综合考虑,因人设课会造成特色课程系统性差问题。因此,在软件工程专业课程体系设计策略方面,应根据软件工程学科自身属性,综合考虑以上各种策略特点,全局思考,统一规划,避免课程系统性差、教学内容重复和遗漏并存等现象。
2 软件工程专业课程体系架构模型设计
根据软件工程专业本科教学的培养目标及规格要求,其课程体系采用“夯实基础教育、提高系统认知、强化软件开发、推进工程实训”为主线的设计思路,构建了“分层次、互动式、工程化”的课程体系架构模型(如图1所示)。该模型共分为四个层次,即基础知识教育层、系统认知教育层、工程设计开发层和工程实践训练层。各层次不是相互独立的,而是相互关联、相互影响、逐层递进的演进关系。该模型简化了计算机科学核心课程数量,突出基于主题的组织模式,沿着由浅入深、循序渐进的认知路径,力图实现“基础与编程一体化、编程与系统一体化、系统与工程一体化、工程与职业一体化”四位一体的工程型实用软件人才教学目标。
2.1 基础知识教育层
基础知识教育的设计思路,强化学生的基础知识和编程意识,实现“基础扎实和编程意识强”两个目标。基础知识教育层结构具体划分为:数学基础类课程模块、外语类课程模块、软件基础类课程模块、其他公共基础类课程模块。根据各模块自身特点,全面考虑各模块之间的关联性,做好彼此之间的衔接。在课程启动策略方面,主要采取基于基础的编程优先策略。在数学基础类课程模块中确定一门衔接较好的基础课作为软件基础类课程模块的启动,软件基础类课程模块率先启用软件设计基础课程,力图达到“基础与编程一体化”的教学目标。在课程组织策略方面,采取基于主题的组织模式,有利于学生掌握基础理论知识。
2.2 系统认知教育层
系统认知教育的设计思路:强化学生的编程能力和对软件系统的认识能力,实现“编程能力强和系统级认知”两个目标。根据软件工程专业对硬件系统和系统软件的知识要求,系统认知教育层结构划分为:数据库系统类课程模块、网络系统类课程模块、操作系统类课程模块和编译系统类课程模块。在课程启动策略方面,主要采取基于编程的系统优先策略。通过软件基础类课程模块的数据结构等课程和系统认知类课程模块的数据库原理及应用等课程,进一步强化学生的编程能力,并以程序设计为主线引导学生的系统级认识能力,实现“编程与系统一体化”的教学目标。在课程组织策略方面,采取基于系统的组织模式,简化计算机科学核心课程数量,提高学生学习的有效性和对知识的掌握程度。
2.3 工程设计开发层
工程设计开发的设计思路:以工程化方法为手段,依托项目培养学生的“工程”意识,锻炼学生对软件系统的设计与开发能力,进一步强化学生的系统级认识,实现“更完整的系统级认识和软件系统工程化设计开发技术”两个目标。根据软件工程项目开发流程,工程设计开发层结构划分为:软件过程类课程模块、软件设计类课程模块、软件架构类课程模块、软件测试类课程模块、人机交互类课程模块、特色项目类课程模块、可扩充类课程模块。该层综合考虑核心专业课程和特色项目课程设置,基于专业方向设置若干动态可扩充课程,全面考虑课程之间的关联,强调统一设计、统一规划。学生在这个层次必修一些工程设计开发系列课程,选修可扩充类课程,达到“系统与工程一体化”的教学目标。课程启动策略采取基于系统的工程优先策略。课程组织策略采取项目的组织模式,以此来提高学生的软件系统设计与开发能力。
2.4 工程实践训练层
工程实践训练总体设计思路:通过实验训练、专业实习、项目实训、毕业设计等教学环节,依托校内 外实习实训基地,采用校外实习实训、自主实习实训、校内实习实训和外聘软件工程师等形式,强化学生的工程能力,培养学生的职场素质,实现工程与职业一体化的教学目标。工程实践训练层结构具体划分为两大类,一类是实验与实习类课程模块,另一类是工程实训与毕业论文类课程模块。其中,实验与实习类课程模块的具体设计思路,通过基础实验、系统体验、编程能力训练三个环节,进一步夯实学生的基础知识,完善学生的系统级认识,强化学生的开发技能;而工程实训与毕业论文类课程模块的具体设计思路,通过“软件工程项目实训”这个载体,采取“企业+实训+论文+就业”捆绑的运作模式,与多家国内知名IT公司合作,让学生到企业进行实际项目综合训练,并完成毕业论文设计工作,实现理论与实践结合、技巧与职业素质结合的教学目标,同时也为学生就业提供一个良好平台。
上述四个教育层是彼此联系和互动发展的,在课程体系设计中充分考虑衔接性、系统性和创新性。交流、沟通、讲演、写作的培养更多体现在第二课堂科技学术活动中。
3 软件工程专业核心课程设置
3.1 课程设置原则
软件工程专业课程设置遵循六个基本原则,即先进性、灵活性、复合性、工程性、创新性和模块化。1)先进性:课程设置和课程内容需反映国际上先进的软件技术发展成果和软件企业对先进技术的需求,以及相关的基础理论。2)灵活性:课程设置需具有灵活性,应根据软件技术的发展及时调整。3)复合性:课程设置需包括技能、工程、管理等方面的教学内容,使学生具有必要的综合技能和基本素质。4)工程性:课程设置面向软件工程实践,强调工程实践能力培养,使学生能够自觉运用先进的工程化方法和技术从事软件开发和项目管理,具有团队协作精神。5)创新性:课程设置应倡导学生自主学习,并给予必要的指导,从而培养学生自主学习和自我提高能力,以及勇于开拓和善于创新能力。6)模块化:课程应按照模块化准则设计,课程模块设计可以交叉。根据软件技术最新发展、当前市场需求及专业培养方向、学生目前具备的领域知识等,灵活调整课程设置和课程内容。
3.2 核心课程模块设置
1)软件基础类课程模块设有:计算机硬件基础、软件设计基础、数据结构、计算机组织原理、面向对象程序设计、算法分析与设计等课程。2)操作系统类课程模块设有:操作系统原理、LINUX系统基础、嵌入式系统基础等课程。3)网络系统类课程模块设有:计算机网络、网络规划与集成、网络安全检测与防范技术、网络协议与网络软件等课程。4)数据库系统类课程模块设有:数据库原理及应用、ORACLE数据库、数据仓库与数据挖掘技术等课程。5)编译系统类课程模块设有:编译系统原理、编译技术等课程。6)软件过程类课程模块设有:软件工程、需求工程、软件项目管理、软件建模技术UML等课程。7)软件设计类课程模块设有:C++高级程序设计、J2EE与中间件、.NET架构技术、设计模式等课程。8)软件架构类课程模块设有:大型软件系统构造、软件体系结构等课程。9)软件测试类课程模块设有:软件测试技术、软件测试与评估等课程。10)人机交互类课程模块设有:人机交互技术等课程。11)特色项目类课程模块设有:软件工程项目案例解析、大型软件工程项目实训等课程。12)可扩充类课程模块设有:手机游戏开发、网络游戏开发、计算机图形学、嵌入式Linux网络及GUI应用开发、嵌入式Linux驱动开发、手持设备软件开发等课程。
4 软件工程专业培养方案制定与实施
软件工程专业培养方案制定是基于软件与工程的复合,将软件工程与领域应用相结合,强调计算机科学和数学基础的同时,将专业课程重点放在软件新技术和软件工程新技术方面,通过对实践类课程工程化改造,增设软件工程项目实训环节,开设部分技能课程,试图使学生的基础知识、专业技能、创新能力、工程能力和职业素质都能得到全面均衡发展。具体措施如下。
4.1 建立英语为主日语为辅的外语教学体系
根据IT市场的实际需求,软件工程专业培养方案制定,除正常开设四个学期大学英语外,增开两个学期标准目语和一个学期专业英语,坚持外语学习四年不断线,旨在为学生选择日企或对日外包企业就业提供方便。
4.2 建立工程化实践教学体系
建立“四年不断线、三个层次相呼应、两大措施为保障”的工程化实践教学体系。“四年不断线”是指实践环节四年不断线,每个学期至少有一个集中性的实践教学环节,体现“全过程”实践;“三个层次相呼应”主要是从实践教学内容设计上考虑的,包括第一层次教学实验,第二层次课程设计及专业实习,第三层次工程项目实训与毕业设计;“两大措施为保障”主要指教学计划保障和考核制度保障。
4.3 设置专门的实践课程
针对工程化软件人才应具备的个人开发能力、团队开发能力、系统研发能力和设备应用能力,以必修课和选修课形式,开设四类特色化、阶梯状工程实践学分课程,即程序设计类实践课程、软件工程类实践课程、项目管理类实践课程和网络平台类实践课程,构成了系统全面的学生实践能力训练体系。
4.4 提高专业课程教学中的实验课时量
除个别侧重理论教学的专业课程外,80%以上的专业课程包含实验或实习环节,实验或实习成绩占总成绩的30%以上,一部分实践性较强的课程是以上机考试和答辩作为最终考试方式。
4.5 开设部分技能课程
在技能课程中,与该领域内具有国际领先水平的企业在课件共享、教师培训和资源投入等方面展开合作,共同设计、讲授和评估课程。鼓励学生参与企业提供的专业认证考试,或参加国家相应的专业资格考试,对此,学院将计算机网络、Oracle数据库、J2EE与中间件等认证课程纳入本科教学计划中,全面体现学生的“多证多能”。