您好!欢迎来到源码码网

敏捷教学在软件开发的应用

  • 行业资讯
  • 来源:源码码网
  • 编辑:admin
  • 时间:2020-04-14 15:03
  • 阅读:221

以人工智能、云计算、物联网、大数据、移动计算等为代表的新一代信息技术带动了全球新产业与新经济的迅猛发展,加剧了全世界从工业化社会向信息化社会转变的风暴。经济全球化与人才竞争国际化愈演愈烈,一个国家的强大需要归根结底需要人才实力做支撑,如何培养大批的新型创新型人才以及卓越工程技术人才,成为了现代教育体系面临的新挑战[1]。教育部于2017年推动了“新工科”发展战略,掀起了我国高等教育的新一轮改革热潮,人们积极热烈地探索人才培养的新模式和新途径。针对新形势下应用型人才培养目标,国内很多应用型本科院校积极引进国外先进教学理念,探索“项目教学”、“校企合作”、“以证促学”、“CDIO实训”等多种教学改革方式并取得一定的成效[2],但在实施过程中或多或少存在一定的问题。在信息工程领域软件开发课程体系中,实训教学是一个培养学生综合能力的关键实践环节,为了达到预期的教学目标,把软件工程领域中“敏捷开发”的方法与软件开发实训教学相结合,让学生了解软件企业真实流程,提升其职业综合素质,更好的与企业需求接轨。

1传统软件开发实训教学中的问题

软件开发属于团队行为,传统的软件开发实训教学一般以分组教学的形式展开,即将学生分成小组,一个小组的成员协作完成一个小型项目的开发,项目开发过程多以“瀑布模型”的模式展开,这种任务驱动的教学过程中存在的主要问题如下:(1)时间进度难以控制。传统实训教学中一般流程是教师布置任务、学生执行实训任务、教师验收检查,学生领取任务后,会按软件工程的周期要求制定计划并有序展开各阶段任务,但是由于学生经验不足,而实训的时间周期也有限,学生很难在一开始就把所有的需求和设计全部明确,执行过程中经常会发生需求、设计变动的情况,这种变动可能导致前期工作全部返工,轻则造成进度滞后,重则导致整个项目开发失败。(2)教学过程难以管理,师生互动不充分,无法及时有效形成教学反馈。传统的实训实施过程中,教师为了督促学生积极有效参与实训,通常会按预先制定的进度计划进行阶段性检查,但是往往由于进度计划不够细致具体,对学生起不到应有的策动效果,部分学生只是应对老师检查,对于实训中遇到的问题学生往往不能或不愿积极主动进行反馈,师生不能深入互动,实训效果也得不到保障。(3)团队成员之间沟通、协作不够深入。以小组的形势展开实训旨在模拟真实的软件开发过程,提高学生得团队协作和沟通能力。但在传统的实训教学中,由于项目开发的各个阶段线性实施,如编码完成之前测试无法进行,这就造成编码阶段负责测试的同学无法展开工作;另一方面,小组中能力强的学生往往包揽大部分或全部任务,能力弱的同学则成了打酱油者,小组成员之间无法有效协作和沟通。

2敏捷教学模式探讨

传统的软件实训教学以“需求分析、设计、编码、测试、维护”这样一个线性流程来安排展开,这与当前众多软件企业中普遍采用的轻量级软件敏捷开发方法严重脱节[3]。针对传统实训教学存在的问题,顺应业界潮流,培养满足企业实际需求的人才,将敏捷软件方法与软件实训教学相结合实施敏捷教学。

2.1敏捷教学的理念

