zoukankan      html  css  js  c++  java
  • UML类图

    一、基本介绍

    • UML(Unified modeling language) 统一建模语言,是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果。
    • UML本身是一套符号的规定,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等

    二、UML的分类

    • 用例视图:用例图
    • 设计视图:
      • 类图(核心)
      • 对象图
    • 进程视图:
      • 时序图
      • 协作图
      • 状态图
      • 活动图
    • 实现视图
      • 构件图
    • 拓扑图
      • 部署图

    三、UML类图

    1、定义

    用于描述系统中类(对象)本身的组成和类(对象)之间的各种静态关系

    2、类图实例

    QP0GxH.png

    3、关系分类

    • 依赖
    • 泛化(继承)
    • 实现
    • 关联
    • 聚合
    • 组合
      QP05JU.png

    4、关系详解

    1、依赖关系

    • 在类中如果用到了其他类,那么这个类和当前类就存在依赖关系,包括参数的依赖、变量的依赖、返回值的依赖等等

    • 总结

      • 类中用到
      • 类的成员属性
      • 方法的返回类型
      • 方法的接受参数类型
      • 方法是使用到

    Driver 类中使用到了Car类,所以Driver和Car是依赖的关系
    MklQpQ.md.png

    2、泛化关系

    • 是一种继承关系,表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为。
    • 总结
      • 泛化关系就是继承关系
      • 如果A类继承了B类,那么A和B存在泛化关系

    Student 和Teacher是Person的一种,Person是它们的父类,所以学生和老师也有Person的共性
    Mkl3Xn.md.png

    3、实现关系

    • 是一种类与接口的关系,表示类是接口所有特征和行为的实现。
    • 总结
      • 实现关系就是类和接口的实现关系
      • 如果A类继承了B类,那么A和B存在实现关系

    Car是汽车的接口,宝马和比亚迪都实现了Car的接口,所以他们存在泛化的关系
    MklY7V.md.png

    4、关联关系

    • 实际上就是类和类之间的联系,是特殊的依赖关系
    • 导航性:
      • 双向关系
      • 单向关系
    • 多重性
      • 1 表示有且只有一个
      • 0... 表示0个或者多个
      • 0,1 表示0个或者1个
      • n...m 表示n个到m个
      • m...* 表示至少m个

    Person 和身份证是一对一的关联关系,不属于整体和部分的关系
    MklgAK.md.png

    5、聚合关系

    • 表示整体和部分的关系,整体和部分可以分开,特殊的依赖关系
    • 导航性:
      • 双向关系
      • 单向关系
    • 多重性
      • 1 表示有且只有一个
      • 0... 表示0个或者多个
      • 0,1 表示0个或者1个
      • n...m 表示n个到m个
      • m...* 表示至少m个

    电脑由鼠标和显示器组成,它们之间是可以分开的,分开以后可以独立存在
    Mkl7HP.md.png

    6、组合关系

    • 表示整体和部分的关系,整体和部分不可以分开,特殊的依赖关系
    • 导航性:
      • 双向关系
      • 单向关系
    • 多重性
      • 1 表示有且只有一个
      • 0... 表示0个或者多个
      • 0,1 表示0个或者1个
      • n...m 表示n个到m个
      • m...* 表示至少m个

    头由嘴组成,俩者不可分开,不可以独立存在
    MklX9g.md.png

    四、类图实例

    image

    四、其他

    1、聚合和组合关系的区别

      聚合其实是关联的一个特例,表示了两个对象之间“part of(部分-整体)”的关系,是一种弱关联,部分的生命周期可以超越整体。在UML中,用整体端有空心菱形箭头的双向关联修饰聚合。聚合的示例如下图:
    image

    组合其实是一种强形式的聚合,它具有强的拥有关系,整体与部分的生命周期是一致的。“部分”生存在整体中,它们与“整体”一起消亡。

    “部分”对象依赖于“整体”对象,这种依赖性表现在两个方面:

    • “部分”对象一次只能属于一个组合对象;
    • 当组合对象销毁时,它的所有从属部分必须同时销毁。
    • 整体的重数必须是0或1。“部分”不能在整体间进行共享。在UML中,用整体端有实心菱形箭头的双向关联修饰组合。

    image

    上图中,邮件和它的标题及正文之间的关系作为组合关系建模可能是合理的,因为一旦邮件被删除,就既不存在标题,也不存在正文体了,而它们存在时属于唯一的一个邮件。而邮件与附件之间的关系不太可能是用组合恰当的建模,因为在同一时间,同一个附件可以属于多个邮件,其次,很有可能附件可以保存,因此它们的生命周期将超过所附属的邮件的生命周期。

  • 相关阅读:
    C#日期加减
    c#的预编译指令
    IHttpModule与IHttpHandler的区别整理
    ASP.NET提供程序
    在所有页面共享通用行为
    5.Oracle中的数据表
    asp.net跳转页面的三种方法比较(转)
    C#实现经典排序算法
    ASP.NET用户登录模块代码
    http错误锦集
  • 原文地址:https://www.cnblogs.com/jakaBlog/p/11812728.html
Copyright © 2011-2022 走看看