UML类图详解一
类图的基本目的是显示建模系统的类型,主要包括的类型有:类、接口、数据类型、组件等
UML为这些类型起了个名字叫分类器。通常可以把分类器当做类,但在技术上,分类器是更为普遍的术语。
类名
类的UML表示是一个长方形,垂直地分为三个区,顶部区域显示类的名字。中间区域列出类的属性。底部列出类的方法。
类属性列表
类的属性节在分隔线上列出每一个类的属性。属性是可选择的,要是一用它,就包含类的列表显示的每个属性。
每个参数都使用这样的格式:“参数名:参数类型”或“参数名:参数类型 = 默认值”
继承
关联
系统建模时,特定的对象间将会彼此关联,而且这些关联本身需要被清晰地建模。有五种关联。
双向(标准)的关联
一个双向关联用两个类间的实线表示,在线的任一端,放置一个角色名和多重值。
多重值和它们的表示:
可能的多重值描述 | |
表示 | 含义 |
0..1 | 0个或1个 |
1 | 只能1个 |
0..* | 0个或多个 |
* | 0个或多个 |
1..* | 1个或我个 |
3 | 只能3个 |
0..5 | 0到5个 |
5..15 | 5到15个 |
单向关联
两个类是相关的,但是只有一个类知道这种联系的存在。
一个单向的关系,表示为一条带有指向已知类的开放箭头的实线。如同标准关系,单向关系包括一个角色名和一个金重值描述,但是与标准和又向关系不同的是,单向关联只包含已知类的角色名和金重描述。
软件包,
在一个大的系统或大的业务领域建模,在模型中将会有许多不同的分类器。管理所有的类将是一件很麻烦的事情,所以,UML提供了一个称为包的组织元素。软件包使建模者能够组织模型分类器到名字空间中。
有两种方法表示软件包。没有规则要求使用哪种标记,依据个人的判断:哪种更便于你画的类图。两种方法都是由一个较小的长方形嵌套在一个大的长方形中开始的,建模者必须决定包的成员如何表示,
1、如果建模者决定在大长方形中显示软件包的成员,则所有的那些成员需要被放置在长方形里面,另外,所有的软件包的名字需要放在软件包的较小的长方形之内。
2、如果建模者决定在大的长方形之外显示软件包成员,则所有将会在图上显示的成员都需要被置于长方形之外,为了显示属于软件包的分类器属于,从每个分类器画一条线到里面有加号的圆周,这些圆周粘附在软件包之上。
接口
一个类和一个接口不同:一个类可以有它形态的真实实例,然而一个接口必须至少有一个类来实现它。在UML2中,一个接口被认为是类建模元素的特殊化。因此,接口就象类那样绘制。但是长方形顶部区域有“interface”。
接口和具体实现类之间用一个带有闭合单向箭头的实线表示继承。
关联类
在关联建模中,存在一些情况下,需要包括其它类,因为它包含了关于关联的有价值的信息。这种情况下,就会使用关联类来绑定你的基本关联。关联类和一般类一样表示。不同的是,主类和关联类之间用一条相对的点线连接。
聚合
聚合是一种特别类型的关联,用于描述“总体到局部”的关系,在基本的聚合关系中,部分类的生命周期独立于整体类的生命周期。
1、基本聚合
某个类是另外某个类的一部分。在一个聚合关系中,子类实例可以比父类存在更长的时间,为了表现一个聚合关系,画一条从父类到部分类的实线,并在父类的关联末端画一个未埴充的棱形。
2、组合聚合
组合聚合关系是聚合关系的另一种形式,但是子类实例的生命周期依赖父类实例的生命周期。例如一个company类实例至少总有一个department类实例。
3、反射关联
类也可以使用反射击关联与它本身相关联。
可见性
UML识别四种类型的可见性:public, protected,private ,package。
UML支持的可见性类型的标志
标志 | 可见性类型 |
+ | Public |
# | Protected |
- | Private |
~ | Package |
结论
至少存在两个了解类图的重要理由。第一个是显示系统分类器的静态结构;第一个理由是图为UML描述的其他结构图提供了基本记号。开发者将会认为类图是他们特别建立的;但是其他团队成员将发现它们也是有用的。
业务分析师可以用类图,为系统的业务远景建模。
/************************************************/
本博客内容如果是原著都会在标题后加上(原著)字样,未加者多数为转载.
/************************************************/