设计方案规范

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

2020-05-12  本文已影响0人  码农小光

以下文章来源于公众号如逆水行舟 ,作者iisheng

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

什么是UML?

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

为什么要用UML?

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

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

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

  1. 为用户提供现成的、有表现力的可视化建模语言,以便他们开发和交换有意义的模型。
  2. 为核心概念提供可扩展性 (Extensibility) 和特殊化 (Specialization) 机制。
  3. 独立于特定的编程语言和开发过程。
  4. 为了解建模语言提供一个正式的基础。
  5. 鼓励面向对象工具市场的发展。
  6. 支持更高层次的开发概念,如协作,框架,模式和组件。
  7. 整合最佳的工作方法 (Best Practices)。

UML图有哪些?

image

UML图概览

image

什么是类图?

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

泛化(Generalization)

image

实现(Realization)

image

关联(Association)

image

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

聚合(Aggregation)

image

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

组合(Composition)

image

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

image

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

依赖(Dependency)

image

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

什么是组件图?

image

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

什么是部署图?

image

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

什么是对象图?

image

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

什么是包图?

image

什么是组合结构图?

image

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

什么是轮廓图?

image

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

什么是用例图?

image

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

什么是活动图?

image

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

什么是状态机图?

image

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

什么是序列图?

image

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

什么是通讯图?

image

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

什么是交互概览图?

image

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

什么是时序图?

image

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

总结

学习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/

上一篇下一篇

猜你喜欢

热点阅读