什么是组件图? (What is Component Diagram?)

(英文原文: What is Component Diagram?)

UML组件图用于建模面向对象系统的物理方面,这些系统用于可视化,指定和记录基于组件的系统,也用于通过正向和反向工程构建可执行系统。组件图本质上是类图,它们关注系统的组件,这些组件通常用于对系统的静态实现视图进行建模。

组件图层次结构

组件图一览

组件图将正在开发的实际系统分解为各种高级功能。每个组成部分在整个系统中负责一个明确的目标,并且只在需要知道的基础上与其他基本要素相互作用。

组件图一目了然

上面的示例显示了更大组件的内部组件:

  • 数据(帐户和检查ID)通过右侧的端口流入组件,并转换为内部组件可以使用的格式。右侧的接口称为必需接口,它表示组件执行其职责所需的服务。
  • 然后,数据通过各种连接传递到并通过其他几个组件,然后在左侧的端口输出。左侧的那些接口称为提供的接口,其表示由展示组件提供的服务。
  • 重要的是要注意内部组件被一个大的“盒子”包围,它可以是整个系统本身(在这种情况下,右上角不会有组件符号)或整个系统的子系统或组件(在这种情况下,’box’是一个组件本身)。

组件图的基本概念

组件表示系统的模块化部分,其封装其内容并且其表现形式可在其环境中替换。在UML 2中,组件被绘制为矩形,其中可选的隔间垂直堆叠。UML 2中组件的高级抽象视图可以建模为:

  1. 带有组件名称的矩形
  2. 带有组件图标的矩形
  3. 带有构造型文本和/或图标的矩形

看起来是一个组件

接口

在下面的示例中显示了两种类型的组件接口:

在其末尾提供具有完整圆圈的界面符号表示组件提供的界面 – 该“棒棒糖”符号是界面分类器的实现关系的简写。

所需的接口符号末端只有一个半圆(也称为套接字)表示组件所需的接口(在这两种情况下,接口的名称都放在接口符号本身附近)。

必需和提供的界面

组件图示例 – 使用接口(订购系统)

组件接口示例

子系统

子系统分类器是组件分类器的专用版本。因此,子系统表示法元素继承了与组件表示法元素相同的所有规则。唯一的区别是子系统符号元素具有子系统而不是组件的关键字。

组件子系统

港口

使用沿系统边缘的正方形或组件来表示端口。端口通常用于帮助公开组件的必需和提供的接口。

组件图端口

关系

在图形上,组件图是顶点和弧的集合,通常包含组件,接口和依赖关系,聚合,约束,泛化,关联和实现关系。它还可能包含注释和约束。

关系 符号
协会
  • 关联指定可在类型化实例之间发生的语义关系。
  • 它至少有两个由属性表示的末端,每个末尾都与末尾的类型相连。关联的多个末端可能具有相同的类型。
组件图表示法:关联
组成
  • 复合聚合是一种强大的聚合形式,需要一次将一个实例包含在最多一个复合中。
  • 如果删除了复合,则通常会删除它的所有部分。
组件图表示法:组合
聚合
  • 一种关联,其末尾之一被标记为共享聚合,这意味着它具有共享聚合。
组件图表示法:聚合
约束
  • 以自然语言文本或机器可读语言表达的条件或限制,用于声明元素的某些语义。
组件图表示法:约束
依赖
  • 依赖关系是一种关系,表示单个或一组模型元素需要其他模型元素用于其规范或实现。
  • 这意味着依赖元素的完整语义在语义上或结构上依赖于供应商元素的定义。
组件图表示法:依赖性
链接:
  • 泛化是更通用的分类器和更具体的分类器之间的分类关系。
  • 特定分类器的每个实例也是一般分类器的间接实例。
  • 因此,特定分类器继承了更通用的分类器的特征。
组件图表示法:泛化

源代码建模

  • 通过正向或反向工程,确定感兴趣的源代码文件集,并将它们建模为构造为文件的组件。
  • 对于较大的系统,使用包来显示源代码文件组。
  • 考虑公开一个标记值,表示诸如源代码文件的版本号,作者以及上次更改日期之类的信息。使用工具管理此标记的值。
  • 使用依赖项为这些文件之间的编译依赖关系建模。同样,使用工具来帮助生成和管理这些依赖项。

组件示例 – Java源代码

组件图Java源代码示例

组件图示例 – 带版本控制的C ++代码

具有版本控制示例的组件图CPP代码

建模可执行版本

  • 确定您要建模的组件集。通常,这将涉及一个节点上的一些或所有组件,或者系统中所有节点上的这些组件集的分布。
  • 考虑该集合中每个组件的构造型。对于大多数系统,您将找到少量不同类型的组件(例如可执行文件,库,表,文件和文档)。您可以使用UML的可扩展性机制为这些构造型提供可视提示(线索)。
  • 对于此集合中的每个组件,请考虑其与其邻居的关系。大多数情况下,这将涉及由某些组件导出(实现)然后由其他组件导入(使用)的接口。如果要在系统中公开接缝,请明确地为这些接口建模。如果您希望模型处于更高的抽象级别,请通过仅显示组件之间的依赖关系来消除这些关系。

组件图建模可执行文件Relesase

物理数据库建模

  • 确定模型中表示逻辑数据库模式的类。
  • 选择将这些类映射到表的策略。您还需要考虑数据库的物理分布。您的映射策略将受到您希望数据在已部署系统上的生存位置的影响。
  • 要可视化,指定,构造和记录映射,请创建包含构造为表的组件的组件图。
  • 在可能的情况下,使用工具帮助您将逻辑设计转换为物理设计。

组件图建模物理数据库


尝试现在绘制UML组件图

您已经了解了组件图是什么以及如何绘制组件图。是时候绘制自己的组件图了。获取Visual Paradigm Community Edition,一个免费的UML软件,并使用免费的Component Diagram工具创建自己的组件图。它易于使用且直观。

相关链接

Visual Paradigm Online