舒新峰,王 博,王曙燕
(西安邮电大学计算机学院,陕西西安710121)
摘要:针对软件工程专业实践教学存在的实践内容相互脱节、工程能力训练不足等问题,确定实践教学的培养目标,提出系统化的实践教学模式,对实践教学体系进行系统规划,最后结合案例介绍系统化实践教学模式的具体实施方案。
教育期刊网 http://www.jyqkw.com
关键词 :软件工程;实践教学;教学模式;项目驱动;案例教学
文章编号:1672-5913(2015)17-0079-05
中图分类号:G642
基金项目:2013年度陕西高等教育教学改革研究项目(13BY68);2014年度陕西本科高等学校“专业综合改革试点”项目( 14-58)。
第一作者简介:舒新峰,男,副教授,研究方向为软件工程、形式化验证技术,shuxf@xupt.edu.cn。
0 引言
软件工程作为实践性极强的工程学科,实践教学环节对强化所学知识的理解与掌握,提升工程实践能力和综合素质具有举足轻重的作用和地位。由于当前一般本科院校软件工程普遍实践环节缺乏统一规划,学生工程训练不足、实践能力弱、职业素养低、创新意识缺乏等问题,软件人才培养与企业对高素质软件人才的需求存在相当大的差距。
1 实践教学目标
高素质软件人才的培养过程是传授知识、培养能力和提高素质的有机统一体,贯穿在理论教学和实践教学这两个教学环节中。通过实践教学的系统训练,使学生具备从事软件工程实践所需要的能力和素质,具体目标包括:
(1)学习能力。具有根据工程实践需要获取所需知识的能力,以及紧跟学科发展不断更新自己专业技术知识的终身学习能力。
(2)专业能力。具有使用软件工程的知识、技术、方法和工具进行软件系统的分析、设计、构造、测试和维护以及项目管理的能力。
(3)创新能力。在软件研发和项目管理方面具有一定的创新意识和创新思维能力。
(4)专业素质。掌握科学的思维方法,具有严谨的科学态度和求真务实的工作作风,具备良好的工程素养,具有创新和探索精神。
(5)职业素质。具有责任心和社会责任感,具有良好的职业道德修养;具有诚信意识和团队精神;具有较强的自信心、进取心和心理素质。
2 系统化实践教学模式
目前软件工程专业的实践环节主要侧重课程知识点的掌握和编程能力的培养,各实践环节间缺乏沟通与衔接,对学生完整软件项目的分析能力、设计规划能力、项目管理能力、团队协作能力等方面训练不足。系统化实践教学模式就是要打破实践环节相互脱节的局部,对实践环节进行统一规划布局,按照软件人才培养规律对学生进行系统训练,促进学生工程实践能力与综合素质的全面提高。系统化实践教学模式具体表现在以下几个方面。
2.1 统一规划,重点突出
以工程实践能力和综合素质培养为中心,将实践教学体系划分为4个部分,结合实践教学目标进行针对性培养,如图1所示。
1)课内实验:配合理论知识学习同步进行,以验证性实验为主要形式,重点完成软件工程学科各知识单元及相关工具的应用能力训练。
2)项目训练。按照软件工程知识的学习进展分阶段集中进行,以设计性、综合性实验为主要形式,重点训练学生灵活运用所学知识解决实际问题的专业能力和素质。
3)课外实践。学生根据兴趣爱好参加各类软件开发相关的实践活动,如学科竞赛、科技协会、老师的科研项目等,旨在增强学生的专业能力、创新能力、学习能力及探索精神。
4)企业实习。让学生在软件企业参加真实项目开发,亲身体验企业的开发流程、组织模式和管理制度,进一步增强工程实践能力,提高团队协作精神和职业素养,实现从学校学习到企业工作的跨越。
2.2 理论与实践有机统一,协调发展
以一个精心选择的软件项目为主线,将专业知识的传授和工程能力训练融合在该项目研发中。在理论教学环节,针对每门专业课程所传授知识的不同,选择该项目的对应部分作为案例进行重点剖析,将枯燥、抽象的理论知识与工程实际相结合,加深学生对所学知识的理解与掌握。在实践教学环节,针对专业知识的学习进度确定相应的开发目标,要求学生应用所学知识完成项目的开发,并随着更多知识的掌握不断对该项目进行升级完善,直到最后提交一个具备实用价值的完整软件系统。
2.3 遵循认知规律,循序渐进提升能力与素质
软件工程学科包含软件开发技术和软件工程管理技术两方面。在工程能力和素质的培养上,需要遵循软件开发技能的认知规律循序渐进进行,首先解决好软件构造问题,在给定设计方案下高质量地用程序设计语言把软件编出来;其次解决软件设计问题,在给定了需求后能够给出一个合理的系统设计方案;接着解决需求分析问题,从给定的问题领域中准确获取分析出系统的需求;然后解决软件的验证问题,确保能够给客户提交一个高质量的软件;最后解决软件项目管理问题,初步具备组织领导一个团队进行项目开发的能力。工程实践能力与素质的提升路线,结合选择的统一项目分阶段进行系统训练,如图2所示。
2.4 发挥团队优势,提升总体教学质量
团队开发模式是软件公司进行软件开发的主要组织形式。为让学生尽早适应项目团队开发模式,熟悉软件开发流程、软件开发管理以及相关的技术、方法、工具和规范,所有集中实践环节和专业课程的课内实验均采用项目小组的形式,在软件工程的思想指导下进行项目开发,发挥“团队作战”的优势,成员间紧密合作,优势互补,互相带动,为高质量完成实验任务而努力,充分激发学生学习的积极性、主动性和集体荣誉感,增强学生的沟通能力、组织管理能力和协作精神,提升总体教学质量与效果。
3 教学模式实践
以西安邮电大学软件工程专业为例,介绍系统化实践教学模式的具体实施方案。
3.1 实践教学计划
本专业将培养目标定位为面向互联网及信息服务领域的高素质应用型软件人才,分为Web应用开发、移动应用开发、软件测试和Linux系统软件开发及运维四个培养方向,制定的实践教学计划详见表1。
由于篇幅所限,这里仅对项目训练部分进行重点说明。在软件工程思想指导下,项目训练围绕统一的软件项目,根据知识的掌握进度分为初级、中级和高级3个阶段进行:
1)初级项目训练,完成基础编程能力的训练。指导教师讲解面向过程设计方法并给出软件项目的设计文档,由学生使用C语言完成项目的编码和测试。
2)中级项目训练,完成高级编程及软件设计能力训练。指导教师给出项目需求,由学生使用面向对象技术、数据库和Java语言完成项目设计、编码和测试。
3)高级项目训练,完成需求分析、软件测试及项目管理能力训练。学生项目组严格按照软件工程的开发流程、规范和管理方法,独立完成整个系统的分析、设计开发和测试,最终提交一个具备实用价值的软件。
3.2 实验任务设计
在系统化实践教学模式中,贯穿始终的统一软件项目是实践能力培养的核心和关键。在项目的选择上,需要满足以下3个条件:①接近学生熟悉领域,业务规则相对简单;②体现学校专业特色,满足核心专业课程案例教学、课内实验以及集中实践的需要;③规模和难度适中,4~6人的项目团队能够完成项目的开发。
结合本专业的培养目标和方向,选择的项目为“剧院业务管理系统”,具备映厅、影片、演出、订票、售票管理和票房统计等功能,并支持Web网页售票和移动终端售票两种形式。按照循序渐进式训练的策略,确定了表2列出的不同层次的开发目标,并以此为依据制定的具体课内实验与项目训练任务详见表3。在项目设计上,使用分层设计模式,将软件分为UI层、业务逻辑层和持久化层,以便于在不同课程中使用不同技术对相应层进行更新和替换,实现课程间的融合和设计与代码的复用。
3.3 实践环节安排
为提升实践教学效果,尽可能为学生提供一个近似于软件公司的实践环境,配备各种常用的软件开发环境、数据库和CASE工具,并按照软件公司的项目管理流程和开发规范组织实践过程。
专业基础课程(如面向过程程序设计和面向对象程序设计)的课内实验采用个人独立实验的形式。我们开发了程序自动评测系统,要求学生按实验任务要求提交编写的程序,系统自动判定程序是否合格,以实际运行为标尺检验学生的基础编程能力是否达到要求,从而引导学生加强编程能力的训练。
在专业课程的课内实验及集中实践环节,成立4~6人的开发团队,指导教师担任项目总监的角色,控制项目的进度和质量;团队成员根据自身特长担任项目经理、配置管理员、软件工程师和测试工程师等角色,以熟悉和掌握软件开发流程、规范和各岗位角色的作用和任务,在锻炼了软件开发技能的同时增强了沟通能力和团队协作精神。
3.4 成绩考核
在专业课程考核时,进一步加强实践能力的考核力度,重点考查学生是否具备应用所学知识解决实际问题的能力。专业基础课程完全用上机考试替代卷面考试,成绩评定方案为平时成绩10%、实验成绩50%、期末机试成绩40%。专业课程成绩评定方案为平时成绩10%、实验成绩50%、期末卷面成绩40%,其中实验成绩评分方法同集中实践,期末试卷中综合设计题目应占到总分的50%以上。以考核手段为导向,促进学生积极参与工程实践,努力提升软件开发能力。
对于以项目小组方式开展的课内实验和集中实践,考核时对实验过程、成果质量、团队协作能力和创新精神做全面考核。考核策略采用了文献[6]类似的方式,个人最终成绩由团队考核分数与个人考核分数带权相加后得到,具体考核指标详见表4。团队考核采用组间评分方式,由指导教师与所有项目组组长成立的成绩评定小组进行评分,打分时被考核小组不参与评分,每个团队最后分数=指导教师打分*50%+其他小组打分的平均值*50%。个人考核则在项目组内部完成,每个人的最终成绩由项目组其他成员打分并求平均值后得到。
3.5 培养效果
本专业实施系统化实践教学模式之后,在提升学生的专业认同感、工程实践能力和综合素质方面效果显著,具体体现在以下3方面:
(1)降低了专业入门难度,能够让学生尽早体验到软件开发的乐趣和成就感,从而使更多学生喜欢上软件工程专业,愿意以积极认真的态度学习和探索软件工程领域的知识与技能,主动参与各种工程实践活动,不断提升自己的工程实践能力。
(2)增强了学生的创新意识和探索精神。本专业学生在“挑战杯”“蓝桥杯”“葡萄城”“Intel杯”“电脑鼠走迷宫”等大赛中取得了良好成绩,获得各类奖项200余项;组织的“Linux兴趣小组”是国内知名的开源社区之一,成功主办了多届“国际软件自由日”活动,并有多名同学向Linux内核提交过补丁;承担过校内多个业务系统的开发,经用户实际应用反馈良好;申请到20余项国家大学生创新创业计划项目,并且已经有部分学生在校期间开始创业,取得了一定的经济效益。
(3)提升了学生的就业竞争力,就业数量和质量得到明显提高。在2013届的120名毕业生中,有约30%的学生进入了华为、中兴、腾讯、百度、阿里巴巴、京东、神州数码等国内知名IT企业。根据麦可思公司对我校2013届毕业生工作半年后的调查报告显示,本专业毕业生平均年薪在全校所有专业中排名第一,且学生以扎实的理论基础、较强的工程实践能力和踏实肯干的工作作风受到企业的普遍赞誉。
4 结语
系统化的实践教学模式以工程实践能力和综合素质培养为目标,以统一规划的项目为依托,实现了专业课程的有机融合及理论教学与实践教学的协调发展,同时遵循软件人才培养规律,循序渐进地对学生进行软件开发的系统训练,使其知识能力结构和综合素质能够适应当前软件行业发展的需要,最终实现高质量就业。当然,系统化实践教学模式还需要在教学和实践中继续完善,引入更多优质教学实践项目和教学资源,不断探索和改进实践教学方法和手段,并开发实践教学管理平台以提高教学管理的自动化程度和水平,为我国信息化产业发展培养出更多高素质的软件人才。
教育期刊网 http://www.jyqkw.com
参考文献:
【1]杨慧炯,韩燕丽.应用型工科院校软件工程专业工程化特色人才培养模式研究[J],计算机教育,2012(6): 19-21.
[2]张华.应用型本科的软件工程实践教学研究【J】.电脑知识与技术,2014,10(32): 7700-7702.
[3]教育部高学校软件工程专业教学指导分委员会,高等学校软件工程专业规范[M].北京:高等教育出版社,2011: 8-9.
[4]王金水.软件专业实训课程体系研究[J].计算机教育,2014(24): 128-132.
[5]强彦,赵涓涓,张瑞,等.计算机类专业的“团队学习”教学模式[J],计算机教育,2012(20): 5-7,15.
[6]钟瑛,朱顺痣.软件开发综合实训课程教学模式若干思考[J].科技创新导报,2012(31): 187-188.
(编辑:赵廓)