复合结构图可用于显示:
- 分类器的内部结构-内部结构图,
- 分类器通过端口与环境交互,
- 协作-协作使用图的行为。
作为一种结构特征,属性表示分类器结构的某个命名部分。例如,患者类别可以有身份证、姓名、性别、出生日期等。作为它的属性。
内部结构图(Internal Structure Diagrams)
内部结构图显示 了分类器的内部结构 - 将该分类器分解为其属性,部件和关系。
以下图形元素通常在复合结构图中绘制,该 结构图显示分类器的内部结构: 类, 部件, 端口, 连接器, 用法。
复合结构图概述显示结构化分类器的内部结构元素 - 角色,部件,连接器。
您可以 在此处查看内部结构图的一些 示例:
银行自动取款机- UML复合结构图的例子
这是UML内部结构图的一个例子,它显示了银行自动柜员机(ATM)的组合结构。此图的目的是显示银行自动柜员机的内部结构以及自动柜员机不同部分之间的关系。
银行ATM通常由几个设备组成,如中央处理器(CPU)、密码处理器、存储器、客户显示器、功能键按钮(通常位于显示器附近)、磁性和/或智能芯片读卡器、加密密码板、客户收据打印机、保险库、调制解调器。
银行ATM内部结构UML图实例
保险库存储需要限制访问的设备和部件,包括现金分配机制、存款机制、多个安全传感器(如磁性、热性、地震、气体)、维护系统日志的电子日志系统,等。提款机包括几个可移动的现金筒和存款机构-可移动的存款筒。
ATM通常通过公共交换电话线或租用线路通过调制解调器(如拨号或ADSL)连接到银行或银行间网络。网络接口卡(NIC)可以作为VPN连接的高速替代品。
下面的概览图说明了组合结构图,其中包含结构化分类器的内部结构元素-角色、部件、连接器。
复合结构图概述显示了结构化分类器内部结构的元素-角色、部件、连接器。
Apache Tomcat 7服务器- UML复合结构图示例
这是UML内部结构图的一个例子,它展示了非集群ApacheTomcat7服务器的简化组合结构。
Server元素表示apachetomcat7web服务器的Catalina servlet容器。它是conf/server.xml配置文件中最外层的一个元素。服务器元素可以包含可选的全局命名资源组件和一个或多个服务。
每个服务元素都是共享单个引擎组件的执行器和连接器的组合。引擎接收并处理来自一个或多个连接器的所有请求,并将完成的响应返回给连接器,以便将其传输回web客户端。引擎中嵌套了一个或多个宿主元素。
内部结构示例-Apache Tomcat 7服务器
Host元素表示一个虚拟主机,它是服务器(如“www.mycompany.com”)的网络名与运行Tomcat的特定服务器的关联。可以将多个网络名称与同一虚拟主机关联。
Context元素表示在特定虚拟主机中运行的web应用程序。每个web应用程序都基于web应用程序存档(WAR)文件或包含相应的解包内容的目录,如Servlet规范中所述。每个上下文必须具有唯一的上下文名称。
协作使用图(Collaboration Use Diagrams)
系统的行为是设计中的系统将要实现的或者已经由一些现有系统实现的功能。系统中的对象通常相互协作来产生系统的行为。
协作的行为最终将由一组通过发送信号或调用操作相互通信的协作实例(由分类器指定)来展示。然而,为了理解设计中使用的机制,重要的是仅描述这些分类器的那些方面以及它们在完成任务或相关任务集合中的交互,这些任务集合是从这些分类器中投射出来的。
协作允许我们通过识别实例将扮演的特定角色来描述一组实例的协作的相关方面。
接口允许指定实例的外部可观察属性,而无需确定最终将用于指定该实例的分类器。因此,协作中的角色通常由接口来键入,然后将规定参与实例必须展示的属性,但不会确定哪个类将指定参与实例。
下节点和边线通常在复合结构图中绘制,该 结构图显示协作的行为: 协作, 连接器, 部件, 协作专业化, 依赖性。
协作元素 - 角色,部件,连接器。
协作访问显示医生和患者角色的合作。
协作使用表示由协作描述的模式在涉及扮演协作角色的特定类或实例的特定情况下的一种特定使用(发生)或应用。协作使用通过将上下文中的特定实体绑定到协作的角色,展示了如何在给定上下文中应用协作描述的模式。
协作使用元素 - 角色,部分,角色绑定。
协作使用childVisit代表
访问协作的一个特定用途。
分类器(在内部结构和协作中)扩展了拥有协作使用的能力。这些协作使用与分类器的链接协作来给出分类器行为的描述。
分类器拥有的一个协作使用可以被选择为代表分类器作为一个整体的行为。通过这种协作使用与分类器相关的协作显示了对应于该分类器的结构特征(例如,其属性和部分)的实例如何交互以生成分类器的整体行为。
表示协作可以用于在不同于分类器内部结构所提供的抽象级别上提供分类器行为的描述。分类器的属性通过协作使用的角色绑定映射到协作中的角色。
您可以在这里看到一个协作图的例子:
观察者设计模式- UML复合结构图示例
观察者模式(Observer pattern)是一种行为软件设计模式,在这种模式中,主体维护一个称为观察者的订阅者列表,并通常通过调用其方法通知他们任何状态更改。一旦收到状态更改通知,观察员就可以请求对象的当前状态。
观察者设计模式的协作示例如下所示。协作的两个角色-主题和观察者-将由主题和观察者接口类型的分类器实例来扮演。这些接口可以看作是扮演角色的分类器的外部可观察特征的投影。
协作示例-观察者设计模式
同样的协作可以使用属性的替代符号来显示。协作图标连接到表示协作属性类型的接口的每个矩形。每一行都由属性(角色)的名称进行标记。
复合结构示例-观察者设计模式 |