敏捷教学的理念源于20世纪90年代软件工程领域中兴起的敏捷软件开发方法,其强调以用户需求为核心,以多轮迭代、循序渐进方式进行软件开发,可以大大提高软件开发效率。敏捷教学遵循进化性原则、灵活性原则、迭代性原则和协同性原则[1],它以学生发展为中心,强调理论、技术和实践教学的交叉并行与快速重构,通过多轮迭代的知识学习过程实现能力循序渐进的提升,是一种具有动态适应性的教学新型形态。具体到软件开发实训教学,敏捷教学将抛开传统软件开发的线性实施顺序,按照“编码-测试-发布”的形式进行迭代实施,将整个实训周期划分成若干个较短的迭代周期,每一次迭代都可以生成阶段性的可交付运行的软件版本,这将便于学生之间的沟通和协作,提高学生的参与度和积极性,教师也可以更及时地对开发过程进行干预和控制,形成良性教学反馈闭环。

2.2敏捷教学中的角色

软件开发属于团体行为,经典的敏捷开发方法论中包括三种角色:PO(ProductOwner即产品负责人),SM(ScrumMaster即团队负责人),TM(TeamMember即团队成员)。PO负责提炼产品需求,确定开发目标,把开发任务分解成若干个子任务并确定子任务优先级;SM负责整个开发团队的协作运行,带领团队按照敏捷开发的流程展开实施,确保目标达成;TM负责具体实施子任务的迭代开发和增量交付。在具体实训教学中只有教师和学生两类角色,所以要确定这两种角色与PO、SM、TM的对应关系。PO一般由教师充当,也可以由能力较强的、对产品需求有清晰认识的学生兼任;SM一开始由教师兼任,当学生团队在教师指导下形成自组织团队时,可由协调能力较强的学生负责,此时教师退出SM角色;TM当然由学生充当,负责项目的迭代开发和增量交付。

2.3敏捷教学在软件实训中的实施

敏捷开发最突出的特点就是以“编码-测试-发布”的形势进行多轮迭代、增量开发[4],强调尽早编码、尽快开发出软件原型。结合学生经验不足的实际情况,在迭代流程开始之前,可以让学生以头脑风暴的方式明确项目需求,具体步骤如下:(1)学生分组认领任务:首先将学生分组形成若干个开发团队,确定团队开发课题任务,小组人数一般以4-6人为宜,可根据任务的难度和规模适当增加人数。(2)生成软件产品规划:在PO指导下,把实训任务分解成若干个子任务,由PO、SM、TM协同讨论,确定ProductBacklog(产品需求列表)。ProductBacklog中的一行表示一个子任务,通常以UserStory的形势展现,一个UserStory包含三个主要要素(3W):角色(Who),即谁要使用该功能;活动(What),即需要完成什么功能;商业价值(Why),即为什么要这个功能。另外ProductBacklog中还要给出子任务的优先顺序、计划完成时间等。在预估子任务完成时间时,可以采用头脑风暴的形势,团队中的每一个成员都要估算任务完成时间并解释为什么,只有所有成员意见达成一致时才能确定预估时间。ProductBacklog列表形式如表1所示,其中优先级的设置主要考虑子任务与核心功能、重要功能的相关度。因为实训课程周期比较短,通常为四周时间,为了更加高效地进行迭代开发时,通常对ProductBacklog中的子任务进行进一步分解,得到SprintBacklog列表,并以人课为单位估算出每个SprintBacklog所需时间,如表2所示。(4)实施迭代开发团队成员根据SprintBacklog列表循环实施“编码-测试-发布”的过程。考虑到学生学习能力和实践能力不均衡,编码阶段可以采用结对编程的方式进行,这样当一个成员在编码时出现语法或逻辑错误时,与之结对的成员可以及时发现并改正,这样有利于团队成员之间的交流和互相促进。在编码的同时,测试人员可以根据功能描述设计测试用例,编码完成后即可进行测试,以及时发现缺陷反馈问题,以促进修改完善代码,这样编码与测试交叉进行,可以提高开发的效率和质量。为了更直观的展示迭代开发进度,便于对迭代开发过程透明化管理和团队协作,可以制作迭代任务看板。具体作法是在一块白板上绘制一个表格,该表格包括UserStory、ToDo、Doing、Done四列,分别表示用户故事(迭代目标)、待实施的子任务、正在实施的子任务和已经完成的子任务,每一个迭代完成后及时更新任务看板,便于教师掌握实训进展情况。

