一、用例图是什么?
用例图是有参与者(Actor)、用例(Use Case)以及他们之间的关系构成的用于描述系统功能的动态视图。
那我们就来了解一下这些都是什么吧?
(1)用例(Use Case)
用例:通俗讲就是系统的功能。
用例(书面语):在不展现一个系统或子系统内部结构的情况下,对系统或子系统的某个连贯的功能单元的定义和描述。一个用例
描述的是整个系统功能的一部分,这一部分一定要是在逻辑上相对完整的功能流程。例如(登录,上机,下机)
(2)参与者(Actor)
用例的触发者。它是指存在于系统外部并直接与系统进行交互的人、系统、子系统或类的外部实体的抽象。每一个参与者可以参与
一个或多个用例,每个用例也可以有一个或多个参与者。参与者在建模过程中是处于核心地位的,位于系统之外。
参与者分析:
1.谁直接使用了此功能或者主动想系统发出动作?(如 操作员:给学生注册,退卡)
2.谁负责提供,使用,删除信息?(如 管理员职责:添加删除信息)
3.谁支持和维护系统?
4.其他还有哪些系统需要与该系统进行交互?
(3)关系
描述的是参与者与用例之间的一种关系。一共四种关系:
1.关联关系(Association)
用实线表示,箭头表示在这一关系中哪一方式对话的主动发起者(参与者),箭头所指向的是被动接受者(用例)。
2.泛化关系(generalization 也叫继承关系)
泛化指的是一个父用例可以特化成多个子用例,而父用例和子用例之间的关系就是泛化。子用例继承了父用例所有的结构,行为和关系。
例如人就是父用例,男人和女人是两个子用例。
3.扩展关系(extend)
在一定条件下,把一个新的行为加入到已有的用例中,获得的新用例就叫扩展用例,原有的用例叫基础用例。扩展用例到基础用例
的关系就是扩展关系。扩展关系用带箭头的虚线段加《extend》字样来表示,箭头指向基础用例。
例如:本来查询学生充值记录信息就可以了,然后添加了一个新的行为(打印充值信息)。
4.包含关系(include)
包含关系是指用例可以简单的包含其他用例具有的行为,并把他所包含的用例行为作为自身行为的一部分。包含关系用带箭头的虚
线段加《include》字样来表示,箭头由基础用例指向被包含用例。
例如:图书馆维护包括修改图书信息,添加图书信息和删除图书信息。
二、下面是我自己画的机房收费系统的用例图: