【第27节 软件工程】

本章目录:

    • 一、节概述
    • 二、知识详解
      • 1. 软件危机及其表现
      • 2. 常见软件过程模型
        • 瀑布模型(Waterfall Model)
        • 原型模型(Prototype Model)
        • 螺旋模型(Spiral Model)
        • 敏捷模型(Agile Model)
        • 软件统一过程模型(RUP)
        • 软件能力成熟度模型(CMM)
        • 软件能力成熟度模型集成(CMMI)
    • 三、关键点提炼
    • 四、考试提示
    • 五、总结与建议


一、节概述

软件工程作为系统架构设计的理论支柱,是软考高级资格考试的重要考核内容之一。它涵盖了软件生命周期全过程的理论、方法与模型,是掌握现代软件开发与管理方法的基础。

本节常以单选题、多选题与案例分析题出现,题量大、覆盖面广、理论性强,要求考生系统掌握各类软件过程模型的特点、适用场景、对比差异等关键内容。


二、知识详解

1. 软件危机及其表现

软件危机是指软件开发过程中出现的一系列普遍性、系统性问题,主要表现为:

  • 开发进度难以预测
  • 成本难以控制
  • 功能难以满足用户期望
  • 质量无法保证
  • 后期难以维护
  • 文档资料不完整

这些问题反映出传统开发方式在面临软件规模扩大与复杂度上升时的局限性,催生了软件工程理论的诞生。


2. 常见软件过程模型

瀑布模型(Waterfall Model)
  • 最传统、结构化开发方法的典型代表。
  • 阶段:需求分析 → 系统设计 → 程序设计 → 编码 → 各类测试 → 维护。
  • 特点:阶段串行文档驱动严格规范
  • 缺点:需求难以一次明确变更代价高无法快速反馈

常用于需求稳定、流程规范的大型政府或金融项目。


原型模型(Prototype Model)
  • 包含两个阶段:原型开发阶段目标系统开发阶段
  • 解决瀑布模型中“需求不明确”的问题,通过“看得见的原型”确认用户需求。

原型模型分为:

类型 特点
抛弃型原型 原型仅用于需求确认,后续使用瀑布模型
演化型原型 原型逐步完善,最终演变成目标系统

适用于需求不确定但需要快速反馈的系统。


螺旋模型(Spiral Model)
  • 综合瀑布模型原型模型的优点,强调风险管理
  • 每个阶段包含四部分:目标设定、风险分析、开发与验证、评审
  • 适合于大规模、复杂系统开发。

可配合面向对象/过程/规格说明等方法使用。


敏捷模型(Agile Model)
  • 核心思想:拥抱变化,强调快速交付持续反馈客户参与

主要方法包括:

方法 特点
极限编程(XP) 强调测试驱动开发、结对编程
水晶方法 灵活定制,不同项目不同策略
并列争球法(Scrum) 偏重项目管理,分为冲刺迭代
FDD 按功能特征划分团队角色,如指挥者、类程序员

适用于小团队、快速变化的互联网项目。


软件统一过程模型(RUP)
  • IBM 提出,属于面向对象开发范畴。
  • 特点:用例驱动以架构为中心迭代增量开发
  • 包含9个核心工作流4+1视图模型

核心工作流

业务建模、需求、分析设计、实现、测试、部署、配置与变更管理、项目管理、环境管理。

4+1视图模型

视图 面向对象 图示工具
逻辑视图 用户 类图、对象图、协作图
实现视图 程序员 包图、组件图
进程视图 集成人员 活动图
部署视图 系统工程师 部署图
用例视图 所有视图基础 用例图

架构师考试中常出现视图与职责匹配题。


软件能力成熟度模型(CMM)
  • 一个概念模型,结构刚性但实现弹性。
  • 用于评估组织软件过程的成熟度。
软件能力成熟度模型集成(CMMI)
  • CMM 的升级版,整合多个改进模型。
  • 定义了5个成熟度等级
等级 名称 特点
1级 初始级 过程混乱,依赖个人能力
2级 已管理级 有基本项目管理制度
3级 已定义级 建立组织级过程标准
4级 量化管理级 对过程性能进行量化管理
5级 优化级 持续改进过程性能

重点区分:第3级关注标准化,第4级关注量化预测能力


三、关键点提炼

知识点 高频考察内容
瀑布模型 顺序性、串行性、缺点
原型模型 抛弃型 vs 演化型、需求确认作用
螺旋模型 四阶段内容、风险管理的核心地位
敏捷方法 各类方法的侧重点:XP→技术、Scrum→管理、FDD→角色
RUP 4+1视图模型匹配、用例驱动和架构中心理念
CMMI 5级特点、特别是3~4级的区分

四、考试提示

出题形式

  • 场景描述+选择对应开发模型;
  • 判断模型的适用场景、优缺点;
  • CMMI各等级的比较与应用;
  • 4+1视图与角色匹配选择题;
  • 敏捷开发中角色分工与行为判断。

⚠️ 易错陷阱

  • 将敏捷模型混淆为无管理/随意开发;
  • 错将用例视图看成与用户界面相关;
  • 认为原型模型一定用于快速开发成品;
  • 将CMM与CMMI混为一谈,忽略集成性发展。

五、总结与建议

软件工程作为架构设计的理论基础,知识点繁多但高度结构化,建议考生:

✅ 梳理各模型的发展演化路径与核心特点;
✅ 理解各模型适用项目类型、优劣取舍;
✅ 高度关注CMMI模型的5级描述与实际意义;
✅ 以“视图+职责”形式记忆RUP中的4+1架构模型。

建议采用“对比+记忆+应用”三步法,将静态知识转化为解决问题的能力,是突破高级系统架构设计师考试的关键路径!

你可能感兴趣的:(软考高级——系统架构设计师,软件工程,软考,软考高级,系统架构,系统架构设计师,架构)