易君召
发布于 2026-08-11 / 作者:易君召 / 2 阅读
0

《系统分析师教程(第 2 版)》第 7 章 软件工程 全解析

本章是系统分析师考试的核心章节之一,围绕软件工程的全生命周期理论、开发方法与模型、过程管理、资产复用、建模方法等构建完整知识体系,兼具理论深度与实践指导性,在上午综合知识、下午案例分析中均有高频考查,同时是论文写作的核心主题方向。

一、本章主要内容

本章共分为 8 个小节,按照 “基础理论→开发方法→支撑环境→过程管理→资产复用→建模方法→形式化方法” 的逻辑递进展开。

7.1 软件生命周期

软件生命周期是软件从概念提出到退役淘汰的全过程,核心是通过分阶段拆解降低开发复杂度,规范项目管理。

  1. 生命周期过程分类(依据 GB/T 8566-2022)

    • 基本过程:项目核心参与方的主活动,包含获取过程、供应过程、开发过程、运作过程、维护过程 5 类。

    • 支持过程:辅助主过程的质量保障活动,包含文档编制、配置管理、质量保证、验证、确认、联合评审、审核、问题解决等。

    • 组织过程:企业层面的基础能力建设,包含管理过程、基础设施、过程改进、人力资源、资产管理、重用大纲管理、领域工程等。

  2. 生命周期核心阶段任务

    按开发流程依次为:可行性研究与项目计划→需求分析→概要设计→详细设计→编码实现→集成测试→确认测试→上线使用→运行维护→退役消亡。

7.2 软件开发方法与模型

本小节是本章核心内容,介绍主流开发范式与模型,是选型决策的理论基础。

  1. 传统软件开发模型

    模型名称

    核心特征

    适用场景

    瀑布模型

    线性串行、阶段不可逆、文档驱动

    需求稳定、变更少的传统结构化项目

    演化模型

    快速构建原型、迭代优化需求

    需求模糊、需用户逐步确认的项目

    螺旋模型

    瀑布 + 迭代 + 风险分析,四步循环(计划→风险分析→工程实施→客户评估)

    大型、复杂、高风险的系统项目

    喷泉模型

    面向对象专属,阶段重叠无边界、迭代反复

    面向对象开发项目

    V 模型

    开发与测试一一对应,测试左移

    对质量要求高、重视测试的企业级项目

    变换模型

    基于形式化规格说明自动生成代码

    高可靠、高安全的特定领域系统

  2. 快速应用开发(RAD)

    瀑布模型的高速变种,核心是用户深度参与、构件复用、短周期交付。分为业务建模、数据建模、过程建模、应用生成、测试交付 5 个阶段,仅适合模块化程度高的 MIS 类项目。

  3. 统一过程模型(RUP)

    重量级工程化框架,核心特征是用例驱动、以架构为中心、迭代增量。分为 4 个阶段:

    • 初始阶段:建立业务模型、评估项目边界与风险

    • 细化阶段:搭建系统架构、消除最高风险

    • 构建阶段:并行开发构件、集成测试

    • 移交阶段:Beta 测试、用户培训、正式发布

  4. 敏捷开发方法

    核心遵循敏捷宣言:个体交互重于过程工具、可工作软件重于完备文档、客户合作重于合同谈判、响应变化重于遵循计划。主流方法包括:

    • 极限编程(XP):测试先行、结对编程、持续集成,强调工程实践

    • Scrum:2-4 周 Sprint 迭代,产品待办列表管理,团队自组织

    • DSDM:20% 时间交付 80% 核心功能,强调用户全程参与

7.3 软件开发环境与工具

  1. 软件开发环境(SDE)

    软件工具集 + 环境集成机制构成,核心集成机制包括:

    • 环境信息库:存储开发全流程数据,是集成的核心

    • 过程控制与消息服务器:实现工具协同与过程集成

    • 环境用户界面:统一交互入口,降低学习成本

      第三代集成开发环境 ICASE 以信息库为核心,目标是实现全自动软件开发。

  2. 软件开发工具分类

    • 开发工具:需求分析、设计、编码排错类工具

    • 维护工具:版本管理、逆向工程、文档分析类工具

    • 管理支持工具:项目管理、配置管理、软件评价类工具

7.4 软件过程管理

