设为首页 加入收藏

TOP

UML基本关系(一)
2019-09-03 03:33:55 】 浏览:81
Tags:UML 基本 关系

UML-Unified Model Language 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元素。
UML是在开发阶段,说明,可视化,构建和书写一个面向对象软件密集系统的制品的开放方法。最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软件
架构层次,已经被验证有效。统一建模语言(UML)是一种模型化语言。模型大多以图表的方式表现出来。一份典型的建模图表通常包含几个块或框,连接线和作为模型附
加信息之用的文本。这些虽简单却非常重要,在UML规则中相互联系和扩展。
UML的构造快包含3种:
(1) 事物(4种):结构事物,行为事物,分组事物,注释事物
(2) 关系(4种):泛化关系,实现关系,依赖关系,关联关系(另有两特殊的关联关系:聚合与组合)
(3) 图(10种):用例图,类图,对象图,(包图,组件图)--- 构建图,部署图,状态图,活动图,序列图,协作图
事物是对模型中最具代表性的成分的抽象;关系把事物结合在一起;图是聚集了相关的事物。
几种关系所表现的强弱程度依次为:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
一、UML的关系
UML定义的关系主要有六种:依赖、类属、关联、实现、聚合和组合。这些类间关系的理解和使用是掌握和应用UML的关键,而也就是这几种关系,往往会让初学者迷惑。这里
给出这六种主要UML关系的说明和类图描述,一看之下,清晰明了;以下就分别介绍这几种关系
继承(泛化)
泛化(generalization)关系:是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类
与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性。

实现
实现(realization)关系:指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过关键字implements明确标识,
在设计时一般没有争议性;
依赖
依赖(dependency)关系:可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过河,
需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method方法中使用
//在java?中.?依赖关系体现为:?局部变量,?方法中的参数,?和对静态方法的调用

关联
关联(association)关系: 表示类与类之间的联接, 它使一个类知道另一个类的属性和方法.
关联可以使用单箭头表示单向关联, 使用双箭头或不使用箭头表示双向关联, 不建议使用双向关联. 关联有两个端点, 在每个端点可以有一个基数,
表示这个关联的类可以有几个实例.
常见的基数及含义:
0..1:0 或1 个实例.
0..*: 对实例的数目没有限制.
1: 只能有一个实例.
1..*: 至少有一个实例.
他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也
不是临时性的,一般是长期性的,而且双方的关系一般是平等的,表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类
A引用了一个类型为被关联类B的全局变量;在java 语言中关联关系是使用实例变量实现的.
聚合
聚合(aggregation)关系: 关联关系的一种特例, 是强的关联关系. 聚合是整体和个体之间的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可
以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一
致的,只能从语义级别来区分;
聚合关系也是使用实例变量实现的. 从java 语法上是分不出关联和聚合的.
关联关系中两个类是处于相同的层次, 而聚合关系中两个类是处于不平等的层次, 一个表示整体, 一个表示部分.

组合
组合(合成)关系(composition): 也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间
的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑;合成关系不能共享. 。表现在代码层面,和
关联关系是一致的,只能从语义级别来区分。
组合跟聚合几乎相同,唯一的区别就是“部分”不能脱离“整体”单独存在,就是说,“部分”的生命期不能比“整体”还要长。

二、事物
UML语言的事物,包含4类:
结构事物:语言的静态构成要素,有7种:类和对象、接口、主动类、用例、协作、构件、节点。
行为事物:语言的动态构成要素,表示事物的变化和状态。
分组事物:对模型中事物分组组织的要素,包。
注释事物:对模型中事物标注,注解和解释。
结构事物
结构事物定义了业务或软件系统中的某个物理元素,描述了事物的静态特征。结构事物常用名词表示。结构事物有7种,
它们是:类和对象、接口、主动类、用例、协作、构件、节点。
1.类和对象
类是对具有相同属性、相同操作、相同关系的一组对象的共同特征的抽象,类是对象的模板,对象是类的一个实例。
(1)类的表示
在UML中,类是用一个矩形表示的,它包含三个区域,最上面是类名、中间是类的属性、最下面是类的方法。
例如,描述People(类)用图形表示,如图1所示。
假设,People类包含的属性和行为如下:
类名:People, 在第一栏。
字段名:name、age,字段名(也称属性)放在第二栏。
方法名:speak()、breathe( ),方法在第三栏

(2).对象的表示
对象是用一个矩形表示,在矩形框中,不再写出属性名和方法名,只是在矩形框中用“对象名:类名”的格式表示一个对象。
例如,属于类People中的对象张连海的图形表示如图2所示。
2.接口
因为外界对类(或构件)的使用,是通过类(或构件)的方法来实现的,因此,我们把
为类或构件提供特定服务的一组操作的集合称为接口。接口向外界声明了它能提供
的服务。接口分为供给接口和需求接口两种,供给接口只能向其它类(或构件)提供
服务,需求接口表示类(或构件)使用其它类(或构件)提供的服务。


3.主动类
主动类是指该类创建的对象至少拥有一个进程或线程,通过进程或线程控制任务的执行。
主动类的表示与一般类相似,只是最外框是粗线描述而已。
如主动类”Radio”的表示如图4所示。
4.用例
在系统中,为完成某个任务而执行的一序列动作,以实现某种功能,我们把这些动作的集合称为用例实例。
用例是对一组用例实例共同特征的描述,用例与用例实例的关系,正如类与对象的关系。
用例是用一个实线椭圆来表示的,在椭圆中写入用例名称。如,用例“用户登录”表示如图5
5.协作
协作是指有意义的交互,即,一组对象为了完成某个任务,相互间进行的交互。
用例的实现:实现某个用例的一组对象之间的交互,即,把一个用例表示为多个对象间的交互(协作)。从本质上说,协作就是用例的实现。
用一个带2个分栏的虚线椭圆表示协作。如,用例“销售房产”,用协作“销售房产”表示时,其对应的表示法如图6所示。

6. 构件
构件也称组件:系统设计中,一

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇责任链模式小试 下一篇设计模式-组合模式

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目