一、实现图
UML中大部分模型描述了逻辑和设计方面的信息。
实现图用来描述实现方面的信息,用来对面向对象系统的物理方面建模。
它从系统的层次来描述:硬件的组成和布局,软件系统划分和功能实现
实现图包括:
构件图:用来显示一组构件之间的组织与依赖关系
部署图:用来描述系统硬件的物理拓扑结构以及在此结构上执行的软件。
二、构件图
1.构件图从软件架构的角度来描述一个系统的主要功能,如子系统、类、包、构件等。
主要对源码进行构建、对可执行体进行建模、对构建和接口之间的关系进行建模、还可以对物理数据库进行建模
每一个构件图只是系统的静态实现图的图形表示
为了构造一个良好的构件图,需要满足一下要求
1)侧重于描述系统的一个层面,而不是全局
2)要包含对于理解这一方面哪些是必要的那些模型元素,抓主体而不是次要的
3)图形不能过于简化,以至于读者不会产生误解
4)我们为构件图要取一个能表示意图的名称,比如这个构件图叫OrderForm.java源代码,不能随便取
5)设计构建图,空间摆放上要合理的组织元素,使得语义上接近的事物的物理位置比较接近
6)谨慎采用构造型化元素,为你的项目或者组织选择尽量少用的通用图标,使得他们保持一致
构件图的构成:构件、接口、关系
2.构件(component)是系统中遵从同一组接口且提供其实现的物理的、可替换的部分。
每一个构件能实现一定的功能,为其他构件提供使用接口,方便软件的复用,使用构件最重要的是复用。
构件举例:对象库、可执行体、COM+、企业级Java Bean
构件的类型
构件是定义良好的接口实现单元,它可以是以下几种类型:
源代码构件(源代码文件)
二进制构件(目标码文件、静态链接库、动态链接库)
可执行构件(可执行程序)
数据文件或文档
构件的特点
物理的,可替换的,系统的一部分,遵从一组接口并提供对一组接口的实现
3.构件与接口
构件与其对应接口之间的关系:实现(realization)
构件与其它构件之间的关系:依赖(dependency)
示出接口(export interface):构件实现的接口
引入接口(import interface):构件使用的接口
4.构件和类
类表示逻辑抽象,而构件表示物理抽象。
构件是其他元素的物理实现。
类可以直接拥有属性和操作,一般情况下,构件一般只拥有只能通过其接口访问的操作。
5.对系统的源代码进行建模时要遵循如下策略
(1)在正向工程或逆向工程中应该识别出感兴趣的相关源码和文件集合,把他们建模成为已被构造型化为文件的构建
(2)对于较大的系统我们应该用包来显示这些源代码文件的分组
(3)在对源代码建模时,还要考虑给出一个标记值,用它指出源代码文件的版本号
(4)用依赖关系对这些文件之间的编译依赖关系进行建模
可视化建模就可以利用工具来帮助产生并管理这些依赖关系
构件与接口之间的关系
对可执行体进行建模
发布时候可执行程序与链接库之间的依赖关系
通过这个构件图我们可以正确发布软件系统
对于可执行体的发布建模要遵循如下
(1)识别你想建模的构件集合通常应该包括一个节点的一部分或者是全部构件
(2)考虑集合中各构件的构造型对于大多数系统你会发现少量的不同种类的构件比如可执行体,链接库,表,文件和文档等等。可以利用UML的扩展机制对这些构造型提供可视化的提示。
(3)发布EXE时,对集合中的某个构件,考虑他们之间的相邻关系,多数情况下会涉及到接口,这些接口就由某些构件释出,或者由其他构件来引入,如果需要指明系统中的接缝,就应该显示的对这些接口进行建模。
三、部署图
部署图显示在运行的时候有哪些节点在进行处理及这些节点上的物理配置,
用来讨论软件执行所需要的处理器和设备的拓扑结构,对系统的静态实施进行建模
绘制的目的是使得清楚的看到软件是如何部署的,软件和硬件之间的映射关系,只对那些复杂的分布式的系统才建部署图
部署图包含节点和关系(依赖和关联)
节点(Node)是一个物理元素,它在运行时存在,代表一个可计算的资源,通常占用一些内存和具有处理能力。一个构件集合一般来说位于一个节点,但有可能从一个节点转到另一个节点。
对嵌入式系统要用到部署图
对CS框架,客户服务器系统建模是要用到部署图
对分布式的系统进行建模是要用到部署图