第7章构件图和部署图
25
26
7.2.2 部署图的要素
1.结点
结点(node)表示独立计算资源的物理设备,可以分为 处理机(processor)和设备(device)两类。
处理机:主机,服务器,客户机等; 设备:打印机,传感器,终端等。
27
结 点
• 结点是在运行时代表计算资源的的物理元素。 • 结点通常拥有一些内存,并具有处理能力。 • 结点通过查看对实现系统有用的硬件资源来确 定,这需要从能力和物理位置两方面来考虑。 • 在UML中,结点用一个立方体来表示。
样,提供服务的构件呈现了一个提供的接口,访
问服务的构件使用了所需的接口。
8
6.替换与复用
• 接口在构件复用和构件替换中是一个非常重要
的概念
• 只要新构件符合旧构件的接口,就可以用新构
件替换旧构件
• 如替换汽车的引擎
9
7.构件之间的关系
• 接口和构件之间的关系分为两种:
• 实现关系(Realization)
30
结点的种类
• 在实际的建模过程中,可以把结点分为 两种类型: ① 处理器(Processor) ② 设备(Device)
31
处理器
• 处理器是能够执行软件、具有计算能力 的结点。
32
设 备
• 设备是没有计算能力的结点,通常情况 下都是通过其接口为外部提供某种服务。
33
结点中的配置
• 配置图可以将结点和构件结合起来,以 建模处理资源和软件实现之间的关系。 • 当构件驻留在某个结点时,可以将它建 模在图上该结点的内部。 • 为显示构件之间的逻辑通信,需要添加 一条表示依赖关系的虚线箭头。
第 章 构件图和部署图
7
7.1 构件图
7.2 部署图
1
第 章 构件图、部署图和包图
7
7.1 构件图
7.1.1 构件 7.1.2 构件图 7.1.3 构件图的作用
2
7.1.1 构件
1. 构件的概念
构件(component): 是一个相对独立的可装配 的物理块,一般作为一个独立的文件存在。 构件具有确定的接口,相互之间可以调用, 构件之间存在依赖关系。
– 识别出感兴趣的相关源代码文件集合,把它们表示成 《file》的构件
– 对于较大的系统,利用包对源代码文件进行分组 – 如有必要,可以为构件添加相应的标记值,说明版本号、 作者等信息 – 用依赖关系对这些文件之间的编译依赖关系建模
16
7.1.3 几种构件图
1. 源代码文件建模
构件图中有siganl.h的2个版本,这个头文件被文件 interp.cpp和signal.cpp引用,interp.cpp依赖于irp.h
• 构件的名称有两种:简单名和路径名。
7
5.构件和接口
• 类的接口和构件的接口是相同的概念
• 只能通过构件的接口来使用构件中定义的操作
• 构件和构件的接口之间的关系也叫做实现
• 构件可以让它的接口被其他构件使用,以使其
他构件可以使用这个构件中定义的操作,也就是,
一个构件可以访问另一个构件所提供的服务。这
● 7.1 构件图
7.1.1 构件 7.1.2 构件图
7.1.3 构件图的作用
● 7.2 部署图 7.2.1 什么是部署图
7.2.2 部署图的要素 7.2.3 部署图的例子
● —— 重要知识点
45
17
7.1.3 几种构件图
2.可执行文件和库建模
• 对构成系统的实现构件建模 • 如果系统由若干个可执行程序和相关对象库构成, 最好文档化 • 策略:
– 识别所要建模的构件集合,一般是一个结点上的部分全 部构件 – 为构件选择合适的构造型
– 对每一个构件,考虑与相邻构件之间的关系,通常涉及 18 接口
3
7.1.1 构件
构件定义了一个系统的功能,一个构件是一个
或多个类的实现
对构件和构件关系建模的用途:
• 使客户能够看到最终系统的结构和功能
• 让开发者有一个工作目标 • 让编写技术文档和帮助文件的技术人员能够理 解所写的文档是哪方面内容 • 利于复用
4
2.构件的类型 ●《源代码件》:源程序文件块. ●《执行件》:编译的结果,可投入运行。 ● 《文件》:信息的存储体。 ● 《库》:可以是类库、动态链接库、数据 库等。 ● 《表》:表示数据库中的数据表。 ● 《文档》:泛指形成的所有文字材料。
28
结 点
• 结点与构件的比较: 相同点 不同点
二者都有名称和关系; 都可以有实例;都可 以被嵌套;都可以参 与交互。
构件是参与系统执行 的事物,而结点是执 行构件的事物;构件 表示逻辑元素的物理 包装,而结点表示构 件的物理配置。
29
结点名称
• 每一个结点都必须有一个区别于其他结 点的名称。结点的名称是一个字符串, 位于结点图标的内部。 • 结点名称通常是从现实的词汇表中抽取 出来的短名词或名词短语。 • 结点的名称有两种:简单名和路径名。
23
第 章
7
构件图、部署图
7.2 部署图
7.2.1 什么是部署图 7.2.2 部署图的要素 7.2.3 部署图的例子
24
7.2.1 什么是部署图
部署图(deployment diagram): 用来描 述系统中计算结点的拓扑结构和通信路径 与结点上运行的软件构件等。 • 配置图描述了运行软件的系统中硬件和软 件的物理结构。 • 一般一个系统仅有一个部署图。
可以加依赖关系
13
8.依赖关系
• 两个构件中的类如果存在使用关系,则构件间
可以加依赖关系
14
7.1.2 构件图
构件图(component diagram): 描述构件及 其相互关系的图。构件之间是依赖关系。
15
7.1.3 几种构件图
1. 源代码文件建模 • 有助于可视化源代码文件之间的编译依赖关系 • 策略:
7.1.3 几种构件图
2.可执行文件和库建模
19
7.1.3 几种构件图
3. 表、文件和文档建模
• 对系统中附属实现构件建模,如数据文件、帮助 文档、脚本、日志文件等
• 策略:
– 识别出作为系统的物理实现部分的附属构件 – 将这些事物建模为构件 – 对这些附属构件与其他可执行程序、库及接口之间的关 系建模
UML2.0划分为部署构件、工作产品构件、执行 构件
5
3.构件的表示
在的名称
• 每个构件都必须有一个不同于其他构件的名
称。构件的名称是一个字符串,位于构件图标
的内部。
• 构件名称通常是从现实的词汇表中抽取出来
的短名词或名词短语,并依据目标操作系统添
加相应的扩展名,例如java和dll。
34
结点中的配置
• 驻留在结点上的构件
35
结点中的配置
• 可以在结点和构件 之间添加一条表示 依赖关系的虚线箭 头,并使用构造型 来表示结点对构件 的包容。
36
7.2.2 部署图的要素
2.连接
连接表示两个结点之间的物理连接关系,用直线表示,
在连接上可以加多重性、角色、约束等。
• 配置图可以显示结点以及它们之间的必要连接,也可以显 示这些连接的类型,还可以显示构件和构件之间的依赖关 系,但是每个构件必须存在于某些结点上。
20
7.1.3 几种构件图
3. 表、文件和文档建模
21
构件图的例子:
22
构件和类的比较
相同点 不同点
两者都有名称;都可以 类描述了软件设计的逻 实现一组接口;都可以 辑组织和意图,而构件 参与依赖关系;都可以 则描述软件设计的物理 被嵌套;都可以有实例;实现,即每个构件体现 都可以参与交互。 了系统设计中特定类的 实现。
37
部署图的例子:
38
构件的分布建模
• 将系统中每个有意义的构件部署到一个给定的结 点上
• 如有必要,可以将同一个构件同时放在多个不同 的结点上
• 构件在结点上的部署
39
嵌入式系统建模
• 识别嵌入式系统中的设备和结点 • 使用构造型结点对处理器和设备建模
• 在部署图中对处理器和设备间的关系进行建模
• 依赖关系(Dependency)
• 在图中,接口和构件之间用实线连接表示实现
关系;而接口和构件之间用虚线箭头连接则表示
依赖关系。
10
8.依赖关系
• 一个构件如果使用另外一个构件的操作,则可
以在该构件和另外一个构件的接口间建立依赖关
系
11
8.依赖关系
• 对象和源码之间
12
8.依赖关系
• 两个构件中的类如果存在泛化关系,则构件间
• 必要时,可以把设备展开,用更详细的部署图对 它的结构进行建模
40
客户-服务器建模
• 识别代表客户和服务器的结点 • 标识出与系统行为有密切关系的设备
• 利用构造型为处理器和设备提供可视化表示
• 在部署图中为这些结点的拓扑结构建模
41
客户-服务器建模
42
实例1:
43
实例2:
44
● 小结
第7章 构件图和部署图