StarUML使用笔记
类图的3个基本组件:类名、属性、方法。
类的主要关系:关联,聚合,组合泛化,依赖,实现。
- 用来标识Class的可见性
visibility
(默认为public) - 用来添加
Note
的,比如:类的说明 - 增加类的属性
Attribute
- 增加类的操作方法
Operation
- 增加Reception
- 增加子类
Sub-Class
- 增加父类
Super-Class
- 添加已有的接口
Privided-Interface
- 添加需要的接口
Required-Interface
- 添加关联
Associated-Class
- 添加聚合
Aggregated-Calss
- 添加组合
Composited-Class
- 添加端口
Port
- 添加部件
Part
关联,聚合,组合,泛化,依赖,实现
- 关联
关联用于描述类之间的一种关系,表示类之间有联系,或者在逻辑上、物理上有组合、聚合的关系。关联关系是一种比较宽泛的描述。对于聚合和组合,其实也是属于关联,只是从不同角度出发而已。
- 单向关联
单向关联表现为单向的关系。 - 双向关联
关联关系是双向的,常见的例子:顾客与(即购买)商品,学生与老师,课程与学生 - 自关联
-
聚合
聚合是关联关系的一种特例,它体现的是整体与部分的关系,是has-a的关系,此时整体与部分之间是可分离的,即没有了整体,局部也可单独存在。就比如我们航母战斗群:驱逐舰,巡洋舰,护卫舰,航空母舰等。在UML类图设计中,聚合关系以空心菱形加实线箭头表示。具体如图所示: -
组合
是一种contains-a的关系,部分不能脱离整体存在。这是一种比聚合更强的关系,又称强聚合。整体的生命周期即为组成部分的生命周期。例如:人和人的构成部分大脑,心脏等。在UML类图设计中,组合关系以实心菱形加实线箭头表示。 具体如图所示: -
泛化(继承)
泛化关系是类元的一般描述和具体描述之间的关系,具体描述建立在一般描述的基础之上,并对其进行了扩展。具体描述完全拥有一般描述的特性、成员和关系, 并且包含补充的信息。在Java中用“extend”来表示此关系。举个计算机的例子来说:冯诺依曼结构是最初的计算机结构,无论是个人计算机,服务器,还是超级计算机,都具有该特性,并在此特性上进行了扩展。
UML图中实现泛化管理的描述,在类图中使用带空心三角箭头的实线表示,箭头从子类、子接口指向父类、父接口。具体如图所示: -
依赖
类A的实现需要引用类B,这就是依赖,这种使用关系是具有偶然性的、临时性的、非常弱的,而B类的变化会影响到A,则A与B存在依赖关系,依赖关系是弱的关联关系。例如:人依赖计算机去做软件开发。在UML类图设计中,依赖关系用由类A指向类B的带箭头虚线表示。具体如图所示:
- 实现
实现指的是一个class类实现interface接口(可以是多个)的功能,实现是类与接口之间最常见的关系。在类图中使用带空心三角箭头的虚线表示,箭头从实现类指向接口。具体如图所示: