写这篇博客的原因呢,是因为上课并未完成老师关于UML类图的解释。所以写下这篇博客加强理解。
其中用到最多的就是时序图和活动图。
常见的UML图一共有九种,分别是用例图、类图、对象图、序列图(时序图)、协作图、状态图、活动图、构件图和部署图。
1.用例图:用于描述系统与其外部环境之间的功能和用户需求。主要包括参与者(Actors)和用例(Use Cases)之间的关系。
用例图是UML中用于表示系统功能需求的一种图形化方法。用例图中的主要元素包括参与者(Actor)、用例(Use Case)和参与者与用例之间的关系。用例图通常用于描述系统的功能需求和参与者之间的交互。
2.类图:
类图是描述系统中的类,以及各个类之间的关系的静态视图。是面向对象系统建模中最常用和最重要的图,是定义其他图的基础。
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。
各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
3.对象图:表示对象之间的交互,特别是在特定时间序列内。显示对象的生命周期,方法调用和消息传递的顺序。
对象图和类图一样反映系统的静态过程,但它是从实际的或原型化的情景来表达的。对象图显示某时刻对象和对象之间的关系。一个UML对象图可看成一个类图的特殊用例,实例和类可在其中显示。
4.状态图:与时序图类似,表示对象之间的协作关系。强调对象之间的合作和通信。
状态图描述类的对象所有可能的状态,以及事件发生时状态的转移条件。他们可以告知一个对象可以拥有的状态,并且事件会怎么随着时间的推移来影响这些状态。状态图是对类图的补充。
5.活动图,描述系统中的活动流程,通常用于表示业务过程或工作流。包括活动、决策节点、同步控制流等元素。
活动图描述用例要求所要进行的活动,以及活动间的约束关系,有利于识别并行活动。能够演示出系统中哪些地方存在功能,以及这些功能和系统中其他组件的功能如何共同满足前面使用用例图的业务需求。活动图是状态图的一种特殊情况,这些状态大都处于活动状态。本质是一种流程图,它描述了活动到活动的控制流。
6.序列图也叫做时序图:序列图是用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。顺序图可以用来展示对象之间是如何进行交互的。序列图将显示的重点放在消息序列上,即强调消息是如何在对象之间被发送和接收的。序列图展示的是多个系统或者对象之间的交互的顺序,强调时间顺序。一般先写出来时序图,就容易写出来类图。
7.协作图:协作图和序列图相似,显示对象间的动态合作关系。可以看成是类图和顺序图的交集,协作图建模对象或者角色,以及它们彼此之间是如何通信的。
8.构件图:构件图是用来表示系统中构件与构件之间,类或接口与构件之间的关系图。其中,构建图之间的关系表现为依赖关系,定义的类或接口与类之间的关系表现为依赖关系或实现关系。
构件图也叫组件图,由组件、接口和组件之间联系构成,描述的是在软件系统中遵从并实现一组接口的物理的、可替换的软件模块。组件图 = 构件(Component)+接口(Interface)+关系(Relationship)+端口(Port)+连接器(Connector)
9.部署图:部署图又叫配置图,是用来建模系统的物理部署。部署图由节点以及节点之间的关系组成。部署图描述的是系统运行时的结构,展示了硬件的配置及其软件如何部署到网络结构中。部署图通常用来帮助理解分布式系统,一个系统模型只有一个部署图。部署图用于可视化的软件组件部署的系统中的物理组件的拓扑结构。
上面说完了九种常见的UML图,下面说UML类图中的关系,泛化、实现、依赖、关联、聚合、组合关系。
1.泛化关系:空心箭头加上实线。泛化关系其实就是继承关系:指的是一个类(称为子类、子接口)继承(extends)另外的一个类(称为父类、父接口)的功能,并可以增加自己额外的一些功能,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字 extends明确标识。
2.实现关系:空心箭头加上虚线。实现关系:指的是一个class类实现 interface接口(可以实现多个接口)的功能;实现是类与接口之间最常见的关系;在Java中此关系通过关键字implements
明确标识。
3.依赖关系:虚线箭头。依赖关系:指的是类与类之间的联接。依赖关系表示一个类依赖于另一个类的定义。一般而言,依赖关系在Java语言中体现为成员变量、局域变量、方法的形参、方法返回值,或者对静态方法的调用。表示一个A类依赖于B类的定义,如果A对象离开B对象,A对象就不能正常编译,则A对象依赖于B对象(A类中使用到了B对象);比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖; 表现在代码层面,类B作为参数被类A在某个method方法中使用。
4.关联关系:有单向关联和双向关联。实线箭头或者实线。关联关系:指的是类与类之间的联接
,它使一个类知道另一个类的属性和方法(实例变量体现)
。A类依赖于B对象,并且把B作为A的一个成员变量
, 则A和B存在关联关系.关联可以是双向的,也可以是单向的。两个类之前是一个层次的,不存在部分跟整体之间的关系。
一对一:一个A对象属于一个B对象,一个B对象属于一个A对象。
一对多:一个A对象包含多个B对象。
多对一:多个A对象属于一个B对象,并且多个A对象中的每个A对象只能属于一个B对象。
多对多:一个A对象属于多个B对象,一个B对象属于多个A对象。
5.聚合关系:空心菱形加上箭头。聚合关系是关联关系的一种特例,他体现的是整体与部分,是一种“弱拥有”的关系,即has-a的关系。聚合是整体和个体之间的关系。例如,汽车类与引擎类、轮胎类,以及其它的零件类之间的关系便整体和个体的关系。与关联关系一样,聚合关系 也是通过实例变量实现的。但是关联关系所涉及的两个类是处在同一层次上的,而在聚合关系中,两个类是处在不平等层次上的,一个代表整体,另一个代表部分。聚合关系表示整体和个体的关系,整体和个体可以相互独立存在,一定是有两个模块分别管理整体和个体。
6.组合关系:实心菱形加上箭头。组合关系是关联关系的一种特例,他体现的是一种contains-a(包含)的关系,这种关系比聚合更强,也称为强聚合。它要求普通的聚合关系中代表整体的对象负责代表部分对象的生命周期,组合关系是不能共享的。代表整体的对象需要负责保持部分对象和存活,在一些情况下将负责代表部分的对象湮灭掉。代表整体的对象可以将代表部分的对象传递给另一个对象,由后者负责此对象的生命周期。换言之,代表部分的对象在每一个时刻只能与一个对象发生组合关系,由后者排他地负责生命周期。部分和整体的生命周期一样。整体和个体不能独立存在。
标签:总结,关系,对象,常见,类图,用例,之间,UML From: https://www.cnblogs.com/mine-my/p/17883608.html