软件过程模型类型
- 瀑布模型--------------------------70年代,结构化
- 原型模型--------------------------80年代,需求变更
- 增量模型--------------------------80年代,多版本开发
- 螺旋模型--------------------------80年代,降低风险
- 喷泉模型--------------------------90年代,面向对象
- 统一软件开发过程--------------90年代,完美、完整(RUP)
- 敏捷过程与极限编程-----------00年代,以人为本
瀑布模型
- 一种基于里程碑的、阶段性的过程模型
- 文档是每个阶段的成果体现
- 每阶段需要评审
- 输入输出
- 简单易理解易操作
优点:
- 需求稳定、变化很小且开发人员能够一次性获取全部需求的项目
- 软件开发人员具有丰富经验,对于应用领域非常熟悉
- 软件项目本身的风险很低
缺点:
- 不接受需求模糊、变更
- 错误发现太迟
- 开发进度缓慢
- 中间成果难利用
- 抗风险能力弱
快速原型模型
- 背景:需求分析较难开展,无法固化用户需求
- 用户熟悉的是业务但不懂得开发的技术,且开发者熟悉具体的开发方法、工具等技术内容 而不明白相关的业务流程
- 用户和开发者在试用或演示原型过程中加强沟通和反馈,通过反复评价和改进原型,减少双方的误解,降低缺陷引入的几率,降低由于需求不明确带来的开发风险和提高软件质量,获取到用户真正的需求。
- 快速原型模型要求对系统进行简单和快速的分析,快速构造一个软件原型。
- 原型测重需求,不考虑采用的技术和工具
优点:
- 对现有或同类软件产品进行升级或功能完善
- 开发人员和用户交流困难,需求获取困难
- 开发人员对技术熟悉或把握性不大
- 具有支持快速开发的工具
缺点:
- 易造成进度延迟和超预算
- 需要快速建立原型的工具
- 易造成设计混乱
增量模型
优点:
- 待开发系统能够被模块化
- 软件产品可以分批次交付
- 软件开发人员对应用领域不熟悉,或一次性开发的难度很大
- 项目管理人员把握全局的水平很高
- 有多版本需求
缺点:
- 有需求风险:模糊、新需求
- 技术更新
- 开发资源跟不上
螺旋模型
优点:
- 大型项目
- 存在需求、设计及非技术等多种风险
- 有充足的资源
缺点:
- 总会存在没被发现的风险
- 需要专业的风险评估技术或机构
- 复杂
喷泉模型
典型的面向对象生命周期模型
统一软件开发过程
二维的生命周期模型
- 9个核心工作流
- 4个连续的阶段
优点:
- 大型软件
- 用户需求无法明确或经常变更
- 较高管理水平的项目团队
缺点:
- 复杂
- 对团队要求高
敏捷过程与极限编程
背景:90年代后期,需求变化快,技术更新快,生产效率要求高
敏捷过程
- 个体和交互 胜过 过程和工具:人力资本高
- 可以工作的软件 胜过 面面俱到的文档:快鱼吃慢鱼
- 客户合作 胜过 合同谈判:用户无法对其自身需求进行有效描述
- 响应变化 胜过 遵循计划:试错成本低、执行力要求高
- 12条敏捷开发的实践原则
敏捷的优势
- 精确
- 质量
- 速度
- 丰富的投资回报率
- 高效的自我管理团队
敏捷开发方法是一组轻量级开发方法的总称。
极限编程主要目的是降低需求变化的成本
来源:CSDN
作者:~有梦想的人
链接:https://blog.csdn.net/weixin_43268636/article/details/103839917