UML学习系列文章(一)-关系

1、UML是什么?

UML 是一种为面向对象开发系统的产品进行说明、可视化、和编制文档的标准语言。

2、UML在软件开发过程中的作用?

软件开发的流程包括:需求分析、概要设计、详细设计、编码、测试、交付、验收、维护。而UML语言可以说是需求分析、概要设计、详细设计过程中必不可少的工具语言,它可以促进与客户(即使是非软件行业人员)之间进行顺畅的交流。

不明确的需求绝对是程序员最头疼的事。

3、UML的基本元素?

三个基本模块:事务,关系,图。

 

今天先来学习关系,个人认为这是很重要的,理清了各个事务之间的关系,那图不就容易了么。

在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

1. 泛化(Generalization)

【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。

【箭头指向】:带三角箭头的实线,箭头指向父类。

例如:狗是动物的一种,具有动物的特性,也有本身特有的特性。

 

2. 实现(Realization)

【实现关系】:是一种类与接口的关系,这个术语比较容易理解,跟开发时称呼一致。

【箭头指向】:带三角箭头的虚线,箭头指向接口。

例如在很多行业都要要用到的,身份证读卡场景,因为存在读卡器设备会升级更换的情况,所以一般会使用面向接口编程的思想。

 

3. 关联(Association)

【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法,在代码经常体现为成员变量;关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

【箭头及指向】:带普通箭头的实心线,指向被拥有者。

 

 

 

4. 聚合(Aggregation)

【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。原文中汽车和轮胎、引擎的实例特别贴切。

聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

【箭头及指向】:带空心菱形的实心线,菱形指向整体

 

 

 

5. 组合(Composition)

【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。

组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。

【箭头及指向】:带实心菱形的实线,菱形指向整体

6. 依赖(Dependency)

【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,不允许有双向的互相依赖,开发中相互依赖会导致编译、内存释放等方便存在问题。

【箭头及指向】:带箭头的虚线,指向被使用者

补充知识:

类的UML表现为一个长方形,垂直分为三个区域,之所以说属性区域和行为区域可选一方面是由于高层级抽象类图时,可以简化其细节内容,第二方面是实际中存在一些工具类(只有行为没有属性)、Dto数据类(只有属性没有行为)。

 

类的属性和行为都存在可见性,UML指定了四种可见性标识。

 

 

文章引用自 http://www.uml.org.cn/oobject/201609062.asp,在基础上增加了少许自己的理解。

后面计划针对之前一直从事的医疗行业做一些UML方面的分析,让自己深入了解医疗信息系统各模块的流程,这就是前期准备吧。

 

posted @ 2022-01-14 17:08  业荒于嬉  阅读(44)  评论(0编辑  收藏  举报