APP下载

敏捷开发模式在中职软件开发课程项目教学中的应用

2017-06-12谭江山

广西教育·B版 2017年3期
关键词:软件开发项目教学

【摘 要】本文结合中职学生特点,将当前流行的敏捷软件开发模式引入到计算机软件开发课程教学中,探索其在软件开发课程项目教学中的应用与实施。让学生在实操中掌握项目开发与管理,并顺利过渡到软件企业的生产流程中。

【关键词】软件开发 敏捷开发 项目教学

【中图分类号】G 【文献标识码】A

【文章编号】0450-9889(2017)03B-0102-02

当前,中等职业学校软件开发课程采用的项目教学法,是传统的项目教学法。它虽然能够巩固课堂知识,让学生感受到项目开发的流程和管理方法,但由于通常采用虚拟的教学环境,存在着许多不足:首先项目教学的组织流程还是沿用传统软件开发模式(如瀑布式开发模式),与当前社会上软件公司中讲究原型开发与快速迭代更新的设计思想不一致;其次,传统的项目教学在课程组织模式下,师生无法及时沟通,出现的问题不易及时解决,导致了项目进展缓慢,学生普遍反映学习难度大;第三,传统的项目教学课程由教师主导进行,往往是由教师先讲,做示范,学生模仿完成,这种模式使学生缺少独立设计、自主学习和创造性思维能力方面的相关训练,没有真正培养学生主动学习的能力。鉴于传统项目教学中存在的诸多不足,笔者提出在中等职业学校软件开发课程项目教学中引入企业敏捷开发模式,并且在学校经营性实习基地组织学生边教边学、边学边干,提高了学生学习的主动性,让学生的学习紧贴企业生产实际。

一、敏捷开发的概念与特点

目前市场上大多数的中小型软件企业都在使用敏捷开发方法。敏捷开发是一种有代表性的计算机软件开发模式,它是以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,軟件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系而又可以独立运行的小模块,并分别完成,从而实现快速开发的目的。其特点是:①适用于小团队;②团队是跨功能的——包括测试人员、开发人员、文档开发人员等;③短迭代——利用短迭代方法来交付软件;④相较于文档,敏捷开发更注重面对面的交流;⑤结对编程、以强带弱;⑥持续集成,交换测试。

二、在项目教学中应用敏捷开发的原因

1.敏捷开发以用户的项目需求进化为核心,需要与用户进行积极的沟通,通过与用户的沟通,可以增强学生的组织沟通能力。

2.由于敏捷开发把一个项目划分为若干个子项目,每个子项目均可单独测试,学生在短期内可看到项目效果,容易产生成就感,激发学生的学习兴趣。

3.敏捷开发项目采用分段分组、互相配合的形式,任务明确,使每个学生均有事可做,增强了学生的责任心,培养了学生的团队精神。

4.学生水平参差不齐,对软件开发的兴趣点和爱好面不同,如有的学生善于组织,有的学生对UI感兴趣,有的对前台交互编程感兴趣,有的则对后台开发有特长等。通过角色扮演,提高学生的兴趣。

5.能让学生体验到软件项目开发在企业中的流程和管理方法。

三、敏捷开发在项目教学中的应用与实践

(一)敏捷开发项目在教学中的实施要求

敏捷开发项目教学不同于传统项目教学,其需要有一定的实施条件,对教师、设备场地、课时等提出了较高的要求。

1.对教师的要求。要求教师有一定的项目经验,会编制较详细的《项目需求说明书》,课前教会每组的“项目经理”编制每个组员的《项目任务书》,并检查《项目任务书》的编制情况。这需要教师课前进行大量的准备工作。学生的 5 分钟站立会议及小结会议,要求教师有较强的课堂把控能力。

2.对设备及场地的要求。要求每个项目组有相对独立的空间,方便小组成员随时进行沟通与交流。

3.对课时的要求。软件开发是一项脑力劳动,需要长时间思考,所以在课时安排上,最好安排连续的 3-4 个课时。

4.对信息化的要求。需要有网站,以便能实时体现各项目组的项目推进情况;每个成员可以在线查阅自己的项目任务书,并可在线填写每次课的工作日志及各类评价。

(二)敏捷开发在项目教学中的实施

笔者曾在学校的经营性实训基地——柳州益智软件科技有限责任公司工作 6 年,担任公司软件部经理,负责软件开发业务,同时担任学校计算机专业软件方向学生的基础理论和实训课程的教学工作,对学生的软件开发实训是这样实施的:

1.课堂(生产)准备阶段

