UML科普文,一篇文章掌握14种UML图

931次阅读  |  发布于4年以前

前言

上一篇文章写了一篇建造者模式,其中有几个UML类图,有的读者反馈看不懂了,我们今天就来解决一哈。

什么是UML?

UMLUnified Model Language的缩写,中文是统一建模语言,是由一整套图表组成的标准化建模语言。

为什么要用UML?

通过使用UML使得在软件开发之前,

对整个软件设计有更好的可读性,可理解性,从而降低开发风险。同时,也能方便各个开发人员之间的交流。

UML提供了极富表达能力的建模语言,可以让软件开发过程中的不同人员分别得到自己感兴趣的信息。

Page-Jones 在《Fundamental Object-Oriented Design in UML》 一书中总结了UML的主要目的,如下:

UML图有哪些?

UML图概览

什么是类图?

类图是一切面向对象方法的核心建模工具。类图描述了系统中对象的类型以及它们之间存在的各种静态关系。

在类图中,常见的有以下几种关系。

泛化(Generalization)

实现(Realization)

关联(Association)

自己买的车,想什么时候开就开。但是车是车,人是人,没有整体与部分的关系。

聚合(Aggregation)

电脑有键盘才能输入信息,电脑是整体,键盘是部分,键盘也可以离开电脑,单纯的拿去敲。所以是聚合。

组合(Composition)

鸟是整体,翅膀是部分。鸟死了,翅膀也就不能飞了。所以是组合。我们再看一下,下面的一组经典的聚合组合关系的例子。

一个公司拥有多个部门,公司和部门之间是组合关系,公司破产了,部门就不复存在了。部门和员工是聚合关系,部门被裁掉,员工就换下家了。

依赖(Dependency)

老司机只管开车,车是谁的不重要,给什么车开什么车。

什么是组件图?

订单系统组件依赖于客户资源库和库存系统组件。中间的虚线箭头表示依赖关系。另外两个符号,表示组件连接器,一个提供接口,一个需要接口。

什么是部署图?

图中简单的表示,不同机器上面部署的不同软件。

什么是对象图?

图中就是描述的,某时间点bat这个公司有一个研发部,一个销售部,两个部门只有一个人iisheng

什么是包图?

什么是组合结构图?

图中描述了Car是由车轴连接着的两个前面轮子、两个后面轮子,和引擎组合的。

什么是轮廓图?

图中我们定义了一个简易的EJB的概要图。Bean是从Component扩展来的。Entity BeanSession Bean继承了BeanEJB拥有RemoteHome接口,和JAR包。

什么是用例图?

用例图中包含以下三种关系:

什么是活动图?

图中简单描述了,从开始到登录到查看订单列表,或者登录失败直接结束。

什么是状态机图?

图中描述了,门在其生命周期内所经历的状态。

什么是序列图?

图中展示的是支付宝条码支付场景的序列图。其中,loop是循环,alt是选择,序列图的其他关系这里就不介绍了。

什么是通讯图?

图中展示了一个线上书店的通讯图,方框和小人表示生命线,不同生命线之间可以传递消息,消息前面的数字可以表达序列顺序。

什么是交互概览图?

图中表示一个调度系统的交互概览图,跟活动图很像。其中sd的框代表具体的交互流程,ref框代表使用交互。

什么是时序图?

图中展示了老年痴呆病人随着时间的变化病情的变化。

总结

学习UML,我们没必要纠结比如像聚合关系是带箭头还是不带箭头,这样的问题。更重要的是UML图所给我们带来的画图思想,让我们画UML图或者其他图能让其他人更好的理解我们的设计思想。

当然,你要是明确知道带箭头或者不带箭头哪个是错误的,欢迎留言告诉我。

参考文献:

[1]:《Learning UML 2.0》

[2]: https://www.uml-diagrams.org/

[3]: https://www.visual-paradigm.com/guide/

[4]: https://sparxsystems.com/resources/tutorials/

Copyright© 2013-2019

京ICP备2023019179号-2