一、概念
用例(英语:use case),或译使用案例、用况,是软件工程或系统工程中对系统如何反应外界请求的描述,是一种通过用户的使用场景来获取需求的技术。每个用例提供了一个或多个场景,该场景说明了系统是如何和最终用户或其它系统互动,也就是谁可以用系统做什么,从而获得一个明确的业务目标。
二、用例和场景的关系?什么是主场景或 happy path?
场景是用户与系统之间的交互行为,是用例的实例;用例是相关的成功或失败的场景集合。
主场景(happy path)是实现用户目标的最简单,最直接的场景,是一个没有异常或错误条件的默认场景。
三、用例有哪些形式?
三种形式:
Brief(high level):简介型,简洁的一段式概要,通常用于主成功场景。
Casual:非正式型,非正式的段落格式,用几个段落覆盖不同场景。
Fully:完整型,详细编写所有步骤及各种变化,同时具有补充部分,如前置条件和成功保证。
对于复杂业务,为什么编制完整用例非常难?
复杂业务的应用场景十分复杂,用户使用的情况很多,在前期的考虑中,很难不遗漏一些业务条件和需求。同时,复杂用例的可读性也较差。因此编制完整用例非常困难。
四、什么是用例图?
用例图是指由参与者(Actor)、用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图,也是外部用户所能观察到的系统功能的模型图。
五、用例图的基本符号与元素?
参与者(Actor):表示系统中的用户,即与系统交互的对象
![](https://img-blog.csdnimg.cn/img_convert/9248c444f81147f8bb928810e248207e.png)
用例(Use Case):用户与系统的交互行为,可以理解为用户可以使用系统做的事情
![](https://img-blog.csdnimg.cn/img_convert/bc6ead142dce42d3bfe2a3348ab01d43.png)
系统边界(system):用来表示正在建模系统的边界
![](https://img-blog.csdnimg.cn/img_convert/c401d0e6105c419ea8b010d15550fdb9.png)
包含关系(include):被指向用例为指向用例的行为之一
![](https://img-blog.csdnimg.cn/img_convert/3cedd2b6d903460ba87960e38eaa005e.png)
拓展关系(extend):被指向用例为指向用例的拓展功能
![](https://img-blog.csdnimg.cn/img_convert/ae5033bec20b423f88b061c0d467554d.png)
泛化关系(generalization):被指向用例为指向用例的特例之一
![](https://img-blog.csdnimg.cn/img_convert/38c1d724786948e6a45f7184119ee7cb.png)
关联关系(association):表示参与者与用例之间的关联关系
![](https://img-blog.csdnimg.cn/img_convert/8e79f11761ab49e1acb0babf7647af36.png)
六、用例图的画法与步骤
绘制系统边界
确定参与者
确定参与者之间的关系
识别用例
确认用例间关系
确认用例与参与者的关系
确定外部接口
用例图给利益相关人与开发者的价值有哪些?
用例图列举出了各种用例,使得用户可以清晰地了解到该系统的各个功能单元。
用例图便于用户理解系统,从而从用户处获取需求。
用例图可以在整个开发过程的工作流中起到指导作用。
用例图可以作为开发者的蓝图,使开发者对系统的架构有更清晰的概念。
七、建模练习题(用例模型)
选择2-3个你熟悉的类似业务的在线服务系统(或移动 APP),如定旅馆(携程、去哪儿等)、定电影票、背单词APP等,分别绘制它们用例图。并满足以下要求:
请使用用户的视角,描述用户目标或系统提供的服务
粒度达到子用例级别,并用 include 和 exclude 关联它们
请用色彩标注出你认为创新(区别于竞争对手的)用例或子用例
尽可能识别外部系统和服务
淘票票
![](https://img-blog.csdnimg.cn/img_convert/8150bf0a00cd4e0ea1ad1eadb0c8c816.png)
携程
![](https://img-blog.csdnimg.cn/img_convert/3731de23e2f3499ba2258b2ded636172.png)
原文出自:火龙果软件