软件开发中经常用到的图
软件开发中经常用到的图
UML类图
什么是UML类图
用于描述一个系统的静态结构。一个类图中通常包含有类的UML图,接口的UML图,接口的UML图以及泛化关系的UML图,关联关系的UML图,依赖关系的UML图和实现关系的UML图。
如何画UML图
泛化关系(继承)
泛化(Generalization)表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系
介绍:
继承表示是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。
表示方法:
继承使用空心三角形+实线表示。
关联关系
如果A类中的成员变量用B类接口实现来声明的变量
表示方法:
关联关系用实线箭头表示。
依赖关系
如果A类中的某个方法的参数是用B类来声明或某个方法返回的数据类型是B类型的
表示方法:
依赖关系用虚线箭头表示。
实现关系
一个类实现了一个接口,类和接口的关系是实现
表示方法
使用空心三角形+虚线表示
.聚合关系
表示方法:
聚合关系用空心的菱形+实线箭头表示。
组合关系
组合关系用实心的菱形+实线箭头表示,还可以使用连线两端的数字表示某一端有几个实例
用例图
用例图是什么
编写需求说明时经常用到的需求表达方式,用于向开发、测试同事说明需求中用户与系统功能单元之间的关系
用例图的三大组成元素
参与者、用例、参与者与用例之间的关系
参与者:不是特指人,是指系统以外的,在使用系统或与系统交互中所扮演的角色。因此参与者可以是人,可以是事物,也可以是时间或其他系统等等。
用例:是对包括变量在内的一组动作序列的描述,系统执行这些动作,并产生传递特定参与者的价值的可观察结果。
关系:参与者与用例之间的关系主要包括关联、归纳(泛化)、包含、拓展和依赖
关联关系
参与者与用例之间的通信,也成为关联或通信关系。
扩展关系
用一个用例(可选)扩展另一个用例(基本例)的功能
表示方法:虚线箭头+<>字样,箭头指向被扩展的用例(即基础用例)
注意箭头的方向
包含关系
包含关系描述的是一个用例需要某种功能,而该功能被另外一个用例定义,那么在用例的执行过程中,就可以调用已经定义好的用例。
拓展和依赖关系。助于将来实现系统时,确定哪些功能可以重用,在编写代码时就可以实现代码的重用,缩短开发周期。
表示方法:虚线箭头+<>字样,箭头指向被包含的用例
例如
归纳(泛化)关系
表示参与者与参与者之间、用例与用例之间的关系。一个用例可以被特别列举为一个或多个子用例,这被称为用例泛化。
带空心箭头的实线,箭头指向被泛化(被继承)的用例,即基础用例/父用例
ER图(实体关系图)
ER图的概念
一种提供了实体,属性和联系的方法,用来描述现实世界的概念模型
E-R图中的基本元素
实体
实际问题中客观存在的并且可以相互区别的事物称为实体。实体是现实世界中的对象,可以具体到人,事,物。
矩形框:表示实体,在框中记入实体名。
属性
实体所具有的某一个特性称为属性,在E-R图中属性用来描述实体。
椭圆形框:表示实体或联系的属性。
联系
世界上任何事物都不是孤立存在的,事物内部和事物之间都有联系的,实体之间的联系通常有3种类型:一对一联系,一对多联系,多对多联系。
菱形框:表示联系,在框中记入联系名。
时序图
时序图概念
时序图是UML交互图中的一类,又名序列图、顺序图。
用于描述对象之间的传递消息的时间顺序(包括发送消息、接收消息、处理消息、返回消息等
时序图的组成元素
对象
对象代表时序图中的对象在交互中所扮演的角色,一般使用矩形表示。
如果对象位于时序图的顶部,说明在交互开始时对象就已经存在了。如果对象的位置在中间部分,说明对象是在交互的过程中被创建的。当一个对象被删除或自我删除时,在其生命线(生命线详见下方)终止点处放置 “ X”标识
生命线
生命线代表时序图中的对象在一段时期内的存在。时序图中每个对象底部中心都有一条垂直的虚线,这就是对象的生命线。
对象间的消息存在于两条虚线间。
消息
两个对象之间的单路通信,从发送方指向接收方。
消息的传递一般有以下几种方式:
同步消息:消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。
注意:发送人需要等待消息的响应。带实心箭头的实线表示
异步消息:消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。
注意:发送人不需要等待消息的响应。带线型箭头的实线表示
返回消息:返回消息表示从过程调用返回
带线型箭头的虚线表示。
自关联消息: 自身调用自身的方法,即自我调用的同步消息
时序图的来源
https://zhuanlan.zhihu.com/p/360656613