(1)教师准备。教师扮演软件开发部门经理角色,负责整个项目的洽谈及用户的沟通。在准备阶段,教师主要负责项目立项、《项目需求说明书》的制订、项目原型的制作,并根据项目需求和学生特点对学生进行分组,仿照中小型软件企业组织架构,让学生进行角色扮演,将学生分成 5 人/组,人员组织架构如下:

项目经理由教师指定,项目经理由组织能力较强的学生担任,能组织协调各成员间的关系,检查本组成员的工作进度,可以不参加编写代码。

(2)项目经理准备。项目经理配合教师制作项目原型,并根据项目特点进行成员的分工。成员分成 2 个小组,每个小组由2名成员组成。项目经理指定各小组成员其任务分工,必须明确每位成员的任务和职责。教师要了解每个组的分工情况,对分工不合适的要进行适当的调整。项目经理要根据成员分工情况编制每个成员的《项目任务书》,进一步明确每位成员每次课的工作任务。

(3)成员准备。成员要明确自己的工作任务,了解项目的技术特点,并根据自己的项目任务要求,进行对新知识的学习和对旧知识的巩固。

2.项目实施阶段

项目实施阶段是课程的中心。不要太在意学生实施结果的完整性,而是让学生体验项目实施的过程。每次上课开始时,不是让学生马上操作,而是让项目经理召集组员进行 5 分钟的站立会议,讨论任务内容和明确分工,确定核心工作任务。教师的作用是巡视、答疑、指导,如果有新的知识点,则要进行必要的讲解、演示及提供指导手册等,1 节课里教师的讲解不要超过 10分钟。在每次课结束前 10 分钟,项目经理要召集组员进行工作小结,每个组员都要小结本次课的任务完成情况、收获以及待改进的地方,并以工作日志的方式进行存档。项目经理汇报本组的完成情况,教师则小结本次课的知识点,并表扬做得好的小组。最后各项目组还要在网站上更新项目的推进情况。

3.项目验收阶段

整个大项目完成后,要进行检查验收,看是否符合《项目需求说明书》及用户的实际需求。此时每个组都要在全体同学面前,展示自己的项目作品(最好有 PPT 课件作为辅助)。

(三)敏捷开发在项目教学中的评价考核

敏捷开发在项目教学的评价考核,主要是针对学生进行考核,由平时评价与项目结束评价两部分组成。

1.平时评价。即每次课的工作小结。每位成员都要进行自我评价;每组的“项目经理”也要根据任务的完成度和完成质量对每位成员进行评价;教师则根据“项目经理”编制的《项目任务书》对成员进行评价。以上评价均分为优、良、中、差四等,评价结果记录在当天的工作日志中。最后计算优、良、中、差的次数则为平时成绩。笔者的计算方法为 1 次优、良、中、差分别得 1、0.8、0.6、0.4 分,缺勤得 0 分。最终,平时成绩=每次评价分值的和÷评价次数。

2.项目结束评价。项目验收阶段,项目组之间根据项目作品展示情况进行交叉互评,教师也要对各项目组进行评价。项目组的最后成绩为组间评价平均分和教师评价各占50%。最后,项目组的成绩综合学生的个人平时成绩,得出了学生的最终成绩。

这几年来的实践证明,学校毕业的软件方向学生能快速地适应企业的工作要求,获得了企业的认可和好评。部分学生升学后也能适应高校的学习,得到了高校教师的好评。在中职的软件开发项目教学中引入敏捷开发,可让学生在实习或工作前,了解软件企业进行软件开发的人员组织架構、工作的方式方法及如何进行高效的沟通、交流、协作。每次课的测试成果可以增强学生学习软件开发的成就感,提高学生的学习兴趣。由于敏捷开发贴近企业实际,能让学生顺利过渡到真实的软件生产流程,从而使学生的实习及就业更加顺畅。

【参考文献】

[1]肖小聪,曹步清.基于敏捷开发的数据库系统课程设计教学研究与实践[J].当代教育理论与实践,2016(8)

[2]尹 华,王志坚.基于Scrum敏捷开发的软件实训设计[J].计算机教育,2016(6)

[3]刘继承.在《面向对象程序设计》教学中引入敏捷软件开发思想[J].科技信息,2007(31)

【作者简介】谭江山(1977— ),男,广西上林人,柳州市第一职业技术学校计算机专业课教师,讲师,理学学士,研究方向:计算机软件开发、物联网技术。

(责编 罗汝君)

猜你喜欢

软件开发项目教学
信息安全环境下的计算机软件开发研究
以就业为导向,高职教育中《儿童常见病护理》课程教法的实践与研究
基于多元智能理论的高职项目教学分组学习探讨
基于项目教学的人才培养模式改革
核电厂定期试验管理软件开发
FPGA软件开发过程中编码规范的作用