1、软件过程模型

软件过程模型(SDLC Models) 是“软件工程”这一大类中的基础且高频考点。

在架构师考试中,这部分内容不仅出现在综合知识(选择题)*中,在*案例分析中也常要求根据特定场景(如:需求不明确、风险高、进度紧)选择合适的开发模型并陈述理由。

以下是核心知识点提炼。


一、 经典过程模型

1. 瀑布模型 (Waterfall Model)

这是最古老、最经典的模型,也是其他模型的基础。

software waterfall model diagram的图片

Shutterstock

  • 特点: 线性、顺序进行。前一阶段完成后,才能进入下一阶段。
  • 核心驱动: 文档驱动(Document-driven)。
  • 优点: 流程规范,文档齐全,易于管理。
  • 缺点: * 难以适应需求变化(最大痛点)。
    • 直到项目后期才能看到软件原型,风险控制能力弱。
  • 适用场景: 需求非常明确、技术成熟、工程量较小的项目。

2. V 模型 (V-Model)

瀑布模型的变种,强调测试的重要性。

software V-model diagram的图片

Shutterstock

  • 核心逻辑: 开发活动的每一个阶段都对应一个测试级别。
    • 需求分析 $\leftrightarrow$ 验收测试
    • 概要设计 $\leftrightarrow$ 系统测试
    • 详细设计 $\leftrightarrow$ 集成测试
    • 编码 $\leftrightarrow$ 单元测试
  • 适用场景: 对系统可靠性、安全性要求极高的领域(如医疗、航空、汽车系统)。

3. 原型模型 (Prototyping Model)

针对“需求不明确”而生。

  • 核心逻辑: 快速构建一个可运行的原型,展示给用户,获取反馈,再修改。
  • 分类:
    • 抛弃型原型: 仅用于明确需求,验证后丢弃,重新开发。
    • 演化型原型: 在原型基础上不断迭代完善,最终成为产品。
  • 适用场景: 用户需求模糊、需求经常变化的项目。

二、 迭代与风险导向模型

4. 螺旋模型 (Spiral Model)

关键词:风险分析

software spiral model diagram的图片

Shutterstock

  • 构成: 结合了瀑布模型和演化型原型的优点,并增加了风险分析
  • 四个象限(步骤):
    1. 制定计划(确定目标)
    2. 风险分析(评估方案,消除风险)
    3. 实施工程(开发验证)
    4. 客户评估(评审)
  • 适用场景: 庞大、复杂、高风险的系统(如大型航天系统、政府大型项目)。

5. 增量模型 vs. 迭代模型

这两个概念常混淆,考试中需注意区分:

  • 增量模型 (Incremental): “逐块建造”。先开发核心模块,再根据需求开发后续模块。每一次发布都是一个可用的子系统。
    • 例子:先做“用户注册”,上线;再做“购物车”,上线。
  • 迭代模型 (Iterative): “逐步求精”。先开发整个系统的粗糙版本,然后不断打磨、细化。
    • 例子:先做一个简陋的电商全站(能跑通但不好用),第二版优化UI,第三版优化性能。

三、 现代与面向对象模型

6. 喷泉模型 (Fountain Model)

关键词:面向对象

  • 特点: 各阶段(分析、设计、编码)之间没有明显的界限,相互重叠,具有迭代性无间隙性
  • 适用场景: 专门为面向对象软件开发设计的模型。

7. 统一过程 (UP / RUP)

架构师考试中的重点。

  • 三大特点: 1. 用例驱动 (Use-case driven)
    2. 以架构为中心 (Architecture-centric)
    3. 迭代和增量 (Iterative and Incremental)
  • 四个阶段(生命周期):
    1. 初始阶段 (Inception): 建立业务案例,确定项目边界,生命周期目标里程碑。
    2. 细化阶段 (Elaboration): 分析问题领域,建立架构基线生命周期架构里程碑。(这是最关键的阶段,风险在此阶段被通过架构解决)。
    3. 构建阶段 (Construction): 开发剩余构件,初始运作能力里程碑。
    4. 移交阶段 (Transition): 部署、用户培训,产品发布里程碑。

四、 敏捷开发 (Agile Development)

近年来考试热度上升,强调“以人为本,适应变化”。

  • 核心价值观(敏捷宣言):
    • 个体和互动 高于 流程和工具
    • 工作的软件 高于 详尽的文档
    • 客户合作 高于 合同谈判
    • 响应变化 高于 遵循计划
  • 常见方法:
    • XP (极限编程): 强调编码实践(结对编程、测试驱动开发 TDD、持续集成)。
    • Scrum: 强调管理框架(Sprint冲刺、站会、Product Backlog)。
    • 水晶方法 (Crystal): 强调根据项目规模选择不同策略。
  • 适用场景: 需求变化快、中小规模团队、互联网项目。

五、 软考速记“作弊表” (Cheat Sheet)

在做选择题或案例分析时,看到以下关键词,直接联想对应的模型:

场景/关键词 推荐模型
需求明确、技术成熟、二次开发 瀑布模型
需求不明确、用户说不清想要什么 原型模型
风险高、大型系统、资金雄厚 螺旋模型
可靠性要求高、强调测试、嵌入式/军用 V 模型
面向对象、复用性 喷泉模型
架构为中心、用例驱动、大型复杂企业应用 RUP (统一过程)
快速响应变化、小团队、短周期 敏捷开发 (Scrum/XP)
尽早交付部分功能、分批次交付 增量模型

建议复习策略

  1. 理解重于死记: 尤其是 RUP 的四个阶段和螺旋模型的四个象限,要理解每个阶段解决了什么问题。
  2. 案例题套路: 如果案例题中描述项目“初期用户只能提供模糊需求”且“后期变更频繁”,你需要先批评原有的瀑布模型,然后建议改为“原型模型+演化”或“敏捷开发”。
  3. 对比记忆: 重点区分增量 vs 迭代,以及 V模型 vs 瀑布模型
posted @ 2026-01-12 18:59  ceiloruz  阅读(3)  评论(0)    收藏  举报