对立建模语言(UML 是 Unified Modeling Language 的缩写, 是用来对软件系统进行可视化建模的一种语言。UML 为面向对象开发零碎的产品 进行阐明、可视化、和编制文档的一种规范语言。
共有 9 种图
UML 中的图其实不止九种 (雷同的图还可能会有不同的名称), 这里的九种图是被广泛认可的根底图, 别离为:用例图、类图、对象图、状态图、构件图、部署图、合作图、交互序列图、流动图。
之前在惠普时, 用过 时序图 (即 程序图 , 交互序列图)
UML 图也可分为用例视图、设计视图、过程视图、实现视图和拓扑视图
又能够依据静动分为 动态视图 和动静视图
- 动态图分为:用例图,类图,对象图,包图,构件图,部署图
- 动态图分为:状态图,流动图,合作图,序列图
个别状况下, 又以 类图, 状态图, 用例图 最为重要
<font color=”#FF8C00″> 类图(Class Diagram)</font>
类图是应用频率最高的 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) : 也是关联关系的一种,是一种比聚合关系还要强的关系(局部对象不能脱离整体对象而独自存在,如人的身材和大脑之间的关系,大脑不能脱离身材而独自存在), 用带实心菱形的实线来示意组合关系,菱形指向整体
- 聚合关系 (Aggregation) : 是关联关系的一种,示意整体和局部之间的关系 (成员也能够脱离整体而存在),如学校和老师,
- 实现关系(Realization/implements): 即 接口和实现类之间的关系。类实现了接口中的形象办法。用带空心三角箭头的虚线来示意实现关系,箭头从实现类指向接口。
- 泛化关系(Generalization/extends): 也称继承关系, 是父子类之间的继承关系,示意个别与非凡的关系,指定子类如何特殊化父类的特色和行为。用带空心三角箭头的实线来示意泛化关系,箭头从子类指向父类。
六种关系中,从弱到强顺次是:
依赖关系 < 关联关系 < 聚合关系 < 组合关系 < 实现关系 = 泛化关系
其中,依赖 和关联 还辨别 单向 和双向
六大类 UML 类图之间的关系
UML 类图详解
实例
车的类图构造为<<abstract>>
,示意车是一个抽象类;
它有两个继承类:小汽车和自行车;它们之间的关系为实现关系,应用带空心箭头的虚线示意;
小汽车为与 SUV 之间也是继承关系,它们之间的关系为泛化关系,应用带空心箭头的实线示意;
小汽车与发动机之间是组合关系,应用带实心箭头的实线示意;
学生与班级之间是聚合关系,应用带空心箭头的实线示意;
学生与身份证之间为关联关系,应用一根实线示意;
学生上学须要用到自行车,与自行车是一种依赖关系,应用带箭头的虚线示意;
实例来自
看懂 UML 类图
罕用的 UML 建模详解
<font color=”#FF8C00″> 状态 (机) 图(State Diagram)</font>
状态机图形容的是围绕某一事物状态变动的图。它和流动图的区别在于,流动图是形容事物产生的流程,是多个角色参加的,而状态机形容的是事物的状态变动,并没有角色这个概念。
1、和流动图一样,状态机图也是 只能有一个开始状态,能够有多个完结状态。
2、状态是通过某一事件来进行变迁的。
3、状态是离散的,且个别用形容词或名词形容。
4、转换也可加上条件,示意分支构造。
如:
空调开机进入自检状态,检测不通过进入谬误状态并且亮红灯,检测通过默认进入制冷状态,按遥控器模式切换能够在制冷、制热、吹风切换,制冷能够设置温度,并有温度监控程序,室温低于设定温度则进行制冷,高于则开始制冷;制热则反过来;吹风就只能吹风,没有其余性能
实例
实心圆示意开始, 只能有一个;
“ 空心套实心圆 ” 示意完结, 能够有多个.
圆角矩形里都是 状态,
转移 (即直线箭头) 上是动作或返回的状态
<font color=”#FF8C00″> 用例图(Use Case Diagram)</font>
形容了作为一个内部观察者, 以其视角对系统的印象。
艰深了解, 用例就是软件的功能模块,所以是设计系统分析阶段的终点
强调这个零碎是什么而不是这个零碎怎么工作。
角色是人状的图标,用例是一个椭圆,通信是连贯角色和用例的线。
用例之间的关系
- 蕴含(include)
- 扩大(extend)
- 泛化(generalization)
UML—用例图,Use Case
实例
用例图的应用案例与剖析
在线画图网站:
VisualParadigm
亿图图示
本文由 mdnice 多平台公布