广东东软学院计算机学院 广东佛山 528225
摘要:通过分析和对比高校中软件实践教学的常用方法、敏捷开发模型的原理和实施方式,根据学生的能力水平的特点,将企业的敏捷开发模式借鉴到高校软件工程人才的项目实践教学过程中,指制定了具体的教学实施计划和方案,以《招投标信息管理系统》在载体,以广东东软学院软件工程专业大三两个班学生的暑假项目实训作为课程教学实践为依托,利用一个班使用敏捷开发,另一个班使用瀑布开发模型进行教学实践,最后通过两个班的项目实践效果和学生调查反馈的对比分析,发现敏捷开发模式融合在高校软件人才的项目实训教学方案中教学质量有明显提高。
关键词:敏捷开发;瀑布模型;实践教学;教学设计
一、背景
随着新一代信息技术加速渗透到经济和社会生活的各个领域,软件产业呈现出网络化、服务化、平台化、融合化新趋势。目前,新一代信息技术正在转向软件主导,软件在信息产业中的贡献不断增加。
软件产业是国家战略性新兴产业,是国民经济和社会信息化的重要基础。据美国权威统计机构调查,今后五年内,中国“软件外包”将以50%以上的年增长率持续扩张,令世界瞠目。国家信息产业部日前则宣布:“未来五年内,中国计划把软件产业增长六倍”,使之达到与软件王国印度相当的规模。到2010年,中国软件产业销售收入将达到13000亿元人民币。要实现“破万亿元”的发展目标,意味着未来几年软件产业的年增长率将不低于30%。“30%的增长速度可能还略显保守。” 中国软件行业协会理事长陈冲说。软件产业近年来已成为中国电子信息产业中增长最快的部分之一[1]。
在人才方面,伴随着我国经济转型的不断加速,行业的增长最终是需要丰富的人才资源予以落地,人才供给已经大幅落后于行业增长,人才缺口持续扩大,但我国只有550所高校设立软件工程专业[2]。
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。在企业中,敏捷开发已经被广泛应用于软件项目的构建过程中。
软件工程是大学计算机类本科专业高年级阶段开设的一门核心课程,实践性与综合性较强。尽管目前国内很多应用型本科高校积极倡导“项目教学”、“案例驱动”、“校企合作”、“分层次学习”、“需求导向”、“学竞结合”、“CDIO综合实训”等一系列教改思路,开展课程实践教学改革活动,并取得相应成效,但主体上还是以阶段性较为明显的软件开发瀑布模型来安排该课程的实践教学环节[3].
传统的瀑布模型,其基本思路是各项活动按顺序自顶向下,相互衔接如同瀑布一样。它的特点是强调文档,前一个阶段的输出就是后一个阶段的输入,文档是各个阶段衔接的必要信息,软件产品的“模样”只有到了开发后期才能看到[7]。但是学生一般没有开发经验,很难一步到位圆满的完成各个阶段的任务,并且学生普遍对撰写文档不感兴趣,繁冗的文档增加了学生的工作量,降低了学生软件开发的积极性[4]。
敏捷软件开发以人为导向,主动适应项目需求的变化,因此本质上来说敏捷方法更加适合这类课程的教学[9]。敏捷开发是目前在 IT 公司中使用最多的软件开发过程,其开发模型适合中、小型软件系统,能在短时间内开发出可运行的系统,因此得到了广泛的研究[5]。
二、研究意义
软件产业在政策、行业、资本的驱动下蓬勃发展,人才输出远远低于市场需求。目前,国内软件人才缺口大,成为软件行业乃至国家亟待解决的问题。软件开发相关专业的理论性、实践性和综合性强。
研究如何提高软件产业人才教学质量,无缝对接企业软件人才需求将会具有重要意义。
基于企业软件项目的敏捷开发模式,在高校的软件项目实践课程中采用循环迭代的敏捷开发模式进行教学设计,同时把目前企业对软件人才的技能需要添加到具体的课程里面,通过把软件项目的任务细化、主次有序、阶段性考核、循环迭代的完成整个项目,阶段性的成果有利于激发学生的热情,从而有利于整个软件项目的完成和达到实践课程的目的也增加对学生计算思维、编程思维、软件开发思维的培养,提高学生解决复杂工程问题的能力,符合软件行业发展趋势,具有创新和现实意义,并可为其他同类课程的设计与实践提供借鉴和参考。
三、研究内容
查阅敏捷开发模型的基本原理和实施方法,并深入到企业中进行调研,分析企业中对敏捷开发实施情况,以便借鉴于高校的实践教学当中。
分析实践项目的学生的个人能力水平、高校软件相关人才培养的特点和具体项目的需求特点,结合软件项目敏捷开发过程中的理论知识和实际实践情况,制定出切实可行的软件项目敏捷开发实践教学大纲、教学计划和方案。
通过《招投标信息管理系统》这个具体项目为依托,以一个班使用敏捷开发模型,另外一个班使用瀑布开发模型进行对这个项目的开发,通过项目实践作品的效果和学生的调查问卷来对比分析敏捷开发模型在高校学生的实践教学的可行性及优缺点。
四、研究实施思路
根据敏捷开发的理念和高校人才的特点,制定出软件项目敏捷开发的研究思路如图4-1所示。(1)将实践教学过程的老师和学生进行角色分配,产品负责人角色有指导老师担任,学生以分组形式进行软件开发实践,每个组推荐出来一个组长,担任敏捷开发的流程管理员角色,其他组员则为开发团队。(2)老师给学生讲解敏捷开发的理念、各个角色所担任的任务、以及敏捷开发如何实施。(3)指导学生将需求任务进行拆分,按照功能需求优先级、功能间的依赖关系、各个功能的工作量制定计划板,然后规划迭代的次序,每次迭代的任务、迭代的时间,并将任务分配到每个组员,接到任务的每个组员又可以根据自己的任务再细分,并保证每天都完成,也就是每天都要有一个可以成功编译、并且可以演示的版本。而且每个组每天早上要进行15分钟左右的站立晨会,要求每个组员都发言,讲解任务的完成情况、缺陷情况和遇到的问题。如此经过多次迭代后就开发出了一个功能齐全、可工作得软件。同时,也培养了学生软件开发思维,达到软件项目实践的根本目的。
依据以上的思路,对A班级使用了敏捷开发的软件开发实践教学方案,而B班级使用瀑布模型的软件开发实践教学方案,软件开发的项目需求相同,A班级和B班级分别共30,每个班都分别以5位同学作为一个开发小组,A班级中每个小组的实践开发模式,在老师的教学和监督管理下,严格按照敏捷开发的教学方案进行。
五、教学实践总结
敏捷开发模型的教学方案实施以广东东软学院软件工程专业大三学生的暑假项目实践教学课程进行实践,实践时间为一个月,学生的作品”集鲜蜂”在2020年计算机设计大赛中获省赛三等奖、作品“BooBey单词”在微信小程序开发大赛中获省赛三等奖。敏捷开发模式在项目实践教学中的效果明显比瀑布式模型开发要好,不管是项目效果,还是学生的实践学习知识和能力所得,都要由于瀑布模型。。
参考文献:
[1]中研网深度分析.软件行业发展现状及前景分析.[EB/OL].[2019-05-09].http://www.chinairn.com/scfx /20190509/105 616660.shtml
[2]大学生必备网.2019哪些大学开设有软件工程专业[EB/OL].[2019-04-12].https://www.dxsbb.com/news/10446.html
[3]余久久.应用型本科软件工程课程敏捷方法实践教学探索[J].西昌学院学报(自然科学版).2017.31(4):96