复合结构图

统一建模语言(UML)中的复合结构图是一种静态结构图,它显示了的内部结构以及该结构使该结构成为可能的协作

该图可以包括内部零件,端口相互相互作用的端口,或者类的实例与零件和外界相互作用,以及零件或端口之间的连接器复合结构是一组相互联系的元素,在运行时协作以实现一定目的。每个元素在协作中都有一些定义的作用

概念

UML 2.0规范中确定的关键复合结构实体是结构化分类器,零件,端口,连接器和协作。

  • 零件:零件代表一个在运行时扮演的角色,该角色是分类器的一个实例或一系列实例。该零件只能命名该角色,它可以命名抽象超类,或者可以命名特定的具体类。该零件可以包括一个多样性因子,例如图中查看器显示的[0 ..*]。
  • 端口:端口是一个交互点,可用于将结构化分类器与其零件以及环境连接起来。端口可以​​选择指定他们提供的服务以及系统其他部分所需的服务。在图中,每个小方块都是端口。每个端口都有一种类型,并标有一个名称,例如“ var”,“ indvar1”或“视图”。端口可能包含多重因素,例如[3]。
端口可以​​将接收到的请求委派给内部部件,也可以将其直接传递给端口包含的结构化分类器的行为。在环境中可见的公共端口显示跨边界,而在边界内显示了环境中不可见的受保护端口。图中的所有端口均为公共,除了沿斐波那契机系统右边界的视图端口。
  • 连接器:连接器将两个或多个实体绑定在一起,使它们可以在运行时进行交互。连接器显示为零件,端口和结构化分类器的某些组合之间的界限。该图显示了端口之间的三个连接器,以及一个结构化分类器和零件之间的一个连接器。
  • 协作:合作通常比结构化分类器更抽象。它显示为虚线椭圆形,其中包含实例可以在协作中扮演的角色。
  • 结构化分类器:结构化的classifier代表一个类,通常是抽像类,其行为可以通过零件之间的相互作用来完全或部分描述。
  • 封装分类器:封装的classifier是一种包含端口的结构化分类器。在下中,斐波那切和变量都是封装的分类器,因为它们都沿着边界具有端口。

例子

UML 2.0复合结构图。

例如,考虑一种模拟斐波那契序列产生的可能方法。

该UML 2.0复合结构图指定“斐波那契机系统”类的实例由许多部分组成。这些部分中的最上方被确定为具有分类器“ fibonaccifunction”。其中三个部分是通过它们在斐波那切斯系统实例中所扮演的角色来识别的 - nminus2角色, nminus1角色和n个角色。由其分类器查看器标识的第五部分包括一个多重性规范。在运行时可以有0个或更多的观看器或某些混凝土子类的实例。

在运行时,实现这三个角色的类实例必须通过其VAR端口提供IVAR接口指定的服务。一个这样的类是可变的,在图中显示了一个名为VAR类型VAR的端口,该端口实现了IVAR接口。

名为“视图”的端口是一个非公共端口,可以由fibonaccisystem的实例使用,以访问Viewer的可选实例。