1 UML的建筑块
组成UML有三种基本的建筑块:
1、 事物(Things)
2、 关系(Relationships)
3、 图(Diagrams)
事物是UML中重要的组成部分。关系把事物紧密联系在一起。图是很多有相互相关的事物的组。
1.1 UML的事物
UML中有始终类型的事物:
1、 结构事物(Structural things)
2、 动作事物(Behavioral things)
3、 分组事物(Grouping things)
4、 注释事物(Annotational things)
这些事物是UML模型中最基本的面向对象的建筑块。它们在模型中属于最静态的部分,代表概念上等或物理上的元素。
1.1.1结构事物。
总共有七种结构化事物。
首先是类(class),类是描述具有相同属性、方法、关系和语义的对象的集合。一个类实现一个或多个接口。在UML中类被画为一个矩型,通常包括它的名字、属性和方法。
Window
Origin
Size
Open()
Close()
Move()
Display()
图1-1 类
第二种是接口(interface),接口是指类或组件提供特定服务的一组操作的集合。因此,一个接口描述了类或组件的对外的可见的动作。一个接口可以实现类或组件的全部动作,也可以只实现一部分。接口在UML中被画成一个圆和它的名字。
ISpelling
图1-2 接口
第三种是协作(collaboration),协作定义了交互的操作,是一些角色和其它元素一起工作,提供一些合作的动作,这些动作比元素的总和要大。因此,协作具有结构化、动作化、维的特性。一个给定的类可能是几个协作的组成部分。这些协作代表构成系统的模式的实现。协作在UML中用一个虚线画的椭圆和它的名字来表示。
图1-3 协作
第四种是use case,use case是描述一系列的动作,这些动作是系统对一个特定角色执行,产生值得注意的结果的值。在模型中use case通常用来组织动作事物。Use case是通过协作来实现的。在UML中,use case画为一个实线椭圆,通常还有它的名字。
图 1-4 use case(用例)
第五种是活动类(active class),活动类是这种类,它的对象有一个或多个进程或线程。活动类和类很相象,只是它的对象代表的元素的行为和其他的元素是同时存在的。在UML中活动类的画法和类相同,只是边框用粗线条。
EventManager
Suspend()
Flush()
图1-5活动类
第六种是组件(component),组件是物理上或可替换的系统部分,它实现了一个接口集合。在一个系统中,你可能会遇到不同种类的组件,例如COM+或JAVA BEANS。组件在UML中用如下的图表示:
图1-6 组件
第七种是结点(node),结点是一个物理元素,它在运行时存在,代表一个可计算的资源,通常占用一些内存和具有处理能力。一个组件集合一般来说位于一个结点,但有可能从一个结点转到另一个结点。结点通常用如下的图形表示:
图1-7 结点
类、接口、协作、use case、活动类、组件和结点这七个元素是在UML模型中使用的最基本的结构化事物。系统中还有这七种基本元素的变化体,如角色、信号(某种类),进程和线程(某种活动类),应用程序、文档、文件、库、表(组件的一种)。
1.1.2 动作事物
动态事物是UML模型中的动态部分。它们是模型的动词,代表时间和空间上的动作。总共有两种主要的动作事物。
第一种是ineraction,interaction是由一组对象之间在特定上下文中,为达到特定的目的而进行的一系列消息交换而组成的动作。 在interaction中组成动作的对象的每个操作都要详细列出,包括消息、动作次序(消息产生的动作),连接(对象之间的连接)。在UML中消息画成带箭头的直线,通常加上操作的名字。
图1-8 消息
第二种是状态机(state machine),状态机由一系列对象的状态组成。在UML中状态表示为下图:
图案1-9 状态
interaction和状态机是UML模型中最基本的两个动态事物元素,它们通常和其他的结构元素、主要的类、对象连接在一起。
1.1.3 分组事物
分组事物是UML模型中组织的部分,可以把它们看成是个盒子,模型可以在其中被分解。总共只有一种分组事物,称为包(package)。
包是一种将有组织的元素分组的机制。结构事物、动作事物甚至其他的分组事物都有可能放在一个包中。与组件(存在于运行时)不同的是包纯粹是一种概念上的东西,只存在于开发阶段。在UML中用如下图表示包:
图 1-10 包
1.1.4 注释事物
注释事物是UML模型的解释部分。UML中用如下图表示:
图 1-11注释
1.1.5 UML中的关系
UML中有四种关系:
1. 依赖(Dependencies)
图1-12 依赖
2. 关联(Association)
图 1-13 关联
3. 一般化(generalization)
图1-14 一般化
4. 实现(realuzation)
图 1-15 实现
1.1.6 UML中的图
1、 类图(class diagram)
2、 对象图(class diagram)
3、 Use case diagram
4、 Sequence diagram
5、 Collaboration diagram
6、 Statechart diagram
7、 Activity diagram
8、 Compomnent diagram
9、 Deployment diagram