APP下载

面向工程化的软件开发人才培养体系研究与实践

2017-03-09孙琦龙

微型电脑应用 2017年4期
关键词:工程化软件工程

孙琦龙

(青海民族大学 计算机学院, 西宁 810007)

面向工程化的软件开发人才培养体系研究与实践

孙琦龙

(青海民族大学 计算机学院, 西宁 810007)

以工程化思想作为主线,从培养目标、内容、模式、保障措施出发,构建软件开发人才的培养体系、实践教学方法,结合自身特点,发挥老师的主导作用和学生的主体作用,充分调动学生的创新思维、团队合作精神,进一步提高学生工程化实施和项目管理的能力。通过软件开发人才培养体系的研究与实践,培养出有一定专业理论知识、具有较强的实践能力和职业素质全面发展的软件工程人才。

工程教学; 软件; 实践

0 引言

在中国,国内市场对软件人才的需求每年高达80万人,而高校计算机毕业生中的软件工程人才还很缺乏,尤其是高素质的软件工程人才的极度短缺。尽快培养起适合信息产业所需要的高素质软件工程人才,已经成为信息化工作中的重中之重[1]。这也是我们在培养软件工程人才的过程中面临的主要问题,青海民族大学十分重视软件人才的培养,在采取多项政策和措施鼓励教学改革以促进工程型软件实用人才培养的同时,对软件工程人才培养目标体系的建立,办学模式、培养方法、质量保证和考核等方面进行了不懈努力和积极探索,并取得了一些经验。相关研究成果和业界反馈表明,优秀的软件工程人才不仅应具备扎实的理论基础、丰富的专业知识和较强的创新能力,还需受到良好的工程训练和职业素质熏陶。目前,尽管计算机科学与技术专业学生在基础理论知识和动手能力的培养上积累了一定的经验,但是对于其工程化实施能力和职业化素质的培养却普遍没有给予足够重视。本项目是我们在结合青海民族大学实际情况的基础上,认真分析了软件工程人才培养规律,并提出“依托地方,服务西部,面向全国”的办学定位,其目标就是建立一个以工程化为主线的软件开发人才综合实践教学体系,培养新型的复合型工程化软件开发人才,使学生的专业基础知识、工程实施能力、项目管理能力、职业素养、创新能力等方面都得到均衡的发展。

2 面向工程化的软件开发人才培养体系

2.1 面向工程化的软件开发人才培养目标

要培养既掌握软件开发技术,又懂得如何实施一个软件项目并对之进行管理的复合型人才,这要求我们对学生的培养目标重新定位。培养目标应该以社会需求为导向,把工程化教学和职业素质培养作为软件开发人才培养的核心任务,使培养的学生能在行业中发挥作用。面向工程化的软件开发人才培养体系不但要求学生学习软件开发的基本原理、概念和技术方法,还要在自觉遵循软件工程方法论中的规范和工业领域中行业标准的基础上,培养他们软件项目管理的能力、从事工程实践的素养、创新能力和团队合作精神。

2.2 面向工程化的软件开发人才培养内容与方法

一些院校在讲授与软件开发相关的课程时,由于自身从事软件项目开发经验的欠缺或学时限制而忽视实践,形成了不涉及具体软件项目而只重视理论的现象。尽管有些院校目前采用案例教学方法,但教师在实际授课过程中仍以自己的思路为主导,带领学生进行知识的学习,而忽视在以案例为背景进行知识讲授的同时将软件项目开发过程的各个环节连贯起来,学生缺少积极主动课堂参与和独立思考的能力,更不用说独立完成一个软件项目的全过程。因此,在教学上不仅要注重基本原理、方法和技术,更应该强调软件项目管理的重要性和必要性,特别应该把软件过程管理的内容纳入到常规教学内容中,并辅以必要的课堂答辩讨论和实践环节,使得学生能够对软件项目实施的各方面内容进行综合理解和训练。面向工程化的软件开发人才培养体系培养学生能胜任研究、分析、开发、设计与测试等多种角色,使学生熟练掌握软件工程知识与技能,具备作为软件工程师从事工程实施所需的专业能力。

