第五章 类图和对象图(UML)
UML面向对象分析、建模与设计课件第五章 类图
类——操作
操作是一个可以由类的对象请求以影响其行为的服务的实现,也即 是对一个对象所做的事情的抽象,并且由这个类的所有对象共享。
操作是类的行为特征或动态特征。 操作的语法格式为:
可见性OPT 操作名 ⌊(参数列表)⌋OPT ⌊:返回类型⌋OPT ⌊{特性}⌋OPT
操作名:操作的标识符。在描述操作时,操作名是必须的,其他部 分可选。
Student
+monitor 1
1..*
自关联
类图中的关系——关联关系
关联名称:放在关联路径的旁边,但远离关联端。 角色:放在靠近关联端的部分,表示该关联端连接的类在这一关联
关系中担任的角色。角色名上也可使用可见性修饰符号。 多重性:放在靠近关联端的部分,表示在关联关系中源端的一个对
象可以与目标类的多少个对象之间有关联。 导航性:一个布尔值,用来说明运行时刻是否可能穿越一个关联。 限定符:是二元关联上的属性组成的列表的插槽,其中的属性值用
/WorksForCompany
Department * +department 1 WorksForDepartment
* Person
类图中的关系——泛化关系
泛化关系定义为一个较普通的元素与一个较特殊的元素之间的类元 关系。其中描述一般的元素称为父,描述特殊的元素称为子。
通过泛化对应的继承机制使子类共享父类的属性和操作,小了模型 的规模,同时也防止了模型的更新所导致的定义不一致的意外。
法了,此时称之为N元关联。
类图中的关系——关联关系
class Logical View
ClassA
AssociationName
+rolename 0..*
第五章 类图和对象图(UML)
+
size
:integer
=(100)
9
第 五 章 类 图 和 对 象 图
5.1 类的定义
说明:
3、属性还有取值范围。类型表示该属性的种类。 它可以是基本数据类型,例如整数、实数、布尔 型和枚举型等,也可以是用户自定义的类型。一 般它由所涉及的程序设计语言确定必须为其指定 数据类型。当一个类的属性被完整定义后,它的 任何一个对象的状态都由这些属性的特性值所决 定。
20
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
关联是一种结构关系,它指明一个事物的对象与 另一个事物的对象间的联系 例如,一个人为一家公司工作,一家公司有许多办 公室。我们就认为人和公司、公司和办公室之间 存在某种语义上的联系。在分析设计的类图模型 中,则在对应人类和公司类、公司类和办公室类 之间建立关联关系
改变的因素:1.一个类向另一个类发送消息。 2.一个类是另一个类的数据成员类型 3.一个类是另一个类的操作的参数类型 注:如果两个类之间有关联,那么这两个类就有依赖关 系,但是我们一般不标出依赖关系。
37
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
3、泛化(generalization)关系
泛化关系:定义了一般元素和特殊元素之间的分类关系。 也就是一种继承关系。继承是在现有类的基础上定义和 实现一个新类的技术,刻画了类的一般性和特殊性。被 继承的类称为父类或超类,继承的类称为子类。 表示形式:用空心三角箭头实心线表示
25
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
角色:当一个类处于关联的某一端时,该类就在 这个关系中扮演着一个特定的角色。角色就是关 联关系中一个类对另一个类所表现的职责
UML对象图与类图的选择原则与对比分析详解
UML对象图与类图的选择原则与对比分析详解UML(Unified Modeling Language)是一种用于软件开发过程中的标准建模语言,它提供了一套丰富的图形符号和规范,帮助开发人员更好地理解和描述软件系统的结构和行为。
在UML中,对象图和类图是两种常用的建模工具,它们各自有着不同的特点和适用场景。
本文将对UML对象图和类图进行选择原则和对比分析,帮助读者更好地理解它们的应用。
一、UML对象图UML对象图是描述系统中对象之间的静态关系的一种图形表示方式。
它主要用于展示系统中对象的实例以及它们之间的关系。
对象图通常用于详细描述系统的某个特定状态或者场景,它能够清晰地展示对象之间的交互和依赖关系。
对象图的主要特点是直观、具体,能够很好地展示对象的属性和方法。
它适用于需求分析和系统设计的初期阶段,帮助开发人员更好地理解系统的需求和设计方案。
对象图可以帮助开发人员发现系统中的潜在问题和矛盾,从而提前进行调整和优化。
然而,对象图的局限性在于它只能展示系统的某个特定状态或者场景,不能全面地描述系统的整体结构和行为。
因此,在系统设计的后期阶段,开发人员通常会使用类图来更全面地描述系统的结构和行为。
二、UML类图UML类图是描述系统中类之间的静态关系的一种图形表示方式。
它主要用于展示系统的整体结构和类之间的关系。
类图是UML中最常用的一种图形表示方式,它能够清晰地展示类的属性、方法和关联关系。
类图的主要特点是抽象、概括,能够很好地展示系统的整体结构和类之间的关系。
类图适用于系统的整体设计和架构描述,它能够帮助开发人员更好地理解系统的总体设计思路和模块划分。
与对象图相比,类图具有更高的抽象层次和更全面的描述能力。
它能够展示系统的整体结构和行为,帮助开发人员更好地理解和分析系统的复杂性。
因此,在系统设计的后期阶段,开发人员通常会使用类图作为主要的建模工具。
三、选择原则与对比分析在实际的软件开发过程中,开发人员需要根据具体的需求和场景选择合适的建模工具。
UML图:类图和对象图详解
目录1.类图和对象图的概念2.类图的组成3.使用Rose创建类图4.对象图5.使用Rose创建类图案例分析类图和对象图详解对于类图和对象图来说我们需要了解的是类图和对象图的概念,类图的组成,使用Rose创建类图和对象图。
当然最重要的是如何使用Rose创建类图案例分析。
具体的创建通过选课管理系统的简单用例说明创建类图和对象图的方法和具体的过程。
下面是我对类图和对象图学习过程的一个整理,一些资料是直接拿过来直接用的。
希望能对你的学习有一点点的帮助吧。
类图和对象图的概念1. 类的含义类图(Class diagram)显示了系统的静态结构,而系统的静态结构构成了系统的概念基础。
类图,就是用于对系统中的各种概念进行建模,并描绘出它们之间关系的图。
在大多数的 UML 模型中,我们可以将这些概念的类型概括为以下四种,分别是:(1) 类(2) 接口(3) 数据类型(4) 构件在类图中,具体来讲它一共包含了以下几种模型元素,分别是:类、接口、依赖关系、泛化关系、关联关系以及实现关系。
类图可以创建约束、注释和包等。
2. 对象图的含义对象图中包含对象(Object)和链(Link)。
其中对象是类的特定实例,链是类之间关系的实例,表示对象之间的特定关系。
3. 类图在项目开发中的作用类图的作用是对系统的静态视图进行建模。
当对系统的静态视图进行建模时,通常是以以下三种方式来使用类图。
(1)为系统的词汇建模。
(2)模型化简单的协作。
(3)模型化逻辑数据库模式。
在设计数据库时,通常将数据库模式看作为数据库概念设计的蓝图,在很多领域中,都需要在关系数据库或面向数据库中存储永久信息。
系统分析者可以使用类图来对这些数据库进行模式建模。
4. 对象图在项目开发中的作用对象图作为系统在某一时刻的快照,是类图中的各个类在某一个时间点上的实例及其关系的静态写照,可以通过以下几个方面来说明它的作用:(1)说明复杂的数据结构。
对于复杂的数据结构,有时候很难对其进行抽象成类表达之间的交互关系。
UML中对象图与类图的对比与选择
UML中对象图与类图的对比与选择在软件开发中,UML(统一建模语言)是一种常用的图形化建模工具,用于描述和设计软件系统的结构和行为。
其中,对象图和类图是两种常见的图形表示方式。
本文将对这两种图进行比较,并讨论在不同情况下的选择。
一、对象图对象图是一种表示系统中对象实例的图形化表示方式。
它展示了对象之间的关系和属性。
对象图通常用于描述系统的运行时状态,可以显示对象的属性值和方法的调用。
对象图的优点在于它能够直观地展示对象之间的关系,帮助开发人员更好地理解系统的运行时行为。
通过对象图,可以清晰地看到对象之间的交互和依赖关系,从而更好地设计和调整系统的结构。
然而,对象图也存在一些局限性。
首先,对象图通常只能展示系统的某个特定状态,无法全面地描述系统的整体结构。
其次,对象图的复杂度随着系统规模的增大而增加,可能会导致图形过于复杂,难以理解。
二、类图类图是一种表示系统中类和类之间关系的图形化表示方式。
它展示了类的属性、方法和关联关系。
类图通常用于描述系统的静态结构,可以显示类之间的继承、关联和依赖关系。
类图的优点在于它能够全面地描述系统的结构,包括类的属性、方法和关联关系。
通过类图,可以清晰地看到类之间的继承关系、关联关系和依赖关系,从而更好地设计和组织系统的结构。
然而,类图也存在一些局限性。
首先,类图无法展示系统的运行时行为,只能描述系统的静态结构。
其次,类图的复杂度也会随着系统规模的增大而增加,可能会导致图形过于复杂,难以理解。
三、选择对象图还是类图?在实际应用中,选择使用对象图还是类图应根据具体情况而定。
如果需要描述系统的运行时状态和对象之间的交互关系,那么对象图是一个更好的选择。
对象图可以帮助开发人员更好地理解系统的运行时行为,从而进行系统调整和优化。
如果需要描述系统的静态结构和类之间的关系,那么类图是一个更好的选择。
类图可以帮助开发人员更好地设计和组织系统的结构,从而提高系统的可维护性和可扩展性。
对象图
在UML中,对象图使用的是与类图相同的符号和关系,因为对象就是类的实例。
下图显示了对象图的模型。
其中节点可以是对象也可以是类,连线表示对象之间的关系:二、类图和对象图的区别UML对象图1.对象图对象图(Object Diagram)描述的是参与交互的各个对象在交互过程中某一时刻的状态。
对象图可以被看作是类图在某一时刻的实例。
一个对象图主要集中在特定的对象实例和其槽,以及实例之间的连接。
同一个类图所对应的对象图可以有多个,多个对象图合在一起共同展示了随着时间的推移,在不同时间点系统的对象状态。
与类图的抽象性相比,对象图是具体的,其通常用来提供所对应类图的结构示例,或者作为所对应类图的测试用例。
应当说每一幅对象图都有其侧重点,因而,每一幅对象图应当只侧重表达其所侧重内容。
在UML中,对象实例是采用实例规范来表示的,对象实例所具有的结构化特性(feature)是采用槽(slot,参见1.2)来表示的,对象实例与对象实例之间的关系则是采用连接(link,参见1.3)来表示。
与类图相对比,实例对应于类对象,槽对应于类属性的实例,而连接则对应于类与类之间关联的实例。
有了这些对应关系,在掌握了类图的情况下,就更加的容易理解和掌握对象图了。
图1.1是UML对象图相关建模元素在UML规范中的语法定义,图1.1类图元素在UML规范中的语法1.1实例规范实例规范(instancespecification,参见USS的7.3.22节)是用于表示被建模系统中的实例实体,它描述了模型实例实体的部分或是全部。
我们平时编程时,口头上所说的实例,在UML中就称之为实例规范。
实例规范所描述的内容可能包括:1)一个或是多个实例所属的分类器。
在实例规范中一个分类器如果是类,那么它所描述的是这个类的对象;如果一个分类器是关联,那么它所描述的是这个关联的一个连接。
2)结构化特性的值。
结构化特性对应于类的属性用于描述类的结构组成,在类图中行为化特性是采用操作(operation)来表示的,而在对象图中并不表示类的行为特性。
第05章 类图及对象图
26
实体类通过事件流和交互图发现, 实体类通过事件流和交互图发现, 采用目 事件流和交互图发现 标领域术语命名. 标领域术语命名. 通常实体类对应数据库中的表, 属性对 通常实体类对应数据库中的表, 其属性对 应表的字段 字段, 应表的字段, 但实体类与数据库中的表不一定 是一一对应关系. 是一一对应关系.
23
借书处理类图
24
通过用例图可以确定需要的边界类, 每个Actor/User 通过用例图可以确定需要的边界类, 每个Actor/User case对至少需要一个边界类 对至少需要一个边界类. case对至少需要一个边界类.
但并不是每个 case都需 Actor/Use case都需 要生成惟一边界类, 要生成惟一边界类, 多个actor actor启动同一 多个actor启动同一 case可以使用同 use case可以使用同 一边界类. 一边界类.
初始值][{特性}] [可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}] 可见性]属性名[:类型][ 多重性[次序] ][=初始值][{特性 [:类型
该属性对外部实体的显现程度. 该属性对外部实体的显现程度. 可见public : + 可见public 受限protected: 受限protected: # 私有private 私有private : -
13
?
问题: 问题:
1、指出下面属性名的含义。 、指出下面属性名的含义。
+studentName:String=“李明” 李明” 李明 #studentBirthDay:Date=1999-10-21 -price:float=12.01{R/W}
14
5.1.3 类的操作
类图和对象图的绘制uml
重庆交通大学信息科学与工程学院U M L课程实验报告学院:信息科学与工程学院专业:计算机科学与技术班级:软件开发1班学号: 631106050117 姓名:李经伟实验名称:类图和对象图的绘制实验项目性质:设计性实验所属课程: UML 实验室(中心):语音楼八楼机房指导教师:何伟实验完成时间: 2014 年 11 月 20 日教师评阅意见:签名:年月日实验成绩:实验二类图和对象图的绘制一、实验内容1、类图的创建;2、类的创建;3、创建类的属性和方法;4、绘制类之间的关系;5、绘制对象图。
二、实验目的1、掌握创建类图的基本方法;2、掌握创建类,属性和操作的方法;3、掌握类之间的基本关系;4、掌握类关系的绘制方法;5、掌握绘制对象图的方法。
三、实验基本配置1、台式机,2G内存,250G硬盘;2、Rational Rose 2003 软件一套。
四、实验步骤1、创建类图的基本步骤1)右键单击Use Case View 图标,在弹出的快捷菜单中选择New|Use Class Diagram命令;2)在Use Case V iew 下面生成New Use Class 。
修改该名称为“课程注册系统类图”;3)设置默认类图。
在Rational Rose中,默认的类图是Main。
可以将其他类图设置为默认的类图:右击需要设置的类图,在弹出的菜单上选择”Set as Default Diagram”;4)删除类图。
如果类图不是默认的类图,则可以对其进行删除操作。
右击需要删除的类图(不是默认类图,默认类图不可删除),在弹出的菜单中选择”Delete”;2、类的创建在“课程注册系统“类图中创建Student的学生类。
1)在“课程注册系统“类图的工具箱内选择Class图标;2)在视图区的任意位置单击,则创建一个新类。
修改类名为Student3)删除类图。
如果只是将类从类图中删除,可以选中Student类,在右键菜单中选择Edit|Delete即可。
UML:图的分类及作用(共5类图,有9种图形)
UML:图的分类及作⽤(共5类图,有9种图形)第⼀类:⽤例图:从⽤户⾓度描述系统功能,并指出各功能的操作者。
第⼆类:静态图:包括类图、对象图和包图。
1、类图:表⽰类之间的联系如关联、依赖、聚合等,包括类的内部结构(类的属性和操作)。
在系统的整个⽣命周期都是有效的 2、对象图:表⽰类图的⼀个实例,对象图只能在系统某⼀时间段存在。
3、包图:表⽰包与包之间的关系。
包图⽤于描述系统的分层结构。
第三类:⾏为图:状态图、活动图。
描述系统的动态模型和组成对象间的交互关系。
1、状态图:是对类图的补充,描述类的对象所有可能的状态以及事件发⽣时状态的转移条件。
在实⽤上并不需要为所有的类画状态图,仅为那些有多个状态其⾏为受外界环境的影响并且发⽣改变的类画状态图。
2、描述满⾜⽤例要求所要进⾏的活动以及活动间的约束关系,有利于识别并⾏活动。
第四类:交互图:包括顺序图 ,协作图(即合作图) 1、顺序图:强调的是时间和顺序的关系 2、协作图:强调的是上下级关系第五类:实现图:构件图,描述代码部件的物理结构及各部件之间的依赖关系。
从应⽤的⾓度看,当采⽤⾯向对象技术设计系统时,⾸先是描述需求;其次根据需求建⽴系统的静态模型,以构造系统的结构;第三步是描述系统的⾏为。
其中在第⼀步与第⼆步中所建⽴的模型都是静态的,包括⽤例图、类图(包含包)、对象图、组件图和配置图等五个图形,是标准建模语⾔UML的静态建模机制。
其中第三步中所建⽴的模型或者可以执⾏,或者表⽰执⾏时的时序状态或交互关系。
它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语⾔UML的动态建模机制。
因此,标准建模语⾔UML的主要内容也可以归纳为静态建模机制和动态建模机制两⼤类。
总结:1、静态图:包括⽤例图、类图(包含包)、对象图、组件图和配置图等五个图形,⾸先是描述需求;其次根据需求建⽴系统的静态模型,以构造系统的结构; 2、动态图:包括状态图、活动图、顺序图和合作图等四个图形,是描述系统的⾏为;。
UML课件5-类图和对象图详解
5.4.3 寻找类(三种常用方法)
1. 使用名词/动词法分析寻找类
收集相关信息 补充的需求规格说明 用例 项目词汇表 其他文档
选取类的属性时只考虑系统用到的特征,不必将所有属 性都表示出来,原则上,由类的属性应能区分每个特定 的对象。
5.1.1 属性
可见性
属性的可访问性,四类: 公共(public)
私有(private)
保护(protected)
实现(implementation) 子类无法继承和访问父类的私有属性和实现属性
先调用Order的dispatch ()方法,它将根据其包含的OrderItem中 产品信息,来按供应商户分拆成若干个DeliverOrder。商户登录 系统后就可以获取其DeliverOrder,并在执行完成后再调用close ()方法。此时,就将调用OrderItem的stateChange()方法来改变 其状态。同时再调用Order的close()方法,判断该Order的所有 的OrderItem是否都已经送到了,如果是就将其真正close()掉。
一个公司有多个部门,一个职员为其中某部门工作,则 可推导该职员为该公司工作。
5.2.2 泛化
Generalization,一般元素和特殊元素之间 的关系。即OO语言中,类之间的继承关系
斜体表示 抽象类
5.2.2 泛化
泛化的目的
自顶向下的属性继承。可以使得子类共享父类的属性 和操作,实现继承。
5.1.2 操作
标准格式:
[可见性] 操作名[ (参数列表) ] [: 返回值类型][{特性}]
例:
+display() #create() -attachXWindow(xwin:XWindowPtr) +getname():String
第五章 UM对象图和类图
① 关联名
关联名
★如果关联关系已经清楚,就无需关联名
② 关联的角色
关联的角色
★ 在关联的每一个端点上有一个角色。每一个角色具
有一个名字,用来描述其类被其他的类看作是什么: 把它称为角色名,如果类名与角色名相同,则不
标出角色名。类关系通过添加角色来进一步丰 富。在类图中使用角色可以帮助读者理解第一 个类对于第二个类的作用。
1.3 接口
• 在没有给出对象的实现和状态的情况下对对象行为 的描述。 • 包含操作但不包含属性。 • 没有对外界可见的关联。 • 一个类可以实现一个或多个接口。
1.3 接口
• 接口类:
1.4 类之间的关系
• • • • • 1 2 3 4 5 关联关系 聚合和组合关系 泛化关系 依赖关系 实现关系
案例分析
• 创建一个类图。下面给出创建类图所需的信息。 • 学生(student)可以是在校生(undergraduate)或者 毕业生(graduate)。 • 在校生可以是助教(tutor)。 • 一名助教指导一名学生。 • 教师和教授属于不同级别的教员。 • 一名教师助理可以协助一名教师和一名教授,一名教师只 能有一名教师助理,一名教授可以有5名教师助理。 • 教师助理是毕业生。
(2)聚合 聚集和组合
• 聚合(aggregation): 表示类之间一种松散的整体与部分的组成关 系,是一种特殊的关联。表示“整体/部分”的关联关系。“has a ”,表示聚合中的每一个部分可以属于其它整体。 • 被表示为在整体的一端用一个空心菱形修饰的简单关联
聚合
组合
• 组合(composition): 表示类之间一种紧密的整体与部分的组成 关系,也是一种特殊的关联。表示组合中的每一个部分只能属 于一个整体 • 组合确实只是一种特殊的关联,用整体端有实心菱形箭头的简单 关联修饰它。
第5章 类图和对象图-4
Customer
DirectEmail
练习
一个牛奶公司想自动化订单和付款. 每个送奶员出发时都有 带着他要送的奶产品和客户的订单。按照他清单上的客户 地址检查需要的产品。客户(customer)都有长期订单( standing order)。如果客户想临时改订单,则被称为一 个异常订单(exception order),例如 “今天多加1 pint奶”, “周四6个酸奶”. 牛奶公司时常会有一些促 销产品,这些促销产品的订单称为促销订单(promotion order)。所有订单(order)都由每个订购产品(product)对 应的订单行(order line)组成。周五送奶员到每个客户 家里收钱(payment)。 画出类图。尝试使用关联、聚集、泛化、多重性。
<<GUI>>
Management Window
图5.21 自定义版型
5.5 版型
Stereotype « button» CancelButton state
Stereotype in form of icon
CancelButton
5.6 边界类、控制类和实体类
UML中有3种主要的类的版型,即边界类、 控制类和实体类。 在进行OO分析和设计时,如何确定系统中 的类是一个比较困难的工作,引入边界类、 控制类和实体类的概念有助于分析和设计 人员确定系统中的类。
练习
5.8 领域分析
In software engineering, domain analysis is the process of analyzing related software systems in a domain to find their common and variable parts. It is a model of wider business context for the system. 建立类图的过程就是对领域及其解决方案的分析和设 计过程。 类的获取是一个依赖于人的创造力的过程,有时需要 与领域专家合作,对研究领域进行仔细分析,抽象出 领域中的概念,定义其含义及相互关系,分析出系统 类,并用领域中的术语为类命名。
第5章 类图和对象图-3
练习
Resort
1..* Place_to_Stay 1 1..* Room 1..* 0..* Booking
1..*
1..* Tourist
Hotel
Guest_House
练习
画出类图,表示透支账户报告类和账户类之 间的关系。
OverdrawnAccountReport overdrawnAccounts Account
练习
画出类图,表示航班类和飞机类之间的关系。
Flight
0..* assignedFlights
1 assignedPlaned
Plane
练习
画出类图,表示出顾客租用自行车中存在 的类及关系。
租用是否可以表示 为类? 租用是否有相关数 据?开始时间、租 用几天
练习
画出类图:标出库存产品、书、DVD之间的 关系。
练习
画出类图:标出公司和部门之间的关系。
Company
1..*
Department
练习
网上书店:书籍评论
网上书店用户可以评论一本或多本书店出售书籍 提示: 每个用户可以评论一本或多本书籍 一条评论可以是用户评论或编辑评论 画出类图,考虑使用关联和泛化关系。标出多重 性
练习
Check
Order 1 0..* 1 Customer
1
Payment
CreditCard
Cash
练习
Littlesand, Pebblesea and Mudport 是游客(Tourists) 非常喜爱的南海岸的三个旅游景点(Resorts), 以沙 滩和日晒时间闻名. 这三个地方都有大量的可以住宿 的地方(Place to stay), 从一间的招待所(Guest House)到Pebblesea宫殿酒店(Hotel).当地旅游部分 想开发一个系统来处理这一地区的房间(Room)预 订(Bookings)。 画一个类图类表示上述信息. 试着使用关联、聚集、泛 化、多重性.
UML:对象图和类图的区别
UML:对象图和类图的区别对象图(Object Diagram)描述的是参与交互的各个对象在交互过程中某⼀时刻的状态。
对象图可以被看作是类图在某⼀时刻的实例。
在UML中,对象图使⽤的是与类图相同的符号和关系,因为对象就是类的实例。
下图显⽰了对象图的模型。
其中节点可以是对象也可以是类,连线表⽰对象之间的关系:⼆、类图和对象图的区别类图对象图类具有3个分栏:名称、属性和操作对象只有两个分栏:名称和属性在类的名称分栏中只有类名对象的名称形式为“对象名:类名”,匿名对象的名称形式为“:类名”类的属性分栏定义了所有属性的特征对象则只定义了属性的当前值,以便⽤于测试⽤例或例⼦中类中列出了操作对象图中不包括操作,因为对于同属于同⼀个类的对象⽽⾔,其操作是相同的类使⽤关联连接,关联使⽤名称、⾓⾊、多重性以及约束等特征定义。
类代表的是对对象的分类所以必须说明可以参与关联的对象的数⽬对象使⽤链连接、链拥有名称、⾓⾊,但是没有多重性。
对象代表的是单独的实体,所有的链都是⼀对⼀的,因此不涉及到多重性。
对象图建模技术⼀、对对象结构建模对系统的设计视图建模时,可以使⽤⼀组类图完整地描述抽象的语义以及它们之间的关系。
但是使⽤对象图不能完整地描述系统的对象结构。
对于⼀个个体类,可能存在多个实例,对于相互之间存在关系的⼀组类,对象间可有的配置可能是相当多的。
所以,在使⽤对象图时,只能在⼀定意义上显⽰感兴趣的具体或原型对象集。
这就是对对象结构建模,即⼀个对象图显⽰了某⼀时刻相互联系的⼀组对象。
对对象结构建模,要遵循以下策略:(1)、识别将要使⽤的建模机制。
该机制描述了⼀些正在建模的部分系统的功能和⾏为,它们由类、接⼝和其他元素的交互⽽产⽣。
(2)、对于各种机制,识别参与协作的类、接⼝和其他元素,同时也要识别这些事物之间的关系。
(3)、考虑贯穿这个机制的脚本。
冻结某⼀时刻的脚本,并且汇报每个参与这个机制的对象。
(4)、按照需要显⽰出每个对象的状态和属性值,以便理解脚本。
uml类图-对象图-包图PPT课件
Company
W heel
Department
-
24
Company Department
-
25
类图的抽象层次
在软件开发的不同阶段使用的类图具有不同的抽 象层次。一般地,类图可分为三个层次,即概念 层,说明层和实现层。
类的概念层,说明层和实现层的划分最先是由
Steve Cook和John Daniels引入的。
➢类 ➢ 接口 ➢ 协作 ➢ 依赖、泛化和关联关系
类图可以包含注解和约束; 类图还可以有包或子系统,二者都用于把 模型元素聚集成更大的组件。
-
5
类(Class)
A class is the descriptor for a set of objects with similar structure, behavior, and relationships.
Camera Sensors::Vision::Camera 包中可以包含其它建模元素,如class, interface, component, node, use case, package, … , 等。 包可以嵌套,但嵌套层次不要过深。 包没有实例,即在系统运行时见不到包。 包之间可以存在依赖关系, 但这种依赖关系不存在传递性。
➢ 概念层(Conceptual)类图描述应用领域中的概念,一般地, 这些概念和类有很自然的联系,但两者并没有直接的映射关 系。
➢ 说明层(Specification)类图描述软件的接口部分,而不是软件 的实现部分。
➢ 实现层(Implementation)类图才真正考虑类的实现问题,揭示 实现细节。
-
3
类图的应用
类图用于对系统静态设计视图建模。与数据模型 不同,它不仅显示了信息的结构,同时还描述了 系统的行为。 类图中可以包含接口,包,关系等建模元素,也 可以包含对象,链等实例。
第5章 对象类图与对象图课件
注册 选课
Home
图5.2 类的图形表示
5.1.2 属性
类的属性(Attribute)是类的命名的性质,属性在类图标的属性分隔 框中用文字串说明,如图5.3所示。
属性有在本类中唯一的属性名或标识符。
冒号“:”后跟属性值的数据类型。
属性名后跟的方括号中的内容是可选项目。
多重性(Multiplicity)用多值表达式表示,其值是该类的每个实例的 属性值的个数。
Home
图5.11 N元关联示例
5.2.3 关联的约束
关联可以加上一些约束,以规定关联的含义。 约束的字符串括在花括号{}内。 UML定义了一些约束可以施加在目标关联端上,如“implicit”、
“ordered”、“changeable”、“addonly ”、“xor”等。 例:具有xor约束的关联,如图5.12所示。约束xor 代表一组关联的
5.4.3 重载与多态性
泛化涉及面向对象技术的多态性、重载、多继承等概念,这在建立 泛化联系时需特别注意。
重载是实现多态性的方法,它修改继承来的属性和操作的内容,而 不改变其名字。
例:在图5.17中有表示重载的约束“{overlapping}”,说明子类型 “风动交通工具”、“机动交通工具”、“陆上交通工具”、“ 水上交通工具”虽然继承了超类“交通工具”的属性和操作,但 是对于某些具有多态性的属性和操作,各个子类型的对象都有自 己不同的含义和实现,而属性和操作的名字则是一样的。
类名可以是简单名,也可以是路径名。
属性框中包含类的属性。属性是类的命名 的性质,它描述类性质的实例所能具有的 值。
操作框中包含类的操作。操作实现类的服 务功能,它可以被本类的对象请求执行, 从而发生某种行为。
UML类图对象图两者之间的异同
隐藏属性部分或操作部分,并不代表没有 属性或操作,只是因为没有显示出来。
Titles
1、名称(Name)
类的名称是每个类中所必须有的元素,用 于同其他类相区分。类的名称应该尽可能 的明确,以免造成歧义。
认为符号*表示“无穷大” 一个其下界和上界都是相同数字的范围可以简写为一个
数字,例如数字范围1..1可用单个数字1来表示
可用一个由数字范围和单个数字组成的列表来表示多 重性。例如0, 3..*表示一个给定的实体是可选的、 但如果发生就必须至少发生三次以上
Person *
1 C om pany
W orksfor
类图
类图(Class Diagram)是描述类、接口以及 它们之间关系的图,用来显示系统中各个类 的静态结构。
虽然一个类图仅仅显示的是系统中的类,但 是存在一个变量,确定了显示各个类的真实 对象实例的位置,就是对象图。
类图包含三个元素:类、接口、类与类之间 的关系。
一、类
类是面向对象系统组织结构的核心。是对一 组具有相同属性、操作、关系和语义的对象 的描述。
(2)属性名
根据定义,类的属性首先是类的一部分,而 且每个属性都必须有一个名字以区别于类中 的其他属性。通常情况下属性名由描述所属 类的特性的名词或名词短语组成。按照UML 的约定,单字属性名要小写。如果属性名包 含了多个单词,这些单词要合并,且除了第 一个单词外其余单词的首字母要大写。
(3)类型
防止漏掉取值或被非法的值破坏系统的完整 性;为用户提供易用性。
(5)属性字符串 用来指定关于属性的其他信息,任何希望添
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
+
size
:integer
=(100)
9
第 五 章 类 图 和 对 象 图
5.1 类的定义
说明:
3、属性还有取值范围。类型表示该属性的种类。 它可以是基本数据类型,例如整数、实数、布尔 型和枚举型等,也可以是用户自定义的类型。一 般它由所涉及的程序设计语言确定必须为其指定 数据类型。当一个类的属性被完整定义后,它的 任何一个对象的状态都由这些属性的特性值所决 定。
关联类来记录。关联类通过一根虚线与关联连接
emplanyer employee
Company
1
Employs 0..n
Person
Ccontract
Salary:Double
29
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
关联类可以进一步描述关联的属性、操作及其他 信息。他描述的是两个类之间关联的属性,并不
20
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
关联是一种结构关系,它指明一个事物的对象与 另一个事物的对象间的联系 例如,一个人为一家公司工作,一家公司有许多办 公室。我们就认为人和公司、公司和办公室之间 存在某种语义上的联系。在分析设计的类图模型 中,则在对应人类和公司类、公司类和办公室类 之间建立关联关系
操作(Operation):类的操作是对类的对象所能 做的事物抽象,用于修改、检索类的属性或执行 某些动作。也被称为功能。它相当与一个服务的 实现,。该服务可以由类的任何对象请求以影响 其行为。一个类可以有任何数量的操作或者没有 操作
格式: [可见性]操作名[(参数列表)][:返回类型][{特性}] + disply () :Location
二元关联binary association
N元关联
34
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
2、聚合
聚集:是一种特殊的关联。它表示类间的关系是 整体与部分的关系。关联关系中一个类描述了一 个较大的事物,它由较小的事物组成,即整体对 象拥有部分对象。 表示形式:用空菱形的实线表示
35
5.2 类之间的关系
类不是独立存在的,大多数类以某些方式彼此协 作。
19
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
类间的关系分为:关联、聚合、实现、泛化、依 赖。 关联(Association)表示对象之间的结构关系 泛化(Generalization)表示类之间一般和特殊的关 系 依赖(Dependency)表示类之间的使用关系
2、私有:不可以从其他类中访问这个属性
3、受保护的:经常与泛化一起使用(后面章节 讲讲到)。
8
第 五 章 类 图 和 对 象 图
5.1 类的定义(续)
说明:
2、每个属性必须有个名字区分其他属性。通常 情况下属性名由描述所属类的特性的短名词或者 名词短语构成(小写字母开头)
[可见性]属性名[:类型][=初始值][{特性}]
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
修饰 语意
0..1
1 0..*或0..n
0或1
仅仅为1 0或者更多
1..*或 1..n
•或N
1或者更多
0或者更多
1..6
1~6
28
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
关联类:一个关联可能要记录一些信息,可以引入一个
描述两个类的属性。
emplanyer employee
Company
1
Employs 0..n
Person
Ccontract
Salary:Double 30
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
关联的约束:为关联加上一些约束,加强关联的 含义。
Person
Account {xor} company
38
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
3、依赖(dependency)关系
依赖关系:如果一个类的变化会影响另一个类的变化, 则称两个类之间有依赖关系
表示形式:用虚线三角箭头表示,指向被依赖的类
39
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
4、依赖(dependency)关系
5.1 类的定义(续)
类在UML中的表示:分成三个格子的矩形。
图书馆书的类 (省略掉操作)
图书馆书的类 (省略掉属性)
4
第 五 章 类 图 和 对 象 图
5.1 类的定义(续)
类名:是每个类所必须有的构成。用于和其他类 区分,是一个文本串。
类名要求应尽量应用领域中的术语,应明确、无 歧义,以利于开发人员与用户之间的勾通交流 单独的名称(single name):不包含冒号的字符 串。 路径名称(path name):用类所在的包作为前缀 的类名。如Business:Item
改变的因素:1.一个类向另一个类发送消息。 2.一个类是另一个类的数据成员类型 3.一个类是另一个类的操作的参数类型 注:如果两个类之间有关联,那么这两个类就有依赖关 系,但是我们一般不标出依赖关系。
21
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
关联的表示方式:用一条连接相同类或者不同类 的实线表示。
22
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
一个关联可以有两个和多个关联端。关联也有方 向,可以分为单向关联(uni-directional association)或双向关联(bi-directional association)
关联
University
Student
角色名
26
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
多重性:关联实例中说明两个类间存在多少个相 互连接。UML有三大扩展机制,多重性是第一 种约束。 多重性被表示为用点分隔的区间。表示格式
Minimun..maximum
均为int型的整数
27
25
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
角色:当一个类处于关联的某一端时,该类就在 这个关系中扮演着一个特定的角色。角色就是关 联关系中一个类对另一个类所表现的职责
emplanyer employee
Company
1
Employs 0..n
Person
Learner
Teacher
第五章 类图和对象图
教学目标:了解类图、类间的关系 对象图的 组成部分 教学要求:能建立简单的类图、对象图
1
第 五 章 类 图 和 对 象 图
5.1 类的定义(续)
类:是对一组具有相同属性、操作、关系和语义 的对象的描述。
这些对象可以包括现实世界中的软件事物和硬件 事物,甚至也可以包括纯粹概念性的事物。 类图(class diagram)是描述类、接口、协作及 他们之间关系的图,用来显示系统中各个类静态 结构。 在类图的基础上,可以使用协作图、状态图、组 件图和配置图。
2
第 五 章 类 图 和 对 象 图
5.1 类的定义(续)
类在UML中的表示:分成三个格子的矩形。
ClassName
Attribute: Attribute Type=initialValue
类名 属性
操作
Opetation(arg:Argument Type):ReturnType
3
第 五 章 类 图 和 对 象 图
+
size
:integer
=(100)
11
第 五 章 类 图 和 对 象 图
5.1 类的定义
说明:
5、特性是用户对该属性性质的一个约束说明。 比如{只读}
[可见性]属性名[:类型][=初始值][{特性}]
+
size
:integer
=(100)
12
第 五 章 类 图 和 对 象 图
5.1 类的定义
14
第 五 章 类 图 和 对 象 图
5.1 类的定义
说明:
操作名是用来描述所属类的行为的短动词或动词 短语(通常用小写字母开头)。如果是抽象操作, 用斜体字表示。
格式: [可见性]操作名[(参数列表)][:返回类型][{特性}] + disply () :Location
15
第 五 章 类 图 和 对 象 图
5
第 五 章 类 图 和 对 象 图
5.1 类的定义(续)
属性:描述了类在软件系统中代表的事物所具备 的特性。类可以有无限数量的属性,也可以没有 属性。
格式: [可见性]属性名[:类型][=初始值][{特性}] + size :integer =(100)
6
第 五 章 类 图 和 对 象 图
5.1 类的定义(续)
A B A B
类A和B之间的双向关联
类A到类B的单向关联
23
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
关联名:给关联加上名字,描述关联的作用。
Company
Employs
Person
24
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
关联名说明:关联的名称并不是必需的,当要明 确的给出关联提供角色名或当一个模型存在许多 关联并且要对这些关联进行查阅或者区别是才要 给出关联名。
31
第 五 章 类 图 和 对 象 图