什么是 OOAD 中的 UML 组件图?符号、示例

什么是 UML 组件图?

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

组件是系统的可替换和可执行部分,其实现细节是隐藏的。组件提供组件实现或遵守的一组接口。组件也需要接口来执行功能。

组件图符号

以下是 UML 组件图的符号

组件

Component Notation in Component Diagram
组件图中的组件符号

节点

Node Notation in Component Diagram

组件图中的节点符号

什么是 OOAD 中的组件?

组件是系统的可替换和可执行部分,其实现细节是隐藏的。组件提供组件实现或遵守的一组接口。组件也需要接口来执行功能。

它是系统的模块化部分,封装了其内容。它们是系统在系统执行期间起着重要作用的逻辑元素。

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

UML 组件的结构

组件表示为具有分类器矩形构造型

<< component >>:组件的详细信息对外部世界是隐藏的。组件的名称放置在矩形的中心。组件图标显示在矩形右上角,这是可选的。

UML 中的组件表示如下

Structure of a UML Component

UML 组件的结构

组件图中的接口

接口是一组命名的公共特征。它通过 类图 或子系统将功能规范与其实现分开。接口符号不能实例化。它声明了一个可能被一个或多个分类器(如类或子系统)实现的契约。

任何实现接口的东西都接受接口的功能,并同意遵守接口定义的契约。

如果实现语言不支持接口,则使用抽象类,接口的命名方式与类相同,采用UpperCamelCase(首字母大写的驼峰命名法)。

组件图中存在两种类型的接口

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

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

优点

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

缺点

  • 额外的灵活性会导致类变得复杂。
  • 过多的接口会使系统难以理解。

组件图子系统

它是组件的基础,充当大型系统的分解单元。它是一个逻辑构造,用于将大型系统分解为称为子系统的较小子系统。此过程使得有效地管理每个子系统变得容易。

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

组件图中的端口

端口是分类器与外部环境之间的交互点。它组合了语义上内聚的一组提供的接口和所需的接口。端口可以在不指定端口名称的情况下在 UML 中使用。端口可以具有可见性。当端口绘制在分类器的边界上时,表示该端口是公共的。这也意味着所有使用的接口都是公共的。

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

端口还有基数,它表示端口分类器的实例数量。UML 图中的端口表示如下

Port Notation in Component Diagram

组件图中的端口符号

此处,port1 绘制在边界上,表示其可见性为公共。

如何绘制组件图

以下是如何绘制 UML 组件图

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

步骤 2) 在建模组件图之前,必须知道系统中的所有组件。应说明每个组件的工作。组件图用于分析系统的执行。

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

步骤 4) 在建模组件图期间,各种工件、库和文件之间的关系是必需的关键要素。

UML 组件图示例

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

UML Component Diagram Example

UML 组件图示例

为什么使用组件图?

UML 组件图具有重要意义。组件图与其它图表有显著区别。虽然其他图表用于表示系统、系统工作或系统架构。组件图用于描述系统各个组件的工作和行为。

它表示每个组件在系统执行期间如何工作。

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

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

因此,组件图用于

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

何时使用组件图?

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

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

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

摘要

  • 组件是系统的可替换和可执行部分。
  • 组件提供组件实现或遵守的一组所需接口。
  • 这些是统一建模语言的静态图。
  • 它是系统的模块化部分,封装了其内容。
  • 组件图用于表示系统各个组件的工作和行为。
  • 各种组件共同构成一个系统。