软件过程模型
瀑布模型
- 严格区分阶段,没个阶段因果关系紧密相连,前一阶段产出作为下一阶段输入。
- 只适合需求明确的项目
原型模式
- 一般用在需求阶段--适合需求不明确的项目
- 分为抛弃型原型和烟花行原型
V模型
- 测试贯穿始终,测试分阶段,测试计划提前

螺旋模型(原型+瀑布)
- 以快速原型(抛弃型)为基础+瀑布模型,考虑了风险问题。
- 把整个软件开发流程分成多个阶段,每一个阶段都由目标设定、风险分析、开发和有效性验证以及评审构成。
构建组装模型
- 易扩展、易重用、降低成本、安排任务更灵活
- 类似乐高积木,拼装简单、设计积木复杂
- 基于构件的软件工程(CBSE)
快速应用开发(RAD)(瀑布+构建)

统一过程/统一过程开发方法(UP/RUP)

统一过程的9个核心工作流分为6个核心过程工作流和3个核心支持工作流,具体包括: 1. 初始阶段(Inception) - 核心目标:确定项目愿景和业务用例,明确项目范围。 - 关键产出:可行性分析、初步风险列表、项目计划概要和用例模型草稿。该阶段通过则意味着项目值得继续投入。 2. 细化阶段(Elaboration) - 核心目标:建立系统架构基线,分析问题领域,消除最高风险。 - 关键产出:可执行的架构原型、详细的迭代计划、精化的用例模型。该阶段结束时,架构已趋于稳定,项目进入大规模开发准备就绪状态。 3. 构建阶段(Construction) - 核心目标:完成所有剩余的系统组件开发和功能测试,将设计转化为可交付的产品。 - 关键产出:经过充分测试的软件产品、用户手册等文档。该阶段结束时,产品功能基本完整,进入Beta测试准备。 4. 移交阶段(Transition) - 核心目标:将软件产品正式交付给最终用户,确保用户能正常使用。 - 关键产出:正式发布的软件版本、培训材料、现场支持与缺陷修复。该阶段结束时,产品进入生产环境,并开启下一轮迭代周期。
| 类型 | 工作流 |
|---|---|
| 核心过程工作流 | 业务建模、需求、分析与设计、实现、测试、部署 |
| 核心支持工作流 | 配置与变更管理、项目管理、环境 |
“成本”管理虽重要,但被涵盖在项目管理工作流中,并非独立的9个核心工作流之一。
二维模型:
敏捷开发--小步快跑
- 敏捷方法的思想适应性而不是预设性
- 以原型思想为基础,采用迭代增量开发
- 适合需求变化大以及前期需求不明确

- 瀑布模型是典型的传统开发

敏捷方法(SCRUM)

各种敏捷开发方法特点

逆向工程
PS:注意区分设计恢复和逆向工程、正向工程和再工程/重构工程
- 设计恢复强调的是从已有程序中抽象,逆向工程讲的整体性,一系列设计恢复连起来就逆向工程
净室软件工程
