5.2 软件需求

一句话讲明白

需求就是"把用户脑子里那团模糊的愿望,翻译成开发团队能照着干、验收时能对照查的书面约定"。

生活类比

装修房子时,三种话对应三种需求:

至于业主没说但一看到就惊喜的"中岛下面藏个洗碗机" → 意外(兴奋)需求。

正经定义

软件需求是指用户对系统在功能、行为、性能、设计约束等方面的期望。按 IEEE 标准:需求是用户解决问题或达到目标所需的条件或能力,是系统或系统部件要满足合同、标准、规范或其他正式规定文档所具有的条件或能力,以及反映这些条件或能力的文档说明。

拆解与流程

一、需求的三个层次(从目标到细节)

层次 谁说的 回答什么 例子
业务需求 投资人、客户高管、市场/产品策划部门 为什么做,总体目标 提升客户满意度、把坏账率降到 1%
用户需求 实际使用者 用户能用它做什么,要体现业务价值 用户能在线提交报销并查看进度
系统需求 系统角度 软件必须有什么 功能需求 + 非功能需求 + 约束

系统需求 = 功能需求(也称行为需求)+ 非功能需求 + 约束:

二、质量功能部署 QFD(三类需求)

QFD 是一种将用户要求转化成软件需求的技术,目的是最大限度提升用户满意度。

类型 定义 不做的后果 记忆
常规需求 用户认为系统"应该"做到的功能或性能,实现得越多越满意 不满意 理所应当
期望需求 用户想当然认为系统应具备、但说不清楚的功能或性能 会感到不满意 不说也该有
意外需求(兴奋需求) 用户要求范围外的功能或性能,实现更开心,不实现也不影响购买决策 无所谓,主动权在开发人员手里 惊喜彩蛋

意外需求控制在开发人员手中:可以做更多意外需求换高满意度和高忠诚度,也可以出于成本/周期考虑一个都不做。

三、需求获取

需求获取是确定和理解不同项目干系人对系统的需求和约束的过程,"看着简单、做起来很难"——用户往往给不出完整正确的原始需求。

常见方法:用户访谈、问卷调查、采样、情节串联板、联合需求计划(JRP)。

四、需求分析

获取到的需求是杂乱、有重复、有矛盾的,不能直接做设计依据。好的需求应具备:无二义性、完整性、一致性、可测试性、确定性、可跟踪性、正确性、必要性。

1)结构化分析 SA:核心是数据字典,围绕它有三层模型:

模型 用什么图
数据模型 E-R 图(实体、属性、实体间关系)
功能模型 DFD 数据流图
行为模型(状态模型) STD 状态转换图

DFD 四种基本元素:数据流(箭头)、处理/加工(矩形框)、数据存储、外部项(数据源/数据终点,圆角框或平行四边形)。建模步骤:明确目标确定范围 → 建立顶层 DFD → 构建第一层分解图 → 开发 DFD 层次结构图 → 检查确认(父图出现的数据流必须在子图中出现;一个处理至少有一个输入流和一个输出流;一个存储必定有流入和流出的数据流;一个数据流至少有一端是处理端)。

数据字典:对数据项、数据结构、数据流、数据存储、处理逻辑进行定义和描述,是分析阶段的工具,最主要作用是给 DFD 上每个元素加以定义和说明。

2)面向对象分析 OOA:模型由 5 个层次(主题层、对象类层、结构层、属性层、服务层)和 5 个活动(标识对象类、标识结构、定义主题、定义属性、定义服务)组成。基本原则:抽象、封装、继承、分类、聚合、关联、消息通信、粒度控制、行为分析。两种对象类结构:分类结构(一般与特殊)、组装结构(整体与部分)。

建模语言 UML 的图与视图是画图工具,详见 5.3 软件设计。

五、需求规格说明书 SRS

SRS 是需求分析阶段的最终结果,是软件开发过程中最重要的文档之一,任何规模和性质的软件项目都不应缺少。按 GB/T 8567,SRS 包括 8 部分:范围、引用文件、需求、合格性规定、需求可追踪性、尚未解决的问题、注解、附录(另 GB/T 9385 给出详细写作大纲)。

需求验证(需求确认):通过需求评审和需求测试验证 SRS 正确性——系统分析阶段发现并修复错误最省钱。

六、需求变更

变更已成常态(获取不完整、理解有误差、业务变化),但无控制的变更会让项目陷入混乱。一旦确定需求基线,所有建议的变更都必须遵循变更控制过程:

flowchart LR A[识别出问题] --> B[问题分析和<br/>变更描述] --> C[变更分析和<br/>成本计算] --> D[变更实现] --> E[修改后的需求]

七、需求跟踪

目的是建立与维护"需求—设计—编程—测试"之间的一致性。

考试怎么考

易混辨析

对比 业务需求 用户需求 系统需求
视角 组织/投资方 使用者 系统
关键词 目标、为什么 能做什么 功能+非功能+约束
对比 正向跟踪 逆向跟踪
方向 需求 → 后继成果 后继成果 → 需求
回答 需求有没有被实现 做的东西有没有依据

一秒记忆

"业务说为什么,用户说做什么,系统说怎么定;常规该有、期望不说也有、意外是彩蛋。SRS 八块砖,变更找 CCB,跟踪双向加矩阵。"

相关