什么是 UML 组件图?符号说明及示例

⚡ 智能摘要

在面向对象分析与设计 (OOAD) 中,UML 组件图通过将大型系统分解为更小、更易于管理的子系统,并展示可替换组件如何通过接口连接,从而对大型系统进行建模。本资源解释了组件符号、端口、子系统、绘制步骤以及一个示例。

  • 🧩 核心理念: 组件图将大型系统分解成更小、可替换、可执行的子系统。
  • 成分: 每个组件都是一个黑盒,其行为由其提供的接口和所需的接口定义。
  • ???? 接口: 提供的和所需的接口通过装配连接器连接,将组件连接在一起。
  • 🚪 端口: 端口是组件提供的接口和所需接口的交互点。
  • 🛠️ 用法: 组件图在运行时对结构进行建模,并支持系统测试和子系统组织。

什么是 UML 组件图

UML 中的组件图是什么?

UML 组件图 用于将大型系统建模为易于管理的较小子系统。UML 组件图用于表示系统的不同组件。在对大型面向对象系统进行建模时,需要将系统分解为可管理的子系统。

组件是系统中可替换且可执行的部分,其实现细节是隐藏的。组件提供一组组件实现或执行的接口。组件还需要接口才能执行功能。

组件图符号

以下是 UML 组件图符号:

元件

组件图中的组件符号
组件图中的组件符号

Node

组件图中的节点符号

组件图中的节点符号

OOAD 中的组件是什么?

组件是系统中可替换且可执行的部分,其实现细节是隐藏的。组件提供一组组件实现或执行的接口。组件还需要接口才能执行功能。

它是系统的一个模块化部分,封装了系统的内容。它们是系统的逻辑元素,在系统执行过程中起着至关重要的作用。

组件类似于一个黑盒子,其外部行为由提供的接口和所需的接口定义。

UML 组件的结构

组件用分类器矩形刻板表示为:

<< 组件 >>:组件详细信息对外隐藏,组件名称放置在矩形框中央,矩形框右上角显示组件图标(可选)。

组件 UML 表示如下:

UML 组件的结构

UML 组件的结构

组件图中的接口

接口是一组命名的公共功能。它通过一个 类图 或者一个子系统。接口符号不能被实例化。它声明了一个连接。tract 可以通过零个或多个分类器来实现,例如类或子系统。

任何实现接口的实体都接受该接口的功能并同意遵守其规则。tract 由接口定义。

如果实现语言不支持接口,则使用绝对值。tract 类和接口的命名方式与类相同,在 大驼峰命名法.

组件图中有两种类型的接口:

  1. 提供的接口
  2. 所需接口

我们可以使用组装连接器连接提供的和所需的接口。

优势

  • 它增加了类的灵活性和可扩展性。
  • 它减少了实现依赖性。

缺点

  • 额外的灵活性会导致复杂的类别。
  • 太多的界面会使系统难以理解。

组件图子系统

它是一个组件库,可作为大型系统的分解单元。它是一种逻辑结构,用于将庞大的系统分解为较小的系统(称为子系统)。此过程使管理每个子系统变得轻松高效。

子系统在运行时无法实例化,但可以初始化其内容。当子系统连接时,它会创建一个单一系统。

组件图中的端口

端口是分类器和外部环境之间的交互点。它将语义上一致的一组提供和需要的接口组合在一起。端口可以在 UML 中使用,而无需指定端口的名称。端口可能具有可见性。当端口绘制在分类器的边界上时,这意味着该端口是公共的。这也意味着所有使用的接口都是公共的。

当在分类器内部绘制端口时,它要么是受保护的,要么是私有的。

端口还具有多重性,表示端口分类器的实例数量。UML 图中端口的表示如下:

组件图中的端口符号

组件图中的端口符号

这里,port1 绘制在边界上,这意味着它具有公共可见性。

如何绘制组件图

绘制 UML 组件图的方法如下:

步骤1) 组件不过是系统的一个可执行部分。各种组件共同构成一个系统。组件图在任何系统的执行阶段都得到广泛使用。

步骤2) 在对组件图进行建模之前,必须了解系统内的所有组件。应提及每个组件的工作原理。组件图用于分析系统的执行情况。

步骤3) 还应该深入探索每个组件,以了解组件与系统中其他物理工件的连接。

步骤4) 各种工件、库和文件之间的关系是组件图建模期间所需的基本内容。

UML 组件图示例

下面是 UML 组件图的一个示例:

UML 组件图示例

UML 组件图示例

为什么要使用组件图?

UML 组件图具有重要意义。组件图与其他图表有各种不同。其他图表用于表示系统、系统的工作或系统的架构。组件图用于描述系统各个组件的工作和行为。

它表示系统执行过程中每个组件的行为方式。

这些是统一建模语言的静态图。组件图用于表示任何时间实例中的组件结构和组织。

组件图用于对子系统进行建模。这些子系统共同代表任何系统的整个工作视图。单个组件无法可视化整个系统,但多个组件的集合可以。

因此,组件图用于:

  • 表示运行时任何系统的组件。
  • 它有助于系统测试。
  • 它可视化了各个组件之间的连接。

何时使用组件图?

组件图不同于其他 UML 中的图表。组件图用于显示软件系统的各种组件以及单个系统的子系统。它们用于表示系统的物理事物或组件。它通常将系统的结构和组织可视化。

它描述了各种组件如何共同构成一个功能齐全的单一系统。我们可以单独显示每个组件,也可以将其作为一个单元集体显示。

  1. 组件图用于对系统的组件组织进行建模。
  2. 它们用于根据功能将单个系统划分为各个子系统。

常见问题

组件图展示了软件组件及其接口。部署图展示了物理硬件节点以及组件在其上运行的位置。组件图对软件结构进行建模;部署图对运行时硬件环境进行建模。

装配连接器将一个组件所需的接口连接到另一个组件提供的接口。它表明一个组件提供另一个组件所需的服务,并将各个组件连接起来形成一个可运行的系统。

球形(棒棒糖)符号代表组件提供的接口,插座(半圆)符号代表组件所需的接口。球形符号插入插座表示一个组件满足另一个组件的需求。

人工智能工具可以读取系统描述或模块列表,并生成包含组件、接口和连接器的组件图。这有助于架构师更快地绘制系统结构,但组件的边界和依赖关系仍需专家审核。

是的。 Reverse-工程和人工智能工具可以扫描代码库,将文件分组为组件,并将它们接口和依赖关系映射到组件图草稿中。 Rev查看输出结果,因为人工智能可能会错过预期的建筑边界。

总结一下这篇文章: