学习笔记 UML组件图详解

开发 架构
UML组件图你是否熟悉,本文就向大家简单介绍一下,UML组件图的主要目的是显示系统组件间的结构关系。希望本文的介绍对你有所帮助。

在以组件为基础的开发(CBD)中,UML组件图为架构师提供一个开始为解决方案建模的自然形式。UML组件图允许一个架构师验证系统的必需功能是由组件实现的,这样确保了最终系统将会被接受。

UML组件图详解

图的目的

UML组件图的主要目的是显示系统组件间的结构关系。在UML1.1中,一个组件表现了实施项目,如文件和可运行的程序。不幸地,这与组件这个术语更为普遍的用法、指象COM组件这样的东西相冲突。随着时间的推移及UML的连续版本发布,UML组件已经失去了最初的绝大部分含义。UML2正式改变了组件概念的本质意思;在UML2中,组件被认为是独立的,在一个系统或子系统中的封装单位,提供一个或多个接口。虽然UML2规范没有严格地声明它,但是组件是呈现事物的更大的设计单元,这些事物一般将使用可更换的组件来实现。但是,并不象在UML1.x中,现在,组件必须有严格的逻辑,设计时构造。主要思想是,你能容易地在你的设计中重用及/或替换一个不同的组件实现,因为一个组件封装了行为,实现了特定接口。1

在以组件为基础的开发(CBD)中,UML组件图为架构师提供一个开始为解决方案建模的自然形式。UML组件图允许一个架构师验证系统的必需功能是由组件实现的,这样确保了最终系统将会被接受。
除此之外,UML组件图对于不同的小组是有用的交流工具。图可以呈现给关键项目发起人及实现人员。通常,当UML组件图将系统的实现人员连接起来的时候,UML组件图通常可以使项目发起人感到轻松,因为图展示了对将要被建立的整个系统的早期理解。

开发者发现UML组件图是有用的,因为UML组件图给他们提供了将要建立的系统的高层次的架构视图,这将帮助开发者开始建立实现的路标,并决定关于任务分配及(或)增进需求技能。系统管理员发现UML组件图是有用的,因为他们可以获得将运行于他们系统上的逻辑软件组件的早期视图。虽然系统管理员将无法从图上确定物理设备或物理的可执行程序,但是,他们仍然欢迎UML组件图,因为它较早地提供了关于组件及其关系的信息(这允许系统管理员轻松地计划后面的工作)。

符号

在现在,UML组件图符号集使它成为最容易画的UML图之一。图1显示了一个使用前UML1.4符号的简单的UML组件图;这个例子显示两个组件之间的关系:一个使用了InventorySystem组件的OrderSystem组件。正如你所能见到的,在UML1.4中,用一个大方块,并且在它的左边有两个凸出的小方块,来表示组件。

图1:这个简单的UML组件图使用UML1.4符号显示OrderSystem的一般性依赖关系

上述的UML1.4符号在UML2中仍然被支持。然而,UML1.4符号集在较大的系统中不能很好地调节。关于这一点的理由是,如同我们在这篇文章的其余部分将会见到一样,UML2显著地增强了UML组件图的符号集。在维持它易于理解的条件下,UML2符号能够调节得更好,并且符号集也具有更多的信息。
让我们依照UML2规范一步步建立UML组件图。

基础

