首页 理论教育用例图关联示例-信息系统开发方法与实践教程

用例图关联示例-信息系统开发方法与实践教程

【摘要】:用例图的关联包括参与者和用例间的关联关系,还有用例与用例间的关系:包含关系、扩展关系和泛化关系。图8-11 扩展关系示例4.泛化关系当一个用例可以被特殊为一个或多个子用例时,称作用例泛化。如图8-13所示是汽车租赁系统用例图中的部分内容,父用例是“预订”,子用例是“电话预订”和“网上预订”。

用例图的关联包括参与者和用例间的关联关系,还有用例与用例间的关系:包含关系、扩展关系和泛化关系。应用这些关系的目的是从系统中抽取出共同行为及其变体。

1.参与者与用例的关联

关联关系描述参与者与用例之间的关系,表示参与者和用例之间的通信。不同的参与者可以访问相同的用例,一般它们与该用例的交互过程是不一样的,否则说明它们的角色可能是相同的,可以将参与者进行合并。

如图8-7所示是汽车租赁系统用例图的部分内容,显示的是参与者(客户)可以启动“预订”“取车”和“还车”三个用例。

2.包含关系

一个用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为作为自身行为的一部分,这被称作包含关系。描述多个用例都具有的公共行为的用例称为基本用例,把基本用例作为自身行为一部分的用例称为客户用例。在UML中,包含关系表示为虚线箭头加<<include>>字样,箭头指向被包含的用例,如图8-8所示。

978-7-111-47279-7-Chapter08-7.jpg

图8-7 参与者与用例的关联

978-7-111-47279-7-Chapter08-8.jpg

图8-8 包含关系的图符

客户用例与基本用例并非特殊与一般的关系基本用例不能代替客户用例

包含关系使一个用例的功能可以在另一个用例中使用,主要应用在以下情况:

●如果两个以上的用例有大量一致的功能则可以将这个功能分解到另一个基本用例

其他用例和这个基本用例建立包含关系

●当一个用例的功能太多时可以用包含关系建模几个基本用例

如图8-9所示为汽车租赁系统用例图的部分内容。“填写电子表格”的功能在“网上预订”过程中使用。不管“网上预订”用例的处理过程如何,总是要运行“填写电子表格”用例,所以两者具有包含关系。

3.扩展关系

一个用例也可被定义为基础用例的增量扩展,这称为扩展关系。基础用例提供了一组扩展点,在这些扩展点中可以添加新的行为,而扩展用例提供了一组插入片段,能够被插入到基础用例的扩展点上。一个用例可以有多个扩展点,每个扩展用例也可出现多次。一般情况下,基础用例的执行不会涉及到扩展用例,只有特定条件发生,才会执行扩展用例。扩展关系为处理异常或构建灵活的系统框架提供了一种十分有效的方法。在UML中,扩展关系表示为虚线箭头加<<extend>>字样,箭头指向被扩展的用例(即基础用例),如图8-10所示。

978-7-111-47279-7-Chapter08-9.jpg

图8-9 包含关系示例(www.chuimin.cn)

978-7-111-47279-7-Chapter08-10.jpg

图8-10 扩展关系的图符

在以下几种情况下,可考虑使用扩展用例:

●表明用例的某一部分是可选的系统行为可以将模型中的可选行为和必选行为分

)。

●表明只在特定条件例如例外条件才执行的分支流

●表明有一组行为段可在基本用例的扩展点处插入插入的行为段和插入的顺序取决

于执行用例时与参与者的交互基础用例即使没有扩展关系也是完整的这点与包含关系不同

如图8-11所示是汽车租赁系统用例图中的部分内容。本例中,基础用例是“还车”,扩展用例是“交纳罚金”。如果归还汽车时一切顺利,只需执行“还车”用例。但如果超过还车时间或者汽车受损,按规定客户需交纳一定罚金,这时就不能执行用例提供的常规动作。如果更改用例“还车”,必然会增加系统的复杂性,因此可以在用例“还车”中增加扩展点,设定特定条件为“超时或损坏”。当满足特定条件时,就会执行扩展用例“交纳罚金”,这样系统更容易被理解。

978-7-111-47279-7-Chapter08-11.jpg

图8-11 扩展关系示例

4.泛化关系

当一个用例可以被特殊为一个或多个子用例时,称作用例泛化。当父用例能够被使用时,任何子用例也可以被使用。在UML中,用例泛化与参与者泛化的表示法相同,用一个空心三角箭头从子用例指向父用例,如图8-12所示。

子用例作为父用例的特殊形式,继承父用例的属性和行为,还可以添加、覆盖或改变继承的属性和行为。如果系统中一个或多个用例是某个用例的特殊化时,就需要考虑使用用例的泛化关系。

如图8-13所示是汽车租赁系统用例图中的部分内容,父用例是“预订”,子用例是“电话预订”和“网上预订”。这两个子用例都继承了父用例的行为,并添加了自己的行为。

978-7-111-47279-7-Chapter08-12.jpg

图8-12 泛化关系图符

978-7-111-47279-7-Chapter08-13.jpg

图8-13 用例间的泛化关系示例