需求分析前: 理清楚目标是什么
理解项目背景与目的, 这个一定要理解清楚这个上下文
后来的需求都是为了完成背景设置的目的而努力的
PM找你聊需求,不要忘记这个初心
需求分析:理清楚职责是什么, 边界在哪里
职责与边界, 推荐阅读 DDD
需求分析后: 理清楚系统非功能性需求
非功能性需求是指性能,可用性,监控等等
针对已经分析好的需求场景中, 会碰到哪些我们不愿意碰到的问题, 怎么处理?
正常的通过需求推演出系统详细设计的顺序
一、背景
做这个系统能带来什么样的效益?
二、需求分析
功能需求:
- 按照功能点列出来(通过 业务用例图描述)
非功能需求(对于每个功能点都要考虑以下问题):
- 响应时间
- 可用性(哪些功能需要降级,降级成什么形式)
- 实时性(每个功能点级别:1.绝对实时;2.准实时;3.天基本延迟)
- 准确性(对个别数据丢失或异常是否可以容忍)
正确性需求
- 安全性
- 功能异常监控
- 业务数据异常监控(要监控哪些业务数据)
三、功能分析
业务调研:
- 是否有系统可以实现该功能?是否可以直接用?
- 是否有系统可以作为该系统模块?是否可以直接用?该系统具有哪些功能?不具有哪些功能?该系统的实现方式是怎样的?
- 是否有系统实现了类似的功能?该系统实现方式是怎样的?有什么可以借鉴的?
模块划分(用系统架构图描述):
- 有哪些模块?
- 每个模块要做哪些功能?
- 每个模块的上下游都有哪些?
四、具体设计
模块概要设计:
- 提供哪些接口?需要哪些接口?
- 每个功能点需要用到哪些第三方依赖(基础组件、外部服务)?
- 每个模块有哪些实体,实体的定义是怎样的,实体之间的关系是怎样的?
模块详细设计:
- 提供哪些接口(具体格式)?需要哪些接口(具体格式)?
- 表结构
- 重要功能实现流程图
- 非功能性需求、正确性需求要做哪些、怎么做?