软件开发模式

思维导图:

软件开发模式

1.瀑布模型 2.迭代开发 3.螺旋模型 4.敏捷开发

瀑布模型

瀑布模型是最典型的预见性的方法,严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等。 瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂。瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。
优点:

  • 调研开发的阶段性
  • 强调早期计划及需求调查
  • 确定了何时产生可交付的产品及何时进行评审和审查
  • 强调产品测试

缺点:

  • 依赖早期进行的需求调查,不能适应需求变化
  • 流程单一,开发中的经验得不到反馈和应用于本产品的开
    发中
  • 没有反映出开发的迭代本质
  • 不包含风险评估
  • 风险往往在后期才显露,失去及早纠正机会

迭代开发

迭代模式每次只设计和实现这个产品的一部分, 逐步逐步完成的方法叫迭代开发, 每次设计和实现一个阶段叫做一个迭代. 在迭代式开发方法中,整个开发工作被组织为一系列的短小的、固定长度(如3周)的小项目,被称为一系列的迭代。每一次迭代都包括了需求分析、设计、实现与测试。采用这种方法,开发工作可以在需求被完整地确定之前启动,并在一次迭代中完成系统的一部分功能或业务逻辑的开发工作。再通过客户的反馈来细化需求,并开始新一轮的迭代。
迭代式开发的优点:
  1、降低风险
  2、得到早期用户反馈
  3、持续的测试和集成
  4、使用变更
  5、提高复用性

螺旋开发

螺旋开发:1988年,巴利·玻姆(Barry Boehm)正式发表了软件系统开发的“螺旋模型”,它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。
“螺旋模型”刚开始规模很小,当项目被定义得更好、更稳定时,逐渐展开。
“螺旋模型”的核心就在于您不需要在刚开始的时候就把所有事情都定义的清清楚楚。您轻松上阵,定义最重要的功能,实现它,然后听取客户的意见,之后再进入到下一个阶段。如此不断轮回重复,直到得到您满意的最终产品。
螺旋模型很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。
5个步骤:

  1. 确定目标,选择方案和限制条件。
  2. 对方案风险进行评估,并能解决风险。
  3. 进行本阶段的开发和测试。
  4. 计划下一阶段。
  5. 确定进入下阶段的方法。

优点: 严格的全过程风险管理;强调各开发阶段的质量;提供机会评估项目是否有价值继续下去。
缺点: 可能难以使用户(尤其在有合同约束的情况下)相信演化方法是可控的;项目的成功依赖于风险评估专门技术,如果一个大的风险未被发现和管理,就会出现问题。

敏捷开发

敏捷方法论采用迭代/增量开发的过程模型。是一种以人为核心、迭代、循序渐进的开发方法。组织上,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。时间上,相对于传统的瀑布式开发,迭代开发把软件生命周期分成很多个小周期(一般不大于2个月,建议2周),每一次迭代都可以生成一个可运行、可验证的版本,并确保软件不断的增加新的价值。
敏捷开发由几种轻量级的软件开发方法组成。它们包括:极限编程(XP),Scrum,精益开发(LeanDevelopment)等等
步骤: 编写用户案例,架构规范,实施规划,迭代计划,代
码开发,单元测试,验收测试等等

  • 个体和交互 重于过程和工具。
  • 可以工作的软件 重于求全而完备的文档。
  • 客户协作重于合同谈判。
  • 随时应对变化重于循规蹈矩。

四者对比区别:

传统的瀑布式开发,也就是从需求到设计,从设计到编码,从编码到测试,从测试到提交大概这样的流程,要求每一个开发阶段都要做到最好。
特别是前期阶段,设计的越完美,提交后的成本损失就越少。

迭代式开发,不要求每一个阶段的任务做的都是最完美的,而是明明知道还有很多不足的地方,却偏偏不去完善它,而是把主要功能先搭建起来为目的,以最短的时间,最少的损失先完成一个“不完美的成果物”直至提交。然后再通过客户或用户的反馈信息,在这个“不完美的成果物”上逐步进行完善。

螺旋开发,很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。

敏捷开发,相比迭代式开发两者都强调在较短的开发周期提交软件,但是,敏捷开发的周期可能更短,并且更加强调队伍中的高度协作。
敏捷方法有时候被误认为是无计划性和纪律性的方法,实际上更确切的说法是敏捷方法强调适应性而非预见性。
适应性的方法集中在快速适应现实的变化。当项目的需求起了变化,团队应该迅速适应。这个团队可能很难确切描述未来将会如何变化.

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页