UML统一建模语言

UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。下面将对UML的九种图+包图的基本概念进行介绍以及各个图的使用场景。

基本概念

UML图分为用例视图、设计视图、进程视图、实现视图和拓扑视图,又可以静动分为静态视图和动态视图。静态图分为:用例图,类图,对象图,包图,构件图,部署图。动态图分为:状态图,活动图,协作图,序列图。

UML类图各符号含义

UML箭头是可选的,它用于指定导航能力。如果没有箭头,暗示是一种双向的导航能力。类图基本符号可拆分为***虚线,箭头,实线,空心右三角,实心右三角,空心菱形和实心菱形***。由这些基本的图形进行组合构成了类图的基本符号。这里要注意这几个符号的顺序,代表了类与类之间关系的耦合程 度。越向右耦合度越高。 其中虚线+箭头是表示即依赖的关系,实线+箭头表示关联的关系,虚线+空心右三角表示implements,实线+空心右三角表示的是泛化,即类的继承关系。实线+空心菱形表示的是聚合的关系,实线+实心菱形则表示 组合的关系。 另外一点是在看类图的时候要注意。类图的思想其实也还没有脱离面向对象的思想,以某个类为中心,有些线是射入的而有些线是射出的。射入的线表示的是这个类被哪些类所调用而射出的线则表示该类调用了 哪些类,包括泛化,关联,依赖,聚合和组合四种关系。这类似于离散数学中有关图部分的描述。

  • 类(Class):使用三层矩形框表示。 第一层显示类的名称,如果是抽象类,则就用斜体显示。 第二层是字段和属性。 第三层是类的方法。 注意前面的符号,‘+’表示public,‘-’表示private,‘#’表示protected。

  • 接口:使用两层矩形框表示,与类图的区别主要是顶端有<>显示 。 第一行是接口名称。 第二行是接口方法。

  • 继承类(extends) :用空心三角形+实线来表示。

  • 实现接口(implements) :用空心三角形+虚线来表示

  • 关联(Association) :用实线箭头来表示,例如:燕子与气候

  • 聚合(Aggregation) :用空心的菱形+实线箭头来表示 聚合:表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分,例如: 公司和员工

  • 组合(Composition):用实心的菱形+实线箭头来表示 组合:部分和整体的关系,并且生命周期是相同的。例如:人与手

  • 依赖(Dependency) :用虚线箭头来表示,例如:动物与氧气

  • 基数 :连线两端的数字表明这一端的类可以有几个实例,比如:一个鸟应该有两只翅膀。如果一个类 可能有无数个实例,则就用‘n’来表示。关联、聚合、组合是有基数的。

类之间的关系

UML把类之间的关系分为以下5种.

  • 关联:类A与类B的实例之间存在特定的对应关系,表示:带实线的箭头

  • 依赖:类A访问类B提供的服务 ,dependency表示:带虚线的箭头

  • 聚集:类A为整体类,类B为局部类,类A的对象由类B的对象组合而成 ,表示:实线的空心菱形箭头。 聚集关系还可以分为两种类型:

    1. 被聚集的子系统允许被拆卸和替换,这是普通聚集关系。

    2. 被聚集的子系统不允许被拆卸和替换,这种聚集称为强聚集关系,或者组成关系。

      注:强聚集(组成)可用带实线的实心菱形箭头表示。

  • 泛化:类A继承类B generalization表示:实线的空心箭头

  • 实现:类A实现了B接口 关联(Association) 表示:虚线的空心箭头

1、用例图(UseCase Diagrams):

​ 用例图主要回答了两个问题:1、是谁用软件。2、软件的功能。从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。

引用来自cnblogs

2、类图(Class Diagrams):

用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

  • 【泛化关系】:是一种继承关系,泛化(图H)表示一个更泛化的元素和一个更具体的元素之间的关系。泛化是用于对继承进行建模的UML元素。表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。线表示:实线空心三角箭头。
  • 【实现关系】:是一种类与接口的关系,两个实体之间的一个合同。换言之,一个实体定义一个合同,而另一个实体保证履行该合同。表示类是接口所有特征和行为的实现。线表示:虚线空心三角箭头。
  • 【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。比如: 老师与学生多对多(一条实线N:N),学生和课程的关系(实线箭头,一对多,1:N),线表示:箭头指向多的一方;
  • 【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