现在,在UML2中画一个组件很类似于在一个类图上画一个类。事实上,在UML2中,一个组件仅仅是类概念的一个特殊版本。这意味着适用于类分类器的符号规则也适用于组件分类器。(如果你已经读了并理解了我以前的关于大体上的结构图和类图细节的文章[http://www.ibm.com/developerworks/cn/rational/rationaledge/content/feb05/bell/index.shtml],你就会很易理解UML组件图)。
在UML2中,一个组件被画成堆积着可选择小块的一个立着的长方形。UML2中,组件的一个高层次的抽象视图,可以用一个长方形建模,包括组件的名字和组件原型的文字和/或图标。组件原型的文本是“«component»”,而组件原型图标是在左边有两个凸出的小长方形的一个大长方形(UML1.4中组件的符号元素)。图2显示,组件可以用UML2规范中的三种不同方法表示。

图2:画组件名字区的不同方法

当在图上画一个组件时,重要的是,你总要包括组件原型文本(在双重尖括号中的那个component,如图2所示)和/或图标。理由呢?在UML中,没有任何原型分类器的一个长方形被解释为一个类组件。组件原型和/或图标用来区别作为组件元素的长方形。

为组件提供/要求接口建模

在图2中所画的Order组件表现了所有有效的符号元素;然而,一个典型的UML组件图包括更多的信息。一个组件元素可以在名字区下面附加额外的区。如前面所提到的,一个组件是提供一个或更多公共接口的独立单元。提供的接口代表了组件提供给它的用户/客户的服务的正式契约。图3显示了Order组件有第二个区,用来表示Order组件提供和要求的接口。2

图3:这里额外的区显示Order组件提供和要求的接口。

在图3中的Order组件例子中,组件提供了名为OrderEntry和AccountPayable的接口。此外,组件也要求另外一个组件提供Person接口。

组件接口建模的其它方法

UML2也引入另外一种方法来显示组件提供并要求的接口。这个方法是建立一个里面有组件名的大长方形,并在长方形的外面放置在UML2规范中称为接口符号的东西。这第二种方法在图4中举例说明。

4:一种可选择的方法(与图3相比):使用接口符号显示组件提供/要求的接口

在这第二种方法中,在末端有一个完整的圆周的接口符号代表组件提供的接口--“棒棒糖”是这个接口分类器实现关系符号的速记法。在末端只有半个圆的接口(又称插座)符号代表组件要求的接口(在两种情况下,接口的名字被放置在接口符号本身的附近)。即使图4看起来与图3有很大的不同,但两个图都提供了相同的信息--例如,Order组件提供两个接口:OrderEntry和AccountPayable,而且Order组件要求Person接口。

组件关系的建模

当表现组件与其他的组件的关系时,棒棒糖和插座符号也必须包括一支依存箭头(如类图中所用的)。在有棒棒糖和插座的UML组件图上,注意,依存箭从强烈的(要求的)插座引出,并且它的箭头指向供应者的棒棒糖,如图5所示。

图5:显示Order系统组件如何依赖于其他组件的UML组件图

图5显示,Order系统组件依赖于客户资源库和库存系统组件。注意在图5中复制出的接口名CustomerLookup和ProductAccessor。在这个例子中,这看起来可能是不必要的重复,不过符号确实允许在每个依赖于实现差别的组件中有不同的接口(和不同的名字)(举例来说,一个组件提供一个较小的必需的接口子类)。

【编辑推荐】

  1. 术语汇编 UML组件图解析
  2. 解析Rose中不同类型UML组件图
  3. 全面认识UML组件图
  4. 整洁的UML图如何绘制?
  5. UML中各种UML图形的建立步骤简明介绍
责任编辑:佚名 来源: csdn.net
相关推荐

2010-06-29 13:22:26

UML类图

2010-07-06 10:56:32

UML图详解

2010-06-28 15:41:17

UML图类型

2010-07-12 09:30:34

UML模型图

2010-07-05 17:58:41

UML活动图

2010-07-06 13:04:33

UML系统组件图

2010-07-01 16:02:48

UML组件图

2010-06-11 10:31:19

UML部署图

2010-06-28 16:37:05

UML类图

2010-07-05 15:15:25

UML9种图

2010-07-01 11:52:59

UML类图

2010-07-07 17:51:06

UML类图

2010-07-02 09:21:34

UML部署图

2010-07-02 09:54:38

UML部署图

2010-07-06 12:00:23

UML活动图

2010-07-06 16:19:56

UML图形

2010-07-12 10:43:41

UML交互图

2009-04-23 14:24:36

UML建模组件图

2010-07-06 11:21:37

UML状态图

2010-06-08 17:01:34

UML用例图
点赞
收藏

51CTO技术栈公众号