需求分析与系统设计阅读笔记
执行指引——
- 针对“方案级需求”,需要首先“澄清问题”:
- 想要解决谁的、什么问题?
- 用户现在遇到这个问题会采用什么样的解决方案?
- 这个问题中有需要进一步细化和明确的概念吗?
- 了解问题后,接着了解背景细化以下内容:
- 场景(功能):
- 该需求谁使用
- 什么时候使用
- 具体怎么做
- 术语(数据):
- 有需要澄清的业务术语吗
- 它们的格式是什么?
- 环境(质量):
- 不做谁生气
- 多久生气一次,为什么?
- 多久用一次
- 最后,建议并确定解决方案:
- 要解决这个问题有哪些可行的方案?
- 这些方案的实现成本分别有多大?
- 你觉得哪种最合适?
- 有其他需要挖掘的需求吗?
组织应用类软件系统需求全景图
- 价值需求
- 目标场景
- 干系人关注点
- 干系人阻力点
- 详细需求
- 行为需求(功能需求)
- 数据需求
- 非功能需求
价值需求
【价值需求】就是从黑盒子视角回答:
- 整个软件系统为客户解决了什么问题、创造了什么机会?
- 对于系统而言,最关键的干系人有哪些?
- 各个重要干系人对系统的关注点是什么?有哪些关心?
价值需求分析关键在于执行好目标分析、干系人识别、干系人分析三个任务。
详细需求
【详细需求】就是从灰盒子的视角完成:
- 功能需求:为了给客户提供业务、管理、维护支持,需要提供哪些功能?
- 数据需求:系统所涉及的问题域中有哪些数据,之间是何关系?
- 非功能需求:所处的业务环境会带来哪些约束和质量要求?
如何梳理详细需求?
- 子问题域分解:可以根据实际需要选用层次图、构件图、数据流图等来呈现分解结果。进而定义各子问题域间的业务接口。
- 功能主线(从“工作流”线索分析):
- 业务支持,就是从灰盒子视角回答四个问题:
- 根据目标和干系人关注点,系统涉及哪些业务流程?
- 这些业务流程是如何定义的,需要优化吗?
- 系统对流程中所有业务场景都要支持吗?还是只支持一部分?
- 有哪些业务场景的工作经验需要模型化?
- 管理支持,就是从灰盒子视角回答三个问题:
- 管理层用户希望通过系统来实现哪些管理、控制需求?
- 希望通过系统做哪些辅助决策?
- 要实现这些管理、控制、决策支持,需要哪些信息?用什么方法获得它们?
- 维护支持,就是从灰盒子视角回答两个问题:
- 有谁会需要对系统进行维护?
- 他们需要执行哪些维护任务?
- 数据主线(从“信息流”线索分析,也包括“资金流、物流”),就是从灰盒子的角度回答三个问题:
- 系统相关的问题域中有哪些业务数据?
- 它们之间是什么样的关系?
- 每个业务数据的具体构成是怎么样的?
- 非功能主线,就是从灰盒子的角度回答一个问题:
- 系统相关的外部环境会带来什么样的约束和质量要求”,比如系统部署、应用环境。