(20) – 用例图的陷阱
最后更新于:2022-04-01 07:29:26
## 连载:面向对象葵花宝典:思想、技巧与实践(20) - 用例图的陷阱
你知道么,用例图 **不是** 用来描述 用例的哦!!!!
熟悉UML的朋友都肯定知道,UML有一个叫做用例图的东东。
单纯从名字上来看,你可能以为用例图是用来描述用例的,即:用例图 = 用例的图形化表示。
然而各位发明UML的大师们,却在无意中给我们设下了一个陷阱:所谓的用例图,不是用来描述用例,而是用来描述系统的图形。
听起来有点奇怪和别扭,既然是用来描述系统的图形,为什么叫做用例图,而不叫系统图呢?
这和用例图的画法有关,用例图虽然是用来描述系统的图形,但其内容主要就是用例。
我们来看用例图的定义:
The use case view captures the behavior of a system, subsystem, or class as it appears to an outside user
简单翻译一下:用例图用于捕获系统、子系统或者类相关的呈现给外部用户的行为。
单纯看这个定义有点难以理解,其实看看用例图的组成就很简单了。用例图的组成如下:
Actor:系统外的用户,对应5W中的Who,包括但不限于用户、外系统;
Use Case:用例,对应前面讲到的用例;
System:系统,所有用例的集合就是系统了。
我们以ATM取款机为样例,用例图如下:
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-20_569f5cca01fde.jpg)
从这个图可以清楚的看到,所谓用例图,可以简单的**理解为系统用例的集合**,而不是详细描述每个用例的具体步骤和流程。
这也是前面我们提到的为什么是用“用例”来分析需求,而不是用“用例图”来分析需求的原因