专家解说UML部署图
本文和大家重点讨论一下UML部署图,从UML部署图中,您可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况。使用部署图可以显示运行时系统的结构,同时还传达构成应用程序的硬件和软件元素的配置和部署方式。
UML部署图
部署图(deploymentdiagram,配置图)是用来显示系统中软件和硬件的物理架构。从部署图中,您可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况。使用部署图可以显示运行时系统的结构,同时还传达构成应用程序的硬件和软件元素的配置和部署方式。
一个UML部署图(对象管理组织2001)描述了一个运行时的硬件结点,以及在这些结点上运行的软件组件的静态视图。部署图显示了系统的硬件,安装在硬件上的软件,以及用于连接异构的机器之间的中间件。创建一个部署模型的目的包括∶
◆探究系统投产的相关问题.
◆探究你的系统和生产环境中的其它系统的依赖关系,这些系统可能是已经存在,或是将要引入的。
◆描述一个商业应用主要的部署结构。
◆设计一个嵌入系统的硬件和软件结构。
◆描述一个组织的硬件/网络基础结构。
指南∶通用准则
在特定的项目图上注明软件组件;集中在企业级图上的结点和通信关联
结点和组件:用描述性术语命名结点;仅仅建模重要的软件组件;为组件一致地应用一致版型;把可视化的版型应用到结点
依赖和通信关联:用版型来注明通信协议;仅仅建模组件间的关键性依赖
一、通用准则
1.在特定的项目图上注明软件组件
图1是一个大学管理系统的UML部署图描述.该图描述了那些包含单一应用程序的主要软件组件是怎样配置到生产环境中的,这使得项目团队能够确定他们的部署策略。2.集中在企业级图上的结点和通信关联
UML部署图经常被认为是一个网络图或技术架构图,图2是该风格的一个例子,它描述了一个简单组织的技术基础结构。注意图2是一个非常简单的例子,像这样的图,许多组织将会有几十甚至几百个结点。
虽然在图的有限范围内注明组件的部署情况是可以顶用的,例如图1,但图很快地就变得笨重起来。图2则关注于企业的那些高阶部署,因此配置在硬件结点之上的软件组件的精细的、细节的东西就不需要显示出来,你可以在你的CASE工具中处理这些信息,但这并不意味着你需要在图上显示它们。
图2.一个组织的UML部署图
二、结点和组件
一个结点,通常描述成一个立体的盒子,表示一个计算设备,一般是一个单独的硬件设备,例如一台电脑,网络路由器,主机,传感器,或个人数字助理(PDA)。组件,描述为矩形,左侧面还伸出两个较小矩形,这和UML组件图上使用的符号是相同的,它表示软件的中间产物,例如文件、框架、或领域组件。
1.用描述性术语命名结点
在图1中,你可以看到结点都有名称,例如client、ApplicationServer、DatabaseServer、和Mainframe。所有的这些术语都需要即刻为组织内的开发人员所认可,因为这些条款都是他们日常使用的。保持它的简单性。
2.仅仅建模重要的软件组件
虽然图1包含软件组件,但它没有描述每一个软件组件。例如,客户机上很可能还安装有其他的软件组件,如操作系统和应用软件,但那些组件没有显示出来,因为它们已经离题了。事实是每个结点也许有几十甚至几百的软件组件配置于其上,你的目标并不是描述所有的软件组件,而是只需要描述那些对系统的列节至关重要的组件。如果你需要探究软件组件间的关系,你应该创建一个UML组件图作为替代,遵循敏捷建模(AM)(Ambler2002)的应用"合适的Artifact"的实践。
3.为组件一致地应用一致版型
在UML部署图上为组件应用和UML组件图中的相同的版型。
4.把可视化的版型应用到结点
图2使用可视化的版型来描述结点描述结点,例如mobilePC是显示为一个笔记本,而databases则使用传统的数据库的圆筒符号来表示。为UML部署图上应用可视化版型制定标准是不可能的,一般的经验法则是使用你看得到的适当的剪贴画。
三、依赖和通信关联
通信关联,经常称为连接,被描述为连接结点间的线条。组件间的依赖则被建模成虚线箭头,这和其他UML图上使用的符号是一样的。
1.用版型来注明通信协议
通信关联支持一个或多个通信协议,每一个都应该使用一个UML版型来描述。图1中你可以看到HTTP、JDBC、和webservices协议,他们就是使用了这个方法。
表1提供了一个典型的通信关联的版型列表,你的组织也许会想开发自己的特定标准。
表1.通用的版型为通信关联
版型含意。
异步一个异步连接,也许经由一个消息总线或消息队列。
HTTP超文本传输协议,一个网际协议。
JDBCJava数据库连接,一套为数据库存取编写的JavaAPI。
ODBC开放式数据库连接,一套微软的数据库存取应用编程接口。
RMI远程方法调用,一个Java的通信协议。
RPC经由远程过程调用的通信。
同步一个同步连接,发送器等待从接收器回来的反应。
webservices经由诸如SOAP和UDDI的WebServices协议的通信。