生存周期模型

1. 生存周期概述

1.1 生存周期的基本特征

  1. 描述开发的主要阶段
  2. 定义每一个阶段要完成的主要过程和活动
  3. 规范每一个阶段的输入和输出

1.2 生存期的类型

软件开发模型总体上经历了从传统到敏捷的变迁,从最初的作坊式的单打独斗,到诸如CMM等过程改进式的过程控制,再敏捷模型。

  • 预测型
  • 迭代型
  • 增量型
  • 敏捷型

2. 传统的生存模型

2.1 瀑布模型

一个经典的模型,它是一个理想化的生存期模型,它要求项目所有的活动都严格按照顺序自上而下的执行,一个阶段的输出是下一个阶段的输入,如同瀑布流水,逐级下落。

1. 流程

需求分析 》 设计 》 实施 》 测试 》 维护

2. 优点

  1. 简单、易用、直观
  2. 开发进程比较严格、一个进程接着一个进程进行
  3. 模型执行过程中需要严密控制
  4. 允许基线和配置早期接受控制
  5. 为项目提供了按阶段的检查点,当前一个阶段完成后,需要关注后续阶段

3. 缺点

  1. 项目初期极其困难
  2. 线性开发,模型中没有反馈过程,只有到过程末期才能见到开发成果,增加开发风险
  3. 一个新的项目不适合瀑布模型,除非在项目的后期
  4. 用户直到项目结束后才能看到产品的质量,用户不是渐渐地熟悉系统
  5. 不允许变更或者限制变更
  6. 早期的错误可能要等到开发后期才能发现,进而带来严重后果

4. 适用范围

  1. 项目开始前,需求已经被很好的理解,也很明确
  2. 解决方案在项目开始前也很明确
  3. 短期项目可以采用

2.2 V模型

V模型是瀑布模型的一种变种,同样需要一步一步进行,前一阶段任务完成后才能进入下一阶段,V模说明了测试的重要性,它与开发是并行的。

1. 流程

项目规划 》 需求分析 》 概要设计 》 详细设计 》 编码与测试
验收测试 》 系统测试 》 集成测试 》 单元测试 》

2. 优点

  1. 简单易用
  2. 强调测试过程与开发过程的对应性和并行性
  3. 开发进程比较严格,执行过程需要严密控制
  4. 允许基线和配置早期接受控制
  5. 为项目提供了阶段划分的检查点,当前阶段完成后,只需要关注后续阶段

3. 缺点

  1. 软件开发初期阶段要求做出正确、全面、完整的需求分析
  2. 软件项目的实现方案需要明确
  3. 不能存在变更

4. 适用范围

  1. 项目的需求在项目开始前很明确
  2. 解决方案在开始前很明确
  3. 项目对系统的安全性能要求严格

2.3 迭代模型

通过连续的原型或概念验证来改进产品或成果,每一个新的原型都能带来相关方的新反馈和团队见解,实践中迭代模型直接等同于原型模型。

1. 流程

需求分析 》 原型开发 》原型评价 》 最终系统设计 》 最终系统的实现
原型评价之间反复循环直到确定最终设计后按流程一次完成

2. 优点

  1. 克服了瀑布模型的缺点,减少由于软件需求不明确带来的开发风险
  2. 用户根据快速构建的原型系统的优缺点,给开发提供反馈意见
  3. 根据反馈意见修改需求规格,以便系统可以更正确地反映用户的需求
  4. 可以减少项目的各种假设及风险

3. 缺点

  1. 需求定义之前,需要快速构建一个原型系统
  2. 所选用的开发技术和工具不一定符合主流的发展
  3. 快速建立起来的系统结构加上连续的修改可能会导致产品质量低下
  4. 使用这个模型的前提是要有一个展示性的产品原型,会限制开发人员的创新

4. 适用范围

  1. 项目的需求在项目开始前期不明确
  2. 需要减少项目的不确定性的时候

2.4 增量模型

增量模型的策略是不同时开发项目需求,而是将需求分段,使其成为一个增量的产品,每一个增量可以分别实施,每一个增量都包括分析、设计、实施、测试、交付等过程。

1. 流程

第一增量 需求分析、设计、实施、测试、交付
核心功能 1
第二增量 需求分析、设计、实施、测试、交付
核心功能 1 2
第三增量 需求分析、设计、实施、测试、交付
核心功能 1 2 3
。。。

2. 优点

  1. 软件开发可以较好的适应变化、客户能够不断地看到所在开发的软件,从而降低开发的风险
  2. 可以避免一次性投资太多带来的风险,首先实现主要的功能或风险大的功能吗,然后逐步完善,保证投入的有效性
  3. 可以更快地开发出可以操作的系统
  4. 可以减少开发过程中用户需求的变更

3. 缺点

  1. 各个构件是逐渐并入已有的软件体系结构中、因此加入的构件必须不能破坏以构造好的系统部分,这是需要具备开放式的体系结构
  2. 在开发过程中,需求变化是不可避免的。

4. 适用范围

  1. 进行已有产品升级或者新版本开发
  2. 完成期限要求严格的产品
  3. 对所开发的领域比较熟悉而且已有原型系统
  4. 对市场和用户把握不是很准,需要逐步了解项目

2.5 敏捷模型

客户满意将随着价值产品的早期交付和持续交付不断提升。此外,功能性、提供价值的增量可交付成果是衡量进展的主要尺度,为了适应更频繁的变更,更频繁地交付项目价值,结合迭代和增量方法。

1. 流程

需求 》 分析 》 设计 》 构建 》 测试 》限制 》 进行中的工作WIP
需求 》 分析 》 设计 》 构建 》 测试 》限制 》 进行中的工作WIP
需求 》 分析 》 设计 》 构建 》 测试 》限制 》 进行中的工作WIP
根据需求重复。。。
需求 》 分析 》 设计 》 构建 》 测试 》限制 》 进行中的工作WIP
需求 》 分析 》 设计 》 构建 》 测试 》限制 》 进行中的工作WIP
需求 》 分析 》 设计 》 构建 》 测试 》限制 》 进行中的工作WIP

完成每个特效的时间是不相同的

2. 敏捷宣言

  • 个体和交互胜过过程和工具
  • 可以工作的软件胜过面面俱到的文档
  • 客户合作胜过合同谈判
  • 响应变化胜过遵循计划
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李同学va

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值