前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇软件工程实训报告范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
按企业的标准和流程来实现高校软件工程实训课程的目标,让企业的要求、企业的模式、企业的技术走进软件工程实训课堂。在企业实际的需求和项目开发模式基础上,使学生建立软件工程意识、提高软件工程素质、增强软件项目实践能力、培养创新精神和创新能力,促进教师团队和学生团队的合作精神,以培养能适应社会和企业需要的IT技术人才为目标,引导课程体系的构建和教学组织模式及教学方法的改革,为软件专业人才培养计划的制定提供充足的理论与实践依据。
在企业化实施的过程中要充分体现企业实践的特色,实训指导老师要在软件企业开展调研,了解企业对软件工程人才专业技能和管理技能的要求;了解企业不同项目开发的平台;了解企业项目团队的组织结构;收集企业允许公开的组织过程资产。在调研的基础上,制订软件工程实训的课程大纲、课程章程、教师和学生的组织结构、平台和文档的定义、软件开发过程和工具的选择、项目管理的实施等。为达到实训课企业化的目的,必须做到如下几点。
1)在调研的基础上,以企业的标准进行实验室软硬件平台的构建,包括应用软件企业的实际开发环境、项目管理环境、版本控制环境。
2)规范软件工程过程和项目管理过程。以PMBOK为指导,严格按照项目的启动、计划、执行、监控、收尾过程进行,规范学生在开发过程中的软件工程思想。
3)校企合作,团队合作。在指导教师层面,采用团队合作的模式,构建了由企业导师、项目管理人员、开发人员、有测试专长的老师组成的PMO,实时为各小组进行远程和现场技术支持;在学生层面,以学生的能力和性格为参考,任命各小组的项目经理,并且赋予项目经理一定的权限。
4)激励机制。将实训课程提升到项目的级别,定义实训课程的里程碑,建立完善的激励机制,定期开展项目的绩效评估,公布绩效信息,公平公正地给予团队和成员奖励,提高学生的积极性和创新能力。
软件工程实训课程企业化实施方案的实施流程
实训课程在企业实施的内容上要具有可行性,要注重学生实践能力的培养和注重实训内容与理论的有机结合,避免成为单纯的技能培训。实训教师除了按企业项目的标准和流程要求指导学生,还必须在实践的过程中尝试新的教学方法和新的技术,不断进行分析和总结,制订一套适合高校软件工程专业实训课程企业化实施的最佳方案,将探索的中心定位在如下几点。
1)探索如何在实际的软件项目中应用软件工程方法论。软件工程课程是软件工程实训课程的先行课,学生对软件工程概念、思想、方法的理解很大程度上止步于感性的认识,在不同类型的软件项目开发过程中,如何灵活应用软件工程的方法论是值得探索的。
2)探索如何在学校实验室构建软件企业项目开发的平台。学校实验室的软硬件环境是以教学和科研为出发点构建的,如何在实验室的环境下,搭建可以同时支持不同规模和类型项目开发的平台,保证学生在实训中掌握软件企业项目开发的平台,也是值得探索的。
3)探索如何在实际的软件项目中应用项目管理方法。随着软件产业的发展,规范的项目管理是软件项目成功的保障,因此,国内外的软件企业越来越重视员工项目管理能力的培养。我们的学生每学期都有实践课程,由于课程类型和时间等多方面的限制,学生很少在实践课程中运用项目管理的方法和技术。软件工程实训有不少于四周的时间,教师如何在实训中培养学生的项目管理意识和应用项目管理的方法是值得探索的。
4)探索软件工程实训教师队伍及学生的组织结构。任何的项目开发都是建立在团队合作的基础上,为了达到实训按企业化的模式进行,不能简单的靠一个校内指导教师全程负责,学生也不能简单的分几个小组。因此,如何构建企业指导和校内指导相结合的组织结构,如何根据学生的类型成立团队是值得探索的。
5)探索软件工程实训期间需要的项目文档,构建团队的组织过程资产。在项目开发的过程中会产生很多的项目文档,软件项目的国家标准就对软件项目开发所需要的文档进行了定义。如何在实际的项目中进行对国标规定文档的裁剪是值得探索的。
基于以上五个探索要点,实训指导老师可制订如下的项目实施流程。
1)启动过程:制订实训章程,至少包括制订基本准则和确定实训项目。其中,基本准则包括如下几点:
(1)遵守实训基地的规章制度;
(2)严格执行考勤制度,各项目组组长负责该组成员的出勤管理,组长每周五将汇总情况上报指导教师;
(3)各项目组必须保证每天有半个小时的项目例会时间(可以采用网络的方式),组长指定相关人员做好例会记录,因特殊情况而缺席的人员,必须有辅导员签字的请假条;
(4)每天课程结束之前,项目组组长将团队版本库上传给指导教师。实训项目指在深入软件企业调研的基础上,和企业指导教师互相配合,将企业实际项目裁剪到120人/天的规模,根据实训人数确定可选项目的数量。
2)规划过程:制订实训的管理计划、人员计划、进度计划、质量计划、验收计划等。管理计划指实训指导教师对实训过程中项目范围的变更处理、人员变更、时间管理、风险管理等作详细的管理计划。人员计划指为了有效地进行资源共享、团队合作以及公平的绩效和考评,我们给所有参与实训的企业指导老师、学校指导老师、学生分配不同的权限和责任,形成由PMO项目管理办公室(学校和企业老师)、指导老师、团队经理、团队成员构成的四级项目人员结构。进度计划指将四周的实训时间,根据需求分析、设计、编码、测试、验收五个过程制定里程碑,各里程碑要进行评审验收。质量计划指确定要验收的项目文档和评审的节点等。项目文档指确定各团队要提交的项目文档,至少包含项目合同、项目的需求管理计划、需求文件和需求跟踪矩阵;项目范围基准;项目进度管理计划、项目进度基准;项目质量计划;项目配置计划;项目风险管理计划、风险应对计划、风险清单;项目沟通计划、设计报告、变更记录、例会记录、用户手册、项目总结报告。评审节点指结合需求分析、设计、编码、测试、验收五个过程制订相应的评审节点,给出评审结果和相应的调整措施。验收计划指给出实训考核的标准和方法流程。总的原则是面向过程的考核,以团队为单位进行绩效考核,根据每个同学在团队中的角色进行任务的分配和考核。
3)执行与监控过程:按照规划阶段制订的计划,指导各团队的项目执行,在质量评审基础上给出各团队的调整措施,确保各团队所做项目的质量和效果。
4)收尾过程:完成各团队的考核工作,进行实训组织过程资产的归档及实训总结。按照上面的实施流程,不断总结和优化软件工程实训企业化实施的最佳方案。
结语
关键词:软件工程;课程设计教学;创新模式;实训
1 背景
软件工程课程设计的目标是使学生系统地掌握软件工程的过程、方法和工具,为学生将来从事软件的研发和管理奠定基础。软件工程教学内容中的需求分析、设计、实现和测试等软件开发技术以及工程化的开发过程(如软件过程、配置管理、项目管理等)必须通过实际软件问题求解过程以及团队合作进行体验,而综合的软件开发能力的锻炼和培养是需要借助一个完整的软件项目开发过程。因此软件工程课程设计是巩固课堂教学成果、培养学生软件工程实践能力的重要环节[1],为了培养高素质、高质量的软件工程人才必须在理论与实践结合上下工夫,通过强化实践教学来提高人才培养[2]。
2 现状
教育部高教司2006年一项调查[3]显示,自2002年以来,高校计算机专业大学生初次就业率连年下滑,然而业界高端软件人才依旧匮乏。造成这一现象的重要原因为当前高校软件工程型人才的能力结构和知识结构与当前技术发展不能紧密结合,没有形成以能力培养为核心、综合技能训练为辅助的实践课程体系[4]。目前软件工程的实践教学主要存在以下问题:
1) 软件工程教学多数还停留在传统的人才培养模式,基础理论知识和验证型实验构成教学主体,
缺少对学生工程能力和职业素质的训练,因此培养出来的学生难以适应IT企业的需求。
2) 传统的软件工程教学使学生具备一定的专业基础知识,但没有机会让学生将所学知识融会贯通,缺乏实际参与软件工程项目的经验。
3) 学校通过在企业建立实训基地的形式将软件工程实践环节引入其中。这种形式可以促进学生从学习专业知识向学习专业技能迅速转化。但这种形式需要投入大量的人力、财力。目前,由于这种形式风险较大,成本高,多数高校没有采用。
如何在学校现有教学条件下,借鉴企业的工程化模式,实现软件工程课堂教学与实训相结合,使学生走出校门就能实现与IT企业的无缝连接,这正是该门课程在实践教学环节需要研究和解决的问题。
3 课程设计改革
工程化的方法开发软件已成为当今业界的共识,对学生工程能力和职业素养的培养仅在学校内部进行显然局限性大,为了更好地促进学生这种专业综合能力的塑造,我校通过中国软件行业协会教育与指导委员会与北京市中关村软件园签订了校企合作的协议,并在中关村软件园挂牌成立了校外实训基地。由于软件工程课程设计周期有限(如1周),进入实训基地进行教学的效果并不理想。因此,借助合作,我们对软件工程课程设计教学环节进行改革,
作者简介:唐晓君,女,副教授,研究方向为软件工程;李晓红,女,讲师,研究方向为信息系统、软件测试。
使其与实训相结合,探索出一种计算机实训与基本教学实践环节无缝结合的模式,具体实践流程如下。
3.1 内容安排
目前,我校软件工程课程设计教学环节按照教学大纲安排,共分以下几个步骤。
1) 课程设计要求说明。给出课程设计期间对学生的出勤、时间、地点等要求。
2) 课程设计任务布置与讲解。进行课程设计安排时,课程设计任务的布置形式由教师进行课程教学的形式;对课程设计内容的选取大多选择模拟或选取类似中小企业项目。
3) 分组实践。分组原则是使每个学生工作量相当,并都能在项目开发过程中得到锻炼。
4) 中期检查。教师对各小组中期结果以答辩的形式进行监督检查,督促各小组按进度进行。
5) 课程设计答辩、设计结果提交。课程设计采用答辩和软件演示的形式对设计结果进行验收。
以上这种课程设计安排形式也是大多数高校采用的方式,但该方式不能使学生对企业软件开发全过程产生很好的感性认识。同时,由于项目大多是模拟项目,学生对待项目积极性不够,对项目需求的理解及设计的实现也过于局限,小组成员的角色分工也不够科学。此外,对课程设计环节的管理(任务下发、角色分配、进度控制、在线答疑、任务提交等)一直没有实现信息化。
3.2 具体措施
结合软件工程实践教学的现状,针对我校软件工程课程设计存在的问题,在中国软件行业协会提供的产学研实训平台的支持下,我校对软件工程课程设计的教学进行了以下几方面的改革和探索:
1) 将实训模式引入课程设计中。
软件工程课程设计教学采用的是实训模式,但由于考虑成本问题,没有借助企业人员进行专门指导。学生课程设计地点仍在计算机专业机房和专门实验室,课程设计是在本校软件工程专业教师的指导下,按照软件企业的项目开发摸式,以“项目驱动”形式进行软件开发实践训练,既以项目开发带动软件工程的理论学习,又以软件工程的理论来指导软件开发的实践,使学生得到较全面、系统和规范的软件工程实践训练,提高软件设计与开发的能力。
2) 将产学研实训管理平台引入课程设计管理中。
对软件工程课程设计整个环节的管理(包括任务、角色分配、项目管理、进度监控、成果验收、学生管理等)通过中国软件行业协会提供的产学研实训管理平台实现。平台为每个学生分配用户账号及口令,通过该平台统一进行学生管理,学生可以通过校园网登录实训管理平台,方便快捷的了解项目需求(课程设计主要任务)、项目相关资料、项目管理流程、项目角色分工等信息。平台也为指导教师提供管理接口,教师可以通过平台进行项目案例的与管理、项目的启用、项目角色的管理等。学生和教师还可以使用在线提问与在线答疑的形式指导教师进行交流,学生与教师的沟通更加实时、高效,实现了完全信息化的管理形式。
3) 将企业真实案例引入课程设计中。
在进行课程设计任务布置时,采用所有项目案例均来自中国软件行业协会提供的企业真实案例(10余个),考虑到企业员工与在校学生的能力差别,同时根据课程设计要求掌握的知识点和教学时间限制,通过指导教师与软件行业协会技术人员沟通,对项目案例进行不同程度的调整。因此,应用到课程设计教学中的所有教学案例均由本校教师根据课程设计的要求定制确定。对案例的裁剪既解决了以往教学案例局限的问题,又保证了学生在有限的设计周期内实现完整实际项目开发的目的。
学生按照兴趣选择项目案例,这样可以确保学生在整个项目周期中有足够的积极性和信心按期完成。通过以实际的工程项目为背景,使学生参与实际项目开发,以开发团队形式,按照实训步骤在规定的时间完成从需求分析建模(需求由案例给出)、设计、代码编写、测试、部署体验完整的软件开发全过程。这样,可以激发学生项目开发热情,使学生完全掌握企业化软件开发流程,并具备直接进入企业进行开发的能力。
4) 将企业项目管理方法引入课程设计中。
课程设计借鉴企业化运作机制,实施每天八小时工作制,晚上可以加班加点,以项目组长负责、项目组成员协作的形式完成设计任务。
项目启动(课程设计任务的)通过产学研实训平台,学生可以使用个人用户账号通过校园网络登录到平台查看自己的项目组及项目要求。由于项目案例均来自企业真实案例,因此,平台能为学生提供比较规范、详细的需求说明文档,帮助学生更好地理解业务知识及流程。
项目小组成立时,指导教师按照项目实际情况(项目需求复杂程度、设计难度、代码量等)安排小组人数,并按照学生能力对小组成员进行角色分配,如项目组长、软件工程师、测试工程师、配置工程师等。这种角色分工根据源于企业项目组的分工,能够使学生更加感性的认识企业中的不同角色。在进行小组人数的安排时,为防止出现工作量过少的情况发生,限制每组人数不得超过5人,满足软件工程中7±2的原理。后来的实践证明,这样的分组,在项目中每个实训的学生都有明确的职责和任务,工作量非常饱满,通过项目组内部协作,能够降低项目实施的难度,又能确保项目能够按期保质保量完成。开发过程中,任何一个学生不努力或不配合,都可能导致最终提交的任务效果不理想。
项目进度的控制通过实训管理平台设定中期检查及最终任务提交时间表实现。开发过程中,无论是中期检查结果还是最终成果验收都通过平台来提交,并以教师评语的形式实时有效地将结果给学生反馈,既可以提高学生继续完善项目的动力,还可以有效地监控各项目组的进度,同时,还可以及时对各项目组进行沟通与指导。
项目进行中(课程设计过程中),教师不再是传统的讲授者,更像是一位工程项目的经理,负责提出项目的要求(即向学生明确项目应用的背景、目的、期望看到的结果、具体的数据和指标要求),检查项目(学生)的开发进度,监督开发过程,评定软件质量。同时适当点出课程设计中可能涉及到的知识,帮助学生自主学习、启发学生创造性思维的观念,然后由学生自己进行理论分析,自己建立问题的模型,自己掌握开发进度,自己完成课程设计的任务,最终使学生具备独立分析和解决问题的能力。
对项目成果的验收,采用全面有效的质量评价指标,不仅考虑项目完成的质量,包括需求、设计模型的合理性、准确性,软件代码的完整度,还要考虑验收答辩时项目组成员不同任务承担者的表现,这种评价机制既能保证对学生工程能力的考核,又能锻炼学生的协作能力和职业素养。
3.3 成果
该实践教学模式应用到了本校计算机2007级、2008级两个年级中,在成果验收时与往届比较有很大进步,体现在以下几方面:
1) 因采用企业真实项目案例,学生在课程设计过程中学习积极性有很大提高。
2) 以企业规范的需求及设计说明书作为指导,开发过程中对项目需求的理解更加清晰,分析得更加充分。
3) 项目需求分析及设计阶段模型建立更加准确。
4) 因有实训平台进行角色任务管理,小组成员分工更加科学、合理。
5) 最终提交的课程设计文档更加规范。
6) 学生的团体协作能力得到很好的锻炼,项目完成度有很大提高。
7) 学生对企业软件开发全过程有了更深刻的认识。
8) 在实训平台的支持下,将传统的“以教师为中心”的教学模式,转变为“以学生为中心,在教师指导下的主动学习”模式,有效地达到了教学互动、教学相长的良好效果,同时老师对学生以及项目的管理更加高效。
另外,在期末进行的评教中,该门课程的实践教学更是得到了学生的认可,评教优良率达到了98%。
4 结语
让工程化思想成为学生从事软件开发工作的行动指南并不是一件容易的事情。在传统的教学过程中,软件工程往往是一门独立的理论性课程,学生们认为软件工程就是一些条条框框。缺乏实践经验,缺乏合作开发软件的感性体会,使得学生在学习过程中难于理解软件工程的精髓。
通过软件工程课程设计教学的改革,使学生对企业软件开发及软件过程管理有了更加深刻的认识。这种模式成功地将实训环节引入了课程设计,在课程设计的实践教学中培养学生的软件工程意识,这是对高校计算机专业实训与实践教学环节无缝结合模式的有益探索,可在计算机专业其他的实践教学环节进行推广,如数据库实践教学、程序设计实践教学等,还可以将这种模式推广到兄弟院校的计算机专业,这也是中国软件行业协会一直大力支持和倡导的。
参考文献:
[1] 朱大勇,张新丽,李树全. 软件工程综合性课程设计的教学实践[J]. 计算机教育,2009(15):160-162.
[2] 许精明,张雷. 计算机专业实践教学改革[J]. 计算机教育,2010(16):21-23.
[3] 张建臣.高等院校计算机学科实践教学的探索与改革[J]. 现代企业教育,2006(24):17-18.
[4] 陈朔鹰,赵小林. 建立软件实践课程体系,全面培养工程型人才[J]. 计算机教育,2008(7):14-18.
The Course Design for Software Engineering Based on Training
TANG Xiaojun, LI Xiaohong
(Information Science and Engineering School, Dalian Polytechnic University, Dalian 116034,China)
Abstract:This paper analyzes the principal questions exist in the practice teaching for software engineering of colleges and universities. It proposes an innovation model of course design teaching. In the innovation model, the exiting practice teaching conditions of universities, the requirements of society for computer professionals, engineering management model and classroom teaching and training are all considered. It summarizes the process of reformation and practice with the support of CSIA. The result proves every good.
Key words: software engineering; course design teaching; innovation model; training
(上接87页)
参考文献:
[1] 冯博琴,赵音良,顾刚. 狠抓能力培养,提高实验教学水平[J]. 计算机教育,2008(19):9-11.
[2] 教育部高等学校计算机科学与技术教学指导委员会. 关于进一步加强高等学校计算机基础教学的意见暨计算机基础课程教学基本要求[M]. 北京:高等教育出版社,2006:23-27.
[3] 张丽萍,刘东升. 程序设计精品课程建设的研究与实践[J]. 内蒙古师范大学学报:教育科学版,2007(1):109-111.
[4] 张丽萍,刘东升. 关于精品课程“程序设计”的建设方案[C]//大学计算机基础课程报告论坛论文集(2006). 北京:高等教育出版社,2006.
[5] 张丽萍,刘东升,王春晖. 计算机应用型人才培养与数据结构改革[J]. 计算机教育,2010(5):21-23.
[6] 张丽萍,刘东升,葛湘巍. 民族地区计算机专业实践教学改革[J]. 计算机教育,2011(13):8-10.
[7] 张丽萍,刘东升,王春晖. 程序设计类课程考核评价方法的改革与实践[J]. 计算机教育,2010(2):17-20.
Construction and Practice of the Public Computer-based Courses
WANG Lijiang1, LIU Dongsheng2, ZHANG Liping2
(1. Office of Academic Affairs, Inner Mongolia Normal University, Huhhot 010022, China;
2. Computer & Information Engineering College, Inner Mongolia Normal University, Huhhot 010022, China)
关键词:应用型人才培养;课程体系;模块化教学体系;人才培养模式;企业实训
经济社会的发展需要大量既有扎实理论基础又有较强实践能力的计算机软件应用型人才,而国内许多应用型高校的计算机软件相关专业仍延续着研究型高校的人才培养目标与模式,过分强调理论知识的系统性教授,缺少对学生工程能力和职业素质的训练,毕业生的专业能力与软件产业界的需求往往存在较大的脱节,难以快速融入现代IT企业的运作,一方面用人单位觉得软件人才匮乏;而另一方面有相当多的毕业生却找不到合适的岗位。因此,应用型高校必须主动适应经济社会发展对具有创新能力的软件工程应用型人才的需求,明确专业能力培养目标及其内涵,探索能力培养的方法与途径,构建与软件产业需求相适应的软件工程专业教学体系与教学模式[1-3]。
1软件工程专业人才培养规格
1.1专业人才培养目标
培养具有良好的科学与工程素养,系统掌握计算机基础理论、软件开发、软件管理等计算机应用技术,能运用工程化方法、技术和工具从事软件分析、设计、开发、维护等工作,具备工程项目的组织与管理能力、团队协作能力的高级应用型软件工程人才。
1.2专业人才能力分析
应用型人才的主要任务是将成熟的技术和理论应用到实际的生产和生活中,其培养的关键是强调对学生专业核心能力的培养[4]。对于应用型软件工程人才,其专业核心能力包括以下几个方面。
1) 软件分析与设计能力。掌握用户需求调研和需求分析方法,能够将需求转换为系统的设计;掌握结构化和面向对象分析方法与设计方法,熟悉常用的软件分析与设计开发工具;熟悉UML建模技术和常见的软件设计模式;能够设计和定义软件构架、模块划分的接口协议;具备数据库结构设计能力;能够运用相关工具进行模块的详细设计;能够设计用户界面;具备用户需求说明书、软件规格说明书、概要设计说明书、数据库设计说明书、详细设计说明书等软件开发文档的撰写能力。
2) 软件实现能力。掌握结构化程序设计技术和面向对象程序设计技术,至少熟悉一门高级语言编程技术;熟悉常用的IDE开发工具,掌握软件的编辑、编译、运行和调试技术;掌握Web程序设计技术,熟悉HTML语言、JavaScript语言、Java EE和.Net等常见Web应用构建技术,具备界面设计、脚本编程、业务逻辑编程和系统部署能力;能够运用开发工具的联机帮助来解决编码问题;能够运用打包工具制作产品的安装程序,能够编写用户使用手册、安装说明等文档;能够将子系统集成为一个完整的系统,并能在集成过程中优化系统;能够配置系统调试环境,具备关键代码性能优化的能力;熟悉数据库编程技术,具备应用SQL语言对MSSQLServer、Oracle、DB2等常见数据库进行数据操作的能力;掌握数据库系统的安全保护技术和性能调优技术;掌握Linux、WinCE、Android等常见平台下的嵌入式开发技术;熟悉嵌入式应用软件的编程、调试、部署技术;具备硬件驱动程序开发能力。
3) 软件测试能力。掌握常见的单元测试、集成测试、性能测试和回归测试技术;掌握常用的白盒与黑盒测试方法,具备测试用例的设计能力;掌握常用的软件测试工具;熟悉实际的软件测试流程,能够搭建测试环境;掌握软件测试管理技术,具备软件测试计划、软件测试报告等测试文档的撰写能力。
4) 工程综合能力。熟悉RUP、XP等常用软件开发过程模型,具备针对具体项目选择适当模型的能力;掌握项目范围界定、计划制订及进度监控技术;掌握软件配置技术,能够使用配置管理工具;掌握软件开发风险评估与控制技术;掌握常用的软件项目管理工具;能够基于用户的反馈情况进行软件产品的维护,并能对用户进行培训;具备软件开发计划、可行性分析报告等项目管理文档的撰写能力。
2提升软件工程专业能力培养途径
2.1改革人才培养模式
建立“2+1+1”三段式期制的人才培养模式,同时坚持工程能力和素质培养4年不断线的原则,将工程项目教学法贯穿整个教学环节,提高学生的学习兴趣,增强学生的工程意识,强化工程实践能力。
前4学期“重基础”,即重点完成对学生专业基础知识和基本技能的培养。通过强化数理基础模块和专业基础模块教学,促进学生创新思维的形成和创新方法、创新工具的掌握,为后续的专业模块学习和工程能力的培养打好基础。从第二学期开始为每位学生配备校内专业指导教师,负责对学生在校期间的学习、专业选择、学习进程规划和学习方法等进行指导。
第5学期是在大二结束时安排一个企业实训学期(企业实训I),即通过适当压缩原第4学期教学周数,从而形成一个包括暑假在内共12周的第5学期(变传统的8学期制为期制)。作为第一阶段的企业实训,主要是培养学生的软件测试能力,并对软件的工程化开发流程形成清晰的认知。同时,该阶段也能使学生学习和实践软件企业的管理运作,熟悉业务流程及项目开发流程。作为校企联合培养第一环节,该阶段由企业安排资深工程师作为企业指导老师,对学生在现场实践期间进行指导。自此,针对每位学生的“双导师”指导模式正式形成。
第6、7学期“精方向”,即在双导师指导下,学生在特定的专业方向进行深入学习。采取基于项目的教学模式和以问题为导向的探索式学习模式,培养学生从工程全局出发、综合运用多学科知识、结合各种技术和现代工程工具解决工程实际问题的能力,同时培养学生的自主学习能力、创新意识和探索未知领域的兴趣。另外,通过加强与软件企业合作,完善双方模块的学分认证标准。学生在此环节获得的学分双方互认,并颁发相关证书,从而将软件行业所需要的专业能力融入人才培养体系。
第8、期“强工程”,学生将利用一年时间到企业进行项目实训和做毕业设计(论文),通过企业项目实训和毕业设计(论文)等工程实践环节,强化学生从事工程实践所需的专业技术能力,进一步锻炼学生的工程实践能力和独立工作能力。毕业设计(论文)的选题要求来源于企业,做到100%真题真做。
2.2构建模块化教学体系
2.2.1模块定义
应用型人才应该具有运用科学理论知识和方法来综合分析、解决问题,以及将解决方案付诸实施的实践能力,而传统的教学体系以课程为教学单位,教学内容存在重知识体系而轻社会需求,重知识传授而轻能力培养等问题。为此,围绕应用型软件工程人才的专业核心能力,通过将理论教学与工程实践紧密地结合在一起构成“模块”,以取代传统教学体系的“课程”。“模块”作为面向专业能力培养最小的教学构成单位,是围绕特定能力培养相关教学活动的有机组合,具有可重组性和教学内容的非重复性,其对应能力的培养环节连贯、递进,可适应不同类型软件工程师的培养需要。
2.2.2构建思路
软件工程专业模块化教学体系构建要求从传统的知识输入为导向的课程体系构建,转变为以能力输出为导向的模块体系构建。“知识输入为导向”指的是以学科体系为导向,构建课程体系;“能力输出为导向”指的是以岗位需要的专业能力为导向,构建模块化教学体系。基于“面向专业能力需求反向推导”
的思路,即通过对IT企业相关岗位群的调查与分析,确定学生应该具备的专业能力,再将抽象的专业能力具体化为能力要素,对一组相关的能力要素进行优化整合形成能力单元,围绕一组特定的能力单元及其对应的知识单元的培养(知识点的组合)设计相应的教学活动,从而形成“模块”。通过若干个相关模块的有机搭配构成软件工程专业应用型人才培养所需的模块化教学体系,从而将传统的按学科知识体系构建专业课程体系,转变为按专业能力构建模块化教学体系(如图1所示)。
模块化教学体系以专业能力为主线,将理论教学和实践教学有机结合,强调知识和方法如何运用于实际工程领域。在模块化教学体系中,一个模块针对特定的能力单元设置,一项专业能力的培养可由一个或若干个模块来支撑。模块化要求人们转变思维方式,即要适应从“专业课”到有功能性单元的“模块”的转化,对传统课程体系的教学内容进行拆散、揉和与优化,以面向能力培养构建模块的教学内容。如将原有的Java语言程序设计、SQLServer数据库等课程中的高级应用和难点部分进行整合,设置Web应用系统开发模块,重点培养基于Web平台的应用系统设计开发能力。模块既包含理论知识的讲授,又有工程实践训练,采用典型的真实工程项目,对学生的工程能力进行培养。
2.2.3进程安排
在软件工程专业模块化教学体系参考教学进程
中,执行计划总学分为180学分。第1至4学期主要学习公共基础模块和专业基础模块;第6、7学期在校学习专业模块,第5、8和期到企业进行实训,结合工程实际完成项目实训和毕业设计(论文)。教学进程如表1所示。
2.3引入企业实训环节
软件工程专业能力的获取是在运用智力、知识、技能的过程中经过反复训练而形成的[3]。为此,围绕提升学生的软件测试能力、软件实现能力、软件分析与设计能力和工程综合能力这4项专业核心能力,分阶段设置3个独立的企业实训学期(如表2所示),使学生置身于真实的企业场景、管理制度、竞争压力、团队协作等环境之中,以培养学生软件开发、团队合作以及项目管理的能力。
1) 企业实训I,安排在第5学期。通过适当压缩原第4学期教学周数,从而形成一个包括暑假在内共12周的第5学期(变传统的8学期制为期制)。作为第一阶段的企业实训,主要是培养学生的软件测试能力,并对软件的工程化开发流程形成清晰的认知[5]。
2) 企业实训II,安排在第8学期。通过将原大三下学期的暑假与大四上学期结合,得到一个约28周的第8学期,作为第2阶段的企业实训,用于强化学生软件的实现能力和分析与设计能力。为了使学生能在特定的软件开发领域获得深入训练,形成个人的专业特长,该阶段应分不同的方向(如Java、.Net及嵌入式软件等方向)在相应的企业进行。
3) 企业实训III,安排在第期(原大四的下学期),按一个标准学期的20周设置,并与毕业设计相衔接。针对实际项目(产品),由学生组成项目组,负责整个项目(产品)开发的全过程,并按企业或用户要求对项目(产品)的完成情况进行评估并答辩,根据项目(产品)中每位学生完成情况确定其毕业设计等次。
以上的企业实训方案很好地体现了分步进阶的专业能力培养原则,它对学生软件专业能力提升的思路是:以软件测试技术与技能训练为主的能力培养以软件实现技术与技能训练为主的能力培养以产品或系统构建能力培养为主的能力培养以综合项目解决方案制定为主的能力培养以适应社会并能够独立完成产品/系统研发工作为主的能力培养。同样,对于各个阶段企业实训内容的安排,也是按照由浅入深、由单项到综合的方式,层层递进地实现能力的渐进培养。另外,企业实训的各个阶段均设置考评环节,并按企业对应岗位的技能要求对学生进行能力考评,对应关键能力培养的企业实训环节(如软件实现能力),不合格者将要继续本阶段的训练,直到能
力考评达标为止。各阶段的企业实训环节均有对应学分,学生必须修满相应学分,方允许毕业。
3结语
新建应用型本科高校在培养人才目标、生源和师资力量方面与传统综合性重点大学有显著差异,因此,不能简单地继承和延续综合性重点大学的培养目标和培养模式,而必须主动适应经济发展对具有创新能力应用型人才的需求,充分发挥自身的优势和特点,在特色中求生存、求发展。近年来,合肥学院软件工程专业按照“重基础,精方向,强工程”的基本原则,建立了“2+1+1”三段式期制的人才培养模式,实行了3学期的企业实训环节,同时,提出通过将传统的、按学科知识体系构建专业课程体系,转变为按专业能力体系构建专业模块体系,并紧密围绕模块体系展开系列教学改革,如编著适应模块化教学需要的特色系列教材、建立多元化的师资队伍、引入校企合作及模块互换学分互认机制等。几年来的教学实践证明,采用模块教学体系在培养企业真正需要的、具有创新意识和国际化视野的软件工程师方面取得了良好的效果,对于保证应用型人才培养目标和培养要求的实现具有重要的借鉴意义。
参考文献:
[1] 陈旭东,卢苇,赵宏,等. 软件工程特色专业建设探索[J]. 计算机教育,2008(8):46-48.
[2] 叶立青,吴晓蔑. 应用型本科生培养模式的创新与构建[J]. 吉林工学院学报,2003,23(1):16-17.
[3] 胡智喜,唐学忠. 计算机科学与技术产学研结合应用型人才培养模式的探索与实践[J]. 电脑知识与技术,2008,3(8):1751-1752.
[4] 郭建东,刘乃琦,刘贵松,等. 软件技术教学内容与教学模式研究[J]. 学科建设与教学研究,2005(3):19-22.
[5] 檀明,袁,钟伯成,许强. 借鉴德国FH的应用型计算机专业人才培养模式改革[J]. 电脑知识与技术,2010,6(13): 3431-3433.
Software Engineering Talents’ Cultivation in Capability-oriented Mode
TAN Ming, ZHANG Xiang-dong, XU Qiang, LIU Deng-sheng
(Department of Computer Science and Technology, Hefei University, Hefei 230601, China)
[关键词]软件工程;云计算;实训平台;架构;模块
[中图分类号]G40-057 [文献标识码]A [论文编号]1009-8097(2013)01-0107-06 [DOI]10.3969/j.issn.1009-8097.2013.01.023
一、引言
软件工程是一门综合应用学科,软件工程专业具有实践性、工程性、实用性等特征。学生不可能靠听讲软件工程的理论学会开发一个实际的软件,而是在“动手做”和“真正练”中体会和掌握软件工程的思想,软件工程专业实训环节尤为重要。近年来,诸多学者提出采用校企合作培养模式、项目教学法,增加实验、实训比例,以增强学生理论与实践的联系,提高动手能力、思维能力和创新能力。但目前大部分高校存在资金来源有限、实验设备老化、实验实训资源不足等问题,且校企合作实习基地建设滞后,学校与实习基地之间缺乏互动,均影响学生实践能力的培养。应用云计算技术建立软件工程实训平台,不但学生可以在“云”中进行真实项目训练,体验企业工作环境,提高实训效果,而且可以降低高校实训基地的投资与运行成本,提高办学效益。
二、文献综述
1.云计算
云计算是一种商业计算模型,它将计算任务分布在大量计算机构成的资源池上,使用户能够按需获取计算力、存取空间和信息服务。云计算是并行计算(Parallel Computing)、分布式计算(Distributed Computing)和网格计算(Grid Computing)的发展,是虚拟化(Virtualization)、效用计算(Utility Computing)、基础设施即服务(Infrastructure aS a service,IaaS)、平台即服务(Platform as a service,PaaS)、软件即服务(Software as a service,SaaS、等概念混合演进并跃升的结果。云计算的基本原理是用户所需的应用程序运行在大规模服务器集群中,数据也保存在互联网的数据中心,其管理与维护由提供云计算服务的公司负责,用户终端的功能被大大简化,而诸多复杂的功能都转移到终端背后的网络上去完成。云计算具有虚拟化、超大规模、高伸缩性、高可靠性、高通用性、按需服务、极其廉价等特征。
Google、Amazon、IBM、Yahoo、Vlware等大公司是云计算的先行者。2006年,Google启动了“Google101”计划,引导大学生进行“云”系统的程序开发。2007年10月,Google与IBM联合宣布,把全球多所大学纳入类似Google“云计算”平台之中。Google是最大的云计算技术使用者,典型的云计算平台还有Amazon的弹性云、微软的云+端、软件+服务的云计算服务、IBM的蓝云(Blue Cloud)计划等等。2008年,IBM先后在无锡和北京建立了云计算中心。2009年,云计算走进了教育界,黎加厚教授正式提出了“云计算辅助教学”(Cloud Computing Assisted Instructions,CCAI)概念,即学校和教师利用“云计算”提供的服务,支持教师的教学和学生的学习,提高教学质量。“云计算”可以应用于教学管理、学生交流与管理、实验室建设与管理等方面。
2.云计算辅助教学研究
随着云计算技术引入我国,诸多学者对云计算辅助教学相关领域进行了探讨:(1)云计算辅助教学的可行性与作用研究。Armando Fox(2009)等认为云计算应用到教学中是可行的,还可以帮助学生了解云计算技术和工具:金苗苗、周跃良(2009)、曹大有(2011)等认为云计算的共享性、协作性可以提高学生的学习兴趣,培养学生的探索研究能力,并且最小化终端设备的要求,大大减少学校为维护和升级操作系统和应用软件的费用;张林(2011)等认为应用云计算技术可以搭建个性化的学习环境;林瑜华(2011)认为通过公共云服务平台提供完善的网络教学功能和运行环境,具有更好的易用性和实用性;黎加厚(2010)、杨滨王、文霞(2010)则提出应用“云服务”能实现教育活动低碳化。(2)云计算协作学习与网络学习策略研究。杨滨(2009)以Google sites为例阐述了网络协作平台的使用;何双泉(2010)探讨了云计算辅助教学环境中协作学习的特点与活动策略:张洁、裴芳(2012)等提出了基于世界大学城的云计算辅助教学下的协作学习方案;林瑜华(2011)研究了基于云计算的实验教学环境、改革模式及协作学习模式;于莉(2011)探讨了使用百会在线办公平台辅助课堂教学策略。(3)云计算教学资源平台的构建研究。马强、付艳茹(2011)等讨论了国内典型云平台及Google App Engine“公共云”平台的接入技术;俞建华(2011)、李伟林、陈戍(2012)等设计了基于云计算的在线远程教学平台及运作模式;黄晓玲、赵生慧(2011)设计了通用的实验教学平台:杨曼(2011)以分布式计算框架Hadoop为基础,阐述了在学院网络实验室中搭建云计算平台Hadoop教学环境的过程与方案;张向阳(2012)探讨了建设我国“云计算”教学资源平台的构架与应用功能;张怀南、杨成(2012)则探讨了基于云平台的区域性高校数字教学资源共建、共享体系与模式;张家贵、罗龙涛(2011)、陈巧、胡新平(2011)等提出基于云服务的教学资源大平台建设思路,认为在大平台支持下,教学单位无需提供硬件设备、教学资源及技术人员,即可快速构建基于海量教学资源的特色教学资源平台,促进优质教学资源的共建共享。
现有研究多以云计算技术构建远程学习、协作学习等虚拟平台与实验教学资源平台为对象,以降低教学成本、提高学生学习兴趣与教学效果为目的,以高校教育资源平台的共享共建、教学资源的利用、教学条件的改进等为重点进行了研究。而结合软件工程专业的具体特征,如何运用云计算技术,校企合作共建真实的企业实训平台与环境,学生不受时空限制接受真实项目训练,现有研究成果较少。
三、软件工程专业云计算实训平台架构的设计
软件工程专业云计算教学资源平台的建设需要有强大的底层技术支撑,同时需要开发符合本专业要求的功能模块,其技术体系与服务体系构架如图1所示,云计算技术体系由物理资源层、资源池层、管理中间件和面向服务体系(Service-Oriented Architecture,SOA)的构建层组成。物理资源层包括所有的硬件资源,资源池层通过虚拟化技术将底层硬件如网络系统、数据库系统和操作系统等集成起来,虚拟为一个大的资源池,管理中间件层负责管理云计算资源,并为SOA构建层提供支持与服务,SOA构建层将云计算能力封装成标准的Web Services服务。
云计算技术体系从根本上决定了服务体系模式,云计算强调各种资源的共享和随需分配,其服务模式划分方法较多,通常分为三个层次:最底层是基础层,由硬件或虚拟机资源构成,是整个服务体系的基础,通过虚拟资源池为学校与合作企业提供计算、存储、带宽等按需的动态云基础设施服务(IaaS):第二层为在线开发平台层(PaaS),构建在基础设施层之上,对资源的抽象层次更进一步,为软件项目开发与教学虚拟资源的建设提供接口与环境,通过分布式计算环境和分布式存贮环境提供海量文件系统、海量数据库系统、大规模消息系统等服务,在线云通过在线开发平台将操作系统、应用开发环境等平台级产品以Web服务的方式提供给高校师生、合作企业开发人员等,方便高校与合作企业对教学资源的开发和使用;第三层为实训资源应用服务层(SaaS),位于最上层,是用户与云服务体系的接口,直接为合作企业开发人员、高校师生等提供实训应用软件服务,如作品展示、开发文档输出、资源设计、软件检测以及项目管理等等。合作企业开发人员、高校师生可以在任何时间、任何地点使用PC电脑、3G手机或其他移动终端设备访问“云”端,接受云计算各层次提供的服务。
云计算供应商提供的服务收费低廉,有的甚至免费。对于单个高校或少数高校联盟建立云计算实训中心,高校不必建设云计算基础设施及其技术体系,只需购买或租用“云服务”供应商提供的云计算服务,按使用付费,按需自助服务,校企合作的重点是建设虚拟教学资源,这样,可以节省实训中心初期投资与维护运行成本。而对于全国高校联盟建设云计算实训中心,可采用主管部门或高校联盟主导,云服务开发企业参与,公有云与私有云相结合方式,共同建立云计算基础设施、服务体系与虚拟教学资源。
四、软件工程专业校企合作云计算实训平台模块的设计
软件工程专业实训是指学生通过直接参与软件项目开发,提高实践能力与职业素质的训练过程。实训基地的建设应符合真实性、高技术性和通用性原则,体现真实的职业环境,接触新技术、新工艺[2…。实训体系要求做到三个“真实”:“真实的企业项目”、“真实的企业化管理要求”和“真实的企业环境标准”。因此,学生实训平台的建设离不开软件企业的参与,校企深度合作是企业实训的基础与前提,第二,学生能否进行真实的软件企业项目开发与指导是软件工程专业实训的核心,第三,如何通过构建虚拟环境做到三个“真实”是保证云计算实训平台实训效果的必要条件。软件工程专业云计算实训平台功能模块关系如图2所示,黑色虚线框A表示软件开发的全过程,是实训平台的核心模块,绿色虚线框B为实训资源模块,包括实训环境与教学资源开发功能模块,红色虚线框c为实训管理模块,包括校企合作、学生管理、团队管理、项目管理、系统管理模块,蓝色虚线框D为实训评估模块,主要有作品展示、实训报告、成绩生成及所有项目文档模块。
1.软件开发模块
(1)软件开发模块的功能
构建软件工程专业实训平台的目的之一是学生可以不去企业,不受时空限制,在学校的软件工程实验室或其他任何地方,只要有上网的电脑,登陆至学校的云计算实训平台就能进行真实的软件项目开发训练,并且学生在开发软件的过程中,能得到企业老师与学校老师(以下简称“双师”)的适时指导、动态监控。学生可通过以下方式参与企业实际项目开发:一是企业直接在云平台上进行项目开发,企业老师担任项目经理,分配任务并指导学生在同一平台上共同完成项目开发,起到“工学结合、顶岗实习”的作用。二是企业老师挑选已开发过的软件项目,在云平台上建立项目库、案例库,通过云计算实训平台指导学生在该平台上进行项目开发,或者学生分组完成软件项目开发全过程。软件项目开发过程主要包括项目规划、需求分析、系统设计(软件架构设计、数据库设计、界面设计、模块设计)、代码编写、软件测试等过程,每一个过程应能输出相应的项目文档,并且通过软件开发平台可以实现师生适时互动,提高学生实训效果。
(2)云计算软件开发平台构架
为了更好地满足个性化、多样性、复杂性软件开发需求,解绍词等(2011)提出了基于MDA(ModelDrivenArchitecture)的云计算软件开发平台模型,这种模型是面向服务、面向软件的开发方式,称之为“软件业务化定制”模式。如图3所示,云计算软件开发平台模型架构主要分布于云计算环境的平台层与应用层,云端平台层提供构件支持、环境支持、开发工具支持,将平台无关模型(Platform Independent Model,PIM)自动转换为一个或多个特定平台模型(Platform Specific Model,PSM),然后再生成代码,最终进行系统测试与。模型交换和变换交换总线是联系整个开发平台的技术纽带,以面向服务的体系结构(service-Oriented Architecture,SOA)方式对外提供统一开放的应用程序编程接口(Application Programming Interface,API),其他模块通过API进行交互。应用层向用户提供软件业务化定制接口,满足用户个性化软件开发需求。对于传统的个体开发模式更为简单,直接通过云计算系统平台层将软件研发的平台、开发环境作为一种服务向用户提供,应用层为用户提供各种应用软件服务,即用基于云计算的实训资源平台为师生提供各种可靠的、经济的在线应用软件服务。
2.实训资源模块
实训资源模块包括实训教学资源模块与实训环境资源模块。软件工程专业实训教学资源主要包括:软件开发环境;企业实际软件项目库、案例库;实训教材;软件开发的基础理论资料;软件开发专用技术资料;重点、难点讲解资料及相关文档、模版等,这是应用型软件人才培养的基础和保障,是可教学化实训体系的核心。软件开发环境主要指进行软件开发的各种技术和软件工具,还包括相关的帮助文档、开发文档,软件开发环境应该符合IT业界使用的主流技术和开发工具。软件开发环境是云计算服务提供商根据高校及其合作企业的要求,通过云计算在线开发平台层(PaaS)提供。校企合作双方共同在“云”端研发实训教材及配套的课件、主流软件、具体实训项目的实际代码、视频等,共同制定《实训教学大纲》、《实训教学安排与日志》、《实训教学要求及方法》、《实训项目开发计划》等一系列实训教学指导文件并上传至“云”端,以企业为主高校配合的方式建设Java、嵌入式、.NET等在内的实训项目体系,企业将已经完成的软件工程项目进行需求与技术分析,按照软件项目管理的基本要求进行可教学化的项目改造,在应用层建立实际软件项目库,不断补充修订实训项目文档,完善实训内容,在“云”端构建可教学化的实训教学资源。
实训环境模拟即软件企业工作环境模拟,就是让学生通过云计算实训平台亲身体验企业的“真实”环境、工作压力、管理制度与企业文化,对于提高学生实训的积极性与主动性具有重要作用。在“云”端通过交互式的可视化工具将企业真实工作现场、学生实际训练现场、企业工作流程、企业考勤制度等可视化内容与逻辑内容进行有效地集成,再配以声音效果,对实训环境构件进行可视化设计,构建虚拟元件。虚拟元件的构建主要包括外观特性和内部特性的设计,外观特性主要是可视化设计,内部特性主要是进行内部仿真模拟的逻辑运算。如在“云”端构建虚拟元件,设计虚拟打卡机或指纹考勤机,严格管理上下班出勤,设置专门的虚拟会议室供各个小组讨论和评审,并配备虚拟会议桌、投影仪、白板等附属设施,高度仿真企业的工作环境,让学生有一种身临其境的感觉,增加新鲜感,提高实训效果。
3.实训管理模块
没有严格的管理,即使技术体系再先进,也难以保证每个开发小组高效地完成开发任务。尽管大学生对新知识、新技术比较渴望,但诸多大学生缺乏吃苦耐劳的精神,责任心不强,所以,严格管理对提高学生实训效果也不容忽视。软件工程专业的实训过程主要是学生开发软件项目的过程。实训管理体系应以软件项目开发过程管理为中心,以系统管理、学生管理、团队管理、校企合作管理等为支撑的一体化管理体系。
(1)项目管理模块
云计算项目管理模块主要对软件项目生命期的五个阶段即启动阶段、计划阶段、实施阶段、控制阶段和收尾阶段进行的控制与管理,涉及项目的整合管理、范围管理、质量管理、进度管理、成本管理、资源管理、风险管理、采购管理、沟通管理等九大知识领域,其中,质量管理、进度管理、成本管理为项目管理的核心领域,成为“双师”监控的重点。在实训中,学生将在项目组内承担的开发和管理任务、项目完成进度及遇到的问题在实训项目管理子平台上,“双师”登陆高校云计算实训项目管理子平台,对学生开发项目的全过程进行监控、阶段评价与引导;学生将各阶段的开发文档与软件产品经项目文档输出模块与作品展示平台进行输出与展示,“双师”通过项目管理子平台及时检查每一开发过程的项目文档,通过互动交流平台及时解决学生的疑问。
(2)系统管理模块
系统管理模块是对云计算实训平台的运行、维护、应用软件的二次开发、教学资源库的动态更新、系统登录权限设置等的管理。实训平台系统管理员应为高校指定的老师,负责基础信息维护、通讯簿管理、系统用户管理、模板管理、日志管理、数据备份与恢复等管理。使用者涉及高校老师、学生、合作企业老师三方,可分别以其三个身份进行登录使用。实训平台向用户提供统一的接口,任何一个授权用户都可以通过标准的接口来登录云计算实训平台提供的服务。为了方便用户使用,在线云可借助Web2.0技术中的B/S结构,高校师生、合作企业老师只需要使用浏览器便可进行访问。高校老师主要将实训计划与要求到云计算实训平台,企业老师按学校的要求在平台上上传软件开发项目及相关指导文件,高校老师提供学生登录账号,高校与合作企业老师均可对实训学生的信息进行审核并分组管理。
(3)学生管理模块
学生管理是为了实现实训目标,在实训期间以学生为管理对象的各种计划、组织、领导、控制活动,是取得实训成功的重要条件。如图4所示,云计算学生管理模块包括学校管理、企业管理与学生自我管理子模块。学校教学管理部门、学生工作部门、实训指导老师分工协作,通过学校入口登陆云计算学生管理平台对学生进行职能管理。教学管理部门主要检查学生实训计划完成、实训过程的资料存档等情况,学生工作部门主要对学生信息、请假、考勤与学习态度进行检查与考核,实训指导老师主要对学生实训项目的选择、实训效果检查、实训过程的指导、考核与评价。企业指导老师从企业入口登陆云计算学生管理平台,对学生的实训全过程进行指导、监控、评价。学生从学生入口登陆云计算学生管理平台进行自我管理,如学生个人考勤、学生自评、组长申请、小组成员管理、小组评估。
(4)团队管理模块
为了提高软件项目开发效率与实训效果,开发小组采取团队工作方式。开发团队以自由组合的方式,由5-6名学生组成一个开发小组,根据学生对专业知识的掌握程度、项目开发的技能、经验与兴趣,学生自行推选出项目经理与任务角色分配,如开发经理、计划经理、测试经理、技术支持经理等角色,还可以自行决定岗位轮换方式。小组成员在登陆至云计算软件开发平台以后,各司其职,协调配合地开展工作。“双师”通过团队管理模块了解开发小组的分工,监视团队的运行情况,同时,通过团队管理模块,激励团队成员的士气和工作热情,鼓励团队之间开展竞争,提高工作压力。
(5)校企合作管理模块
项目库、案例库、实训教材等实训资源的建设,企业真实工作环境的模拟,学生实训过程的指导与管理等等均离不开学校与企业的通力合作,因此,校企深度合作是云计算实训平台成功的前提条件。通过建设云计算校企合作交流与管理平台,加强学校与企业之间的沟通,明确双方的职责、任务与权限,构建人才共育、过程共管、资源共享、优势互补、责任共担、互利互惠的合作机制,提高实训质量。
4.实训评估模块
实训评估既是对学生实训效果、校企双方合作成效的检查,又是对云计算实训平台的考验,是进一步完善与改进的实训体系与教学管理体系的依据,同时,也是一种牵引和导向,促使学生了解自己在各阶段努力的方向。评估体系是一个多维考核评价系统,包括专业技能、综合能力和职业素养三个维度,其对象包括团队评估和个人评估,其过程包括阶段计划评估和终结绩效评估。实训评估模块由项目文档输出、作品展示、实训报告、成绩生成等模块组成。
项目文档输出模块能展示项目开发全过程的所有文档,是“双师”作为项目过程控制与质量控制的重要控制点,也是专业技能、综合能力和职业素养的直观表现。作品展示模块为学生提供作品、个人基本信息、院校评价的展示,是实训考核优异者的舞台,也是学生评互,实现协作学习、共同提高的平台,如果对学生就业面试单位开放,让用人单位进一步地了解学生,还可以提高学生的就业竞争力。实验报告是学生对全部实训过程的总结与提高,实训成绩是学生实训的综合表现。各阶段项目文档输出、软件测试报告、学生实验报告及学生自评等构成实训成绩评定的依据。实训评估模块记录学生的日常开发工作与团队表现,给出定量评价并汇总,做到全程实训全程评价。
关键词:软件工程;人才培养;教学改革;职业化
自2002年我国高校设立软件工程专业之初,软件工程就是一门面向社会经济发展的实际需求,并以培养具有扎实的计算机领域理论知识和技能,同时能够从事软件开发、科研、教学和应用的应用型人才为目标的学科。随着我国素质教育改革的不断深入,软件工程专业的教学像其他以实用性教学为目的的学科一样,面临着如何向职业化转变的问题。相关数据显示,我国当前对软件人才的需求达到了20万人,并以每年20%左右的速度增长[1]。然而,传统教学模式制约因素的存在阻碍着软件工程专业的职业化转变,影响着我国软件人才的各种能力的培养[2]。因此,如何探索并革新我国软件工程专业的教学模式,以实现其职业化的转变是当前急需解决的问题。
1高校软件工程专业传统教学模式的不足
1.1课程体系侧重理论
受制于计算机行业的整体环境,如软件复杂性较简单,计算机硬件设备性能较低等,软件工程专业设立的初期并未对实践性人才提出过高的要求,更加侧重于培养“知识型”人才。因此,软件工程课程体系的设置,也更加侧重于培养软件行业人才对软件理论的理解与掌握[3]。对于实践性的要求,仅限于能够通过实践掌握理论知识即可。在传统课程体系中,理论课所占比重要远远大于实验课,实验课设置的目的是为了方便学生掌握理论知识[4]。课程内容也大多是教师事先安排好的内容。实践证明,经过这种模式培养出来的学生多数具有良好的理论基础,但是却无法在实际中很好地运用这些理论。
1.2教学目标脱离职业化
职业化培养模式下的软件行业人才应该具备软件、硬件、网络等各学科综合知识的复合型人才。软件行业人才不仅应该具备这些学科的理论知识,也应具备将这些学科的理论和实际结合起来的能力。然而,现有的教学模式则侧重于理论教学,而忽略了职业化的软件行业人才的培养应该是以理论和实践的有机统一为目的。这种模式过于侧重理论知识的学习,而忽略了理论和实际的融合,影响了职业化的发展。
1.3软件工程就业缺乏导向性
当前,软件工程教学的一个重要作用就是为学员提供良好的就业。来自前程无忧等几家公司的报告显示,企业对软件工程师的需求仍居于首位,且具有可观的薪酬。然而,跨入软件技术领域,成为一名软件工程师,相应的技能水平及经验又是必备的“入场券”。如何在由学校跨入就业岗位后能够快速掌握与就业岗位相适应的软件开发技能,将是软件工程专业教学需要考虑的问题[5]。然而,现有软件工程教学缺乏就业导向性的不足,注定了这些专业学员无法快速适应就业能力需求。
2高校软件工程专业教学模式改革的构想
2.1明确教学目标
当前的软件工程专业的教学目标应该是培养职业化的具备软件、硬件、网络等各学科综合知识的复合型人才。因此,软件专业的教学目标可以基于S-CDIO[6,7,8]培养模式,将培养高层次、实用型、复合型的人才培养作为教学目标,同时强调培养学生扎实的计算机基础知识、强力的实践能力和理论应用能力。此外,还要引导学生时刻关注软件工程及相关行业的各种新技术,如大数据、云计算、VR等。通过明确教学目标,从而能够有针对性地设置课程体系和培养学生能力。
2.2课程体系设置
软件工程课程体系的设置是为了培养理论和实践兼备的复合型人才。它的设置,必须兼顾培养理论知识和实践能力。围绕这一目标,课程体系结构包括三个方面:(1)基础课程。这类课程的设置用于培养学生的理论知识和基本的动手能力。首先,基于SE2004软件工程方案设置与软件工程学科相关的基础科目,这些科目涵盖的理论包括数据的机器级表示、由机器语言到汇编语言及各种结构化程序语言和面向对象编程语言的各种语言、能够用基础语言处理的各种新型技术理论等。通过这些课程的设置,使学生建立软件工程相关课程的完整概念。其次,设置能够应用软件工程方法的课程。这些课程的设置能够将实际的程序设计和软件工程理论知识融为一体,并将基础程序设计方法的学习和小、中规模的软件结构设计相互融合,培养学生的综合应用能力。在具体课程方面,可以设置一些如基于瀑布模型的设计方法,可以为学生讲授小组级、中规模软件系统建的综合技术;如基于螺旋开发模型的方法,可以通过构建中等规模系统,培养学生理论、管理、开发等综合技能。(2)专业核心课程。传统教学模式中,专业核心课程的设置思路主要是用于构造计算机系统的核心知识[9]。针对这一情况,改革后的专业核心课程的设置则倾向于培养学生利用各种计算机高级技术解决实际问题的能力,涵盖了与软件工程相关的各种计算机硬件、不同等级的程序设计、互联网环境下的软件设计、数据库环境下的软件设计、面向人机交互的软件设计等知识。除了这些课程,还设置了一些覆盖软件工程高级技术需求的课程,这些课程涵盖了软件工程的需求、设计、构造、质量、过程、管理等各方面知识,能够培养学生从整体上解决整个软件项目的能力。
2.3改进教学方法
软件工程专业职业化人才的培养需要做到“教、学、做”的合一。然而,现有教学方法的不足使得现有教学方法只是做到了“教”和“学”两点,却忽视了“做”是实现教学的根本目的核心。针对这点,可以从两点进行改进。第一点,采用案例教学法。案例教学法要求老师在讲解理论知识时,始终围绕已有的项目进行。将一个完整的项目和理论体系拆解分配到个个教学环节中。在每个环节,则明确教学目标、分解教学内容、分析关键技术和步骤、引导学生参与项目实践、展示项目效果。第二点则是考虑使用现代化教学手段。围绕发挥软件工程专业实践教学为中心的地位,通过增加实验内容和学生实际动手能力,为学生提供充分参与项目实践的机会。同时,还可以开展大型综合实验、综合实训、企业实习、毕业设计等实践教学内容教学,通过开设大型综合性的实验课程或综合实训课程、组织学生到Ⅱ企业顶岗实习、利用所学知识进行项目开发的能力和就业竞争能力。
2.4加强教学队伍建设
教学队伍是高校软件工程专业教学中的一个重要环节。教师的水平影响着课堂教学和学生动手能力的高低。在现有的一些教师队伍中,一些教师往往具有很高的理论素养,然而却缺少足够的项目经验[10]。这给学生的实践教学带来了不利影响。因此,应该加强教师队伍的建设。在具体的举措方面,要做到两点:(1)学校要引进具有丰富项目经验的教师或者制定教师提高教学水平的计划。通过实施这些计划,使教师能够加强学习、钻研业务,掌握教学技能,提高他们的教学水平和教学技巧。(2)学校加大对软件工程专业教育的投入,多组织高校软件工程专业教师参加省级培训、校级培训等再培训工作,着手培养基础好、教学技能优秀、有事业心、敬岗爱业的专业教师,增强软件工程专业教学师资力量。
2.5培养学生的职业素养和岗位实战能力
为学生创造职业化的教学环境是提高学生职业素养和岗位实践能力的最有效手段。在这方面,可以通过和一些企业合作,将学生放置到企业的真实项目中。可以从三个方面进行:(1)组织学生参加和学习企业的项目文化,如定期为学生模拟企业项目运行方式、参观企业产品展示厅、听取企业项目负责人、技术人员和管理人员有关企业产品开发的专题报告以及生产管理模式、技术发展趋势和企业文化、企业资源管理方面的专题报告等;(2)通过持续的教学,为学生建立就业需要的知识体系和技术体系,帮助学生规划自己的职业生涯,并通过让学生深入了解自己的能力,认清自己能够从事的职业;(3)这方面是为了培养学生适应就业所需要的企业文化中的团队精神、职业技能等。可以联合企业严格按照企业产品的开发以及企业需要的一些技能来对学生进行职业技能、职业素质、团队精神、职业规范等进行强化训练来提高学生这方面的职业素养。
3结束语
当前的软件工程专业的教学处于向职业化转变的时期。只有对传统教学模式中那些制约软件工程专业的职业化转变的因素进行改革,才能提高我国软件人才培养水平、实现教学模式职业化转变,并最终适应社会对软件工程专业人才的需求。
参考文献:
[1]蓝斌.浅析高校软件工程专业教改模式[J].计算机光盘软件与应用,2014(17):313-313.
[2]郝隽.CDIO理念下的软件工程专业人才培养模式研究[J].中外企业家,2016(3).
[3]张凯,孙华,冷洪勇,等.项目驱动模式在软件工程人才培养中的应用与反思[J].电脑知识与技术:学术交流,2016,12(1Z):150-151.
[4]檀明,许强,张家锐.软件专业人才培养模式改革研究与实践[J].电脑知识与技术:学术交流,2016,12(2):145-146.
[5]司海平,王晓茜.面向市场的软件工程人才培养与课程体系优化[J].信息系统工程,2017(5):166-168.
[6]钟瑛,朱顺痣.《软件开发综合实训》课程教学模式若干思考[J].科技创新导报,2012(31):187-188.
[7]王立娟,何丹丹,翟悦.基于CDIO理念的软件工程专业工程化实践教学改革的研究[J].当代教育实践与教学研究:电子刊,2015(12).
[8]胡安明.基于CDIO理念创新软件专业实践教学的研究[J].科学导报,2016(2).
[9]叶娜,祁飞,边根庆,等.面向国际化人才培养的软件工程专业本科教育课程体系研究[J].教育教学论坛,2015(15):142-143.