UML(三)——各种图的关系

UML中的关系

学习UML比较容易知道各种图怎么画什么时候画,但是UML中的各种关系却是比较不好区分和理解的,这里梳理一下希望对大家会有帮助。

最基本的四种关系

1)  关联:是一种结构化关系,只一种对象和另一种对象有联系。给定关联的两个类,可以从其中一个类的对象访问到另一个类的相关对象。图例是一条实线。具体的了解可以看我上一篇博客《UML图(二)——类图》

2)  依赖:对于给定的两个对象X,Y如果对象X发生变化,可能会引起另一个对象Y的变化,则称Y依赖于X。依赖用带有虚线的箭头表示。

3)  泛化:一般元素和特殊元素之间的分类关系,与C++和Java中的继承类似。

图例用空心箭头表示,指向父类。

4)  实现:将一种模型元素与另一种模型元素连接起来。图例用虚线空心箭头表示。

各种图中的关系:

1.      用例图:

1)  泛化关系:一个用例可以被特别的列举为一个活多个子用例。与类间的泛化类似,子用例表示父用例的特殊形式。如:

2)  包含关系:一个用例可以简单的包含其他用例具有的行为,并把它所含有的用例行为作为自身行为的一部分,这样额关系称为包含关系。新用例不是初始用例的特殊用例,并且不能被初始用例所代替。如:

3)  扩展关系:一个用例也可以被定义为用例的增量扩展,这称作扩展关系。基础用例提供了一组扩展点,在这些扩展点中可以添加新的行为,而扩展用例提供了一组插入片段,这些片段能够被插入到基础用例的扩展点。

2.      类图:

1)  依赖

A. 使用依赖

所有的使用依赖是非常直接的它通常表示客户使用提供者的服务以实现它的行为。如:

类TV的方法change是用来类channel的对象作为参数。因此在类TV和类channel之间存在依赖关系。当类channel发生变化时,类TV的行为也发生了相应的变化,类channel提供的服务就是变换频道。

B. 抽象依赖:表示客户和提供者之间的关系,它依赖于在不同抽象层次上的事物。

C. 授权依赖:表达一个事物访问另一个事物的能力,提供者可以通过规定客户的权限限制客户对其内容的访问。

D. 绑定依赖:它用于绑定模板以创建新的模板元素。

这些依赖关系中我们最常见的就是使用依赖,其他三种要待以后的学习和实践中增加对它们的认识。

2)  泛化:主要实现两个功能:多态和继承

A. 多态:当声明一个shape类的时候,则其后代的一个实例可以被使用,是一个合法值。例如:

泛化的使用使得多态操作成为可能,即多态操作的实现是由他们所使用的对象的类,而不是由调用者确定的

B. 继承:祖先声明过的属性不能被后代再次声明,但如果类的接口一致(具有相同的参数、约束和含义)操作可以在多个类中声明。

3)  关联:关联是描述一组具有共同结构特征、行为特征、关系和语义的链接。它是一种结构关系,指明一个对象和另一个对象间有关系。如果两个事物间存在链接必定存在关联。如:

4)  实现:表示不继承结构而只继承行为。大多数情况下,实现关系用来规定接口和实现接口的类或组件之间的关系。

可以使用实现关系的地方:1.接口与实现该接口的类间。2.在用例以及实现给用例的协作间。如:键盘能够部分实现打字员的行为。

3.      组件图

本质上说,配件图就是特殊的类图,所以它有类图的所有关系,泛化和关联已经说过很多(我的上篇博客:《UML图(二)——类图》),这里就只说一下依赖和实现

1)  依赖:具有依赖关系的组件具有以下性质:客户端组件依赖于提供者组件;提供者组件在开发时存在,但运行时不需要存在。

2)  实现:多用于组件和接口之间。组件可以实现接口,或者说组件中的类实现了接口。

 

4.      配置图

1)  依赖关系:通常用在配置图的组件和组件之间。

2)  关联关系:常用于对节点间的通信路径或连接进行建模

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 24
    评论
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值