来源: http://www.uml.org.cn/oobject/200901041.asp

近些天学习设计。由于没有具体项目,原有项目也没有什么设计的概念,只是看相关的书籍,所以着实有些抓狂。然最抓狂的是对于UML那些表示法的生疏,虽然看过N+1遍相关的表示,但由于之前看过的设计图稿和自己画的东东本来就不多,因此出来类图,对象图等及其基本的图示可以很清楚的知道谁是怎么表示的外,其他的都只是有些模糊的概念。而有些东西是死记不来的,因此要找个地方记录下。接下来将把UML的一些常用不常用的通用图示记录一下以便查阅。

本篇将主要记录UML静态视图中的基本概念以及一些基本图示法,如类,对象,用例等。将这些术语小作分类:结构元素,关系,分组,注释,扩展。

结构元素

结构元素包括,类,对象,接口,用例,参与者。

类图

UML图示-LMLPHP

类图图示

类图是UML中最基本的元素了吧?根据OO的思想“天下一切皆对象”,而类是对象的抽象。 
    左侧图示为一个类图。顶端“ClassName”表示类名 
    中间部分为该类的属性,其中分别表示为可访问性,属性名,以及属性的数据类型。 
    第三部分为该类的方法,包括方法的可访问性,方法名,方法的参数以及方法的返回值。 
    需要说明的是:

      “#”表示protected
      “+”表示Public
      “-”表示private
    “i”表示internal

UML图示-LMLPHP

对象图图示

对象图

右侧图示为一对象图,该对象为类className类的一个实例对象

该图第一部分说明了该对象为className的一个实例,第二部分指定了该实例的属性值。该图指定的是一个特殊的实例的对象,如果要代表className的所有的对象可省略掉对象名,即为“:ClassName”。

接口

UML图示-LMLPHP

类图图示

左图为一个比较简单的接口事例图示。与类图差不多,该图示分为三部分,第一部分为接口名,为了更明确的标明其“接口”的身份通常以“I”开头。第二部分为属性,第三部分为方法。

用例与参与者

下图为一简单的用例视图。小人表示参与者,而椭圆表示的是用例。

UML图示-LMLPHP

用例与参与者图示

UML图示-LMLPHP

包图图示

右侧图示为一包图,该图示为一名称为Utility的工具包。

包用来组织类,被包含在包里的类一般通过如Utility::StrUtility的形式来反应该类的路径。

关系

关系元素包括了聚集,组成,实现,继承,依赖,关联等。

关联

UML图示-LMLPHP

关联图示

关联是类之间的联系,如篮球队员与球队之间的关联(下图所示)。其中,关联两边的"employee"和“employer”标示了两者之间的关系,而数字表示两者的关系的限制,是关联两者之间的多重性。通常有“*”(表示所有,不限),“1”(表示有且仅有一个),“0...”(表示0个或者多个),“0,1”(表示0个或者一个),“n...m”(表示n到m个都可以),“m...*”(表示至少m个)。

在关联中有一种叫“限定关联”,还有一种谓之自身关联。另外,对象之间的关联就没那么复杂,只是将类的关联实例化而已。

依赖

UML图示-LMLPHP

依赖图示

依赖是表示一个类中使用了另外一个类,最常用的依赖是在类A的方法中使用了类B,那么A依赖B。如上图所示。

继承

UML图示-LMLPHP

继承图示

这里的继承是指子类对父类的关系。理解面向对象的各位对继承应该不陌生。啥也不说,看看图好了。
继承使用空心箭头表示继承的方向,用实线连接。

实现

UML图示-LMLPHP

实现图示

实现指的是类对接口的实现。接口实现的表示与继承的表示差不多,只是将实线变为了虚线。

聚集

UML图示-LMLPHP

聚集图示

一个类可能有几个部分类聚集在一起而成。如:电脑主机由CPU,主板,光驱....等组成。类与类之间是“整体-部分”的关系。

组合

UML图示-LMLPHP

组成图示

组成是强类型的聚集,每个部分体只能属于一个整体。如桌子由桌腿和桌面组成。

04-26 12:36