2.3 面向工程化的软件开发人才培养模式

面向工程化的软件开发人才培养体系强调在软件工程的指导下,以数据库为主线进行工程化课程群组建设,在课程群组建设的基础上引入案例教学和工程化实践训练,具体工作分三个阶段进行,即知识传授+案例讨论+工程化实践的模式。第一阶段是理论知识讲授。这一阶段以理论知识传授为主,教师系统地讲授工程化课程群组建设的知识体系,精讲系统原理和方法并突出重点和难点,为后续阶段的学习作好准备。第二阶段是案例讨论。让有丰富经验的教师及软件开发公司的资深软件工程师和管理者来编写案例,通过对一些精选案例的分析学习,从中引出与理论知识点相关的问题,培养学生的思维能力、分析能力、判断能力及用所学知识处理问题的能力。要求学生真正从工程师的角度来考虑问题,引导学生进行深入讨论以便发现问题、寻找可能正确地处理和解决问题的具体方法。第三阶段是实践训练。以小组为单位完成一个项目,一个小组可由几人组成,按软件工程项目开发的组成和管理要求,为小组的每一位成员分配角色, 分别进行项目计划的制定、需求分析、总体设计、详细设计、编码实现及测试等各环节的任务。同时也引进企业项目管理模式,对学习过程进行监控和管理,学生是主体,但教师起主导作用,及时发现问题、解决问题、对任务进行总结和评比。在项目中掌握职业能力,达到大纲所要求的能力,包括基础知识、个人能力、团队协作能力和工程系统能力[2]。在实践过程中,对上述环节的任务完成都以答辩作为考核的方法。按照软件工程的要求,项目计划、需求分析、总体设计、详细设计文档的书写是一个重要环节,通过对先期文档规范格式的讲解和对一些精选案例的学习参考,由学生完成每一个环节的文档资料,而每一个环节在答辩的过程中只有获得通过后才能进入下一个环节开始工作。

2.4 面向工程化的软件开发人才培养保障措施

2.4.1 建立新的评价体系。将工程能力和职业素质引入人才培养评价体系,将企业反馈和实习生/毕业生反映作为重要依据对专业教学计划、教学内容、教学方法进行调整,为进一步提高教学质量打下坚实的基础,最终使学生能够更好地适应业界的需要。

2.4.2 以工程化理念指导教学实验室建设。通过建设与业界同步的工程化综合实验环境及实习基地,为实践教学提供强有力的基础设施支持。

2.4.3 制定有关规定和教学文件,如:教学规章制度、人才培养方案、课程教学大纲、实验教学大纲、学期教学进程计划、课程表、学期教学工作计划和工作总结等齐全。教学实践和管理活动中形成了完备的教学档案,包括教学文件档案、教务工作档案、教师业务档案、学生学习档案。健全的必要文件和制度均体现了现代教育思想,并积极采用现代管理技术好。

3 面向工程化的软件开发人才培养体系实施过程

确立工程能力培养与基础理论教学并重的教学理念,通过全面改革人才培养模式、调整课程体系、充实教学内容、改进教学方法,建立软件开发人才的工程化实践教学体系。

3.1 设计课程结构,完善课程的系统性

以面向工程化的软件开发人才培养目标为基准设计课程的构成。课程在课程群组中的地位、课程的组成部分、课程的特色应完全体现新思想、新技术,既有助于开拓学生的视野又可以培养学生的创新意识与开发能力。总体上既符合实际的教学情况,又能够紧跟软件开发市场的前端需求。课程结构分基础理论和工程实践训练两部分构成,基础理论有程序设计语言、数据结构、数据库原理及应用、操作系统等课程构成,工程实践训练有软件工程、软件项目管理、软件过程管理、软件测试与发布、统一建模语言、网络综合应用等课程构成。

3.2 改革教学方法与手段

