聊聊UML静态图-组合结构图
Posted 与小婧同行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了聊聊UML静态图-组合结构图相关的知识,希望对你有一定的参考价值。
之前我们聊了对象图、类图、包图,有没有觉得这三个图很接近呢?
对象图的定义虽然在UML2.5的标准中被扩展了,但是我们大都还是会把它当做类图的实例去使用。
许多个类可以归在一个包里。
所以为什么说类图、类是UML中很关键的元素呢,今天我们聊的这个组合结构图也和类有关系。
组合结构图composite structure diagram:它的一大作用就是描述类的内部结构的。
我们先来看一下UML2.5中给出的一个简单的例子。
In Figure i) is a class diagram for the package Cars, with a class symbol representing the fact that the Cars package contains a class Car.
ii) is a composite structure diagram for this class Car.
The class symbol in i) does not have to contain the structure of the class in a compartment; for more realistic models, the class symbols will typically just have the class names, while the composite structure diagrams for the classes will have symbols for the composite structures.
在上面的这张图中,我们可以看到,左边的是我们所熟悉的包图,里面包含了一个类Car。
而右边是类Car的组合结构图,我们可以看到这个类包括车轮和引擎两个部分,这两个部分并且是通过传动轴(半轴)进行连接的。
为什么要研究组合结构图?
有的时候我们在设计的时候并不会将类设计到特别深入的地步,否则开发的详细设计文档就由我们产品和BA来接手了。
而有的时候我们又需要去强调某个类内部的一些结构和接口关系。
比如上面这个例子,你当然可以选择把轮胎和引擎抽象出来做两个子类,与类Car形成复合关联关系。
但是类图并不会去强调接口,只会强调说一个车子有几个轮子,有几个引擎,这些轮子和引擎是车子的一部分。
当你想要强调轮子和引擎的接口关系的时候,使用类图是不恰当的。
这个时候你使用组合结构图就会显得更加清晰。
看了这个图你会知道,哦,车轮并没有直接和引擎直接连接,而是通过一个传动轴进行连接的,而且是两个轮子通过传动轴与引擎连接(前驱或者后驱)。
而对于这个传动轴的需求,可以进一步进行描述。
从上面的图中我们也不难发现,组合结构图的构成元素包括:
Part部件(矩形):车轮,引擎。
Port端口(小方块):图中标注了P的那个。
Connector连接(下图中的小圆圈和半圆):圆圈表示提供连接,半圆表示请求连接。
下面这张图大家可以试着分析一下。
关于组合结构图,其实没有那么多要说明的内容,你可以简单的把它视为类图的一个补充,在必要的时候拿出来使用。
小婧是一名行走在实践路上的资深业务分析师(BA),如果想与我同行,就请关注我吧!
以上是关于聊聊UML静态图-组合结构图的主要内容,如果未能解决你的问题,请参考以下文章