本章是系统分析师考试的核心章节之一,围绕软件工程的全生命周期理论、开发方法与模型、过程管理、资产复用、建模方法等构建完整知识体系,兼具理论深度与实践指导性,在上午综合知识、下午案例分析中均有高频考查,同时是论文写作的核心主题方向。
一、本章主要内容
本章共分为 8 个小节,按照 “基础理论→开发方法→支撑环境→过程管理→资产复用→建模方法→形式化方法” 的逻辑递进展开。
7.1 软件生命周期
软件生命周期是软件从概念提出到退役淘汰的全过程,核心是通过分阶段拆解降低开发复杂度,规范项目管理。
生命周期过程分类(依据 GB/T 8566-2022)
基本过程:项目核心参与方的主活动,包含获取过程、供应过程、开发过程、运作过程、维护过程 5 类。
支持过程:辅助主过程的质量保障活动,包含文档编制、配置管理、质量保证、验证、确认、联合评审、审核、问题解决等。
组织过程:企业层面的基础能力建设,包含管理过程、基础设施、过程改进、人力资源、资产管理、重用大纲管理、领域工程等。
生命周期核心阶段任务
按开发流程依次为:可行性研究与项目计划→需求分析→概要设计→详细设计→编码实现→集成测试→确认测试→上线使用→运行维护→退役消亡。
7.2 软件开发方法与模型
本小节是本章核心内容,介绍主流开发范式与模型,是选型决策的理论基础。
传统软件开发模型
快速应用开发(RAD)
瀑布模型的高速变种,核心是用户深度参与、构件复用、短周期交付。分为业务建模、数据建模、过程建模、应用生成、测试交付 5 个阶段,仅适合模块化程度高的 MIS 类项目。
统一过程模型(RUP)
重量级工程化框架,核心特征是用例驱动、以架构为中心、迭代增量。分为 4 个阶段:
初始阶段:建立业务模型、评估项目边界与风险
细化阶段:搭建系统架构、消除最高风险
构建阶段:并行开发构件、集成测试
移交阶段:Beta 测试、用户培训、正式发布
敏捷开发方法
核心遵循敏捷宣言:个体交互重于过程工具、可工作软件重于完备文档、客户合作重于合同谈判、响应变化重于遵循计划。主流方法包括:
极限编程(XP):测试先行、结对编程、持续集成,强调工程实践
Scrum:2-4 周 Sprint 迭代,产品待办列表管理,团队自组织
DSDM:20% 时间交付 80% 核心功能,强调用户全程参与
7.3 软件开发环境与工具
软件开发环境(SDE)
由软件工具集 + 环境集成机制构成,核心集成机制包括:
环境信息库:存储开发全流程数据,是集成的核心
过程控制与消息服务器:实现工具协同与过程集成
环境用户界面:统一交互入口,降低学习成本
第三代集成开发环境 ICASE 以信息库为核心,目标是实现全自动软件开发。
软件开发工具分类
开发工具:需求分析、设计、编码排错类工具
维护工具:版本管理、逆向工程、文档分析类工具
管理支持工具:项目管理、配置管理、软件评价类工具
7.4 软件过程管理
核心是通过标准化过程提升软件质量与生产效率,是过程改进的理论依据。
软件能力成熟度模型(CMM)
分为 5 个逐级提升的成熟度等级:
初始级:过程无序,成功依赖个人能力
可重复级:建立项目级管理流程,可复制过往成功
已定义级:过程标准化、文档化,组织级统一执行
可管理级:量化度量过程,质量与进度可控
优化级:数据驱动持续过程改进
能力成熟度模型集成(CMMI)
整合多领域过程模型,有两种表示法:
阶段式:与 CMM 框架类似,按成熟度等级分组过程域,适合整体评估
连续式:按过程管理、项目管理、工程、支持 4 大类划分过程域,可单独提升某一过程能力
其他过程评估标准
包含 Trillum 模型(嵌入式领域)、ISO/IEC 15504(国际标准)、我国 SJ/T 11234 行业标准等。
7.5 软件重用和再工程
核心是盘活存量软件资产,降低开发成本与风险。
软件重用
重用层次:知识重用、方法与标准重用、软件成分重用
构件重用模式:组装模型、面向对象类重用(实例重用、继承重用、多态重用)
领域工程:专门生产可复用构件的活动,包含领域分析、构件开发、构件传播三个环节
逆向工程
从现有程序代码反向推导设计文档、架构逻辑的过程,不修改原系统。实现手段包括信息交换分析、反汇编、反编译,抽象层次从低到高分为实现级、结构级、功能级、领域级。
软件再工程
逆向工程的延伸,在反向获取设计信息的基础上,重构系统并生成新的源代码,成本低于全新开发。按改造难度从低到高分为:代码转换、程序结构重构、数据重构、体系结构迁移。
7.6 软件产品线
针对特定领域,共享核心资产的系列产品开发模式,是大规模复用的高级形态。
核心过程模型
双生命周期模型:领域工程(开发核心资产)+ 应用工程(基于资产开发产品),双周期重叠互动
SEI 模型:核心资源开发、产品开发、管理三大活动循环迭代
三生命周期模型:在双周期基础上增加企业工程,统筹全企业产品线资源
产品线建立方式
分为演化式(渐进改造现有产品)和革命式(全新开发)两大类,细分为 4 种:现有产品演化、替代现有产品集、全新演化、全新开发。
7.7 统一建模语言(UML)
标准化的可视化建模语言,覆盖软件全生命周期。
核心构成
构造块:事物(结构、行为、分组、注释)、关系(关联、依赖、泛化、实现)、图
公共机制:规格说明、修饰、公共分类、扩展机制
规则:命名、范围、可见性、完整性、执行规则
4+1 视图
用例视图:描述需求,面向分析与测试人员
逻辑视图:描述功能设计,面向最终用户
实现视图:描述代码构件,面向程序员
进程视图:描述并发与性能,面向集成人员
部署视图:描述硬件拓扑,面向系统工程师
14 种标准图
静态图:类图、对象图、构件图、组合结构图、用例图、部署图、制品图、包图
动态图:顺序图、通信图、定时图、状态图、活动图、交互概览图
7.8 软件形式化方法
以严格数学为基础的开发方法,用于高可靠、高安全领域。
核心特点:数学化描述需求与设计,语义精确无歧义,可通过逻辑证明验证系统性质;缺点是门槛高、可读性差。
净室软件工程(CSE)
形式化方法的工程化实践,核心是通过正确性证明替代部分测试,结合统计测试认证可靠性。核心技术包括增量式开发、盒结构规约(黑盒→状态盒→明盒)、正确性验证、统计测试。
程序验证方法
动态方法:运行程序测试,定位准但覆盖不全
静态方法:代码静态分析、符号执行、定理证明、模型检测,无需运行程序

