ONEPSOFT | 软考学习知识库
speedrun17|第11章软件需求工程(获取建模验证)速通
一、章节定位
一句话概括:本章讲 " 怎么把用户想要什么这件事搞清楚、画出来、并对齐确认 ",是连接业务与实现的桥梁。
二、本章在讲什么(系统性阐述)
需求工程像盖楼时 " 业主提要求→设计师出户型图→双方签字确认 " 的全过程。它分两半:
核心产出是软件需求规格说明书 (SRS),好需求要满足 " 正确性、完整性、一致性、必要性、可行性、确定性、可修改性、可追踪性 " 八特性。需求没对齐,后面全是返工。
三、教材原文精摘(原封不动,逐子章节全覆盖)
11.1.1 需求层次 原文:软件需求是多层次的,包括业务需求、用户需求和系统需求。业务需求反映企业或客户对系统高层次的目标要求;用户需求描述用户的具体目标或必须能完成的任务;系统需求从系统角度说明软件需求,包括功能需求、非功能需求和设计约束。
11.1.4 需求工程过程 原文:需求工程含需求开发(获取、分析、定义/规格、验证)与需求管理(基线、变更、跟踪)。开发最终文档评审批准即定义需求基线,作为客户与开发者间约定。
11.2.1 用户访谈 原文:用户访谈是最基本手段,形式分结构化(事先准备问题)与非结构化(粗略想法);最有效为二者结合。
11.4 分析模型核心 原文:SA 方法分析模型的核心是数据字典,围绕这个核心,有三个层次的模型,分别是数据模型、功能模型和行为模型。在实际工作中,一般使用 E-R 图表示数据模型,用 DFD 表示功能模型,用状态转换图 (STD) 表示行为模型。
11.5.1 用例图 原文:用例图是面向对象方法中用例模型元素,包括参与者、用例、通信关联;描述用户视角的系统服务,是需求合成技术。
11.6 原型 原文:原型是一种与严格定义法截然不同的需求定义方法。从满足基本需求的原型系统开始,允许用户提改进要求,迭代循环。" 并非所有的需求都能在系统开发前被准确地说明 "" 原型提供了克服项目干系人交流困难的手段 "。
11.6.2 SRS 好需求特性 原文:好需求特性包括正确性、完整性、一致性、必要性、可行性、确定性、可修改性、可追踪性。
11.7 需求验证 原文:需求验证也称需求确认,活动为确保 SRS 正确描述预期系统行为和特征;软件需求从系统需求等正确推导;需求完整、高质量;表示一致;为后续设计、实现、测试提供足够基础。
11.8.2 需求跟踪 原文:建立与维护 " 需求—设计—编程—测试 " 一致性。正向跟踪:产品需求规格中每个需求是否在后继成果找到对应点;逆向跟踪:设计文档、代码、测试用例等是否都能在需求规格中找到出处。两者合称双向跟踪,需建立维护需求跟踪矩阵。
逐段讲解:
四、核心知识树
第 11 章 软件需求工程
├── 需求层次
│ ├── 业务需求
│ ├── 用户需求
│ └── 系统需求 (功能/非功能/约束)
├── 需求开发
│ ├── 获取 (访谈/问卷/原型)
│ ├── 分析建模 (DFD/E-R/STD/用例)
│ ├── 规格 (SRS)
│ └── 验证 (评审/测试)
└── 需求管理
├── 基线
├── 变更
└── 跟踪 (双向矩阵)
五、知识脑图总结
思维导图(结构化呈现)
六、关键概念速解
| 概念 | 教材定义(原文关键词) | 大白话速解 | 考试怎么考 |
|---|---|---|---|
| 业务需求 | 高层次目标要求 | 老板的战略意图 | 选择:三层需求区分 |
| 用户需求 | 用户必须完成的任务 | 具体要干啥活 | 选择:层次归属 |
| 功能需求 | 开发人员必须实现的功能 | 系统能干啥 | 选择:系统需求子类 |
| 非功能需求 | 系统必备属性/品质 | 快不快、稳不稳 | 选择:与功能需求区分 |
| DFD/E-R/STD | 功能/数据/行为模型 | SA 三件套 | 选择:三图对应三模型 |
| SRS | 需求开发产物 | 需求 " 合同 " | 选择:八特性 |
| 需求跟踪矩阵 | 双向跟踪一致性 | 需求溯源表 | 选择/案例:变更影响分析 |
七、记忆口诀 & 类比
八、易混淆点对比
| 易混项 A | 易混项 B | 核心区别 |
|---|---|---|
| 业务需求 | 用户需求 | 业务=战略目标;用户=具体任务 |
| 功能需求 | 非功能需求 | 功能=系统做什么;非功能=多快好省等属性 |
| 需求验证 | 软件测试 | 验证在开发早期确认 SRS 对;测试在实现后查缺陷 |
| 结构化分析 SA | 面向对象分析 OOA | SA 用 DFD/E-R/STD;OOA 用用例图/类图 |
| 正向跟踪 | 逆向跟踪 | 正:需求→成果;逆:成果→需求 |
九、与其他章节的关联
十、考试出题方式