UML基础

1. UML

1.1 UML基本构件

在UML中,所有的描述由事物、关系和图这些构件组成

image.png

2. 事物之间的六种关系

  • 泛化(Generalization, 也叫继承)
  • 实现(Realization)
  • 组合(Combination)
  • 聚合(Aggregate)
  • 关联(Association)
  • 依赖(Dependency)
  • 关系从强到弱依次是:泛化 > 实现 > 组合 > 聚合 > 关联 > 依赖
image.png

2.1 泛化(Generalization)

  • 图例:带空心三角的直线
  • 泛化描述父类与子类之间的关系,父类又称为基类或超类,子类又称作派生类

2.2 实现(Realization)

  • 图例:带空心三角的虚线
泛化 vs 实现.png

2.3 组合(Combination)

  • 图例:带实心菱形的直线
  • 组合表示类之间整体与部分的关系,整体与部分有一致的生存期
  • 部分与整体的关系,一旦整体对象不存在,部分对象也将不存在,整体和部分是同生共死的关系

例如,人由头部和身体组成,两者不可分割,共同存在

2.4 聚合(Aggregate)

  • 图例:带空心菱形的虚线
  • 聚合(Aggregate) 也表示类之间整体与部分的关系,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在

例如,公交车司机和工作服、工作帽是整体与部分的关系,但是可以分开,没有共同的生命周期。工作服、工作帽可以穿、戴在别的司机身上,公交车司机也可以换别人的工作服、工作帽

组合 vs 聚合.png

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;
    }
}
关联 vs 依赖

3. 类图(Class Diagrams)

类图分为三层,
第一层显示类的名称,如果是抽象类,则就用斜体显示;
第二层是类的特性,通常就是字段和属性;
第三层是类的操作,通常是方法或行为

3.2 符号

  • + public
  • - private
  • # protected
  • ~ default(可省略)

4. 时序图

  • 时序图(Sequence Diagrams)描述对象之间消息的发送顺序,强调时间顺序
  • 时序图是一个二维图,横轴表示对象,纵轴表示时间,消息在各对象之间横向传递,按照时间顺序纵向排列。用箭头表示消息,用竖虚线表示对象生命线

4.1 时序图组成元素

  • 角色(Actor)
  • 对象(Object)
  • 生命线(Lifeline)
  • 控制焦点(Focus of Control)
  • 消息(Message)
image.png

4.2 生命线

从对象图标向下延伸的一条虚线,表示对象存在的时间

工具

StarUML

版权声明:
作者:congcong
链接:https://www.techfm.club/p/51214.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>