当前位置: 移动技术网 > IT编程>软件设计>面向对象 > UML类图(Unified Modeling Language Class Diagrams)

UML类图(Unified Modeling Language Class Diagrams)

2019年04月13日  | 移动技术网IT编程  | 我要评论

统一建模语言(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)}

常用表示关系的组件:

 

关于绘制类图: 

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

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

 

例子:

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

 

 

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

 

以下为对应代码:

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网