UML基础

简介: UML基础

统一建模语言(UML是 Unified Modeling Language的缩写, 是用来对软件系统进行可视化建模的一种语言。UML为面向对象开发系统的产品 进行说明、可视化、和编制文档的一种标准语言。

微信截图_20230925231452.png

共有9种图

UML中的图其实不止九种 (相同的图还可能会有不同的名称), 这里的九种图是被普遍认可的基础图, 分别为:用例图、类图、对象图、状态图、构件图、部署图、协作图、交互序列图、活动图。

之前在惠普时,用过时序图(即顺序图,交互序列图)


UML图也可分为用例视图、设计视图、进程视图、实现视图和拓扑视图

又可以根据静动分为静态视图动态视图

  • 静态图分为:用例图,类图,对象图,包图,构件图,部署图
  • 动态图分为:状态图,活动图,协作图,序列图

微信截图_20230925231505.png

微信截图_20230925231512.png

微信截图_20230925231551.png

一般情况下,又以类图,状态图,用例图最为重要


类图(Class Diagram)


类图是使用频率最高的UML图之一

If someone were to come up to you in a dark alley and say, 'Psst, wanna see a UML diagram?' that diagram would probably be a class diagram. The majority of UML diagrams I see are class diagrams.”

--- Martin Fowler 《UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition》

“如果有人在黑暗的小巷中向你走来并对你说:‘嘿,想不想看一张UML图?’那么这张图很有可能就是一张类图,我所见过的大部分的UML图都是类图”(《UML精粹:标准对象建模语言简明指南(第3版)》)

深入浅出UML类图


显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。那它其实就是用来帮助我们识别出人、事、物和业务的概念,并理清它们的关系的一种方法

计算机可以分为笔记本电脑和台式机,现在有主板、硬盘、内存、显示器、键盘、鼠标、无线鼠标、有线鼠标、机械鼠标、光电鼠标、蓝牙鼠标,请画出类之间的关系,不需要写属性,需要假设的地方在图中注明,如假设计算机只有一个显示器


类之间的关系


类与类之间的关系通常有6种,即

  • 依赖关系(Dependency): 用带箭头的虚线表示,箭头从使用类指向被依赖的类
  • 关联关系(Association): 单向关联用一个带箭头的实线表示,箭头从使用类指向被关联的类; 双向关联用带箭头或者没有箭头的实线来表示
  • 聚合关系 (Aggregation) : 是关联关系的一种,表示整体和部分之间的关系(成员也可以脱离整体而存在),如学校和老师,车子和轮胎. 用带空心菱形的实线来表示聚合关系, 菱形指向整体
  • 组合关系 (Composition) : 也是关联关系的一种,是一种比聚合关系还要强的关系(部分对象不能脱离整体对象而单独存在,如人的身体和大脑之间的关系,大脑不能脱离身体而单独存在), 用带实心菱形的实线来表示组合关系,菱形指向整体
  • 实现关系(Realization/implements): 即 接口和实现类之间的关系。类实现了接口中的抽象方法。用带空心三角箭头的虚线来表示实现关系,箭头从实现类指向接口。
  • 泛化关系(Generalization/extends): 也称继承关系, 是父子类之间的继承关系,表示一般与特殊的关系,指定子类如何特殊化父类的特征和行为。 用带空心三角箭头的实线来表示泛化关系,箭头从子类指向父类。

微信截图_20230925231722.png

微信截图_20230925231819.png

六种关系中,从弱到强依次是:

依赖关系 < 关联关系 < 聚合关系 < 组合关系 < 实现关系 = 泛化关系

其中,依赖关联还区分单向双向


六大类UML类图之间的关系

UML类图详解

微信截图_20230925232049.png

微信截图_20230925232058.png

实例

微信截图_20230925232714.png

车的类图结构为<<abstract>>,表示车是一个抽象类;

它有两个继承类:小汽车和自行车;它们之间的关系为实现关系,使用带空心箭头的虚线表示;

小汽车为与SUV之间也是继承关系,它们之间的关系为泛化关系,使用带空心箭头的实线表示;

小汽车与发动机之间是组合关系,使用带实心箭头的实线表示;

学生与班级之间是聚合关系,使用带空心箭头的实线表示;

学生与身份证之间为关联关系,使用一根实线表示;

学生上学需要用到自行车,与自行车是一种依赖关系,使用带箭头的虚线表示;


实例来自

看懂UML类图

常用的UML建模详解



状态(机)图(State Diagram)


状态机图描述的是围绕某一事物状态变化的图。它和活动图的区别在于,活动图是描述事物发生的流程,是多个角色参与的,而状态机描述的是事物的状态变化,并没有角色这个概念。

微信截图_20230925232731.png

1、和活动图一样,状态机图也是只能有一个开始状态,可以有多个结束状态。

2、状态是通过某一事件来进行变迁的。

3、状态是离散的,且一般用形容词或名词描述。

4、转换也可加上条件,表示分支结构。

微信截图_20230925232809.png

如:

空调开机进入自检状态,检测不通过进入错误状态并且亮红灯,检测通过默认进入制冷状态,按遥控器模式切换可以在制冷、制热、吹风切换,制冷可以设置温度,并有温度监控程序,室温低于设定温度则停止制冷,高于则开始制冷;制热则反过来;吹风就只能吹风,没有其他功能



实例

微信截图_20230925233007.png

微信截图_20230925233016.png

微信截图_20230925233025.png

微信截图_20230925233035.png

微信截图_20230925233144.png

微信截图_20230925233152.png

实心圆表示开始,只能有一个;

"空心套实心圆"表示结束,可以有多个.

圆角矩形里都是状态,

转移(即直线箭头)上是动作或返回的状态




用例图(Use Case Diagram)


描述了作为一个外部观察者,以其视角对系统的印象。

通俗理解, 用例就是软件的功能模块,所以是设计系统分析阶段的起点

强调这个系统是什么而不是这个系统怎么工作。


角色是人状的图标,用例是一个椭圆,通讯是连接角色和用例的线。


用例之间的关系


  • 包含(include)
  • 扩展(extend)
  • 泛化(generalization)

UML—用例图,Use Case



实例

微信截图_20230925233550.png

微信截图_20230925233556.png

用例图的使用案例与分析



在线画图网站:

VisualParadigm

亿图图示

目录
相关文章
|
测试技术 uml
【UML】UML中的各种图
【UML】UML中的各种图
103 0
|
数据可视化 测试技术 uml
UML概述及UML图详解
UML概述及UML图详解
335 0
UML概述及UML图详解
|
数据可视化 uml
UML——概述(什么是UML?UML有什么作用?面向对象技术)
我们要先理解模型,模型就是对现实的简化,把复杂系统变成小的系统,采用“逐个击破”的原则逐一解决。
UML——概述(什么是UML?UML有什么作用?面向对象技术)
|
监控 数据可视化 测试技术
UML基础
UML基础
108 0
UML基础
|
Java 测试技术 uml
【鸟瞰】UML视频学习
【鸟瞰】UML视频学习
111 0
【鸟瞰】UML视频学习
|
数据库 uml
UML基础与应用之类图
UML基础与应用之类图
93 0
|
数据可视化 uml
【UML图】面向对象技术
【UML图】面向对象技术
|
开发框架 Java 测试技术
UML总结 九种图 UML 实例
UML总结 九种图 UML 实例
|
自然语言处理 uml 开发者
统一建模语言(UML) 版本 2.0
原文: http://www.ibm.com/developerworks/cn/rational/321_uml/ 简介 参考 UML 基础系列的其他文章和教程 UML基础: 统一建模语言简介 UML 基础: 类图 UML 基础: 序列图 UML 基础: 组件图 绘制整洁的 UML 图 用例建模技巧 UML 序列图简介 养成良好的绘制 UML 序列图的习惯 利用 UML 进行实体关系建模   订阅 UML 相关文章和教程的 RSS 提要   可以看到1990年的早期版本已经对对象模式和相关技术有着浓厚的兴趣。
1193 0
|
API uml 图形学
UML类图入门介绍
前言: 笔者辞职后出去玩了一圈,直到上周六回来,开始准备面试找工作,在准备的过程中回顾了一下以往写的博客中的知识点,发现最开始写的那版设计模式一点也不好。
1196 0
下一篇
DataWorks