核心是通过标准化过程提升软件质量与生产效率,是过程改进的理论依据。

  1. 软件能力成熟度模型(CMM)

    分为 5 个逐级提升的成熟度等级:

    1. 初始级:过程无序,成功依赖个人能力

    2. 可重复级:建立项目级管理流程,可复制过往成功

    3. 已定义级:过程标准化、文档化,组织级统一执行

    4. 可管理级:量化度量过程,质量与进度可控

    5. 优化级:数据驱动持续过程改进

  2. 能力成熟度模型集成(CMMI)

    整合多领域过程模型,有两种表示法:

    • 阶段式:与 CMM 框架类似,按成熟度等级分组过程域,适合整体评估

    • 连续式:按过程管理、项目管理、工程、支持 4 大类划分过程域,可单独提升某一过程能力

  3. 其他过程评估标准

    包含 Trillum 模型(嵌入式领域)、ISO/IEC 15504(国际标准)、我国 SJ/T 11234 行业标准等。

7.5 软件重用和再工程

核心是盘活存量软件资产,降低开发成本与风险。

  1. 软件重用

    • 重用层次:知识重用、方法与标准重用、软件成分重用

    • 构件重用模式:组装模型、面向对象类重用(实例重用、继承重用、多态重用)

    • 领域工程:专门生产可复用构件的活动,包含领域分析、构件开发、构件传播三个环节

  2. 逆向工程

    从现有程序代码反向推导设计文档、架构逻辑的过程,不修改原系统。实现手段包括信息交换分析、反汇编、反编译,抽象层次从低到高分为实现级、结构级、功能级、领域级。

  3. 软件再工程

    逆向工程的延伸,在反向获取设计信息的基础上,重构系统并生成新的源代码,成本低于全新开发。按改造难度从低到高分为:代码转换、程序结构重构、数据重构、体系结构迁移。

7.6 软件产品线

针对特定领域,共享核心资产的系列产品开发模式,是大规模复用的高级形态。

  1. 核心过程模型

    • 双生命周期模型:领域工程(开发核心资产)+ 应用工程(基于资产开发产品),双周期重叠互动

    • SEI 模型:核心资源开发、产品开发、管理三大活动循环迭代

    • 三生命周期模型:在双周期基础上增加企业工程,统筹全企业产品线资源

  2. 产品线建立方式

    分为演化式(渐进改造现有产品)和革命式(全新开发)两大类,细分为 4 种:现有产品演化、替代现有产品集、全新演化、全新开发。

7.7 统一建模语言(UML)

标准化的可视化建模语言,覆盖软件全生命周期。

  1. 核心构成

    • 构造块:事物(结构、行为、分组、注释)、关系(关联、依赖、泛化、实现)、图

    • 公共机制:规格说明、修饰、公共分类、扩展机制

    • 规则:命名、范围、可见性、完整性、执行规则

  2. 4+1 视图

    • 用例视图:描述需求,面向分析与测试人员

    • 逻辑视图:描述功能设计,面向最终用户

    • 实现视图:描述代码构件,面向程序员

    • 进程视图:描述并发与性能,面向集成人员

    • 部署视图:描述硬件拓扑,面向系统工程师

  3. 14 种标准图

    静态图:类图、对象图、构件图、组合结构图、用例图、部署图、制品图、包图

    动态图:顺序图、通信图、定时图、状态图、活动图、交互概览图

7.8 软件形式化方法

以严格数学为基础的开发方法,用于高可靠、高安全领域。

  1. 核心特点:数学化描述需求与设计,语义精确无歧义,可通过逻辑证明验证系统性质;缺点是门槛高、可读性差。

  2. 净室软件工程(CSE)

    形式化方法的工程化实践,核心是通过正确性证明替代部分测试,结合统计测试认证可靠性。核心技术包括增量式开发、盒结构规约(黑盒→状态盒→明盒)、正确性验证、统计测试。

  3. 程序验证方法

    • 动态方法:运行程序测试,定位准但覆盖不全

    • 静态方法:代码静态分析、符号执行、定理证明、模型检测,无需运行程序

二、主要考点与考情分析

本章在上午综合知识题中占比约 10-15 分,下午案例分析常以 “开发模型选型”“过程改进” 为主题出题,同时是论文写作的高频命题方向。

1. 上午选择题高频考点

考点模块

考查频率

考查形式

核心考点

软件开发模型

★★★★★

概念辨析、场景选型

各模型优缺点、适用场景;螺旋模型的风险分析;V 模型的测试对应关系;敏捷宣言

CMM/CMMI

★★★★★

等级匹配、特征辨析

CMM 五级特征;CMMI 阶段式与连续式区别;关键过程域归属

