美文网首页
UML概念模型

UML概念模型

作者: Tinyspot | 来源:发表于2023-07-18 13:04 被阅读0次

1. UML

  • 统一建模语言(Unified Modeling Language,UML)

1.1 UML概念模型

image.png

2. UML中的四种事物

  • 事物是对模型中最具有代表性的成分的抽象,可分为结构事物、行为事物、分组事物和注释事物

2.1 结构事物

  • 类 (Class)
  • 接口 (Interface)
  • 用例 (Use Case)
  • 协作 (Collaboration)
  • 活动类 (Active Class)
  • 构件 (Component)
  • 节点 (Node)

2.2 行为事物

  • 交互(interaction)
  • 状态机(state machine)
  • 活动(activity)

2.3 分组事物

  • 包(Package)

2.4 注释事物

  • 注解(Note)

3. 事物间的六种关系

image.png

3.1 泛化(Generalization)

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

3.2 实现(Realization)

  • 实现是两个事物之间的一种契约关系,其中的一个事物(箭头指向的事物)描述了另一个事物必须实现的契约
  • 图例:带空心三角的虚线
Realization

3.3 组合(Combination)

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

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

Combination

3.4 聚合(Aggregate)

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

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

Aggregate

3.5 关联(Association)

  • 当一个类'知道'另一个类时,可以用关联
  • 图例:实线箭头

示例:某个类作为一个另一个类的属性

Association
public class Context {
    // 属性
    private IStrategy strategy;

    public Context(IStrategy strategy) {
        this.strategy = strategy;
    }
}

3.6 依赖(Dependency)

  • 依赖是一种“使用”关系,依赖可以表示一个事物使用另一个事物
  • 图例:虚线箭头

示例: 某个类作为一个另一个类的方法的参数或返回值

Dependency
public class OperationFactory {
    public static Operation createOperation(String operator) {
        Operation operation = null;
        // do something
        return operation;
    }
}

4. 图

4.1 结构图(Structure Diagrams)

UML结构图一般用于表达软件框架或架构,包括:

  • 类图(Class Diagram)
  • 对象图(Object Diagram)
  • 包图(Package Diagram)
  • 部署图(Deployment Diagram)

4.2 行为图(Behavior Diagrams)

UML行为图一般用于可视化目标软件的行为或服务模型,包括

  • 用例图(Use Case Diagram)
  • 活动图(Activity Diagram)
  • 状态机图(State Machine Diagram)

4.3 交互图(Interaction Diagram)

UML交互图一般用来展示软件内部控制流或数据流模型,包括

  • 时序图(Sequence Diagram)
  • 通信图(Communication Diagram)

相关文章

网友评论

      本文标题:UML概念模型

      本文链接:https://www.haomeiwen.com/subject/pvpnudtx.html