之前说了uml的设计图,现在说一下uml的最后两种图:构件图、部署图。这两种图之所以放在一起是因为它们都是软件的实现图。
构件图
构件图是描述一组构件之间的组织与依赖关系的模型。那么,问题来了,什么是构件?
构件是系统中遵从同一组接口且提供其实现的物理的可替代的部分。看不懂,没关系,我给你解释下,构件就相当于装修房子时地门、窗户一样,从别的地方拿过来直接就能往门框上装的东西。
构件的类型
构件根据物理的形式的不同,分为以下几种:
1.源代码构件
2.二进制构件
3.可执行构件
4.数据或文档
这四种构件的分类很容易理解,就像是我们把盖房子用到的组件分为铁质的、木质的一样,我们把构件依据其在内存中的存储方式的不同,进行了分类。
构件和类
构件和类不是同一个概念,类是对象的抽象,是从逻辑上进行抽象的,比如用砖头可以抽象出砖头类。而由砖头组成的墙却可以称为构件。我们把这个构件中的东西打包,在别的地方用的时候直接使用。
张三家里盖房子,往门框上安了 个门,他可以开门关门和锁门,不喜欢了,还可以换个新的门。在这里,这个们就是构件。门和构件有相同的特点:
构件是物理存在的,它是系统的一部分,他可以替换,而且它需要遵从一组接口(门框)并且提供一组接口的实现(开关门和锁门)。
构件的构成
构件由接口和关系构成,来个图先:
这里的接口有示出接口和引入接口。引入接口就是我们说的门框,而示出接口就是门为门上面的锁提供的安装接口。而接口的关系又分为实现和依赖的关系为主。实现一般是构件与对应接口的关系、而依赖接口则是构件与构件之间的关系。
部署图
部署图说明了系统的物理结构,和在此结构上执行的软件。
节点
再看部署图之前,必须要先知道节点的概念。
节点就是物理部件,如:服务器、打印机等。在这里,可以处理计算的为处理器,如服务器;而没有处理能力的为设备如打印机。设备都是通过接口为外部提供服务的。
应用
部署图一般用在复杂的分布式的系统中应用,用以看出软件的映射关系。一般情况下用的不是太多。