软件开发模型总结归纳(瀑布模型、螺旋模型、迭代模型、增量模型、敏捷模型)

软件开发模型总结归纳(瀑布模型、螺旋模型、迭代模型、增量模型、敏捷模型)文章目录 0 软件的生命周期 1 瀑布模型 2 螺旋模型 3 迭代模型 4 增量模型 5 敏捷模型 0 软件的生命周期 软件的生命周期是指从软件产品的设想开始到软件不在使用而结束的时间 软件的生命周期分为 6 个阶段 即需求分析 计划 设计 编码 测试 运行维护 1 瀑布模型 瀑布模型是最早出现的软件开发模型 是所有其他软件开发模型的基础框架 与软件的生命周期不同的是 它缺少了软

0. 软件的生命周期

  软件的生命周期是指从软件产品的设想开始到软件不在使用而结束的时间。
  软件的生命周期分为6个阶段,即需求分析、计划、设计、编码、测试、运行维护

1. 瀑布模型

在这里插入图片描述
  瀑布模型是最早出现的软件开发模型,是所有其他软件开发模型的基础框架。与软件的生命周期不同的是,它缺少了软件运行维护阶段。
描述: 每个阶段都只执行一次,因此是线性顺序的软件开发模型。
  正是由于每个阶段只执行一次,所以前面的需求分析和设计尤为重要。
优点:



  1. 为项目提供了按阶段划分的检查点,强调开发的阶段性。
  2. 强调早期的计划及需求调查。
  3. 强调产品测试。

缺点:

  1. 在各个阶段之间极少有反馈。
  2. 只有在项目周期的后期才能看到结果,所以风险往往至后期的测试阶段才显露,因此失去了及早的纠正过程。
  3. 单一流程,开发中的经验教训不能反馈应用于本产品的过程。

适用项目: 需求比较明确且变更很少的项目。

2. 螺旋模型

  1. 强调严格的风险分析,但要求许多客户接受和相信这种分析,并做出相关反应是不容易的,因此,这种模型往往适用于规模庞大,风险大的项目
  2. 强调各个开发阶段的质量
  3. 这种的开发模式会提供机会探讨项目是否有价值继续下去。

缺点:

  1. 由于引入了非常严格的风险识别、风险分析和风险控制,将会大大消耗人力、资源,如果严重的影响了项目的利润,风险分析将毫无意义。
  2. 软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险。
  3. 软件建设周期长,但软件技术发展比较快,所以可能会和当前的技术水平有较大的的差距,无法满足当前用户需求。

适用项目: 对新近开发,需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更。

3. 迭代模型

在这里插入图片描述
  开发迭代是一次完整地经过所有工作流程的过程:(至少包括)需求工作流程、分析设计工作流程、实施工作流程和测试工作流程。实质上,迭代模型是类似小型的瀑布式项目。
每一个迭代都会产生一个可以发布的产品,这个产品是最终产品的一个子集。
描述:
4. 一次迭代过程包括了所有软件开发流程。
5. 每一次迭代均产生一个可发布的产品。
6. 该产品为最终产品的一个子集。
适用项目: 适合于事先不能完整定义产品的所有需求,计划多期开发的项目。






4. 增量模型

在这里插入图片描述
描述:

  1. 采用随时间进展而交错的线性序列。
  2. 每个序列产生一个可发布的增量。
  3. 每一个增量产生一个可操作的产品。
  4. 第一个增量是核心产品。

优点: 开始时不用投入大量人力资源,可以事先推出核心产品以稳定用户,可以有计划的管理技术风险。
缺点: 需要开放式体系结构,可能会产生设计效果差、开发效率低的情况。
适合项目: 需求经常发生改变的软件开发过程。

增量和迭代模型的区别:
  增量是逐块建造的概念,例如:画一幅人物画,我们可以先画人的头部,再画身体,再画手脚……。
  迭代是反复求精的概念,例如:同样是画人物画,我们可以先画整体轮廓,在勾勒出基本雏形,再细化、着色……。

5. 敏捷模型

描述: 敏捷模型是一种轻量、高效、低风险、更强调团队协作和沟通的开发方式,适合于中小型开发团队,客户需求模糊或多变。
特点:

  • 强调人与人之间的沟通。
  • 轻文档(弱化文档,但不是不需要文档)
  • 客户需要全程参与
  • 需求可以的变化
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232911.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号