UML 建模

★★★★☆

视图对应、图的作用

4+1 视图的关注点;14 种图的分类与适用场景;关系类型辨析

软件重用与再工程

★★★★☆

概念区分

逆向工程、重构、再工程的边界;重用层次;领域工程的作用

RAD 与 RUP

★★★☆☆

阶段任务、核心特征

RAD 五阶段;RUP 四阶段目标;RUP“用例驱动、架构为中心” 特征

软件产品线

★★★☆☆

模型分类、建立方式

三类过程模型的区别;四种建立方式的适用场景

形式化方法

★★☆☆☆

基础概念

净室软件工程核心;静态 / 动态验证方法区分

2. 下午案例分析考点

  • 开发模型选型题:给出项目背景(如需求模糊、高风险、快速交付),要求选择合适的开发模型并说明理由、优缺点。

  • 敏捷实践题:结合项目场景,分析敏捷开发的落地难点、改进措施,或对比敏捷与传统模型的差异。

  • 过程改进题:给出企业过程现状,判断 CMM/CMMI 等级,指出过程问题并给出改进建议。

  • UML 建模题:补充用例图、类图的元素,判断图的类型与适用场景。

3. 论文写作考点

高频命题方向包括:论软件开发模型的选择与应用、论敏捷开发在企业中的实践、论软件过程改进的方法与实践、论软件复用技术的应用。

三、重难点深度解析

1. 易混淆:软件开发模型的边界与选型

  • 瀑布模型 vs V 模型:二者均为阶段式,核心区别是 V 模型将测试活动与开发阶段一一对应,强调测试提前介入;瀑布模型测试集中在编码完成后。

  • 演化模型 vs 增量模型:演化模型是逐步完善整体需求,早期原型不可直接交付;增量模型是分模块交付,每个增量都是可独立运行的完整功能。

  • 螺旋模型 vs RUP:二者均为迭代式,螺旋模型核心驱动力是风险分析;RUP 核心驱动力是用例与架构,更侧重工程化规范。

  • 选型速记口诀:需求稳定选瀑布,需求模糊选原型,高风险选螺旋,面向对象选喷泉,质量优先选 V 模型,快速交付选敏捷 / RAD。

2. 高频易错:CMM 与 CMMI 等级名称辨析

二者等级名称高度相似但不完全对应,是考试高频挖坑点:

CMM(5 级)

CMMI 阶段式(5 级)

核心特征

初始级

初始级

混乱无序,依赖个人

可重复级

已管理级

项目级可控,可重复成功

已定义级

已定义级

组织级标准化过程

可管理级

定量管理级

量化度量与管控

优化级

优化级

持续改进

注意:CMM 的 “可重复级” 对应 CMMI 阶段式的 “已管理级”,名称不可混淆。

3. 概念辨析:重构、逆向工程、再工程

三者抽象层次与目标不同,是选择题必考辨析点:

  • 代码重构:同一抽象层级的代码结构优化,不改变功能与外部行为,目的是提升代码可读性、可维护性。

  • 逆向工程:从低抽象层(代码)还原高抽象层(设计、架构),只分析不修改,目的是理解系统。

  • 软件再工程:逆向工程 + 重构 + 正向工程,对系统进行全维度改造升级,目的是延长系统生命周期、提升质量。

  • 正向工程:从需求到设计再到编码的常规开发流程。

4. 核心难点:UML 4+1 视图的对应关系

考试常考查 “某类人员关注什么视图”“某类图属于什么视图”,记忆要点:

  • 用例视图是 “1”,是其他视图的基础,对应需求阶段

  • 逻辑、进程、实现、部署是 “4”,分别对应功能、性能、代码、硬件四个维度

  • 类图属于逻辑视图,顺序图可用于逻辑视图与进程视图,构件图属于实现视图,部署图对应部署视图

5. 第二版新增重点:软件产品线

本部分是第 2 版教材新增内容,考查倾向于原文概念记忆。需区分三类过程模型的核心差异:

  • 双生命周期:领域工程与应用工程分离,边界清晰,是最基础的模型

  • SEI 模型:三大活动循环重叠,无严格先后顺序,强调反馈互动

  • 三生命周期:增加企业工程层级,适合多产品线的大型企业


本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。

原文链接 https://www.yijunzhao.cn/archives/system-analyst-tutorial-2nd-edition-chapter-7-software-engineering-guide

欢迎访问 小易撩挨踢

https://www.yijunzhao.cn/