基于Scrum敏捷开发软件实训设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Scrum敏捷开发软件实训设计

基于Scrum敏捷开发软件实训设计   摘要:针对采用传统过程控制的软件实训类课程中开发文档与编码脱节,学生无法深入理解和应用分析与设计理念等问题,介绍敏捷开发过程的基本思想以及Scrum敏捷开发过程引入软件实训教学中的现状,阐述新的基于Scrum敏捷开发过程的软件实训教学方案以及一套完整的软件实训案例,并总结分析该教学设计方案的有效性。   关键词:软件实训;Agile;Scrum敏捷开发;教学设计   引言   互联网时代急需大量软件人才,如何实现高校与产业界的衔接是软件人才培养的一个核心问题。软件实训作为理论联系实际的桥梁,具有举足轻重的作用。目前,国内大部分高校软件实训课程以项目为载体,以编码结果为导向,让学生通过完成项目锻炼动手能力。信息技术发展飞速,当下完成一个程序或是软件(也就是说编写代码)对于多数大学生而言并不困难,真正的难点在于如何开发一个具有可扩展性、可维护性的优质软件,这也是目前以及未来软件实训课程转换思路的方向。   从产业界看,优质软件的前提是过程控制,这也意味着高校软件实训课程的导向应侧重于课程过程控制。笔者在十几年软件实训课程的教学中发现,传统教学中采用的过程是瀑布模型,因为此模型采用分阶段的方式,适合学生逐步完成项目,但这仅是理想状态,瀑布模型在教学中同样也面临产业界相同的问题。学生在经历了需求和设计等文档撰写阶段后,往往难以将其与编码匹配,到实际编码阶段又已临近课程结束,只能草草完成。   2015年笔者在美国佩斯大学访问期间,旁听了佩斯大学计算机系主任Christelle Scharff教授的软件工程课程,她在课程中引入Agile开发过程,以Serum敏捷开发过程结合先进开发应用工具,使得学生将开发、管理和工具应用在一个实际项目中联结起来。Christelle教授采用Serum敏捷开发过程进行教学已经多年,成功实现了美国学生与柬埔寨、印度等地学生的同步开发和教学。受此启发,笔者回国后将Serum敏捷开发过程应用于软件实训课程中,从实践中体会到基于敏捷开发过程的软件实训的有效性,也发现了其存在的问题。   1敏捷软件开发   软件过程模型是软件开发过程控制的向导。传统过程模型注重建立软件过程中的软件产品,尤其是软件文档,采用此类过程模型的软件工程方法被称为“重型软件工程”。“重型软件工程”通过建立完善的文档系统,实现细致的过程建模及检测,以备维护与修改。另一类以人为核心的软件开发思想“敏捷开发”,被称为“轻型软件工程”。敏捷开发强调开发人员的沟通、可持续交付可工作的软件,以及对软件需求和开发问题的快速灵活响应。2001年,以Kent Beck等为代表的敏捷开发拥护者共同签署了“敏捷软件开发宣言”。据VersionOne公司2013年的调查显示,在全球收集的3501份调查报告中有88%的公司采用敏捷开发方法,Google、华为等大型软件公司也采用了敏捷开发。   1.1敏捷开发基本原则   敏捷宣言的价值陈述中,从过程和工具、文档、合同谈判以及遵循计划4个基本原则,体现出一种现实的开发价值观。软件开发的终极产品是软件,软件产品的度量者是客户,实现产品的是开发者,围绕这3部分是开发的重点。所以,敏捷开发强调开发者的自主协作,强调可运行软件的快速迭代,强调对于软件需求的适应性。这要求敏捷开发团队成员的平衡性,也即只有具有自主开发意识、编程能力对等的成员才能够较好地践行敏捷开发过程。虽然敏捷开发适用于需求变化的场景,但对于大型项目而言,敏捷开发的实现还需要更为具体、完善和有针对性的过程。根据不同的应用场景有不同的敏捷过程,如极限编程、Serum敏捷开发等。软件开发中应根据项目的具体情况选择适当的开发过程。   1.2Scrum敏捷开发过程   在众多敏捷开发方法中,成长最快的方法之一就是Serum敏捷开发过程。Ken Schwaber和Jeff Sutherland于1993年正式确立Serum,这一过程已经被Yahoo、微软、谷歌、摩托罗拉、思科等公司使用。许多使用Serum的团队表示,Serum极大地提升了团队的产能和士气,是一种有效的团队工程控制方法。   1.2.1Scrum基本要素   Serum是一个迭代增量框架,采用周期方式完成产品开发,Serum将这些周期性的工作称为Sprint,整个Serum框架都围绕Sprint进行。Sprint的持续时间通常是1~4周,且一个紧接一个,一旦确定Sprint的完成周期,不论工作是否完成,结束时间都是特定的,永远不会延迟。Sprint开始之初,项目团队从需求的优先列表中选择需要完成的条项(item),并在Sprint结束前完成这些需求;Sprint期间,所需要交付的结果不会改变,每个工作日,团队成员简要汇报彼此的进度,并

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档