生命周期模型概述(软考教材版)

文章速览

  • 一、概述
    • [1.1.瀑布模型 Waterfall Model](#1.1.瀑布模型 Waterfall Model)
    • [1.2.V模型 V-Model](#1.2.V模型 V-Model)
    • [1.3.原型模型 Prototyping Model](#1.3.原型模型 Prototyping Model)
    • [1.4.增量模型 Incremental Model](#1.4.增量模型 Incremental Model)
    • [1.5.螺旋模型 Spiral Model](#1.5.螺旋模型 Spiral Model)
    • [1.6.喷泉模型 Fountain Model](#1.6.喷泉模型 Fountain Model)
    • [1.7.统一过程 RUP/Unified Process](#1.7.统一过程 RUP/Unified Process)
    • [1.8.敏捷开发模型 Agile](#1.8.敏捷开发模型 Agile)
    • [1.9.演化模型 Evolutionary Model](#1.9.演化模型 Evolutionary Model)
    • [1.10.基于构件的开发模型 CBD/Component-Based Development](#1.10.基于构件的开发模型 CBD/Component-Based Development)
  • 二、总结

欢迎各位同学、前辈提出宝贵的建议或是进行分享讨论

一、概述

1.1.瀑布模型 Waterfall Model

核心思想:线性顺序、阶段分明、文档驱动

1.需求分析------>主要产出 需求规格说明书(SRS)

2.系统涉及------>主要产出 概要设计、详细设计文档

3.编码实现------>主要产出 源代码

4.测试验证------>主要产出 测试报告

5.运行维护------>主要产出 维护文档

优点:结构清晰、阶段明确、文档完整、易于管理

缺点:灵活性差、需求变更成本高、用户参与晚、风险发现迟

适用场景:需求明确、技术成熟、合同型项目

1.2.V模型 V-Model

核心思想:开发与测试一 一对应,强调验证与确认(V&V)

【此处与百度百科有区别,来源于教材内容】

1.需求分析 <------> 验收测试

2.概要设计 <------> 系统测试

3.详细设计 <------> 集成测试

4.编码实现 <------> 单元测试

优点:测试贯穿始终、质量保证前置、缺陷发现早

缺点:仍是线性模型、灵活性不足

使用场景:对质量要求极高的系统(如医疗、航空、金融核心系统)

1.3.原型模型 Prototyping Model

核心思想:快速构建可运行原型,通过用户反馈明确需求

分类:

抛弃型原型:仅用于需求确认,最终丢弃

演化型原型:逐步完善,最终演化为产品

优点:需求明确快、用户参与度高、降低需求风险

缺点:可能忽视非功能需求、原型管理困难、容易陷入"不断修改"

适用场景:需求不明确、创新性项目、用户界面密集型系统

1.4.增量模型 Incremental Model

核心思想:将系统分解为多个增量,分批次交付

特点:

每个增量都是一个可交付的子集

增量之间可以并行或串行开发

第一个增量通常是核心 功能

优点:快速交付核心价值、降低整体风险、用户可早期使用

缺点:增量划分困难、接口设计复杂、整体架构要求高

适用场景:需求较明确但工期紧、可分模块交付的系统

1.5.螺旋模型 Spiral Model

核心思想:风险驱动,将瀑布模型、原型模型结合,迭代推进

四个象限(每圈循环):

1.制定计划:确定目标、方案、约束

2.风险分析:识别并分析风险,必要时构建原型

3.工程实施:开发、验证、测试

4.客户评估:评审成果,规划下一轮

优点:风险管控强、适合大型复杂项目、灵活度高

缺点:成本高、周期长、需要丰富的风险评估经验

适用场景:大型、复杂、高风险项目(如航天、国防系统)

1.6.喷泉模型 Fountain Model

核心思想:面向对象开发的迭代、无缝特性

特点:

各阶段重叠、反复迭代

以对象驱动,分析------>设计------>编码无明显界限

支持复用

优点:适应面向对象开发、支持迭代和复用

缺点:管理难度大,阶段界限模糊

适用场景:面向对象开发、需求变化频繁的系统

1.7.统一过程 RUP/Unified Process

核心思想:用例驱动、架构为中心、迭代增量

四个阶段:

1.初始阶段(Inception);目标 确定项目范围和可行性;关键里程碑 生命周期目标

2.细化阶段(Elaboration);目标 建立架构基线; 关键里程碑 生命周期架构

3.构造阶段(Construction);目标 开发剩余构件; 关键里程碑 初始运行能力

4.移交阶段(Transition);目标 交付给客户; 关键里程碑 产品发布

六大最佳实践:

1.迭代化开发

2.需求管理

3.基于构件的体系结构

4.可视化模型(UML)

5.持续的质量验证

6.变更管理

优点:成熟度高、文档规范、适合大型团队

缺点:重量级、配置复杂、敏捷性不足

1.8.敏捷开发模型 Agile

核心思想:以人为本、快速响应变化、持续交付价值

四大价值观(敏捷宣言):

1.个体和互动 高于 流程和工具

2.可工作的软件 高于 详尽的文档

3.客户合作 高于 合同谈判

4.响应变化 高于 遵循计划

十二原则(重点):

1.最高优先级:通过持续交付有价值的软件使客户满意

2.欢迎需求变化,即使在开发后期

3.频繁交付可工作的软件(数周至数月,越短越好)

4.业务人员与开发者必须每日协作

5.面对面交流时最高效的信息传递方式

6.可工作的软件是进度的首要度量标准

7.持续关注技术卓越和良好设计

8.简单化------尽最大可能减少不必要的工作

9.自组织团队能产出最好的结构、需求和设计

10.倡导可持续开发

11.以受激励的个体为核心构建项目,并提供所需的环境和支持

12.团队定起反思如何提升效率,并以此调整自己的行为

常见方法:

1.Scrum 核心特点:Sprint迭代、Produck Backlog、每日站会

2.XP(极限编程) 核心特点:结对编程、测试驱动开发(TDD)、持续集成

3。Kanban 核心特点:可视化工作流、限制在制品(WIP)

4.Lean 核心特点:消除浪费、价值流映射

优点:响应变化快、用户满意度高、团队士气好

缺点:文档薄弱、对人员素质要求高、不适合大型分布式团队

适用场景:需求变化快、互联网产品、创新型项目

1.9.演化模型 Evolutionary Model

核心思想:系统逐步演化、持续改进

与增量模型区别:

1.增量模型:需求总体明确,分块实现

2.演化模型:需求随时间演化,需要长期演化的系统

适用场景:需求长期不稳定、需求长期演化的系统

1.10.基于构件的开发模型 CBD/Component-Based Development

核心思想:复用已有构建,像搭积木一样组转系统

流程:

需求分析------>构建分析/获取------>构建适配------>构建组装------>集成测试------>部署

优点:开发效率高、质量有保障(成熟构建)、维护成本低

缺点:构建获取困难、适配成本高、架构设计要求高

适用场景:存在大量可复用构建的领域(如ERP、中间件)

二、总结

1.速记表

2.重点概念

2.1 模型选择原则

复制代码
需求明确 ------> 瀑布/V模型
需求模糊 ------> 原型模型
大型高风险 ------> 螺旋模型
快速交付 ------> 增量/敏捷
质量优先 ------> V模型
面向对象 ------> 喷泉 / RUP

2.2易混淆概念

复制代码
增量 vs演化:增量是 "分块交付",演化是"逐步进化"
抛弃型原型 vs演化型原型: 前者是用完即弃,后者演化为产品
RUP vs 敏捷:RUP是重量级、文档驱动;敏捷是轻量级、代码驱动

2.3 常用判断

复制代码
瀑布模型 不适合 需求频繁变更的项目
螺旋模型 最适合 大型高风险项目
敏捷开发 不重视 文档 (是"可工作的软件高于详尽的文档",不是不要文档)
V模型中 详细设计 对应 集成测试; 概要设计 对应 系统测试
相关推荐
吃好睡好便好2 小时前
矩阵旋转的计算
学习·线性代数·算法·矩阵
江华森2 小时前
TCP/IP 网络协议学习笔记(含上机实操)
网络协议·学习·tcp/ip
折哥的程序人生 · 物流技术专研2 小时前
AI 编程与行业赋能|专栏总目录(持续更新)
开发语言·人工智能·软件工程·ai编程
「維他檸檬茶」2 小时前
记录python学习(未完待续)
学习·语言
玹之又玹2 小时前
AI 入门知识点学习扫盲
人工智能·学习·ai
_橙时_2 小时前
【学习记录01】
学习·em
小陈phd2 小时前
多模态大模型学习笔记(四十五)——视觉推理(Visual Reasoning):从观察到逻辑的复杂认知链
人工智能·笔记·学习
旺仔Sec2 小时前
【AI数字营销新纪元】解锁流量新密码:CSDN“GEO工具”全网首测,让你的文章被大模型“记住”!
人工智能·学习·用户体验
呼Lu噜2 小时前
Vue3学习-Vue3概述&项目创建
学习