乐趣区

关于后端:UML基础

对立建模语言(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) : 也是关联关系的一种,是一种比聚合关系还要强的关系(局部对象不能脱离整体对象而独自存在,如人的身材和大脑之间的关系,大脑不能脱离身材而独自存在), 用带实心菱形的实线来示意组合关系,菱形指向整体
  • 实现关系(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 多平台公布

退出移动版