改变常规“理论+验证性实验”的模式,在以工程实践的运作模式组织教学的过程引入案例教学,学生需要与模拟客户(即任课教师或其助教)进行正式的沟通与讨论以发现问题。在授课过程中,教师通过精选案例来讲解软件生存周期,可行性研究、需求分析、总体设计、详细设计、编码、测试和维护等阶段的任务,讲授与讨论相结合, 积极引导学生参与讨论,让学生在课堂上能感觉到学习的成就感,以激发学生的学习动力和兴趣,使学生感觉到工程化软件开发、项目化管理的实用性所在,从而提高培养质量。

3.3 培养工程化思维能力

在开始实施项目前,向学生展示往届学生的成果,激发学生的学习兴趣,使他们认识到自己的潜能。教师除了教授学生学习软件工程领域专业知识的同时,更加注重对实际应用能力的培养,培养学生的创新精神和团队合作意识,使学生积极主动地参与其中,而不是被动地接受课堂教学,然后由学生根据教师传授的知识和技能进行项目的实践。与此同时教师一定要向学生明确任何项目没有标准答案,只有预定的目标和指标,而工程就是去实现这个目标和指标,它需要创新,没有工程思维,就很难进行创新。

3.4 在学生的成绩考核方法中引入答辩机制

对于以工程化实施项目的过程除软件编码外,其它环节都采用答辩方式来评判学生的任务完成情况。首先,确定答辩小组成员,以7-9人作为一个答辩小组,成员有教师、工程师、学生组成,其中学生成员既是答辩评委又是答辩者,一个班级可以分5-6个小组进行答辩。其次,由学生将自己在前一段时间所做项目的可行性研究、系统分析、总体设计、详细设计做完整的介绍。之后,答辩小组成员根据介绍内容和文档资料进行问题的提出,每一个小组的学生评委必须至少提1-2个问题,然后在答辩者和老师、工程师之间展开问题的讨论,讨论的目的是发现问题,并提出问题的解决方法。在讨论的过程中老师注意激发学生的热情和兴趣,并详细记载每一个答辩学生的设计方案中发现的问题,答辩后学生针对发现的问题修改设计方案并提交给老师,然后才能进行代码编写的工作。成绩考核中同时引入团队评分制,不再以个人表现来评定成绩,而是以项目团队的整体表现成为评定成绩的唯一依据,以促使学生自发地进行合作、分工和交流,深刻体会到团队协作的重要性。

3.5 项目实施的角色交换

每个小组的设计方案交换使用,各组选择其他组的阶段成果作为下阶段工作的基础,以模拟实际项目中的代码评审和新成员加入时面临的情况,培养竞争意识和表达能力,提高团队合作意识。

3.6 软件测试与维护阶段

学生邀请非小组成员或班级外的学生对软件做严格的测试,以便发现问题。同时教师给出下一步项目需求的更改情况,学生根据实际情况修改设计方案增加新功能,其目的是模拟真实项目中的需求变更。教师需要设置好实验环节的内容、形式,实验课和课程设计时采用商业软件的开发模式,以实际项目和企业正常运作时人员的分工配合来进行实验教学,理论指导实践,实践强化理论[3]。

3.7 营造良好的工程实践教学环境

基础设施建设是实施工程化实践教学体系的重要保障。在实验室建设中,坚持以工程化培养理念为指导,构建与业界同步并在国内领先的工程化综合应用实验室环境,同时在国内IT企业中建立实践基地,采用加拿大和美国Co-operation Education的模式,为学生提供良好的实践机会,让学生具体参与企业运作和项目研发,体验软件工程的实施过程。

3.8 整合资源,改善教学条件。

建设一支专家型的教师队伍,加快校内和校外实践教学环境的建设速度,由我校教师和企业工程师承担面向工程化软件开发人才培养的任务,建立模拟的实践环境,成立与企业联合的软件开发协作体,使学生能够参与到实际的软件工程项目开发过程中。

4 总结

