本章目录:
一、节概述
在软件系统开发的全过程中,需求工程
是最基础也是最关键的阶段,它直接关系到项目是否能够准确、完整地满足用户需求。本节在软考高级资格考试中考频极高,题型以选择题与案例分析题为主,考查考生对需求获取、分析、规格说明、变更管理与跟踪等全过程的理解与掌握。
二、知识详解
1. 软件需求的三层结构
软件需求根据抽象层次可划分为:
需求类型 | 描述 |
---|---|
业务需求 | 表达组织目标,说明软件的**“为什么”** |
用户需求 | 从用户角度描述系统必须提供的服务和功能,说明**“做什么”** |
功能需求 | 针对系统具体应实现的功能与特性,说明**“怎么做”** |
🔺考试常考点:识别某一需求描述属于哪一层次。
2. 需求工程(RE)五大阶段
需求工程的目标是通过系统化方法,确保系统开发与用户期望一致。它包括以下五个阶段:
需求获取
:收集潜在用户对系统的期望。需求分析
:澄清冲突、分类整理、提取关键需求。需求规格说明
:编写形式化文档,即SRS。需求确认与验证
:与用户核对,确保准确无误。需求管理
:维护需求的一致性和可控性,应对需求变更。
📌 口诀记忆:获取-分析-规格-验证-管理
。
3. 软件需求规格说明书(SRS)
SRS 是需求工程的关键产物,指导后续设计、开发、测试等环节。其内容包括:
功能需求
:系统必须执行的行为。非功能需求
:性能、安全、可靠性、易用性等。约束条件
:技术或组织方面的限制,如平台、语言、法规等。
✅ 设计约束
:如必须使用某种数据库。
✅ 过程约束
:如必须遵循某种开发流程。
📌 批准的SRS 是连接需求开发与需求管理的桥梁。
4. 需求获取的方法与步骤
常用方法:
方法 | 特点 |
---|---|
用户面谈 | 获取个性化需求,面对面交流 |
专题讨论会 | 集思广益,协同澄清需求 |
问卷调查 | 适用于用户群体广泛场景 |
现场观察 | 理解业务流程与现状 |
原型化方法 | 快速构建可视化样品收集反馈 |
头脑风暴法 | 激发创新,提出潜在需求 |
获取步骤:
- 开发业务模型
- 定义项目范围与高层需求
- 识别用户角色与代表
- 获取具体需求
- 确定业务工作流
- 需求整理与总结
🔺 特别注意:原型化方法同时属于获取与确认阶段常用工具。
5. 需求管理与变更控制
需求管理
是确保需求始终可控、可追踪、可验证的保障过程。
关键内容:
变更控制
:如何处理需求变更版本控制
:需求随时间的版本演进管理需求跟踪
:确保各阶段成果与需求一致
需求变更流程:
- 识别问题
- 问题分析与变更描述
- 变更影响与成本分析
- 实施变更
- 修改后的需求记录
6. 变更控制委员会(CCB)
- 由管理人员、技术专家、用户代表组成。
- 主要职责是决策是否接受需求变更。
- 并不负责具体实现。
🔺 操作步骤:
- 制定决策
- 交流与通知相关方
- 协商修改交付目标
📌 典型考点:识别 CCB 的作用边界(只决策,不执行
)。
7. 需求跟踪与跟踪矩阵
目的:确保系统的设计、编码、测试均对齐最初的需求。
跟踪方式:
正向跟踪
:从需求到设计、实现、测试;逆向跟踪
:从测试或实现结果反查需求来源;双向跟踪
:双向结合,确保全流程一致性。
📌 工具:需求跟踪矩阵
,用于建立各阶段工作成果之间的映射关系。
三、关键点提炼
知识点 | 高频考察内容 |
---|---|
三类需求划分 | 业务/用户/功能的含义及区分 |
五大阶段 | 获取、分析、规格、验证、管理 |
SRS内容组成 | 功能/非功能/约束的识别 |
获取方法 | 原型法、头脑风暴、面谈等比较 |
CCB作用 | 判断其职责是否正确 |
双向跟踪 | 正逆结合,建立跟踪矩阵 |
四、考试提示
🎯 出题模式:
- 判断某种描述属于哪类需求;
- 区分需求工程各阶段的活动;
- 比较获取方法的适用性;
- 判断变更流程是否合理;
- 案例分析中识别跟踪手段或管理方式。
⚠️ 易错陷阱:
- 把用户需求误认为是功能需求;
- 将原型法误解为仅用于界面设计;
- 忽视CCB的非执行性质;
- 把正向跟踪当成唯一手段,忽略逆向检查作用。
五、总结与建议
需求工程
贯穿软件项目生命周期,具有牵一发而动全身的重要作用。掌握其各阶段逻辑、方法及关键产出,是架构设计师考生的必备能力。
✅ 建议如下:
- 熟记五阶段内容及顺序;
- 熟悉各类需求的判别方法;
- 整理需求获取方法优缺点,形成比较表;
- 多做跟踪矩阵相关题目,加深理解;
- 案例练习中思考角色责任、变更流程及沟通机制。
📌 切记:需求工程的关键在于沟通、文档化与持续一致性维护,在系统架构设计中尤为重要!