用例图(英语:use case diagram)是用户与系统交互的最简表示形式,展现了用户和与他相关的用例之间的关系。通过用例图,人们可以获知系统不同种类的用户和用例。
尽管用例本身会涉及大量细节和各种可能性,用例图却能提纲挈领地让人了解系统概况。它为“系统做什么”提供了简化了的图形表示,因此被誉为“搭建系统的蓝图”
用例图由参与者(Actor)、用例(Use Case)、系统边界、箭头组成,用画图的方法来完成。
参与者:
参与者指的不是用户本身,而是它在系统中所扮演的角色。举个例子来说,张三是淘宝店的店主,这个时候他参与淘宝的交互时,他既可以是店主这个角色,也可以作为买家在淘宝上购买东西,这个时候张三在系统中扮演了两个角色,这两个角色是两个不同的参与者即买家和卖家。
参与者在我们代码中,本质上还是类,所以在参与者中也存在继承的关系(分析阶段一般用泛化关系来表示继承)。泛化关系 (Generalization) 表示一个一般性的参与者(父参与者)和另一个特殊参与者(子参与者)之间的联系。参与者之间的泛化关系用带空心箭头的实线来表示,箭头端表示父参与者。
用例:
用例是对一组动作的描述,系统通过执行这些动作将对用例的参与者产生可以看到的结果。
用例之间关系
1.包含关系
包含关系指的是两个用例之间,其中一个用例(基本用例)的行为包含了另外一个用例(包含用例)。
2.扩展关系
扩展关系是对基本用例的扩展,基本用例是一个完整的用例,即使没有子用例参与,也可以完成一个完整的功能。扩展的基本用例中存在一个扩展点,只有扩展点被激活时,子用例才会被执行。扩展关系是从扩展用例到基本用例的关系,它说明扩展用例如何插入到基本用例中。
扩展用例的使用场景:
表明用例的某一部分是可选行为
表明只在特定条件下才执行的分支
表明可能有一组行为,其中的一个或多个行为可以在基本用例中的扩展点处插入。所插入的行为和顺序取决于在执行基本用例时与主角进行的交互。
3.泛化关系
泛化关系
泛化关系指的是一般(父用例)与特殊(子用例)的关系。当多个用例共同拥有一种类似的结构和行为时,可以将它们的共性抽象为父用例,其他的用例作为泛化关系中的子用例。
3.用例描述,每一个用例都可以按照描述模板来写出: