UML建模以及画图

随着业务的发展,以及项目的扩大,项目的拆分细化,项目之间的复杂度变高,这个时候光靠人脑是很难记住所有的东西的,为了能更快的了解整个的概括,需要一种图形化的方式展示出项目的整体结构,所以UML就是一种很好的方式。

本文依赖于建模工具StartUML, 好处就是免费
可通过官方下载:http://staruml.io/

UML统一建模语言(Unified Modeling Language)是一种绘制软件蓝图的标准语言。

一:UML分为三大构造块:

实物、关系、图

二:UML中的事物:

1)结构事物:指的是模式的静态部分,描述概念的概念元素和物理元素,包括
类(class)、接口(interface)、协作(collaboration)、用况(use case)、
主动类(active class)、构建(component)、制品(artifact)、节点(node)
2)行为事物:动态部分,分为交互(interaction)、状态机(state machine)、
活动(activity)
3)分组事物:包括 包(package)
4)注释事物:注释事务(annotational ting)对模型的解释部分

三:UML的中关系

1)依赖(dependency):两个元素之间关系,其中一个元素发生变化会影响另外一个元素,用带箭头虚线表示
在这里插入图片描述
2)关联(association):类之间的结构关系,用实线表示,它可能有方向,有时还会带有一个标记,而且它还经常含有诸如多重性和端名这样的修饰。
在这里插入图片描述
3)泛化(generalization):是特殊/一般之间的关系,特殊元素基于一般元素建立,
这种方法下子元素共享父元素的结构和行为。用带有空心箭头的实线表示,该实线指向父元素。
在这里插入图片描述
4)实现(realization):类目之间的语义关系,其中一个类目指定了由另一个类保证执行的合约。在两种地方会遇到实现关系:一种是在接口和实现它们的类或构件之间;另一种是在用况和实现它们的协作之间。用带有空心箭头的虚线表示,它是泛化和依赖关系两种图形的结合。
在这里插入图片描述
注:此种的 实现的 另一种表示方式,类对接口的实现realization
5)聚合(Aggregation):对“整体/部分”关系建模,其中一个类描述了一个较大的事务(“整体”),它由较小的事务(“部分组成”),这种关系称为聚合,它描述了“has-a”关系,意思是整体对象拥有部分对象。其实聚合是一种特殊的管理,它用 在整体的一端用一个空心菱形修饰的简单关联。
在这里插入图片描述
其中Class7是整体,Class6是部分。
6)组合(Composition):组合是聚合的变体,它具有强的拥有关系,而且整体与部分的生命周期是一致的。在组合式聚合中,一个对象在一个时间内只有是一个组合的一部分。例如,在窗口系统中,一个Frame只属于一个Windown. 相对于聚合而言,在聚合中一个部分可以由几个整体共享。
在这里插入图片描述

四:UML中的图

1、类图(class diagram)

类图是展现了一组类,接口,协作和它们之间的关系。在面向对象系统的建模中所建立的最常见的图就是类图,类图给出系统的静态设计视图,包含主动类的类图给出系统的静态进程视图,构件图则是类图的变体。

类图通常包括类,接口,依赖、泛化和关联关系,还可以包括注解和约束。
简单的制作一个类:
在这里插入图片描述
图中定义了一个类,类名Person, 属性 name, age, 拥有两个方法eat() 和 sleep()方法,其中 + 代表是public公共的, - 代表 private 私有的。
属性或者方法下面的下划线表示这个属性或方法是否是静态的,如:

定义一个接口,在StartUML中用圆圈表示接口:
在这里插入图片描述
定义一个抽象类:
在这里插入图片描述
当类被定义为抽象时,类型是斜体的样式。

一个基本的类图案例:
在这里插入图片描述
图中展示了Class2继承了Class1 且实现了Interface1的接口。

2、对象图(object diagram)

对象图展现了一组对象以及它们之间的关系,对象图描述了在类图中所建立的事务的实例的静态快照。和类图一样,这些图给出系统的静态设计视图或静态进程视图,但是它们是真实案例或原型案例的角度建立的。

对象图主要包含 对象 和 链
在这里插入图片描述
图中对象用方形表示,链用实线表示

3、构件图(component diagram)

构件图展现了一个封装的类和它的接口,端口以及内嵌的构件和连接件构成的内部结构。用于表示系统的静态设计实现视图。

4、用例图(use case diagram)

用例图展示了一组用例,参与者以及它们之间的关系。
用例:use case 是对一组动作序列(其中包括变体)的描述,系统执行这些动作序列为参与者产生一个可观察的结果值,在图形上,用椭圆表示用例
在这里插入图片描述
主题(Subject): 是由一组用例所描述的一个类,这个类通常是一个系统或者一个子系统。用例描述这个类的行为方面,参与者则表示与该主题交互的其他类的方面。从整体来看用例描述了主题的完整行为。用方形框表示subject:
在这里插入图片描述
参与者:
在这里插入图片描述

5. 交互图(interaction diagram)

交互图包括时序图和通信图
时序图(sequence diagram):强调消息的时间次序的交互图,在图形上,时序图是一个表,其中显示的对象沿着X轴排列,而消息则沿着Y轴按时间顺序拍下。
通信图(communication diagram):强调收发消息的对象或校色的结构组织。在图形上,通信图是顶点和弧的集合。
1)时序图有两个不同于通信图的特征,第一:时序图有对象生命线,对象生命线一条垂直的虚线,表示一个对象在一段时间内存在。第二:时序图有控制焦点,控制焦点是一个瘦高的矩形,表示对象执行一个动作所经历的时间段,既可以是直接执行,也可以是通过下级过程执行。矩形顶部表示动作开始,矩形底部表示动作的结束。
例如:
在这里插入图片描述
表示A给B发消息,B同步给C发消息,最后返回B,再从B返回到C中,这是一个同步的消息调用过程。

2)通信图:通信图强调参加交互的对象的组织,所以构造通信图的第一步就是将参加交互的对象作为图的顶点,然后,把连接这些对象的链表示为图的弧,链上可能有标识这些对象的角色名,最后,用对象发送和接受的消息来修饰这些链。

7、状态图(state diagram)

状态图展示了一个状态机,它由状态,转移,事件和活动组成。状态图展现了对象的动态视图。对于接口,类或协作的行为建模尤为重要,而且它强调由事件引发的对象行为,这非常有助于对反应式系统建模

8、活动图(activity diagram)

将进程或其他计算机的结构展示为计算内部一步一步的控制流和数据流。活动图专注于系统的动态视图,它对于系统的功能建模特别重要,并强调对象间的控制流程。活动图本质上说是一个流程图,展示从活动到活动的控制流。与传统的流程图不同的是,活动图能够展示并发和控制分支。
活动图一般包括:

1)动作
2)活动结点(activity node)
动作活动结点用下图表示:
在这里插入图片描述

3)流
4)对象值
常用用法案例:
在这里插入图片描述
当然活动图还包括 分支、合并、泳道的设计概念。

9、部署图(deployment diagram)

部署图展示了对运行时的处理节点以及在其中生存的构件的配置。部署图给出了体系结构的静态部署视图。通常一个结点包含一个或多个制品。
制品图(artifact diagram)展示计算机中的一个系统的物理结构。制品包括文件,数据库和类似的物理比特集合,制品图常与部署图一起使用。

10、包图(package diagram)

包图展现了由模型本身分解而成的组织单元以及它们的依赖关系。

9、定时图(timing diagram)

定时图是一种交互图,它展现了消息跨越不同对象或角色的实际实际,而不仅仅是关心消息的相对顺序。

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页