软件工程-软件开发模型(瀑布/V/喷泉/原型/演化/螺旋/统一过程/敏捷)

软件工程-软件开发模型(瀑布/V/喷泉/原型/演化/螺旋/统一过程/敏捷开发)

目录

  • 软件工程-软件开发模型(瀑布/V/喷泉/原型/演化/螺旋/统一过程/敏捷开发)
    • 瀑布模型
      • 特性
      • 优点
      • 缺点
      • 适用
    • 瀑布V模型
      • 特性
      • 优点
      • 缺点
    • 喷泉模型
      • 特性
      • 优点
      • 缺点
    • 演化模型-原型模型
      • 适用
      • 分类
    • 螺旋模型
      • 特性
      • 适用
      • 优点
      • 缺点
    • 统一过程模型(RUP-Rational Unified Process )
      • 核心
      • 起始阶段
      • 精化/细化阶段
      • 构建阶段
      • 移交阶段
    • 敏捷开发
      • 敏捷开发基本原则
      • 极限编程(XP)
          • 四大价值观
          • 五大原则
      • 特性
          • 12大最佳实现
      • 水晶法
      • 并列征求法(SCRUM)
      • 自适应软件开发(ASD)
          • 6个基本原则:
      • 敏捷统一过程(AUP)
      • 并列征求法(SCRUM)
      • 自适应软件开发(ASD)
          • 6个基本原则:
      • 敏捷统一过程(AUP)

瀑布模型

特性

  • 注重测试,开发与测试同时进行
  • 单元测试针对编码,以详细设计为依据
  • 集成测试针对详细设计,以概要设计为依据
  • 系统测试针对概要设计,以需求建模为依据
  • 验收测试针对需求设计

优点

  • 易理解,管理成本低
  • 短周期,高效率

缺点

  • 产品后期才可见

  • 大量测试在后期

  • 产品逆转代价巨大

喷泉模型

在获取一组基本需求后,快速分析构造出该软件的一个初始可运行版本,称原型,然后根据用户意见持续改进,重复直至用户满意

适用

  • 适合于用户需求不清又经常变化的情况
  • 系统规模不大也不复杂

分类

  1. 探索型原型:弄清特性。谈论多种方案可行性
  2. 实验型原型:不断验证方案或算法可行性
  3. 演化型原型:以原型为基础持续改进

螺旋模型

软件工程-软件开发模型(瀑布/V/喷泉/原型/演化/螺旋/统一过程/敏捷)

特性

  • 结合瀑布模型与演化模型,重视风险评估

适用

  • 大型软件

优点

  • 需求可动态变

缺点

  • 迭代次数过多,增加开发成本

统一过程模型(RUP-Rational Unified Process )

核心

用例和风险驱动、以架构为中心、迭代和增量,由UML统一建模语言驱动

起始阶段

  • 产出构想文档(Vision Document)、初始用例模型项目术语表用例项目计划
  • 确定项目范围和边界
  • 展示系统的候选架构
  • 估计项目费用和时间
  • 评估项目风险

精化/细化阶段

  • 产出用例模型
  • 产出补充需求
  • 产出分析模型
  • 产出软件体系结构表述
  • 产出可执行性的软件体系
  • 产出初步的设计模型
  • 产出修订的风险列表
  • 项目计划(迭代计划、调整的工作流、里程碑和技术工作产品)
  • 产出初始用户手册

构建阶段

  • 产出设计模型
  • 产出软件构件
  • 产出集成的软件增量
  • 产出测试计划及步骤
  • 产出测试用例
  • 产出支持文档(用户手册安装手册、对于并发增量的描述

移交阶段

  • 产出软件增量
  • 产出验收(β)测试 告
  • 产出综合用户反馈

敏捷开发

敏捷开发是现代大型互联 公司的主流开发方法,其总体目标是”尽可能早地、持续对有价值的软件的交付

敏捷开发基本原则

  • 会议短平快
  • 小型版本发布
  • 少文档
  • 合作
  • 客户直接参与
  • 自动化测试
  • 适应性计划调整
  • 结对编程
  • 测试驱动开发
  • 持续集成
  • 重构

极限编程(XP)

四大价值观
  1. 沟通
  2. 简单
  3. 反馈
  4. 勇气
五大原则
  1. 快速反馈
  2. 简单性假设
  3. 逐步修改
  4. 提倡更改
  5. 优质工作

特性

成本控制严格

12大最佳实现
  1. 计划游戏:快定计划、随细节不断变化而完善
  2. 小型发布(系统的设计尽早交付)
  3. 隐喻:找到合适的比喻传达信息
  4. 简单设计:只设计当前的需求
  5. 测试先行
  6. 重构:重新审视需求和设计,重新明确地表述他们以符合新需求
  7. 结对编程
  8. 集体代码所有制
  9. 继续集成(按日或小时给用户可运行的版本)
  10. 每周工作40小时(5*8)
  11. 现场客户
  12. 编码标准

水晶法

水晶法认为不同的项目采用不同的策略、约定和方法论,认为人对软件质量有重要的影响,随着项目质量和人员素质的提高,项目和过程的质量也随之提高

并列征求法(SCRUM)

目标30天一次迭代,并按需求的优先级实现产品,多小组并行地递增实现产品,协调通过简短的日常情况会议进行,如橄榄球的”并列争球“

自适应软件开发(ASD)

6个基本原则:
  1. 有一个使命作为指导
  2. 特征被视为客户价值的关键点
  3. 等待是重要的,“重做和做一样关键”
  4. 变化不被视为改正而是调整
  5. 确定的交付时间
  6. 风险含其中

敏捷统一过程(AUP)

也随之提高

并列征求法(SCRUM)

目标30天一次迭代,并按需求的优先级实现产品,多小组并行地递增实现产品,协调通过简短的日常情况会议进行,如橄榄球的”并列争球“

自适应软件开发(ASD)

6个基本原则:
  1. 有一个使命作为指导
  2. 特征被视为客户价值的关键点
  3. 等待是重要的,“重做和做一样关键”
  4. 变化不被视为改正而是调整
  5. 确定的交付时间
  6. 风险含其中

敏捷统一过程(AUP)

采用在“大型上连续,小型上迭代”的原理来构建软件系统;采用经典的UP阶段性活动(初始、精化、构建和转换)

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年10月5日
下一篇 2019年10月5日

相关推荐