UML——类图

1.类图是什么

       类图(Class Diagram)是描述类、接口、协作以及它们之间关系的图,用来显示系统中各个类的静态结构,类图是静态图的一部分,类图包含七个元素:类、接口、协作、依赖关系、泛化关系、实现关系以及关联关系。

2.类图结构

3.类图元素—类

       类是面向对象系统组织结构的核心,类是对一组具有相同属性、操作、关系和语义的对象的描述。一个类可以实现一个或多个接口,类定义了一组有着状态和行为的对象,属性和关联用来描述状态,属性通常用没有身份的数据值表示,如数字和字符串,关联则用有身份的对象之间的关系表示。行为由操作来描述,方法是操作的实现,对象的生命期则由附加给类的状态机来描述。在UML中,类用矩形来表示,并且该矩形被划分为3个部分,名称部分(Name)、属性部分(Attribute)、和操作部分(Operation),顶端的部分存放类的名称,中间的部分存放类的属性、属性的类型及其初始值,底部的部分存放类的操作、操作的参数表和返回类型。类的示例如下:

4.类图元素—接口

       接口是指类或组件所提供的、可以完成特定功能的一组操作的集合,一个类实现一个或多个接口,在UML中,接口是用一个带有名称的小圆圈表示的,并且通过一条实线与它的模型元素相连接。

5.类图元素—关系

       类之间的关系最常用的有四种,分别是表示类之间使用关系的依赖(Dependency)关系、表示类之间一般和特殊关系的泛化(Generalization)关系、表示对象之间结构关系的关联(Association)关系、以及表示类中规格说明和实现之间的实现(Realization)关系。

(1)依赖关系

       依赖表示两个或多个模型元素之间语义上的关系,UML定义了四种基本依赖类型:分别是使用(Usage)依赖、抽象(Abstraction)依赖、授权(Permission)依赖和绑定(Binding)依赖,在UML中,依赖用一个从客户指向提供者的虚箭头表示,用一个构造型的关键字来区分种类,依赖关系实例如下:

      在该例中,类TV中的方法change使用了类channel的对象作为参数,因此在类TV和类channel中存在着依赖关系,当类channel发生变化时,类TV的行为也会相应的发生变化。

(2)泛化关系

       泛化关系是一种存在于一般元素和特殊元素之间的分类关系。泛化可以用于类、用例及其它模型元素,泛化关系只能用在类型上,不能用在实例上,泛化关系描述的是"is a kind of "的关系,如彩色电视机是电视机的一种。在类中,一般元素被称作超类或父类,而特殊元素被称作子类。在UML中,泛化关系用一条从子类指向父类的空心三角箭头表示。泛化示例如下:

       如图,类Book Title和类Magazine Title(图中字母打错了)都是类Title的子类,继承了类Title的某些属性还添加了属于自己的某些新的属性。

(3)关联关系

       关联是描述一组具有共同结构特征、行为特征、关系和语义的链接,它是一种结构关系,指明一个事物的对象与另一个事物的对象间的关系,在UML中,关联关系用一条连接两个类的实线表示。在关联关系中,存在6种应用于关联的修饰,分别是名称、角色、多重性、聚合、组合和导航性。

1)名称

      关联可以有一个名称,用来描述关系的性质,关联的名称不是必须的

2)角色

      当一个类处于关联的某一端时,该类就在这个关系中扮演一个特定的角色

3)多重性

       约束是UML三大扩展机制之一,多重性是其中的一种也是使用最广泛的约束,关联的多重性是指有多少对象可以参与该关联,多重性可以用来表示一个取值范围、特定值、无限定的范围或一组离散值。

修饰语义修饰语义
0恰为01恰为1
0..10或11..n1或更多
0..*0或更多n0或更多

      多重性示例如下:

      上图表示一个学生可以同时在0或多个学校中学习,而一个学校可以有1个或更多的学生。

4)聚合

      聚合关系是一种特殊类型的关联,表示整体与部分之间的关联,聚合关系描述的是一种“has a“的关系,在UML中,聚合关系用空心菱形头的实线来表示,头部指向整体。聚合关系示例如下:

       大学是由多个学院组成的,所以在大学和学院之间存在聚合关系,一个学院只属于一所大学,一所大学可以同时拥有一个或多个学院。

5)组合关系

       组合关系是聚合关系中的一种特殊情况,是更强形式的聚合,又被称为强聚合,在UML中,组合关系用带实心菱形箭头的实线来表示,头部指向整体,组合关系示例如下:

       在窗口中包含菜单和按钮等选项,一个窗口可以具备一个或多个菜单及按钮,但是一个菜单及按钮只能同时属于一个窗口。

6)导航性

       导航性描述的是一个对象通过链进行导航访问另一个对象,在关联关系上加上箭头即表示导航方向,只在一个方向上可以导航的关联成为单向关联,用一条带箭头的实线来表示,在两个方向上可以导航的关联称为双向关联,用一条没有箭头的实线来表示。

(4)实现关系

       实现是规格说明和其实现之间的关系,它将一种模型元素与另一种模型元素连接起来,比如类和接口,类与类之间不存在实现关系,只有类和接口之间可以存在实现关系,但是类也是一种特殊的接口。实现关系示例如下:

6.机房收费管理系统类图

       在我画的机房收费管理系统类图中,主要存在五个大类:机房收费系统、一般用户、操作员、管理员、数据库,其中一般用户和操作员之间满足泛化关系,操作员是一般用户的特殊情况,操作员和管理员满足泛化关系,管理员是操作员的特殊情况。机房收费系统和数据库之间存在依赖关系,当数据库发生改变时,机房收费系统的内容也随之改变。在用户和机房收费管理系统中存在着组合关系,一个机房收费系统可以拥有一个或多个用户,而一个用户只能使用一个机房管理系统。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值