UML概述类之间的关系UML图
Posted dxj1016
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UML概述类之间的关系UML图相关的知识,希望对你有一定的参考价值。
1、UML概述
1.1、基本介绍
- UML–Unified modeling language UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果
- 是一种能够描述问题、描述解决方案、起到沟通作用的语言。
- 是一种用文本、图形和符号的集合来描述现实生活中各类事物、活动、及其之间关系的语言。
- UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等,如右图:
- 使用UML来建模,常用的工具有Rational Rose,也可以使用一些插件来建模,idea可以到插件商店下载plantUML
1.2、UML的结构
UML的组成:
- 事物:重要组成部分
- 关系:把元素联系在一起
- 图:很多有相互关系的事物的图
UML中的事物
- 构件事物
(1)类
(2)接口:类或者组件提供特定服务的操作集合
(3)协作:事物间的相互作用的集合
(4)用例
(5)构件:组件
(6)节点:运行时存在的物理元素 - 行为事物
交互:一组构件事物之间消息的集合
状态机:事物或者交互在生命周期内的状态序列 - 分组事物
分组事物是UML模型图的组织部分,描述事物的组织结构,主要由包来实现。 - 注释事物
注释事物是UML模型的解释部分,用来对模型中的元素进行说明,解释。
2、类之间的关系
2.1、依赖(Dependency)
- 类中用到了对方,比如AB类,在A类中用到了B类,那么就说A依赖B,他们之间存在依赖关系。
- 可以是类的成员属性
- 可以是方法的返回类型
- 可以是方法接收的参数类型
- 可以说是在方法中使用到(这个违反迪米特法则)
2.2、关联(Association)
- 关联关系实际上就是类与类之间的联系,他是依赖关系的特例
- 对具有共同的结构特性、行为特性、关系和语义连接的描述
- 关联具有导航性,即关联可以是单向的、双向的。
- 关联具有多重性:如1(表示有且仅有一个),0(表示0或者多个);0,1(表示0个或者1个);n…m(表示n到m个都可以);m…(表示至少m个)
- 关联体现的是两个类之间语义级别的一种强依赖关系,一般是长期性的,而且双方的关系一般是平等的。
- 在UML中多重性关系可以直接在关联直线上增加一个数字表示与之对应的另一个类的对象的个数
2.3、泛化(Generalization)
- 泛化关系实际上就是继承关系,他是依赖关系的特例
- 泛化是类与类之间一种关系
- 泛化是一种一般化——特殊化的关系,是一般事物(父类)和该事物较为特殊的种类(子类)之间的关系,子类继承父类的属性和操作,除此之外,子类还添加新的属性和操作。
- 在图形上,把泛化关系画成带有空心箭头的实线,该实线指向父类。
- 为了实现泛化关系,采用继承机制
- 一个子类(subclass)继承一个或多个父类(superclass),从而实现了不同的抽象层次
- 通过这种关系一个类可以共享另外一个或多个类的结构和行为
- 根据父类的个数不同,存在着单一继承和多重继承两种情况
2.4、实现(Realization)
- 实现关系实际上就是A类实现B类,他是==依赖关系的特例==
- 实现是类之间的语义关系,其中的一个类指定了由另一个类必须执行的约定。
- 在两种地方会遇到实现关系:在接口和实现它们的类或构件之间;在用例和实现它们的协作之间。
- 在图形上,把实现关系画成一条带有空心箭头的虚线,它是泛化和依赖关系两种图形的结合。箭头指向接口
2.5、聚合关系(Aggregation)
- 聚合关系(Aggregation)表示的是整体和部分的关系,整体与部分可以分开。聚合关系是关联关系的特例,所以他具有关联的导航性与多重性。
- 如:一台电脑由键盘(keyboard)、显示器(monitor),鼠标等组成;组成电脑的各个配件是可以从电脑上分离出来的,使用带空心菱形的实线来表示:
2.6、组合关系
- 组合关系:整体与部分的关系,但是整体和部分是不可分开的
- 前面的例子中如果Mouse和Monitor和Computer是不可分离的,则升级为组合关系
3、UML的图
3.1、用例图
- 用例图是从用户角度描述系统功能,并指出各功能的操作者。
- 用例图展示了一组用例、参与者以及它们之间的关系。如图1.5所示。
3.2、类图
- 类图是UML面向对象中最常用的一种图,类图可以帮助我们更直观的了解一个系统的体系结构。
- 可以图形化的描述一个系统的设计部分。如图1.6所示。
3.3、对象图
- UML面向对象中对象图是类图的实例,几乎使用与类图完全相同的标识。
- 对象图显示类的多个对象实例,而不是实例的类。
- 一个对象图是类图的一个实例。
- 由于对象存在生命周期,因此对象图只能在系统某一时间段存在。
3.4、状态图
- 描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应的。
3.5、活动图
- 活动图由一些活动组成,图中同时包括了对这些活动的说明。
- 当一个活动执行完毕之后,将沿着控制转移箭头转向下一个活动。
- 活动图中还可以方便地描述控制转移的条件以及并行执行等要求。
3.6、顺序图
- 顺序图由一组对象构成,每个对象分别带有一条竖线,称作对象的生命线,它代表时间轴,时间沿竖线向下延伸。
3.7、通信图
- 通信图主要用于描绘对象之间消息的移动情况来反映具体的方案,显示对象及其交互关系的空间组织结构,而非交互的顺序。
3.8、构件图
- 构件图,也称为组件图。
- 构件图描述代码部件的物理结构及各部件之间的依赖关系
- 构件图有助于分析和理解部件之间的相互影响程度。
3.9、部署图
- 部署图,也称为配置图。
- UML面向对象中配置图描述系统中硬件和软件的物理配置情况和系统体系结构。
以上是关于UML概述类之间的关系UML图的主要内容,如果未能解决你的问题,请参考以下文章