说明
讲师:邱岳(二爷)
1. 什么是用例(Use Case)
- 参与者:以某种方式与系统交互的人或事。
- 用例:系统为其参与者所执行的有价值操作。
用例的特征:
- 用例不是功能或特性,用例包含一个对参与者来说有完整意义的过程。
比如ATM机,取款,转账,存款是有意义的用例。登录、键盘输入等不是。 - 用例解释系统如何向利益相关者 / 参与者提供功能性价值。
- 用例通过使用者视角描述系统与其互动的方式,从而观测出系统实现。
特性:人们可以取钱 用例:取钱
特性:系统可以自动选择吐钞面值组合 用例:取钱 - 用例不是用例图,用例的大部分内容会在用例文档中描述出来。
- 没有大量交互的产品很难通过用例来表达,比如策略型产品、AI类产品的引擎、业务接口描述等等。
- 用例缺乏约束性描述,还需要【非功能性需求】等描述。
- 我们需要一个组织 UC 的整体业务文档,可以用 PRD 来做这件事情。
1.1 用例的参与者
- 参与者不会是【人】,而是【角色】,一个人可以有多个身份。
- 参与者不一定是【人】,也可能是系统。
- 先写多,再合并和抽象。
- 要抽象,但不要过度泛化。
- 特殊参与者:系统/时间
拍卖的用例图:火柴人表示角色,一般左侧放重要的角色,右边放次重要的角色。
1.2 用户的粒度
- 系统为参与者提供的具备完整价值的服务。(关注价值而非功能)
【查看商品详情】是不是一个用例?
答案:看情况。教科书说不是一个用例,因为对用户没有什么价值,购买才能使。当查看商品详情有比较明确的终点和目的的时候,是可以当做一个用例的。比如商品详情里面的放大缩小图片,比如购买商品详情里面,作为部分的商品的时候,比如商品详情里有商品使用教程。 - 这个用例是一个完整的具有可销售价值的服务吗?老板测试?
比如老板问,你整天忙着干嘛,你说一天忙着登录,那老板就疯了。
用例: 用户管理 vs. 修改用户密码
99% 的情况用管理订单。如果订单很复杂,比如淘宝的订单系统,那么就需要单独拆开。 - 以主动的逻辑命名
风险评估× vs. 评估风险 ✔️ - 划定系统边界,什么是边界内的? 外的?
用例:ATM机
2. 用例文档包含的内容
- 标题作者修改历史
- 简要描述
- 利益相关者 / 涉众 / 参与人及其相关利益
- 事件流:进本流程 / 扩展流程 / 异常流程
- 辅助图例
- 前置条件 / 后置条件
- 术语表(*)
- 界面图例(*)
- 限制条件 / 特殊需求 / 策略(*)
2.1 用户文档的核心 – 事件流
-
用例文档中最重要的部分是【事件流】,描述如何通过交互传递用例所承诺的价值。
-
用例文档是一个被严格流程化规范化的故事,它像一个【词牌名】。
用例开始(入口)–> {用户发起请求 --> 系统校验请求 --> 系统处理 --> 系统反馈 } --> 用例结束 -
基本流 / 扩展流 / 异常流
例子基本流:坐 8 路汽车,江二村下车;确定 6 路清澈还营业,做 6 路汽车到地铁 2 号线 江陵路站; 地铁出来门口吃点东西。
例子扩展流:如果不饿不想吃东西,也可以旁边星巴克做一会儿。
例子异常流:如果 6 路汽车不运营了,就直接打车。 -
基本流中没有任何分支,没有如果,只有顺序描述,预期会成功的路线。
-
即使啰嗦,也要严格按照 1 2 3 4 步骤编写,可以帮助自己快速切换视图,注意主语。
-
基本流必须完整,不能引用其它扩展流。
-
事件流的故事描述,不应该有交互和界面相关的元素(也不一定)
用户点击提交按钮 ×
用户向系统请求提交表单 ✔️
也不一定的例子(公司没有交互设计师时) -
没有具体技术实现
- 系统将销售记录生成 SQL 并执行,写入数据路 ×
- 系统记录销售 ✔️
2.2. 用例文档的核心 – 事件流
一起写一个: ATM 机取钱的事件流
基础流程
- 用例开始
- 系统展示插卡教程
- 用户插入银行卡
- 系统校验银行卡合法
- 系统展示输入密码组件
- 用户输入密码
- 系统校验密码正确
- 系统展示服务项
- 用户选择取款服务
- 系统展示取款界面
- 用户直接选择预定的取款金额
- 用户提交提款申请
- 系统校验金额合法
- 系统登记取款记录
- 系统支付现金
- 用户取走现金
- 系统确认用户没有其它业务
- 系统退还卡片
- 用例结束
扩展流程
-
4a. 系统无法识别银行卡
4a1. 系统提示用户,银行卡错误
4a2. 系统推出卡片
4a3. 用例结束 -
4b. 系统识别到挂失银行卡
4b1. 系统提示用户,银行卡有误
4b2. 系统发出警报,并录下用户脸庞
4b3. 系统锁住 ATM 小房间
4b4. 用例结束 -
4c. 系统识别卡片插反
4c1. 系统提示用户,卡片插反
4c2. 系统推出卡片
4c3. 系统播放正确的卡片插入样式
4c4. 用户重新插入卡片,若未插入卡片,用例结束
4c5. 执行用例4 -
7a. 系统验证密码不正确
7a1. 系统提示用户密码错误,提示用户剩余密码尝试次数
7a2. 系统展示密码输入界面
7a3. 用户输入密码
7a4. 系统扣除密码尝试次数 -
- 7a5. 系统校验密码正确
7a5a. 系统校验密码错误
7a5a1. 判断尝试次数用尽
7a5a2. 锁卡
否则 执行 7a1
7a6. 继续执行步骤 8
- 7a5. 系统校验密码正确
2.3. 用例文档的核心 – 前后置流程
- 系统能够感知和校验的状态描述
- 前置:确保系统在正确起点(且)
比如:与银行系统连接的网络是可用的;用户被授权进行此次操作。 - 后置:确保系统正确的结束(或)
比如:ATM 向用户返回卡及现金,并记录本次提款事务到用户账本上;ATM 未向用户返回现金,本次支付失败时间登记在账本上。
2.4 用例文档的核心 – 辅助图例 & 界面图例
2.5 限制条件 / 特殊需求 / 策略
- 策略:向不活跃用户发送提醒,时机和用户就是策略。
- 限制:如拍卖,单日提现不得超过 5000.
- 特殊:如敏感词审核。
2.6 术语表
2.7 进阶
- 用例之间的关系
- 参与者之间的关系
- 用例图
感悟
感觉二爷上课经常会关注同学们的留言,并引用其中的话题。产品经理要协调利益相关者的利益,估计这是产品经理的特征之一。