一、为什么写需求用例
流程图为需求用例提供了关键路径,而需求用例则是对业务场景的全面还原。本文将从以下四个方面阐述用例的信息:
- 用例的定义
- 用例的粒度
- 用例的例子
- 用例的关键点解释
我写需求文档有几大准则,是需要时刻铭记和实践的:
- 字不如表,表不如图;
- 使用最少的字去描述,多利用各种符号;
- 排版要舒适,不能反人类;
- 尽量无歧义、准确、全面。
二、什么是用例
用例(use case)是系统如何反应外界请求的描述,是一种通过用户的使用场景来获取需求的技术。所以用例可以简单的理解成业务场景、使用场景。
三、用例的粒度
我们经常在拆解用例的时候,会陷入一个迷思:究竟一个用例要按照什么粒度进行拆分呢?什么样大小的才是一个合适的用例?
用徐峰老师在《有效需求分析》一书中做的用例定义来说:“用例即业务场景,而一个完整的业务场景应该是独立的、可汇报的、可暂停的单元。”
四、一个完整的用例
下面用“取钱”的例子,来展示一个完整的用例要怎么写清楚。
PS:以下为个人的需求模板,每个公司对于需求的描述不尽相同,这里旨在表述清楚用例的关注内容,不做模板的规范定义,有不同观点欢迎探讨交流。
用例编号 | UC-001 |
---|---|
用例名称 | 取钱 |
功能描述 | 作为用户,希望通过使用ATM机,以便于取出一定金额的钱。 |
用户 | 客户 |
优先级 | 高 |
使用频率 | 高 |
主干流程 | 1. 用户输入银行卡密码。 2. 用户从系统提供的选项中,选择“取钱”。 3. 用户输入待取钱金额。 4. 系统从出款口递出用户需要的取钱数量。 5. 系统请求用户输入取钱的金额。 |
后置条件 | 系统应确保用户银行卡里的约大于应取出的金额。 |
异常流程 | 密码输入错误流程 1. 用户输入错误的银行卡密码。 2. 系统返回密码输入错误提示。 超出取钱限额流程 1. 用户输入金额超出账户已有金额。 2. 系统返回取钱超出限额提示。 |
原型设计 | 原型图略 |
数据字段 | 交易编号:唯一,ISNOTNULL ATM机编号:ISNOTNULL 银行卡账号:ISNOTNULL 银行卡密码:ISNOTNULL 用户账号:ISNOTNULL 用户姓名:ISNOTNULL 取出金额:ISNOTNULL 取出时间:ISNOTNULL |
前版用例 | 若用例为优化或升级,则需链接该需求的前一版本的用例,可进行适当文字描述。 |
相关用例 | 用例对其他用例有影响时,需关联,如后台需求用例会和前端需求用例联系,可进行适当文字描述。 |
需求规则 | 需求中若涉及规则,则需描述清楚,可配合实例,注意考虑极限情况。 |
五、用例关键字段解释
功能描述
是对一个用例的概括描述,表述清楚用户和系统需要完成的功能是什么。
优先级
分为4个等级:紧急,高,中,低。根据实际的业务需求来定义用例的优先级。
使用频率
分为高,低。代表该用例在实际的用户操作中属于高频操作还是低频操作,高频操作通常都是关键重要的操作。
前置条件
用户在执行用例之前,系统需要检查什么状态。
主干流程
用例里的流程描述,都是以用户意图为角度来描述的,体现的是用户与系统之间的交互过程。很多时候,我们会陷入一个描述的误区,太过细致的描绘了人机界面,和用户的操作动作,使得流程的描述过于细致和繁琐,不易阅读和提取关键信息。所以,在描述流程中,一定要写明用户做什么,系统做什么。
后置条件
用户在结束用例之前,系统需要检查已确保什么状态。
异常流程
异常流程是在做产品设计过程中是非常重要,但又很容易被忽略的过程。用例分析中应多考虑一些异常情况流程,减少需求评审时的尴尬时刻。
六、布局
列表页面:
各查询项为空,展示占位文本;
后台分页;
默认每页显示10项结果;
列表中可查看所有该登录账户有权限查看的数据;
默认按更新时间排序。
新增页面:
各输入项为空,展示占位文本;
默认选择….
修改页面:本条数据上次成功保存内容。
数据页面:
展示当前实时数据;
默认展示最近7天数据趋势图。
UC000.2:…
UC000.3:…
七、补充说明
需要用户输入的数据项,例如筛选、新建时的输入项
每个输入项需要考虑:
字段名称(简洁、易于理解,注意与概念相似字段进行区分)
是否必填(填写与否有何影响?)
使用组件(从规定的组件库中选取,适当描述组件性质)
占位文本(Input字段,输入框中的占位文字,提示用户可输入的内容)
数据来源(可选选项的来源)
权限限制(用户权限对本字段有无影响?)
字段单位
字段类型(整数、小数、字母、符号等)
字段长度(≤?汉字)
字段范围(数值范围,可否为0?最大为?小数是否自动补齐?)
数据格式
搜索特点(模糊搜索)
可选选项(1- …;2-…)
解释说明(是否需要文字提示用户字段含义或用法)
极限情况(初始状态、极限状态)
可否重复(能否与其他条目的同一字段重复)
可否修改(修改后对本条数据、或其他系统的数据的影响、对客户端的影响;什么时候可以修改)
是否联动(与其他数据、与其他系统、与客户端)
是否排序(排序规则)
展示预览(为空时;输入时;输入完;查看时;列表中;客户端;极限时)
只读字段(不同情况下怎么展示只读)
错误提示(为空或不满足约束条件时的提示语,提示方式)
备注说明
3.4.2 展示/列表项
用户在列表中查看或展示给用户,不能进行操作的数据项
每个展示项需要考虑:
字段名称
字段来源(新建、其他系统)
初始状态(列表、预览、数据报表…)
分页类型(前台or后台,默认一页几条数据)
无数据时(如何展示?)
展示样式(多种情况:为空时、多个值、很长时)
排序规则
备注说明