二、主要考点与考情分析
本章在上午综合知识题中占比约 10-15 分,下午案例分析常以 “开发模型选型”“过程改进” 为主题出题,同时是论文写作的高频命题方向。
1. 上午选择题高频考点
2. 下午案例分析考点
开发模型选型题:给出项目背景(如需求模糊、高风险、快速交付),要求选择合适的开发模型并说明理由、优缺点。
敏捷实践题:结合项目场景,分析敏捷开发的落地难点、改进措施,或对比敏捷与传统模型的差异。
过程改进题:给出企业过程现状,判断 CMM/CMMI 等级,指出过程问题并给出改进建议。
UML 建模题:补充用例图、类图的元素,判断图的类型与适用场景。
3. 论文写作考点
高频命题方向包括:论软件开发模型的选择与应用、论敏捷开发在企业中的实践、论软件过程改进的方法与实践、论软件复用技术的应用。
三、重难点深度解析
1. 易混淆:软件开发模型的边界与选型
瀑布模型 vs V 模型:二者均为阶段式,核心区别是 V 模型将测试活动与开发阶段一一对应,强调测试提前介入;瀑布模型测试集中在编码完成后。
演化模型 vs 增量模型:演化模型是逐步完善整体需求,早期原型不可直接交付;增量模型是分模块交付,每个增量都是可独立运行的完整功能。
螺旋模型 vs RUP:二者均为迭代式,螺旋模型核心驱动力是风险分析;RUP 核心驱动力是用例与架构,更侧重工程化规范。
选型速记口诀:需求稳定选瀑布,需求模糊选原型,高风险选螺旋,面向对象选喷泉,质量优先选 V 模型,快速交付选敏捷 / RAD。
2. 高频易错:CMM 与 CMMI 等级名称辨析
二者等级名称高度相似但不完全对应,是考试高频挖坑点:
注意:CMM 的 “可重复级” 对应 CMMI 阶段式的 “已管理级”,名称不可混淆。
3. 概念辨析:重构、逆向工程、再工程
三者抽象层次与目标不同,是选择题必考辨析点:
代码重构:同一抽象层级的代码结构优化,不改变功能与外部行为,目的是提升代码可读性、可维护性。
逆向工程:从低抽象层(代码)还原高抽象层(设计、架构),只分析不修改,目的是理解系统。
软件再工程:逆向工程 + 重构 + 正向工程,对系统进行全维度改造升级,目的是延长系统生命周期、提升质量。
正向工程:从需求到设计再到编码的常规开发流程。
4. 核心难点:UML 4+1 视图的对应关系
考试常考查 “某类人员关注什么视图”“某类图属于什么视图”,记忆要点:
用例视图是 “1”,是其他视图的基础,对应需求阶段
逻辑、进程、实现、部署是 “4”,分别对应功能、性能、代码、硬件四个维度
类图属于逻辑视图,顺序图可用于逻辑视图与进程视图,构件图属于实现视图,部署图对应部署视图
5. 第二版新增重点:软件产品线
本部分是第 2 版教材新增内容,考查倾向于原文概念记忆。需区分三类过程模型的核心差异:
双生命周期:领域工程与应用工程分离,边界清晰,是最基础的模型
SEI 模型:三大活动循环重叠,无严格先后顺序,强调反馈互动
三生命周期:增加企业工程层级,适合多产品线的大型企业
本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。
欢迎访问 小易撩挨踢