什么是 OOAD 中的 UML 组件图?符号、示例
什么是 UML 组件图?
UML 组件图用于将大型系统建模为可轻松管理的小型子系统。UML 组件图用于表示系统的不同组件。在对大型面向对象系统进行建模时,有必要将系统分解为可管理的子系统。
组件是系统的可替换和可执行部分,其实现细节是隐藏的。组件提供组件实现或遵守的一组接口。组件也需要接口来执行功能。
组件图符号
以下是 UML 组件图的符号
组件

节点
什么是 OOAD 中的组件?
组件是系统的可替换和可执行部分,其实现细节是隐藏的。组件提供组件实现或遵守的一组接口。组件也需要接口来执行功能。
它是系统的模块化部分,封装了其内容。它们是系统在系统执行期间起着重要作用的逻辑元素。
组件类似于黑盒,其外部行为由提供的接口和所需的接口定义。
UML 组件的结构
组件表示为具有分类器矩形构造型
<< component >>:组件的详细信息对外部世界是隐藏的。组件的名称放置在矩形的中心。组件图标显示在矩形右上角,这是可选的。
UML 中的组件表示如下
组件图中的接口
接口是一组命名的公共特征。它通过 类图 或子系统将功能规范与其实现分开。接口符号不能实例化。它声明了一个可能被一个或多个分类器(如类或子系统)实现的契约。
任何实现接口的东西都接受接口的功能,并同意遵守接口定义的契约。
如果实现语言不支持接口,则使用抽象类,接口的命名方式与类相同,采用UpperCamelCase(首字母大写的驼峰命名法)。
组件图中存在两种类型的接口
- 提供的接口
- 所需的接口
我们可以使用装配连接器连接提供的接口和所需的接口。
优点
- 它增加了类的灵活性和可扩展性。
- 它降低了实现依赖性。
缺点
- 额外的灵活性会导致类变得复杂。
- 过多的接口会使系统难以理解。
组件图子系统
它是组件的基础,充当大型系统的分解单元。它是一个逻辑构造,用于将大型系统分解为称为子系统的较小子系统。此过程使得有效地管理每个子系统变得容易。
子系统在运行时无法实例化,但其内容可以初始化。当子系统连接在一起时,它们会形成一个单一的系统。
组件图中的端口
端口是分类器与外部环境之间的交互点。它组合了语义上内聚的一组提供的接口和所需的接口。端口可以在不指定端口名称的情况下在 UML 中使用。端口可以具有可见性。当端口绘制在分类器的边界上时,表示该端口是公共的。这也意味着所有使用的接口都是公共的。
当端口绘制在分类器内部时,它是受保护的或私有的。
端口还有基数,它表示端口分类器的实例数量。UML 图中的端口表示如下
此处,port1 绘制在边界上,表示其可见性为公共。
如何绘制组件图
以下是如何绘制 UML 组件图
步骤 1) 组件不过是系统的可执行部分。各种组件共同构成一个系统。组件图在任何系统的执行阶段被广泛使用。
步骤 2) 在建模组件图之前,必须知道系统中的所有组件。应说明每个组件的工作。组件图用于分析系统的执行。
步骤 3) 应深入探索每个组件,以了解组件与其他物理工件在系统中的连接。
步骤 4) 在建模组件图期间,各种工件、库和文件之间的关系是必需的关键要素。
UML 组件图示例
下面是一个 UML 组件图的示例
为什么使用组件图?
UML 组件图具有重要意义。组件图与其它图表有显著区别。虽然其他图表用于表示系统、系统工作或系统架构。组件图用于描述系统各个组件的工作和行为。
它表示每个组件在系统执行期间如何工作。
这些是统一建模语言的静态图。组件图用于表示任何时间实例的组件的结构和组织。
组件图用于对子系统进行建模。这些子系统共同代表了系统的整个工作视图。单个组件无法可视化整个系统,但多个组件的集合可以。
因此,组件图用于
- 表示运行时任何系统的组件。
- 它有助于系统的测试。
- 它可视化了各种组件之间的连接。
何时使用组件图?
组件图与 UML 中的任何其他图表不同。组件图用于显示软件系统的各种组件以及单个系统的子系统。它们用于表示系统的物理事物或组件。它通常可视化系统的结构和组织。
它描述了各个组件如何共同构成一个完整的功能系统。我们可以单独显示每个组件,也可以将它们作为一个整体单元显示。
- 组件图用于对系统的组件组织进行建模。
- 它们用于根据功能将单个系统划分为各种子系统。
摘要
- 组件是系统的可替换和可执行部分。
- 组件提供组件实现或遵守的一组所需接口。
- 这些是统一建模语言的静态图。
- 它是系统的模块化部分,封装了其内容。
- 组件图用于表示系统各个组件的工作和行为。
- 各种组件共同构成一个系统。