1.什么是用例图
用例图(Use Case Diagram)主要用于描述系统的行为及各种功能之间的关系,是描述参与者(Actor)与用例以及用例与用例之间关系的图。用例图从用户和外部系统的角度,分析和考察系统的行为,并通过参与者与系统之间的交互关系描述系统对外提供的功能特性。UML的用例图由参与者、用例及它们之间的关系组成,
它的表达方式为:
用例图=参与者 + 用例 + 关系
2.用例图的表示方法
2.1 参与者
参与者是用例的启动者,参与者处于用例的外部并且能够初始化一个用例,但它并不是所描述系统的一部分,它可能是人或其他外界系统。
表示方法如下:
2.2 用例
用例就是对一组动作序列的描述,系统执行该动作序列为系统的参与者产生一
个可观察的结果。这个动作序列就是业务工作流程。
表示方法如下:
2.3 关联
将一个参与者与一个或多个用例关联(Association),这种关联关系揭示了参与
者初始化一个用例,而用例向参与者提供有价值的可见结果。
关联关系用实线来表示。
表示方法如下:
2.4 系统边界
系统边界是用来表示正在建模系统的边界,边界内表示系统的组成部分,边界
外表示系统外部。
UML使用矩形框来表达系统的边界。
表示方法如下:
3.用例之间的关系
3.1 泛化关系
泛化关系是两个用例或两个参与者之间的关系。
当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象为父用例,其他的用例作为子用例,用例间的这种关系被称为用例的泛化关系。
A是B的泛化,意味着A描述的是一般的行为,而B是这些行为的详细版本,A被称为父用例或基用例,B被称为子用例。
在用例的泛化关系中,子用例是父用例的一种特殊形式,子用例继承了父用例所有的结构、行为和关系。
在用例图中,泛化关系用实线加上空心的箭头来表示。子用例被连接在箭头的尾部,箭头指向父用例。
3.2 扩展关系
扩展是两个用例之间的关系,它使得每个用例可以通过扩展用例向基用例中添加额外的
行为扩展基用例的功能。
用例的扩展机制允许从一个基用例开始开发一个复杂的系统,并且能够在不改变基用例
的前提下向基用例中扩展更多的行为。
用例A扩展了用例B,则A称为扩展用例或子用例,B称为基用例,它表示扩展用例A的事
件流在一定的条件下按照相应的扩展点可插入基用例B中,这就需要在基用例中定义一至
多个已命名的扩展点。
扩展关系用虚线加上开箭头来表示。扩展用例被连接在箭头的尾部,箭头指向基用例,
在虚线处添加一个<<extend>>表示扩展关系。
3.3 包含关系
当多个用例需要用到同一段行为时,可以把这段共同的行为单独抽象成为一个用例,然
后让其他的用例来包含这一用例,从而避免在多个用例中重复描述同一段行为,也可以
防止该段行为在多个用例中的描述出现不一致性。
用例A包含B,将A称为基用例,B称为被包含用例。
值得注意的是,对于包含关系而言,子用例中的事件流是一定插入到基用例中去的,并
且插入点只有一个,而扩展关系可以根据一定的条件来决定是否将扩展用例的事件流插
入到基用例事件流,并且插入点可以有多个。包含关系是无条件的,扩展关系是有条件
的。
包含关系用虚线加上箭头来表示。基用例被连接在箭头的尾部,箭头指向被包含用例,
在虚线处添加一个<<include>>标签以表示包含关系。
注意:包含关系的表示,基用例是在箭头尾部,其它泛化关系和扩展关系的基用例是在箭头处的。