首页 > 其他分享 >【补充】软件开发模式对比(瀑布、迭代、螺旋、敏捷)

【补充】软件开发模式对比(瀑布、迭代、螺旋、敏捷)

时间:2023-08-19 17:13:30浏览次数:42  
标签:需求 迭代 软件开发 模式 开发 阶段 敏捷 周期

【补充】软件开发模式对比(瀑布、迭代、螺旋、敏捷)

【1】瀑布模式(Waterfall Model):

介绍:

  • 瀑布模式是一种线性的开发模式,各个阶段按顺序依次执行,每个阶段严格依赖前一阶段的输出。
  • 开发过程划分为需求分析、系统设计、编码、测试和运维等阶段。
  • 每个阶段的结果都在下一个阶段开始之前独立完成。

优点:

  • 明确定义和规划,适用于需求稳定的项目,能够对进度和成本进行较好的控制。
  • 阶段清晰:从计划到开发最后到上线运行,三个阶段非常清晰。
  • 时间顺序:每个阶段顺序必须是从上到下,严格按照时间先后进行。
  • 环环相扣:在每一个阶段都必须有产出物然后才能进入到下一个阶段进行。
  • 黑盒模式:每个阶段都有各自的角色和分工,各自只关心自己的任务。比如需求阶段开发人员无需关注。

缺点:

  • 缺乏灵活性,无法应对需求变化,不利于及时反馈和快速迭代。
  • 需求隔离:由于各阶段的人员只能接触到自己工作范围内的东西,所以对客户需求的理解程度高低不等,开发人员更像是定义为流水线上的工人。
  • 变更代价大:既然叫做瀑布,就意味着不应该走回头路。否则如果出现返工,付出的代价会很大。需求变更,编码人员会很强的抵触情绪。
  • 束缚创造性:由于强调文档管理,所以管理人员会比较喜欢,但是他束缚了开发人员的创造性。
  • 周期漫长:整个开发持续的生命周期很长,需求和设计的时间会耗费特别多,有时候会占用三分之一甚至更多时间,这样整个周期就会变长,大都在半年到一年左右的时间,所以更适合需求相对稳定的大项目。

【2】迭代模式(Iterative Model):

介绍:

  • 迭代模式是通过将开发过程划分为多个迭代周期来实现软件开发。
  • 每个迭代周期包含需求收集、设计、开发、测试等阶段,并产生可交付的软件部分。
  • 每个迭代周期之后会对之前的结果进行回顾和反馈,可以在后续迭代中进行修改和改进。

优点:

  • 能够通过快速迭代获取实际用户反馈,及时适应需求变化,减少风险。

缺点:

  • 每个迭代周期的时间和成本较难预测,对项目管理要求较高。

【3】螺旋模式(Spiral Model):

介绍:

  • 螺旋模式是一种迭代的风险驱动开发模式,结合瀑布模式和迭代模式的特点。
  • 按照轮回的方式执行需求分析、风险评估、开发和评审等阶段,具有反复循环的特征。
  • 每个螺旋周期都会生成一个原型,用于验证需求、风险和技术解决方案。

优点:

  • 风险驱动,能够在早期发现和解决问题,提高项目成功率。

缺点:

  • 需要更多的资源和时间,对项目管理要求较高。

【4】敏捷模式(Agile Model):

介绍

  • 敏捷模式是一种基于迭代和自组织的软件开发方法,强调团队合作、快速交付和持续改进。
  • 开发过程划分为多个迭代周期(通常为2-4周)。
  • 每个迭代周期通过需求收集、设计、开发、测试和评审等环节,交付适用的软件部分。

特点:

  • 「个体与交互」胜过「过程与工具」
  • 「可以工作的软件」胜过「面面具到的文挡」
  • 「客户协作」胜过「合同谈判」
  • 「响应变化」胜过「遵循计划」

优点:

  • 能够快速响应需求变化,实时反馈,保障客户满意度(更高的客户满意度)
  • 提高团队合作和沟通效率(更高的团队满意度)
  • 更快交付价值
  • 更低的风险
  • 拥抱变化
  • 更好的质量
  • 持续改进

缺点:

  • 项目进展较快,对团队成员的技术能力和协作能力要求较高
  • 很难进行准确的资源规划
  • 很难准确的定义“轻量的“或必要的文档
  • 很难把握整体产品的一致性
  • 很难预测有限的终点
  • 很难有效地进行度量

(1)迭代式开发生命周期

  • 该生命周期方法将软件开发过程划分为若干个迭代周期,每个迭代周期通常是一个固定的时间段(如2周至4周)。
  • 每个迭代周期内,团队通过一系列活动来完成需求分析、设计、开发、测试和发布等任务。
  • 每个迭代周期都会产生一个可用且具备部分功能的产品版本,也称为迭代增量。
  • 通过不断地迭代,系统逐步完善,同时团队可以更好地适应变化和用户反馈
  • 迭代就是不断丰富细节的过程。
  • 每一次的迭代,我们都应该让这个项目更加的清晰明了,细节也一步步地完善。

(2)增量式开发生命周期

  • 该生命周期方法强调快速迭代和交付具备部分功能的产品版本。
  • 与迭代式开发不同的是,增量式开发的每个阶段都会产生一个部分功能的增量,并且这些增量会被累积,最终形成完整的产品。
  • 在增量式开发中,每个阶段的目标是实现特定的、独立的功能,而不是按照模块或组件进行划分。
  • 这种方法可以提高团队对开发进度和需求变化的可见性,并且能够更早地将软件功能交付给用户
  • 迭代的时候,有轮廓,不断完善细节。
  • 增量,没有整体轮廓,上来就是细节完整的一个部分,不断地一部分一部分地完成,最终形成一个完整的产品

(3)混合式开发生命周期

  • 混合式开发生命周期是结合了迭代式和增量式开发的特点,灵活选择并结合两种方法中的最佳实践。
  • 在混合式开发生命周期中,根据项目的特点和需求,灵活地选择使用迭代式或增量式开发,或者采用两者的结合方式。
  • 这样可以使团队更好地应对变化、降低风险,并根据项目的具体情况灵活调整开发的策略和计划

【对比】

标签:需求,迭代,软件开发,模式,开发,阶段,敏捷,周期
From: https://www.cnblogs.com/dream-ze/p/17642696.html

相关文章

  • 浅谈敏捷开发的测试策略
    【摘要】随着敏捷和DevOps的出现,改变了传统的软件开发模式,与此同时测试也面临着不小的挑战,在敏捷开发模式下,短周期迭代交付模式意味着时间变短,拥抱变化意味着变更频繁,用户故事描述需求的方式意味着文档变少,全功能团队中意味着专门的测试人员变少。基于这样的情况,如何让测试也变得......
  • 敏捷项目管理实践管理方法
    ​Leangoo领歌是一款永久免费的专业敏捷研发管理工具,提供敏捷研发解决方案,解决研发痛点,打造成功产品。帮助团队实现需求、迭代、缺陷、任务、测试、发布等全方位研发管理。敏捷产品路线图管理:产品路线图是一个高层次的战略计划,它描述了产品在未来一段时间可能会如何发展和壮大......
  • 为什么要敏捷开发,敏捷开发有什么好处?
        软件开发方法一直处在不断发展过程中。在诸多方法中,敏捷开发以其能持续满足不断变化的用户需求正在受到越来越多人的重视,从中小项目开始进入大型开发项目,近几年来上升势头明显。那么,敏捷开发有什么好处呢?    在软件工业界,敏捷开发已成为众多高效开发团队的制胜之......
  • 10.1 C++ STL 模板适配与迭代器
    STL(StandardTemplateLibrary)标准模板库提供了模板适配器和迭代器等重要概念,为开发者提供了高效、灵活和方便的编程工具。模板适配器是指一组模板类或函数,它们提供一种适配机制,使得现有的模板能够适应新的需求。而迭代器则是STL中的令一种重要的概念,它是一个抽象化的数据访问机制,......
  • 如何使用Leangoo领歌敏捷看板工具做—用户反馈流程管理
    一个产品在面向市场之后势必会收到来自各个渠道的用户反馈。好的反馈有利于公司品牌的建立,挑剔和负面反馈可以帮助我们了解到用户最真是的需求和使用场景,有利于优化产品提高服务。更加能够提升用户的粘性。在进行用户反馈管理时,用户反馈处理流程可以自行定义,通常......
  • 低代码软件开发框架:用专业技术开启流程化管理办公!
    在新的发展时代,拥有优质的资源和平台,可以助力企业创造佳绩,实现梦想。低代码软件开发框架是提升办公协作效率,提质增效的软件平台,在很多大中型企业中深受欢迎,可以帮助企业实现流程化管理,进入数字化发展新时代。诚然,选择好的服务商是走向成功的关键一步。因为这是能给企业降低风险、......
  • 实施敏捷常用的工具有哪些?免费/收费
    ​免费版敏捷工具推荐:Leangoo领歌Leangoo领歌是ScrumCN(scrum.cn)旗下的一款永久免费的专业敏捷开发管理工具,提供端到端敏捷研发管理解决方案,涵盖敏捷需求管理、任务协同、进展跟踪、缺陷管理、统计度量等。包括小型团队敏捷开发,规模化敏捷SAFe,ScrumofScrums大规模敏捷。Leango......
  • 免费-几款面向敏捷研发团队的敏捷项目管理工具
    在当今快节奏的商业环境中,许多企业纷纷开始转型Scrum敏捷开发。然而,要实现敏捷开发并确保项目的成功,不但要系统的学习敏捷,而且也需要好的敏捷工具来提高效率和促进团队协作。本文将介绍一些常用的敏捷项目开发工具,帮助您更好地管理和推动项目的进展。Leangoo领歌Leangoo领歌是Scrum......
  • 哪些无用敏捷指标正在破坏敏捷转型?
    理想情况下,敏捷指标能够帮助Scrum团队及时分析原因并制定有效的对策。但如果选择了错误的指标,那这些指标会将团队引向错误的方向,甚至会让团队产生仍在前进方向的错觉。本文从无用敏捷指标的详细信息、起源和如何克服三个方面来帮助团队避免无用指标对团队的错误影响。一、无用的......
  • 什么是业务敏捷,如何实现业务敏捷?
    点击链接了解详情作者介绍前言随着越来越多行业的企业开始关注敏捷,业务敏捷(BusinessAgility)成为一个新的热点。毕竟大部分的行业和组织与软件无关,但是依然要实现业务上的敏捷,所以这个系列会主要谈两点:第一个是:“什么(What)是业务敏捷?”第二个是:“如何(How)从业务架构角度......