软件过程模型

狂风中的少年 提交于 2020-01-09 04:19:35

软件过程模型类型

  • 瀑布模型--------------------------70年代,结构化
  • 原型模型--------------------------80年代,需求变更
  • 增量模型--------------------------80年代,多版本开发
  • 螺旋模型--------------------------80年代,降低风险
  • 喷泉模型--------------------------90年代,面向对象
  • 统一软件开发过程--------------90年代,完美、完整(RUP)
  • 敏捷过程与极限编程-----------00年代,以人为本

瀑布模型

  • 一种基于里程碑的、阶段性的过程模型
  • 文档是每个阶段的成果体现
  • 每阶段需要评审
  • 输入输出
  • 简单易理解易操作

优点:

  1. 需求稳定、变化很小且开发人员能够一次性获取全部需求的项目
  2. 软件开发人员具有丰富经验,对于应用领域非常熟悉
  3. 软件项目本身的风险很低

缺点:

  1. 不接受需求模糊、变更
  2. 错误发现太迟
  3. 开发进度缓慢
  4. 中间成果难利用
  5. 抗风险能力弱

快速原型模型

  • 背景:需求分析较难开展,无法固化用户需求
  • 用户熟悉的是业务但不懂得开发的技术,且开发者熟悉具体的开发方法、工具等技术内容 而不明白相关的业务流程
  • 用户和开发者在试用或演示原型过程中加强沟通和反馈,通过反复评价和改进原型,减少双方的误解,降低缺陷引入的几率,降低由于需求不明确带来的开发风险和提高软件质量,获取到用户真正的需求。
  • 快速原型模型要求对系统进行简单和快速的分析,快速构造一个软件原型。
  • 原型测重需求,不考虑采用的技术和工具

优点:

  1. 对现有或同类软件产品进行升级或功能完善
  2. 开发人员和用户交流困难,需求获取困难
  3. 开发人员对技术熟悉或把握性不大
  4. 具有支持快速开发的工具

缺点:

  1. 易造成进度延迟和超预算
  2. 需要快速建立原型的工具
  3. 易造成设计混乱

增量模型

优点:

  1. 待开发系统能够被模块化
  2. 软件产品可以分批次交付
  3. 软件开发人员对应用领域不熟悉,或一次性开发的难度很大
  4. 项目管理人员把握全局的水平很高
  5. 有多版本需求

缺点:

  1. 有需求风险:模糊、新需求
  2. 技术更新
  3. 开发资源跟不上

螺旋模型

优点:

  • 大型项目
  • 存在需求、设计及非技术等多种风险
  • 有充足的资源

缺点:

  1. 总会存在没被发现的风险
  2. 需要专业的风险评估技术或机构
  3. 复杂

喷泉模型

典型的面向对象生命周期模型

统一软件开发过程

二维的生命周期模型

  1. 9个核心工作流
  2. 4个连续的阶段

优点:

  1. 大型软件
  2. 用户需求无法明确或经常变更
  3. 较高管理水平的项目团队

缺点:

  1. 复杂
  2. 对团队要求高

敏捷过程与极限编程

背景:90年代后期,需求变化快,技术更新快,生产效率要求高

敏捷过程

  1. 个体和交互 胜过 过程和工具:人力资本高
  2. 可以工作的软件 胜过 面面俱到的文档:快鱼吃慢鱼
  3. 客户合作 胜过 合同谈判:用户无法对其自身需求进行有效描述
  4. 响应变化 胜过 遵循计划:试错成本低、执行力要求高
  5. 12条敏捷开发的实践原则

敏捷的优势

  1. 精确
  2. 质量
  3. 速度
  4. 丰富的投资回报率
  5. 高效的自我管理团队

敏捷开发方法是一组轻量级开发方法的总称。
极限编程主要目的是降低需求变化的成本

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!