软件生存期模型
生存期模型选择
软件开发模型变迁
- 作坊式
- 过程控制
- 敏捷
- DevOps
项目生存期选择
-
提交频率高
- Agile
- Incremental
-
提交频率低
- Iterative
- Predictive
-
预测型
- 提前进行大量的计划工作,然后一次性执行;执行是一个连续的过程。
-
迭代型
- 允许对未完成的工作进行反馈,从而改进和修改该工作。
-
增量型
- 向客户提供各个己完成的,可能立即使用的可交付成果。
-
敏捷型
- 既有迭代,也有增量,便于完善工作,频繁交付。
预测模型
瀑布模型
-
流程
- 需求分析
- 设计
- 编码实施
- 测试
- 维护
-
适用于瀑布模型的项目特征
- 需求明确
- 方案明确
- 短期项目
V模型
-
流程
-
适用于V模型的项目特征
- 需求明确
- 方案明确
- 系统性能,安全等有严格要求
迭代模型(原型模型)
迭代模型
原型模型
适用于迭代模型的项目特征
- 需求不明确
- 复杂性高
- 项目变更频繁
增量模型
增量模型
渐进式阶段模型
增量模型的优点
- 阶段式提交一个可运行的产品
- 关键的功能更早出现
- 早期预警问题,避免缺陷蔓延
- 阶段性完成可以降低估计失误
敏捷模型
敏捷方法
- 是一个囊括了各种框架和方法的涵盖性术语
Scrum模型
-
迭代式开发
- 通过将整个软件交付过程分为多个迭代周期,一个迭代就是一个Sprint
- 每个迭代周期2-4周,迭代内任务有详细的分解估算、可以分解到小时
-
迭代开发过程
- 迭代计划会议
- 迭代
- 每日站立会议
- 迭代评审会议
- 迭代回顾会议
极限编程(XP,eXtreme Programming)
精益模式(Lean)
-
持续集成
-
持续部署
-
持续交付
- 经典的敏捷软件开发方法的自然延伸,能够以较短的周期完成需求的小粒度频繁交付
DevOps(重点)
- 定义:DevOps: Development
和 Operations 的组合 - DevOps是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
- DevCloud:一站式云端 DevOps(华为云DevCloud服务)