3总结

本文首先分析了国内应用型高等院校教学改革的现状和传统软件实训教学中存在的主要问题,针对问题把目前企业中普遍采用的敏捷开发方法与软件开发实训教学相结合,介绍了敏捷教学的理念,阐述了敏捷教学在软件开发实训课程中具体的实施流程和措施。实际教学实践证明,这种新的实训教学模式可以有效解决传统实训教学中存在的问题,对提高学生积极性和参与度、促成师生深度互动、提高实训效率有明显效果。


特别声明:
1、如无特殊说明,内容均为本站原创发布,转载请注明出处;
2、部分转载文章已注明出处,转载目的为学习和交流,如有侵犯,请联系客服删除;
3、编辑非《源码码网》的文章均由用户编辑发布,不代表本站立场,如涉及侵犯,请联系删除;
全部评论(0)
推荐阅读
  • bootstrap ui框架能用在uniapp中吗?
  • bootstrap ui框架能用在uniapp中吗?
  • BootstrapUI框架通常是前端开发中的一种工具,它提供了一套预定义的CSS样式和组件,用于快速构建响应式布局的网页。然而,UniApp是一个使用Vue.js开发跨平台应用的框架,它可以用来开发iOS、Android、以及各种小程序和H5应用。
  • 互动社区
  • 来源:源码码网
  • 编辑:热度建站
  • 时间:2024-04-12 00:04
  • 阅读:268
  • css实现banner图由中心点动态放大效果
  • css实现banner图由中心点动态放大效果
  • 在日常的网页设计中,为了让网页增加一定的特效以达到交互的目的,我们尝尝会在网页中使用一些动画效果。今天来说说实现banner图由中心点动态放大效果,实现这个效果需要用到css中的动画:animation​和关键帧:@keyframes,具体示例如下:
  • 源码教程
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2024-04-11 18:52
  • 阅读:278
  • countUp.js实现鼠标滑动到某个位置数字自动滚动增加的效果
  • countUp.js实现鼠标滑动到某个位置数字自动滚动增加的效果
  • 在网页开发中为了提升网页的交互效果,经常会用到使用js给网页增加一定的特效,下边就来说说使用js实现鼠标滑动到某个位置数字自动滚动增加的效果。其实这种效果有很多中解决办法,自己也可以去写,下边我们借助countUp.js来实现,关于这个js文件,我放在末尾:
  • 源码教程
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2024-04-08 09:20
  • 阅读:366
  • 响应式网页设计思路及注意事项
  • 响应式网页设计思路及注意事项
  • 一、什么是响应式网页响应式网页设计就是让网页具有根据设备类型应用CSS样式的能力。设计:设想、计划。设计就是把想法实现。网页设计:按照一定的设计思路布局网页内容。传统网页设计:都是针对PC端浏览器而设计的,不具备查询设备的能力,更不能对多种访问设备做出响应。传统网页设计的弊端:在移动互联网时代,传统的网页设计不适合多屏幕时代。响应式网页设计应运而生。响应式网页设计是一种设计网页的思想/方法。响应:指让我们的网页能够自动查询用户的访问设备
  • 源码教程
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2024-04-02 11:24
  • 阅读:260
  • css中rel的属性值都有哪些,分别代表什么意思
  • css中rel的属性值都有哪些,分别代表什么意思
  • 在HTML中,元素的rel属性用于定义当前文档与被链接文档之间的关系。这个属性在CSS的上下文中经常与样式表关联,但rel属性的用途远不止于此。以下是一些常见的rel属性值及其意义:1、stylesheet:表示被链接的文档是一个样式表。这通常用于链接CSS文件。
  • 源码教程
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2024-03-28 12:28
  • 阅读:388
联系客服
源码代售 源码咨询 素材咨询 联系客服
029-84538663
手机版

扫一扫进手机版
返回顶部