产品经理必备知识——用例概念
用例的概念非常繁琐,为了把用例的知识简化,我们可以把用例用分层的方式来表达。
一、什么是用例
用例(Use Case)其定义如下:
用例是对参与者发起的一组动作的描述,系统响应该组动作,并产生可观察到的显著结果。
在官方文档定义的概念是这样的:用例定义了一组用例实例,其中每个实例都是系统所执行的一系列操作,这些操作生成特定主角可以观测的值。
一个用例就是参与者交互的,并且给参与者提供可观测的有意义的结果的一系列活动的集合。这个说法应当更清楚一些。所谓的用例就是一件事情,要完成这件事情,需要做一系列的活动;而做一件事情可以有很多不同的办法和步骤,在UML中称之为用例场景。一个场景就是一个用例的实例。
比如,用户在银行办理贷款,这其中,用例就是办理贷款,参与者就是用户,系统就是银行系统,而显著结果就是办理贷款的成功或失败。该用例是由用户发起的,且该用户在系统上做了一系列动作,这一系列动作概括出来就是办理贷款。
再如,用户登录系统也是一个用例,这个用例的参与者是用户,参与者登录系统,系统通过用户输入的账号和密码进行验证,显著的结果就是登录成功或者登录失败。
再举一个复杂的例子,例如你想做一顿饭,你需要完成煮饭和炒菜两件事情,这两件事情就是用例。而煮饭这件事情是可以有不同做法的,你可以用电饭锅煮,也可以用大锅煮,这两种不同的场景就是两个实例。而同样是电饭煲,如果是糙米,你可能需要先淘米,再下锅;如果是精米,你可以省掉淘米步骤直接下锅。这是用例在不同条件下的不同处理场景。
1.是用户在系统上做的事
用例概念虽然不容易理解,但是其实就是在表述一件事,这件事就是“用户在系统上做了什么”
1)事情是任务或动作
事情可以是人的一项任务,比如说办理银行贷款,淘米炒菜,这些都是任务。当然,事情可以是人的动作,比如用户登录、用户输入密码等,这些也是用例。
2)表述为“动词+宾语”
我们可以用“动词+宾语”描述,这里“动词”强调做了什么,如登录系统、审核贷款、查看账户、申请贷款等。宾语就很好理解了,如系统、贷款、账户都是宾语。
2.用例的两种表达方式
用例可以用用例图表示,也可以用用例故事来表述。
用例图如图所示,申请贷款的用例图表达的是用户在银行系统申请贷款,登录的用例表达的是用户在外卖平台登录。用例和用例图常常一同被提及,原因是发明人提出了用例概念,并用用例图表达这个概念。因此,我们所说的用例也包含用例图。
无论是用例、用户故事还是用户要做的事,其表述的内容都是一样的,我们只需要选择一个便于沟通的说法就可以了。
二、用例的特点
1.有宽度地梳理业务
要有宽度地梳理任务,就要有层次地进行梳理,要不断把大的需求有层次地拆成小的需求。虽然用例的定义中没说用例的层次,但是用例是可以分层的。我们可以把用例分成目标用例、实现用例和步骤层用例。比如,申请贷款是目标用例,用户的目标就是申请贷款。为了实现这个目标,用户可以用线上申请贷款和线下申请贷款的两种方法,这两种方法就是两个实现层用例。为了完成线上申请贷款,用户就需要有几个步骤,如申请贷款、填写资质,这就是几个步骤层用例。
当然,用用例方法是为了拓宽度,不是为了拓深度。深度就是异常的情况和分支的流程等。比如在订单案例中,取消订单也是一个用例,但是不应该现在引入。这些细节在原型图和流程图中体现。同时,取消订单的情况多种多样,这些细节放在流程图中梳理更合适。
2.用例是业务梳理的起点
用例描述了用户做的事,只有明确了用户要做的事,才会在宽度上不遗漏功能。只有明确用户要做的事,才有描述该事的流程图、状态图和原型图等内容,从而再实现在深度上不遗漏细节。
3.用例是定义功能的起点
很多时候,用例和功能有一定等价关系。比如,我们说系统有登录功能,或者说用户用该系统登录,这两种说法表达的是一个意思。
但是,从用户角度看,通过用例更容易把业务梳理全。比如,对于电商平台的商品管理,从功能看是增删改查、按销量筛选等功能,但按用例就是上传商品,补充货物等。为完成上传商品,我们可再梳理出发布和审核的流程,并进一步绘制原型图。从这个案例中,我们可以看出用例和功能的不同。
4.这件事必须有一个参与者发起。不存在没有参与者的用例,用力不应该自动启动,也不应该主动启动另一个用例。
用例总是有一个参与者发起的,参与者的愿望就是这个用例存在的原因。例如从ATM取钱是一个有效的用例,ATM取钞却不是。如果ATM无缘无故吐钞的话人们还需要工作嘛。
三、参与者的概念
通过上面的内容,对用例有了一些基本的概念,然而要做好用例分析,还需要理解参与者和系统两个概念。
比如,用户操作ATM机取钱,这就是人在和系统交互。用户在系统上进行操作,系统会响应用户的操作,用户从而把钱取出来。如果用户要跨行取钱,则ATM机要向其他银行的系统发出取钱指令,待其他银行的系统同意后,ATM机也可以出钱。在这个场景下,ATM机就会和其他银行的系统产生交互。
1.参与者
无论是操作的ATM机的人,还是另一个银行的系统,都可以称之为参与者。参与者也被称为执行者、使用者、参与者。参与者是在系统之外与系统交互的人或物。
按照定义,我们可以把参与者分为两类。一类是系统之外的“人”,他会和系统交互,我称其为“参与人”或“使用者”,这里强调交互对象是人。一类是系统之外的“物”,他也会和系统交互,我们称其为“参与系统”,这里强调交互对象是物。对于银行系统,系统之外的人是用户和银行员工,系统之外的物是另一个银行的系统,也就是说,参与者=参与人+参与系统。
2.参与人
1)参与人和涉众的关系
涉众就是指对产品“提意见”的人。参与者就是和产品“进行交互”的人。有时候,一个人可以既是涉众,又是参与人。比如,用户可以对银行系统提出建议,此时用户就是一个涉众,对产品“指手画脚”的人。但是用户也要使用ATM机,用户就是一个参与人,该参与人要使用银行系统,就是要和银行系统“眉来眼去”。
参与人是涉众的子集。参与者要使用产品,涉众可以不用。参与人是个体,涉众可以是个体,也可以是组织。
涉众和参与人之间的关系2)主要参与人和辅助人参与人
大家都是参与人,参与人的地位是不同的。参与人分为主要参与人和辅助参与人。主要参与人也被称为启动人,辅助参与人也被称为支持人,两者的区别如下。
主要参与人是产品存在的原因,会主动发起一项业务。辅助参与人是支持产品运转的人员,会被动响应业务请求。比如,用户使用ATM机自助完成存钱,此时用户就是辅助参与人。因为如果没有用户这个参与人,ATM机就不会操作。当ATM机里面的钱被取完时,就需要银行员工往里面放钞票,此时银行员工就是一个辅助参与人。因为银行员工的作用是让ATM机有钱,银行员工是支持这个产品工作的辅助人员。
但是要注意,一个人既可以是辅助参与人,也可以是主要参与人。从用户的视角看,如果用户下单了,那么服务用户的客服人员和物流人员都是辅助参与人。但是从物流人员的视角看,物流人员要使用物流软件。在该场景下,物流人员就是主要参与人。
在不同系统中,分清主要参与人和辅助参与人,可有层次地梳理业务。通常,应先梳理主要参与人的需求,再梳理辅助参与人的需求。
3.参与系统
参与系统是什么?比如,用户要跨行取钱,两个银行系统间就要进行交互,并促成用户取钱这个动作。在这个场景下,另一个银行系统就是参与系统。
以上就是用例、参与人和参与系统的概念。