# （计划驱动的？）软件开发模型

## （计划驱动的？）软件开发模型

‍

​![image](https://3042830051-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjrIbLlVWslbrydDzLMeM%2Fuploads%2FJuBLvcUm4vPmvxeThqQF%2Fimage%2020231224212649%20cs6hcss.png?alt=media)​

​![image](https://3042830051-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjrIbLlVWslbrydDzLMeM%2Fuploads%2FBKe727vGTou4w1Y5LoNa%2Fimage%2020231225143713%2032pjl18.png?alt=media)​

## 瀑布模型

核心思想是将软件开发的各个过程以线性的、顺序的方式进行

首先，清晰地了解要解决问题的需求\
然后，顺序地开展策划、建模、构建和部署等工作\
最终交付完整的软件产品，并开展后续的技术支持和维护

意义：反映了一种软件开发的理想，比之前不清晰不工程的软件开发，是一种进步；但是在现实生活中很少遵循瀑布模型的顺序

### 增量模型

将开发过程分成若干增量，每次增量选择一部分需求（最关键、最核心的需求）作为交付目标，产出一个可执行的中间产品，例如\
增量1：支持文本文件保存、打开和编辑操作\
增量2：支持字体、颜色等文本格式设定\
增量3：支持自动拼写检查

就是以迭代的方式使用瀑布模型

### 演化模型

通过“迭代”来应对不断演变的需求\
•典型代表是Barry Boehm提出的螺旋模型\
但是难以判断螺旋何时结束\
抛弃式原型和增量级原型

​![image](https://3042830051-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjrIbLlVWslbrydDzLMeM%2Fuploads%2FoYjFIpG8deXjkdbysIBn%2Fimage%2020231225143915%20h6t7cot.png?alt=media)​

​​

### 统一过程模型

增量、迭代的过程流，每个迭代涉及核心过程工作流和核心支持工作流中的多个过程

增量迭代、用例驱动、以体系结构为中心

​![image](https://3042830051-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjrIbLlVWslbrydDzLMeM%2Fuploads%2FNxKPLLrXP3ZjgTrBazBP%2Fimage%2020231225144157%209gybjcb.png?alt=media)​

### CMM与CMMI

软件供应商能力评估模型

五个成熟度等级：初始级、已管理级、已定义级、量化管理级、优化级\
定义了22个过程域，每个成熟度等级中包含一组相关的过程域（表示需要具备相应的能力）
