UML中的模型元素包括事物和事物之间的联系。事物是UML中重要的组成部分,它代表任何可以定义的东西。事物之间的关系能够把事物联系在一起,组成有意义的结构模型。每一个模型元素都有一个与之相对应的图形元素。
一、 事物
1、 结构事物
结构事物分为:类、接口、协作、用例、活动类、组件和节点
(1) 类。类是对具有相同属性、方法、关系和语义的对象的抽象,一个类可以实现一
个或多个接口。类用包括类名、属性和方法的矩形表示。
活动类。活动类是类对象有一个或多个进程或线程的类。在UML中活动类的表示法和类相同,只是边框用粗线条。
(2) 接口。接口是为类或组件提供特定服务的一组操作的集合。
(3) 用例。用例描述系统对一个特定角色执行的一系列动作。在模型中用例通常用来组织动作事物,它是通过协作来实现的。UML中,用例用标注了用例名称的实线椭圆表示。
协作。协作定义了交互操作。一些角色和其他元素一起工作,提供一些合作的动作,这些动作比元素的总和要大。不常用,和用例的表示区别是它是虚线画的椭圆。
(4) 参与者。在系统外部与系统直接交互的人或事物。
(5) 组件。组件是实现了一个接口集合的物理上可替换的系统部分。
(6) 节点。节点是在运行时存在的一个物理元素,它代表一个可计算的资源,通常占用一些内存和具有处理能力。一个组件集合一般来说位于一个节点,但也可以从一个节点转到另一个节点。
2、 动作事物
动作事物是UML模型中的动态部分,它们是模型的动词,代表时间和空间上的动作。交互和状态机是UML模型中最基本的两个动态事物元素。
(1) 交互。交互是一组对象在特定上下文中,为达到某种特定的目的而进行的一系列消息交换组成的动作。在交互中组成动作的对象的每个操作都要详细列出,包括消息、动作次数(消息产生的动作)、连接(对象之间的连接)。
(2) 状态机。状态机由一系列对象的状态组成。
3、 分组事物
分组事物是UML模型中组织的部分,分组事物只有一种,称为包。
4、 注释事物
注释事物是UML模型的解释部分。
二、 UML中的关系
1、 关联关系has
关联关系连接元素和链接实例,它用连接两个模型元素的实线表示,在关联的两端可以标注关联双方的角色和多重性标记。
2、 依赖关系use
依赖关系描述一个元素对另一个元素的依附。依赖关系用源模型指向目标模型的带箭头的虚线表示。
3、 泛化关系extend
泛化关系也称为继承关系,泛化用一条带空心三角箭头的实线表示,从子类指向父类。
4、 实现关系implement
实现关系描述一个元素实现另一个元素。下面的图其实有两个实现关系,只是因为在rational
rose中把class的stereotype设为Interface时类是个圆圈,实现它的时候直接使用直线就可以明了。如果没有设置stereotype时,依然使用虚线加三角形。
5、 聚合关系aggregation
聚合(aggregation)关系: 关联关系的一种特例, 是强的关联关系.
聚合是整体和个体之间的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享,表现在代码层面,和关联关系是一致的,只能从语义级别来区分;聚合关系也是使用实例变量实现的.
从java 语法上是分不出关联和聚合的。这也是我纠结的地方,正因如此rational rose貌似没有表示聚合的符号,所以我就只好换用visio了,所以我又加了一些visio的图,大家不要赶脚奇怪哈。关联关系中两个类是处于相同的层次,
而聚合关系中两不类是处于不平等的层次, 一个表示整体, 一个表示部分.
6、组合(合成)关系composition
组合 也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑;合成关系不能共享.
。表现在代码层面,和关联关系是一致的,只能从语义级别来区分。
组合跟聚合几乎相同,唯一的区别就是“部分”不能脱离“整体”单独存在,就是说,
“部分”的生命期不能比“整体”还要长。
|