了解常用开发模型 -- 瀑布模型、螺旋模型、增量与迭代、敏捷开发

目录

瀑布模型

开发流程

开发特征

优缺点

适用场景

螺旋模型

开发流程

开发特征

优缺点

适用场景

增量与迭代开发

什么是增量开发?什么是迭代开发?

敏捷开发

什么是敏捷开发四原则(敏捷宣言)?

[什么是 scrum 框架?](#什么是 scrum 框架?)

[scrum 框架中的三大角色分别是什么?](#scrum 框架中的三大角色分别是什么?)

[scrum 框架的基本工作流程](#scrum 框架的基本工作流程)


瀑布模型

开发流程

问题定义 => 可行性研究 => 需求分析 => 计划 => 设计 => 编码 => 测试 => 上线运维


开发特征

  • 线性顺序开发

优缺点

  • 优点

    • 通过早期计划及需求调查等工作,在每个开发阶段都有明确的阶段性目标
  • 缺点

    • 由于项目的测试在最后阶段 ,发现问题时项目已经基本完成,此时则需要重新回溯至问题阶段排查问题,这可能导致许多前期工作变成无用功,增加了开发风险

    • 需求明确后就不再更改,不能适应需求变化的情况。

    • 由于是线性顺序开发,开发中获得的经验教训无法反哺本项目


适用场景

  • 小型项目开发

螺旋模型

开发流程

  • 循环执行如下步骤:

    1. 客户需求沟通

    2. 方案计划及目标拟定

    3. 风险分析

    4. 计划实施、编码、测试

    5. 成果评估


开发特征

  • 渐进式迭代开发

优缺点

  • 优点

    • 全过程风险分析管理,每个阶段都进行质量及风险验证

    • 阶段性总结经验教训,可以反哺本项目

    • 阶段性对项目可行性进行评估,控制沉没成本

  • 缺点

    • 严格的计划和进度控制,风险的识别、分析、控制,这些都使得投入的人力财力大大增加,对管理水平提出了更高的要求

适用场景

  • 适用于规模庞大、复杂度高、风险大的项目

增量与迭代开发

什么是增量开发?什么是迭代开发?

  • 增量开发是在项目基础上不断根据需求进行扩展优点是显著降低项目风险,结合需求持续构建

  • 迭代开发是指原项目满足基本需求后就上线,后续才在原基础上不断细化迭代,做到迅速投产,逐步优化


敏捷开发

什么是敏捷开发四原则(敏捷宣言)?

四原则包括:

  • 个体与交互重于过程和工具

  • 可用的软件重于完备的文档

  • 客户协作重于合同谈判

  • 响应变化重于遵循计划


什么是 scrum 框架?

  • 敏捷开发是一种思想,而scrum框架就是这种思想的具体实现,是一种基于持续学习和需求多变的启发式框架

scrum 框架中的三大角色分别是什么?

  • scrum 框架通常具备三大角色:

    • product owner(产品经理人):简单理解,产品经理人面向需求,主要负责整合客户需求,并传达给项目经理。

    • scrum master(项目经理):简单理解,项目经理面向行动,主要负责研发团队的调度安排,进度计划的把控。

    • team(研发团队):简单理解,进行具体工作的一大帮人。


scrum 框架的基本工作流程

  • 基本流程

    • product backlog/产品需求

    • sprint backlog/计划安排

    • Sprint/具体实施

    • daily scrum meeting/每日例会

    • Sprint Review/迭代评审

    • Sprint Retrospective/迭代回顾总结


相关推荐
测试者家园33 分钟前
为什么意图驱动测试是自动化测试的下一站,而不是替代品
自动化测试·软件测试·人工智能·持续测试·ai赋能·智能化测试·软件测试变革
Bug 挖掘机15 小时前
网传阿里天猫超市技术近期迎来调整,前端和测试团队合并为“智能交付”团队
自动化测试·软件测试·功能测试·测试开发·ai测试
测试19981 天前
如何用appium搭建Android自动化测试框架?
自动化测试·软件测试·python·测试工具·职场和发展·appium·测试用例
泽众云测试2 天前
网易智企签约采购泽众软件(泽众云)云真机测试服务
软件测试·测试平台·云真机·云测试
测试老哥3 天前
Pytest 之assert断言的使用
自动化测试·软件测试·python·测试工具·测试用例·pytest·接口测试
测试19983 天前
软件测试面试八股文【2026最新版】
自动化测试·软件测试·功能测试·测试工具·面试·职场和发展·测试用例
树码小子5 天前
测试(5) - 概念篇(3)-- 常见的测试模型
软件测试·测试模型