4.1 面向工程化的软件开发人才培养确立了工程能力培养与基础理论教学并重的创新教学理念,把工程能力和职业素质培养引入到大学教学中,使学生的基础知识、专业技能、创新能力、工程能力、职业素质、团队合作精神都得到全面均衡的发展。同时把工程化教学的实施划分成基础理论教学阶段和工程实践阶段,在教学内容、教学手段和成绩考核方法等方面进行了全面改革,加强了对学生软件工程的实践能力、文档写作能力、沟通能力和团队协作能力的培养。

4.2 以适应市场需要和突出应用型人才的培养为目标,设计软件开发课程体系的构成,以阶段性的方式设置课程教学方法,完善课程的系统性。在项目实施过程、工程化实践教学体系的保障方面进行了一系列创新性的探索,教师始终围绕最终目标和阶段任务来强化过程管理,使学生了解软件工程项目从规划设计到实施的全部流程。

通过本项目的实施,不但加强了师资队伍建设,同时以青海省教学创新团队建设为龙头,提升了教师学历和职称结构,“双师型”教师达60%以上,聘请5位有丰富行业工程经验的工程师为专业群校外指导教师。高质量编写国家“十二五”规划教材1部,编写有特色的核心课程讲义。建设学生创新实验室和实践基地,培养学生创新意识,强化学生实践能力培养和指导。形成专业核心精品课程群并更新了课程体系和教学内容。以工程化思想为主线,修改专业群人才培养方案和培养模式,修订专业群全部课程教学、实验、实践、课程设计大纲。改进教学方式和教学方法。针对课程特点,努力探讨适合课程特点的教学方式和教学方法,培养具有工程化思维和具备职业素养的人才。学生普遍反映能够适应新的教学体系,个人能力得到全面提高。学生的工程规划能力、分析设计能力、动手实践能力、团队合作能力、创新能力都得到了大幅度提高,综合素质明显增强。

[1] 王中华,汪文彬. 软件工程的哲学思考[J].软件工程师,2015,1(18) :58-59.

[2] 苏红丽. 校企融合下的CDIO工程教育模式探索与实施[J].软件工程师,2015,18:53-54.

[3] 钱小红,张玉蓉. 三本院校软件工程实践教学的研究与实践[J].软件工程师, 2015,1(18) :5-6.

[4] 吴俊杰.基于卓越工程师培养的软件工程一体化课程体系设置[J]. 现代计算机, 2012(1).

[5] 王爱民.软件工程专业校企合作实践教学模式研究[J].实验技术与管理,2012(1).

[6] 阳王东.以工程项目为主线的软件工程专业课程设计实践教学[J].计算机教育,2012(12).

[7] 李儒寿.应用型本科人才培养模式改革探索——以湖北文理学院“211”人才培养模式为例[J].高等教育研究,2012(8).

Engineering-oriented Software Development System of Personnel Training and Practice

Sun Qilong

(Department of Computer,Qinghai University For Nationalities, Xining 810007, China)

Taking thinking as the main line, from the training objectives, contents, mode, protection measures, a software development training system, and the practice of teaching methods are constvucted. Combined with the characteristics of themselves, teachers and students play the beading role and main role, respectively. The students’creative thinking and team spirit are excited. These measures further improve the capabilities of students in engineering and project management. By the practice of personnel training system, we cultivate students to have certain degree of professional knowledge, a strong practical ability. Students get overall development of all aspects of software engineering.

Engineering teaching; Software; Implementation

青海省教研创新团队(青教高〔2015〕25号)

孙琦龙(1970-),男,硕士,教授,青海民族大学计算机学院,研究方向:数据库、软件工程.

1007-757X(2017)04-0028-03

TP311

A

2016.11.28)

猜你喜欢

工程化软件工程
禅宗软件
软件对对碰
“飞机性能课程设计”课程工程化改革研究
子午工程
软件测试工程化模型及应用研究
玻璃纤维增强复合材料工程化应用进展
即时通讯软件WhatsApp
工程
工程
工程