文章目录
前言
本文所用绘制uml工具为process on,需要了解的同学可以移步下方链接
process on官网
uml基本概念
Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于 1997 年一个 OMG 标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。面向对象的分析与设计(OOA&D,OOAD)方法的发展在 80 年代末至 90 年代中出现了一个高潮,UML 是这个高潮的产物。它不仅统一了 Booch、Rumbaugh 和 Jacobson 的表示方法,而且对
其作了进一步的发展,并最终统一为大众所接受的标准建模语
言。
软件开发的时候,系统设计师/系统架构师给出 UML 设计图,程序员将来要根据 UML 设计图进行编码/开发。
常见的uml图包括那些
类图(class diagram)
描述类的信息(包括属性、方法),以及类和类之间的关系信息。
例子
基础类图样式
如下图所示,第一行表示类名。第二行+号表示访问类型为public,-号代表访问类型为private,attribute代表成员属性名,type即是成员属性的类型。第三格中即表示成员方法。
类之间的关系
泛化关系
泛化关系即一种“is a”的关系,如下图,cat类是animal类的子类,所以cat类用一个空白箭头指向其父类animal,这种表示方式可用于类与类、接口与接口、接口和类之间。
实现关系
实现关系即是一种 like a的关系,如下例子,私人厨师在富豪家中就好比一个活体菜单,可根据用户需求完成制作指定菜式。或可以理解为某个类可以完成某个功能。
关联关系
表示两者之间的关联,如下图所示,电脑在编码人员眼里只是一个工具,所以编码人员类用直线箭头指向电脑类,并标明一对一关系,在电脑连接线处标注util代表该类在编码人员类中成员变量名为util。
关联关系也存在自关联,如一个human类可存在夫妻关系,即human中有个human记录丈夫,另一个human记录妻子。这种关系表示就如下所示
聚合关系
聚合关系即代表部分和整体的关系,如教室类中包含一堆学生,教室没了,学生还在。学生走了,教室仍然存在。具体表示方式如下图所示,学生类使用实线菱形线指向教室类。
组合关系
如下所示,组合关系也属于关联关系中的一种,如下图所示,四肢是人类的一部分,所以四肢使用菱形实线指向人类,并在线上标注自己在人类类中成员是一个变量名为limbs的变量,该关系表示当人类类生命周期结束后,四肢类的生命周期也结束了。而转换成编码的如下图右边备注所示。
依赖关系
依赖关系即类与局部变量的关系,表示方式即主类使用实线箭头指向其局部变量,而转换成编码如下图右方备注所示。注意这种关系需要和关联关系区别。
用例图(user case diagram)
用例图即从系统用户的角度复习系统存在那些功能
时序图(sequence diagram)
时序图描述了方法调用的过程,程序的执行流程,以及方法执行结束的返回值情况。用例图中的一个用例就会对应时序图中的一个时序。
绘制注意事项
- 对象
- 实线箭头:调用
- 虚线箭头:返回
- 柱状:对象的生命周期,即该方法执行流程中,柱状不能断。
- 回折线:当前类的方法执行过程中,调用自己当前类中的其他方法。
简单示例
如下图所示,A类调用B的m1方法,会得到一个最终的返回值。B类的m1方法会调用C的m2的方法,得到返回值之后,会调用自身类的m4方法,完成上述步骤后会返回一个值。C的m2方法调用自身m3()方法即完成并返回值。
web交互场景示例
如下图所示,下述过程即将用户查询数据时,浏览器到数据库的执行过程描绘了出来了。
在绘制流程图的时候,需要注意调用用的是实线,返回用的是虚线,以及确定生命周期,以及类调用自身方法时,要将方法的生命周期画在主方法生命周期内,如下Controller中将list转换为json这个方法就绘制在controller的主方法findById之上