欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

UML类图(Unified Modeling Language Class Diagrams)

程序员文章站 2022-03-10 16:59:02
本文简要介绍UML及类图的相关知识。用少量例子讲述类图的一些语法规则,常用的符号表示。 ......

统一建模语言(uml) |  类图

什么是uml?

  uml是一种用于可视化描述系统,具有广泛用途的建模语言。作为一种标准化的图形语言,在软件工业中被用于软件系统部件的具体化,可视化,结构化描述以及撰写文档,同样在商业模型中也得到应用。

uml的优点:

  • 使复杂的软件设计更为简单,也能够实现像oop(面向对象编程)这一类被广泛应用的概念。
  • 用理解起来可能更容易的图来描述,避免了大量的文字。
  • 是表达和交流概念或系统结构变得更容易。
  • 在一张图中就能够描绘出整个系统。
  • 程序员实用类图来描述实际需求时,可让问题更加清晰明了,实现起来更容易。

uml的分类

  uml通常分为两类:描述结构的uml图(structural uml diagrams)和描述行为的uml图(behavioral uml diagrams),具体见下表:

描述结构的uml图 描述行为的uml图
  • 类图(class diagram)
  • 包图(package diagram)
  • 对象图(object diagram)
  • 组件图(component daigram)
  • 组合结构图(composite structure diagram)
  • 部署图(deployment diagram)
  • 活动图(activity diagram)
  • 时序图(sequence diagram)
  • 用例图(use case diagram)
  • 状态图(state diagram)
  • 协作图(communication diagram)
  • 交互关系概览图(interaction overview diagram)
  • 时间线图(timing diagram)

uml | 类图

  类图展示出oop中的类,接口,及其中存在的关系,关联与协作。uml在类图中是标准化的。类是oop的主要构件模块,而类图用恰当的结构展示oop中遇到的一切,包括类,继承关系,类关系。它能够描述各种对象和它们之间的静态关系。使用类图的主要目的:

  • 类图是唯一能够恰当的展示出oop中各种不同概念的uml。
  • 利用类图来对应用程序做出优化的设计与分析高效而快速。
  • 类图是部署图和组件图的基础。

类图一般的规则如下:

  • 每个类用一个矩形框表示,框内由类名,属性,及定义的操作三个子部件构成。
  • 三种表示可见性的修饰符:
    • + 表示public
    • # 表示protected
    • -  表示private
    • ~  表示default(无修饰符)

一些常用的构成模型的组件:

  • 类(class){名(name),属性(attribute),方法(method)
  • 对象(object)
  • 接口(interface)
  • 关系(relationships) { 继承(inheritance),关联(association),泛化(generalization)}
  • 关联(association){双向,单向(unidirectional,aggregation)}

常用表示关系的组件:

UML类图(Unified Modeling Language Class Diagrams)

 

关于绘制类图: 

一些在线或离线的软件都能够完成类图的制作,比如edraw max, lucid chart等。如果能在相关网站软件找到模板,制作类图更为方便。

推荐网站,可制作各种各样的diagram,使用很快捷,可保存文件到本地,免费无需登录。之前也经常用来画流程图。

 

例子:

下图为实现interface和aggregation的类图描述。movablepoint, movablecircle实现movable。movablepoint成为movablecircle一部分。

UML类图(Unified Modeling Language Class Diagrams)

 

 

如下是一张类图,父类animal有两个子类dog,cat。d1为子类dog的对象。

UML类图(Unified Modeling Language Class Diagrams)

 

以下为对应代码:

import java.io.*; 

class gfg { 
    public static void main(string[] args) 
    { 
        dog d1 = new dog(); 
        d1.bark(); 
        d1.run(); 
        cat c1 = new cat(); 
        c1.meww(); 
    } 
} 

class animal { 
    public void run() 
    { 
        string name; 
        string colour; 

        system.out.println("animal is running"); 
    } 
} 

class dog extends animal { 
    public void bark() 
    { 
        system.out.println("wooh!wooh! dog is barking"); 
    } 
    public void run() 
    { 
        system.out.println("dog is running"); 
    } 
} 

class cat extends animal { 
    public void meww() 
    { 
        system.out.println("meww! meww!"); 
    } 
} 

 

参考资料:

[1]. unified modeling language (uml) | class diagrams - geeksforgeeks     

[2]. uml class diagrams tutorial, step by step – salma – medium    https://medium.com/@smagid_allthings/uml-class-diagrams-tutorial-step-by-step-520fd83b300b