UML基础
1. UML
1.1 UML基本构件
在UML中,所有的描述由事物、关系和图这些构件组成
2. 事物之间的六种关系
- 泛化(Generalization, 也叫继承)
- 实现(Realization)
- 组合(Combination)
- 聚合(Aggregate)
- 关联(Association)
- 依赖(Dependency)
- 关系从强到弱依次是:泛化 > 实现 > 组合 > 聚合 > 关联 > 依赖
2.1 泛化(Generalization)
- 图例:带空心三角的直线
- 泛化描述父类与子类之间的关系,父类又称为基类或超类,子类又称作派生类
2.2 实现(Realization)
- 图例:带空心三角的虚线
2.3 组合(Combination)
- 图例:带实心菱形的直线
- 组合表示类之间整体与部分的关系,整体与部分有一致的生存期
- 部分与整体的关系,一旦整体对象不存在,部分对象也将不存在,整体和部分是同生共死的关系
例如,人由头部和身体组成,两者不可分割,共同存在
2.4 聚合(Aggregate)
- 图例:带空心菱形的虚线
- 聚合(Aggregate) 也表示类之间整体与部分的关系,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在
例如,公交车司机和工作服、工作帽是整体与部分的关系,但是可以分开,没有共同的生命周期。工作服、工作帽可以穿、戴在别的司机身上,公交车司机也可以换别人的工作服、工作帽
2.5 关联(Association)
- 图例:实线箭头
- 当一个类'知道'另一个类时,可以用关联(association)
例如:某个类作为一个另一个类的属性
public class Context {
// 属性
private IStrategy strategy;
public Context(IStrategy strategy) {
this.strategy = strategy;
}
}
2.6 依赖(Dependency)
- 图例:虚线箭头
- 依赖是一种“使用”关系,依赖可以表示一个事物使用另一个事物
例如: 某个类作为一个另一个类的方法的参数或返回值
public class OperationFactory {
public static Operation createOperation(String operator) {
Operation operation = null;
// do something
return operation;
}
}
3. 类图(Class Diagrams)
类图分为三层,
第一层显示类的名称,如果是抽象类,则就用斜体显示;
第二层是类的特性,通常就是字段和属性;
第三层是类的操作,通常是方法或行为
3.2 符号
-
+
public -
-
private -
#
protected -
~
default(可省略)
4. 时序图
- 时序图(Sequence Diagrams)描述对象之间消息的发送顺序,强调时间顺序
- 时序图是一个二维图,横轴表示对象,纵轴表示时间,消息在各对象之间横向传递,按照时间顺序纵向排列。用箭头表示消息,用竖虚线表示对象生命线
4.1 时序图组成元素
- 角色(Actor)
- 对象(Object)
- 生命线(Lifeline)
- 控制焦点(Focus of Control)
- 消息(Message)
4.2 生命线
从对象图标向下延伸的一条虚线,表示对象存在的时间
工具
StarUML
共有 0 条评论