Skip to content
难度基础(★)
建议时长45分钟

7.4.2 需求分析的基本概念

本课核心知识点整理
本课核心知识点手绘流程图(SVG)

需求分析的对象是“问题域”

问题域指用户业务中需要被系统解决的那部分现实问题。需求分析要做的是从现实问题出发,把业务语言、用户表达和约束条件整理成系统能理解的规格。

问题需求分析中的含义
要解决什么业务问题?问题域识别
谁会使用系统?用户和外部实体识别
系统要提供什么服务?功能需求
服务要达到什么质量?非功能需求
实现时受什么限制?设计约束

功能需求、非功能需求、设计约束

类型回答的问题例子
功能需求系统要做什么发放工资、打卡、查询订单、生成报表
非功能需求系统做得怎样响应时间不超过 3 秒、支持 100 用户并发、存储容量、计算速度
设计约束系统必须在什么限制下实现指定数据库、指定操作系统、符合财务规则、法律法规和规章制度

课堂给出一个非常实用的判断:非功能/性能需求常带明显数字化特征,例如响应时间、并发数、容量、速度、精度等。

功能需求和非功能需求的辨析

题干类型理由
每月特定时间发放员工工资功能需求描述系统要完成的业务功能
响应时间不超过 3 秒非功能需求性能指标,有数字约束
允许 100 个用户同时查询工资非功能需求并发能力,属于性能要求
计算精度符合财务规则设计约束受规则制度约束

非功能需求不是“不重要的需求”。相反,它经常影响架构设计。高并发、高可用、安全合规这些要求,会直接改变系统设计方案。

需求要能被验证

好的需求应尽量明确、可检查。比如:

不佳表达更好的表达
系统要很快95% 查询请求响应时间不超过 2 秒
系统要安全所有管理员操作必须记录审计日志,日志保留不少于 180 天
系统要好用新用户在 5 分钟内可完成首次订单录入

能够被测试和验收,是需求从“愿望”变成“规格”的关键。

例题

单选
某财务系统需求中,属于功能需求的是:
单选
下列属于非功能需求的是:

自查要点

  1. 需求分析为什么要从问题域开始?
  2. 功能需求和非功能需求分别回答什么问题?
  3. 为什么响应时间、并发数通常属于非功能需求?
  4. 设计约束和非功能需求有什么区别?
  5. 为什么需求要尽量写成可验证的形式?