代码改变世界

UML Use Case之间的各种关系

2010-07-26 12:04  敏捷的水  阅读(8222)  评论(1编辑  收藏  举报

UML是软件开发和系统建模的标准工具。该统一建模语言用于软件系统的可视化、说明、构建和建立文档等方面。

这里可以看到UML的一些介绍

http://baike.baidu.com/view/23396.htm?fr=ala0_1_1

本篇主要讲解UML用例图之间的关系, 用例主要有以下三种关系。

包含

包含关系指用例可以简单地包含其他用例具有的行为,并把它包含的用例行为作为自身行为的一部分。包含关系代表着基础用例会用到被包含用例,将被包含用例的时间流插入到基础用例的时间流中。

在处理包含关系时,具体的做法就是把几个用例的公共部分单独地抽象成一个新的用例。主要有以下两种情况需要用到包含关系。

  • 多个用例用到同一段的行为,则可以把这段共同行为单独地抽象成一个用例,然后让其他用例来包含这一用例。
  • 当某一个用例功能过多,事件流过于复杂时,也可以把某一段事件流抽象成一个被包含的用例,以达到简化描述的目的。

下面的用例说明添加用户和修改用户后都需要浏览用户信息,以后修改浏览用户时不会对添加用户和修改用户造成影响。

 

image

扩展

在一定条件下,把新的行为加入到已有的用例中,获得的新用例叫做扩展用例

扩展关系和包含关系的不同

  • 在扩展关系中,基础用例提供了一个或者多个插入点,扩展用例为这些插入点提供了需要插入的行为。而在包含关系中,插入点只有一个。
  • 在扩展关系中,基础用例的执行并不一定会涉及到扩展用例,扩展用例只有在满足一定条件下才会被执行。而在包含关系中,当基础用例执行外后,被包含用例时一定要被执行的。
  • 即使没有扩展用例,扩展关系中的基础用例本身也是完整的。而包含关系,基础用例在没有被包含用例的情况下是不完整存在。

image

泛化

用例的泛化指的是一个父用例可以被特化成多个子用例。

image