<aside>
💡 需求
软件系统通过满足用户的期望来解决用户的问题
IEEE Spec.
直接 + 间接 + 文档化
- 用户为了解决问题或达到某些目标所需要的条件或能力
- 系统或系统部件为了满足合同 、标准、规范或其他正式文档所规定的要求而需要具备的条件或能力
- 对 1 或 2 中一个条件或一种能力的一种文档化表述
</aside>
需求开发的目标
- 需求 — 用户的一种期望,源自现实又高于现实
- 需求是多变和可调整的,项目可以根据实际情况调整需求的实现程度
- 问题域 — 现实世界运行规律的一种反映
- 需求的产生地 & 解决地
- 最终产品在现实中部署,它能部分影响问题域,但不能任意改变现实
- 尊重问题域,不能随意修改现实世界的实际情况
- 问题的解决
- 基础:模拟与共享现象
- 方法:直接与间接
- 解决方案:需求规格说明
- 规格说明 — 软件产品的方案描述,以其运行机制为主要内容
- 不是需求,但实现需求
- 不是问题域,但需要与问题域互动
- 关注对外交互;从软件产品的角度描述,但不能太多涉及内部构造
1. 需求的层次性
目标 → 业务需求 ↔ 解决方案与系统特性
任务 → 用户需求 ↔ 问题域知识
系统行为 → 系统级需求 ↔ 需求分析模型
1.1 Business Requirement, BR 业务需求
系统建立的战略出发点
描述了组织为什么要开发系统
- 需要描述系统高层次的解决方案
- 定义系统应该具备的特性
- 1、2 说明了系统为用户提供的各项功能,限定了系统的范围,帮助确定边界
1.2 User Requirement, UR 用户需求
执行实际工作的用户对系统所能完成的具体任务的期望
描述了系统能够帮助用户做什么
- 对所有的用户需求,都应该有充分的问题域知识作为背景支持