步步为营UML建模系列六、类图(Class diagram)

转载 2012年03月31日 09:40:07

概述

类图(Class Diagram)是描述类、接口、协作以及它们之间关系的图,用来显示系统中各个类的静态结构。类图是定义其他图的基础,在类图基础上,可以使用状态图、协作图、组件图和配置图等进一步描述系统其他方面的特性。

类图包括7个元素:类(Class)、接口(Interface)、协作(collaboration)、依赖关系(Dependency)、泛化关系(Generalization)、关联关系(Association)以及实现关系(Realization)。

 

类之间的关系图

1

关联(Association)

是模型元素之间的一种语义联系,是类之间的一种很弱的联系。关联可以有方向,可以是单向关联,也可以是双向关联。可以给关联加上关联名来描述关联的作用。关联两端的类也可以以某种角色参与关联,角色可以具有多重性,表示可以有多少个对象参与关联。可以通过关联类进一步描述关联的属性、操作以及其他信息。关联类通过一条虚线与关联连接。对于关联可以加上一些约束,以加强关联的含义。如下图所示:

image

聚合(Aggregation)

是一种特殊的关联,聚合表示整体与部分的关系。通常在定义一个整体类后,再去分析这个整体类的组成结构。从而找出一些组成类,该整体类和组成类之间就形成了聚合关系。例如舰队是由一系列的舰船组成。需求描述中“包含”、“组成”、“分为….部分”等词常意味着聚合关系。

image

 

组合(Composition)

表示contains-a的关系,是一种强烈的包含关系。组合类负责被组合类的生命周期。是一种更强的聚合关系。部分不能脱离整体存在。如公司和部门的关系,没有了公司,部门也不能存在了;调查问卷中问题和选项的关系;订单和订单选项的关系。在类图使用实心的菱形表示,菱形从局部指向整体。

image

 

聚合和组合的区别

这两个比较难理解,重点说一下。聚合和组合的区别在于:聚合关系是“has-a”关系,组合关系是“contains-a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。

聚合是弱关联,组合是强关联.

泛化(generalization)

表示is-a的关系,是对象之间耦合度最大的一种关系,子类继承父类的所有细节。直接使用语言中的继承表达。在类图中使用带三角箭头的实线表示,箭头从子类指向父类。

image

实现(Realization)

在类图中就是接口和实现的关系。这个没什么好讲的。在类图中使用带三角箭头的虚线表示,箭头从实现类指向接口。

image

依赖(Dependency)

对象之间最弱的一种关联方式,是临时性的关联。代码中一般指由局部变量、函数参数、返回值建立的对于其他对象的调用关系。一个类调用被依赖类中的某些方法而得以完成这个类的一些职责。在类图使用带箭头的虚线表示,箭头从使用类指向被依赖的类。

image

 

多重性(Multiplicity)

通常在关联、聚合、组合中使用。就是代表有多少个关联对象存在。使用数字..星号(数字)表示。如下图,一个割接通知可以关联0个到N个故障单。

image

 

 

再来看一个示例

image

 

步步为营UML建模系列五、时序图(Squence diagram)

概述 顺序图是一种详细表示对象之间以及对象与参与者实例之间交互的图,它由一组协作的对象(或参与者实例)以及它们之间可发送的消息组成,它强调消息之间的顺序。 顺序图是一种详细表示对象之间以及对象与系...
  • fen0707
  • fen0707
  • 2014年07月03日 08:17
  • 1017

uml类图(Class Diagram)中类与类之间的关系及表示方式

类之间大体分为5种关系: 1,依赖关系(Dependency) 2,关联关系(Association) 3,聚合关系(Aggregation) 4,组合关系(Composition) 5,继承关系(I...
  • a19881029
  • a19881029
  • 2013年05月21日 22:28
  • 17620

步步为营UML建模系列六、类图(Class diagram)

概述 类图(Class Diagram)是描述类、接口、协作以及它们之间关系的图,用来显示系统中各个类的静态结构。类图是定义其他图的基础,在类图基础上,可以使用状态图、协作图、组件 ...
  • SunCherryDream
  • SunCherryDream
  • 2014年06月27日 19:17
  • 816

类与类之间的关系图(Class Diagram,UML图)

一、简介 二、类的构成 三、类之间的关系(Relationship) 1、单向关联 2、双向关联 3、自身关联 4、多维关联(N-ary Association) 5、泛化(Gener...
  • ARYBD
  • ARYBD
  • 2016年01月14日 23:23
  • 1800

UML系列图——类图(Class Diagram)

擂鼓备战:     类图(Class Diagram)是最常用的UML图,可以显示出类、接口、以及它们之间的静态结构和关系;用于描述软件的结构化设计,要注意的是,类图不现实暂时性信息。下面就由小编带领...
  • jianghappyboy
  • jianghappyboy
  • 2017年01月02日 15:51
  • 419

UML建模系列-类图(Class diagram)

概述 类图(Class Diagram)是描述类、接口、协作以及它们之间关系的图,用来显示系统中各个类的静态结构。类图是定义其他图的基础,在类图基础上,可以使用状态图、协作图、组件图和配置图等进一步...
  • PZ0605
  • PZ0605
  • 2015年08月07日 10:45
  • 1364

顺序图(Sequence diagram)——UML之图六

交互图 用来描述系统中的对象如何进行相互作用。即一组对象是如何进行消息传递的。 主要用于描述协作的动态行为方面。 当对交互建模时,通常既包括对象(每个对象都扮演某一特定的角色),又包括消息(每个消息...
  • u010176014
  • u010176014
  • 2014年02月10日 11:35
  • 1841

UML建模之类图(Class Diagram)

一、类图概要 1. 类图以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模方法 2. 类图中的“类”与面向对象语言中的“类”的概念是对应的,是对现实世界中的事...
  • zhurui536
  • zhurui536
  • 2013年09月27日 08:28
  • 794

UML类图建模简介

简单的UML类图建模
  • sunxianghuang
  • sunxianghuang
  • 2016年07月08日 09:29
  • 872

UML系列图——交互图 InteractionDiagram(序列图和协作图)

前言:     在面向对象动态建模中,上篇讲过了一部分,行为图:活动图(Activity Diagram)和状态图(Statechart Diagram);本篇介绍动态建模剩下的一部分,交互图:序列...
  • jianghappyboy
  • jianghappyboy
  • 2017年02月06日 14:20
  • 427
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:步步为营UML建模系列六、类图(Class diagram)
举报原因:
原因补充:

(最多只允许输入30个字)