本文为软件工程系列第2篇,整理了完整的软考高级备考资料包,文末免费获取
前言
软件工程在系统架构设计师考试中重要程度仅次于架构设计类章节,综合部分分值约十几分至近20分,案例分析及论文写作也可能涉及。本系列将软件工程14大核心考点系统梳理,每个考点配备速记口诀和做题技巧,帮你快速拿分。
本篇聚焦逆向工程、净室软件工程、需求工程与系统建模(考点三~六),承接第1篇:开发模型与敏捷方法:
- 三、逆向工程与再工程
- 四、净室软件工程
- 五、需求工程
- 六、软件系统建模
三、逆向工程与再工程
逆向工程四个等级
| 等级 | 核心内容 | 类比 |
|---|---|---|
| 实现级⬇️最低 | 语法树、符号、过程 | 最接近代码,反推具体实现 |
| 结构级 | 调用图、结构图 | 小块程序之间的衔接关系 |
| 功能级 | 程序段功能与功能间关系 | 相对完整的功能及衔接 |
| 领域级⬆️最高 | ER图、UML建模 | 到达需求层次,高层分析 |
越靠近实现级越具体,越到领域级越偏需求分析层。
5个易混概念一图辨清
| 概念 | 核心定义 | 关键区分 |
|---|---|---|
| 重构 | 同一抽象级别上转换描述形式 | 模块不变、层级不变,只优化内部 |
| 设计恢复 | 从代码中抽象出设计信息 | 单步操作,提升一个级别 |
| 逆向工程 | 比源代码更高级别上表示程序 | 整体流程,一系列设计恢复的串联 |
| 正向工程 | 恢复信息+改变/重构现有系统 | 把新系统构建出来并提升品质 |
| 再工程 | 逆向工程+新需求+正向工程 | 从旧系统到新系统的完整流程 |
⚠️核心公式:再工程 = 逆向工程 + 新需求 + 正向工程
四、净室软件工程
一句话理解
净室 = 无尘室,防止人的污染(缺陷/Bug)污染到产品。用形式化方法(数学建模)杜绝人为错误。
四大技术手段
| 手段 | 关键词 | 说明 |
|---|---|---|
| 增量式开发 | 控制迭代 | 庞大系统分增量迭代,每轮做若干小增量 |
| 基于函数的设计 | 盒子结构 | 三层视图:黑盒->状态盒->明盒 |
| 正确性验证 | 验证取代测试 | ⭐净室工程核心–用验证取代测试 |
| 统计测试 | 抽样方法 | 大样本用抽样方式解决 |
盒子结构三层视图
| 层级 | 名称 | 类比 | 关注点 |
|---|---|---|---|
| 行为视图 | 黑盒 | 黑盒测试 | 函数整体行为,不关注内部 |
| 有限状态机视图 | 状态盒 | - | 内部状态转换与变迁 |
| 过程视图 | 明盒 | 白盒测试 | 内部细节了如指掌 |
💡做题铁律:看到"数学建模"->形式化方法/净室工程;看到"验证取代测试"->净室工程。
五、需求工程
需求工程全景图
需求工程 ├── 需求开发(前四块) │ ├── 1. 需求获取 - 访谈、问卷等 │ ├── 2. 需求分析 - 整合、判断、建模 │ ├── 3. 形成需求规格 - 形成SRS │ └── 4. 需求确认与验证 - 评审,形成需求基线 │ └── 需求管理(第五块,管理需求基线) ├── 变更控制 ├── 版本控制 ├── 需求跟踪 └── 需求状态跟踪⚠️需求管理管的是需求基线,不是需求开发!
需求三层分级
| 层次 | 视角 | 说明 |
|---|---|---|
| 业务需求 | 高层发起人 | 企业战略、全局视野 |
| 用户需求 | 用户视角 | 不同角色的使用需求 |
| 系统需求 | 计算机/技术视角 | 功能+性能+设计约束 |
QFD三类需求(⭐高频考点)
| 需求类型 | 别名 | 处理策略 |
|---|---|---|
| 基本需求 | 明示需求 | ✅ 必须做 |
| 期望需求 | 隐含需求 | ✅ 必须做(需主动识别) |
| 兴奋需求 | 镀金 | ❌尽量杜绝(浪费资源) |
💡 核心逻辑:前两类必须做好,第三类(镀金)尽量杜绝。
结构化 vs 面向对象建模工具(⭐必考辨析)
| 方法论 | 功能模型 | 行为模型 | 数据模型 |
|---|---|---|---|
| 结构化分析 | DFD(数据流图) | STD(状态转换图) | E-R图 |
| 面向对象分析 | 用例图 | 状态图、活动图 | 类图 |
💡做题铁律:看到DFD/STD/E-R图 ->结构化;看到UML系列图 ->面向对象。
需求变更管理四步流程
① 问题分析与变更描述 -> ② 变更影响分析 -> ③ CCB决策审批 -> ④ 变更实现⚠️最常见的坑:客户要求改->开发人员立马改->客户没想清楚又让改回来。正确做法:先记录、先分析影响、再交CCB审批。开发人员无权直接同意或否定客户变更要求。
六、软件系统建模
全流程一图看懂
现有物理系统 -> 物理模型 -> 逻辑模型 -> 新系统逻辑模型 -> 新系统物理模型 -> 新系统 ①模型化 ②抽象化 ③调整优化 ④正向工程 (逆向工程) (设计实现)| 模型类型 | 对应阶段 | 关注点 |
|---|---|---|
| 物理模型 | 设计阶段 | 技术实现细节(用什么技术、怎么部署) |
| 逻辑模型 | 需求分析阶段 | 业务逻辑和功能(做什么、流程是什么) |
💡 论文写作:系统建模覆盖需求分析和设计两个阶段,面很广,很多主题都适用。
本篇速记小结
逆向工程:再工程=逆向+新需求+正向 净室工程:验证取代测试;数学建模->形式化 需求工程:管理管的是基线;镀金尽量杜绝;DFD->结构化;UML->面向对象 系统建模:逻辑模型对应需求分析;物理模型对应设计阶段📌 本文为软件工程系列第2篇,第3篇将讲解UML与软件设计(考点七~十),欢迎继续关注。
获取完整备考资料包
包含以下内容:
- 软考高级系统架构设计师考试大纲PDF
- 20章知识框架图(含备考优先级标注)
- 近5年真题+详细解析
- 论文模板+范文10篇
- 案例分析答题框架
- AI大模型考点汇总
- 错题本模板(三科通用)
👉获取方式:点击访问资源页
📌 如果觉得有帮助,欢迎点赞收藏,备考路上不迷路!有问题评论区留言,会逐一回复。