第5章类图和对象图解析
UML面向对象分析、建模与设计课件第五章 类图

类——操作
操作是一个可以由类的对象请求以影响其行为的服务的实现,也即 是对一个对象所做的事情的抽象,并且由这个类的所有对象共享。
操作是类的行为特征或动态特征。 操作的语法格式为:
可见性OPT 操作名 ⌊(参数列表)⌋OPT ⌊:返回类型⌋OPT ⌊{特性}⌋OPT
操作名:操作的标识符。在描述操作时,操作名是必须的,其他部 分可选。
Student
+monitor 1
1..*
自关联
类图中的关系——关联关系
关联名称:放在关联路径的旁边,但远离关联端。 角色:放在靠近关联端的部分,表示该关联端连接的类在这一关联
关系中担任的角色。角色名上也可使用可见性修饰符号。 多重性:放在靠近关联端的部分,表示在关联关系中源端的一个对
象可以与目标类的多少个对象之间有关联。 导航性:一个布尔值,用来说明运行时刻是否可能穿越一个关联。 限定符:是二元关联上的属性组成的列表的插槽,其中的属性值用
/WorksForCompany
Department * +department 1 WorksForDepartment
* Person
类图中的关系——泛化关系
泛化关系定义为一个较普通的元素与一个较特殊的元素之间的类元 关系。其中描述一般的元素称为父,描述特殊的元素称为子。
通过泛化对应的继承机制使子类共享父类的属性和操作,小了模型 的规模,同时也防止了模型的更新所导致的定义不一致的意外。
法了,此时称之为N元关联。
类图中的关系——关联关系
class Logical View
ClassA
AssociationName
+rolename 0..*
UML与系统分析设计 第05章 对象类图与对象图

图5.10 自返关联示例
Home
5.2.2 自返关联、二元关联和 N元关联
图5.15 泛化的表示
图5.16 对象类的泛化联系示例
Home
5.4.2
继承
泛化联系体现了分类与继承原则。一个子类继承超类 的全部属性和方法,一个子类本身又可以有自己的子 类,从而构成复杂的一般/特殊的结构。 单继承:一个子类可以只从它的一个父类继承属性和 方法。如果在一般/特殊的结构中只有单继承,则为层 次结构。 多继承:一个子类也可以从它的多个父类继承属性和 方法。如果在一般/特殊的结构中包含有多继承,则为 网格结构(lattice structure)。 继承有传递性。一个子类不但可以从它的直接父类继 承属性和方法,也可以通过其父类继承祖先类的属性 和方法。
Home
类名 属性
操作 …
学生 姓名 年龄
性别
注册 选课
图5.2 对象类的图形表示
5.1.2 属性
类的属性(Attribute)是类的命名的性质,属性在类图标 的属性分隔框中用文字串说明,如图5.3所示。 属性有在本对象类中唯一的属性名或标识符。 冒号“:‖后跟属性值的数据类型。 属性名后跟的方括号中的内容是可选项目。 多重性(Multiplicity)用多值表达式表示,其值是该对象 类的每个实例的属性值的个数。 多值表达式的格式为: integer,integer,… 属性 或 可视性 属性名 [多重性]:类型 = 初始值 低界..高界
Home
软件体系结构课件第5章统一建模语言

2:GetPrefSet()
10:PrefSet(date_mg)
1:GetPrefSet()
:MeetingInitiator
第5章 统一建模语言 直接使用UML建模 – 会议安排系统的类图
Person
StronglyConflicts With
Conflicts With
Important Attendee
0..* 0..*
0..* Profers
Attendee
1..* 1..* 0..* 0..*
11 1 1
1
Meeting Initiator
Find.exe
Query .dll
部署图 定义系 统中软 硬件的 物理体
系结构
第5章 统一建模语言 部署图
客户端:个人PC QueryClient.exe
服务器
《TCP/IP》 查询
QueryServer.exe 部署图
定义系
统中软
Find.exe
硬件的
物理体
Query.dll系结构
第5章 统一建模语言
第5章 统一建模语言
直接使用UML建模 – UML中的通用表示
➢ 字符串:表示有关模型的信息; ➢ 名字:表示模型元素; ➢ 标号:不同于编程语言中的标号,是用于表示或说明图形符号的字
符串; ➢ 特殊字符串:表示某一模型元素的特性; ➢ 类型表达式:声明属性、变量及参数,含义同编程语言中的类型表
0
10
20
30s 时间刻度
第5章 统一建模语言 状态图
提交订单 已审核 印前处理
客户付钱
已付款
已处理
进行冲印
冲印中 冲印完成
描述满足 用例要求 所要进行 的活动以 及活动间 的完约成束关 系,有利 于识别并 行活动
第五章 类图和对象图(UML)

+
size
:integer
=(100)
9
第 五 章 类 图 和 对 象 图
5.1 类的定义
说明:
3、属性还有取值范围。类型表示该属性的种类。 它可以是基本数据类型,例如整数、实数、布尔 型和枚举型等,也可以是用户自定义的类型。一 般它由所涉及的程序设计语言确定必须为其指定 数据类型。当一个类的属性被完整定义后,它的 任何一个对象的状态都由这些属性的特性值所决 定。
20
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
关联是一种结构关系,它指明一个事物的对象与 另一个事物的对象间的联系 例如,一个人为一家公司工作,一家公司有许多办 公室。我们就认为人和公司、公司和办公室之间 存在某种语义上的联系。在分析设计的类图模型 中,则在对应人类和公司类、公司类和办公室类 之间建立关联关系
改变的因素:1.一个类向另一个类发送消息。 2.一个类是另一个类的数据成员类型 3.一个类是另一个类的操作的参数类型 注:如果两个类之间有关联,那么这两个类就有依赖关 系,但是我们一般不标出依赖关系。
37
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
3、泛化(generalization)关系
泛化关系:定义了一般元素和特殊元素之间的分类关系。 也就是一种继承关系。继承是在现有类的基础上定义和 实现一个新类的技术,刻画了类的一般性和特殊性。被 继承的类称为父类或超类,继承的类称为子类。 表示形式:用空心三角箭头实心线表示
25
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
角色:当一个类处于关联的某一端时,该类就在 这个关系中扮演着一个特定的角色。角色就是关 联关系中一个类对另一个类所表现的职责
静态视图—类图对象图和包图

1.1 类图概述——重要性
类图表述系统中类的静态结构,不仅描述 了系统中的类,还表示了类之间的各种关 系,比如:关联、依赖、泛化、实现等
James Rumbaugh对类的定义:类 (Classs)是具有相似结构、行为和关系 的一组对象的描述符 类 + 类的关系 = 类图
1.2 类图概述——类图的作用
salary:Dollars
Student
major:String
3.5 关联关系(Association)
关联是一种结构关系,它指明一个类与 另一个类在类间的联系,表示类之间的 连接,它使一个类的可见属性和方法被 另一个类使用
关联关系包括:双向关联,单向关联, 聚合和反射关联
除聚合关系外,关联关系通常使用实线 +箭头的方式表示
3.2 依赖关系(Dependency)
如果有两个类A与B,当我们修改A类时 会引起B类的修改,我们称类B依赖于类 A。
依赖关系可能由各种原因引起,比如一 个类向另一个类发送消息;一个类是另 一个类的数据成员,一个类是另一个类 的某个操作参数等(use a关系)
UML中包含了4种依赖关系:使用(Usage) 依赖,抽象(Abstraction)依赖,授权 (Permission)依赖和绑定(Binding)依赖
3.3.1 泛化关系的表示
在UML语言中,采用空心箭头+实线 (如果父类是接口,则采用虚线)的 方式表示泛化关系,箭头指向父类
类的继承
接口的继承
3.3.1 泛化关系的表示举例
BankAccount
owner:String balance:Dollars deposit(amount:Dollars) withdrawl(amout:Dollars)
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)说明复杂的数据结构。
对于复杂的数据结构,有时候很难对其进行抽象成类表达之间的交互关系。
05-类图-对象图-包图

类的泛化
泛化(Generalization)定义了一般元素和特殊元素 之间的分类关系。在UML中,泛化表示为一头为 空心三角形的连线。 A generalization is a taxonomic relationship between a more general element and a more specific element. The more specific element is fully consistent with the more general element and contains additional information.
聚集和组合(cont)
UML中聚集和组合的表示:
Car
Company
Wheel
Department
类图的抽象层次
在软件开发的不同阶段使用的类图具有不同的抽 象层次。一般地,类图可分为三个层次,即概念 层,说明层和实现层。 类的概念层,说明层和实现层的划分最先是由 Steve Cook和John Daniels引入的。
边界类
边界类处理系统环境与系统内部之间的通 信,为用户或另一个系统提供了接口。 边界类组成了系统中依赖于环境的部分, 边界类用于为系统的接口建模,代表了系 统和系统外的一些实体之间的接口。
边界类
实体类
实体类是模拟必须被存储的信息和关联行为的 类。 实体对象是实体类的实例,被用来保存或更新 关于某个现象的信息,通常是持久性的。 实体类通常是独立于他们的环境,对于系统环 境如何与系统通信是不敏感的。
实体类
控制类
控制类是用来为特定于一个或几个用例的控 制行为建模的类。 控制对象是控制类的实例,它经常控制其他 的对象,所以控制对象的行为是协调类型的, 控制类协调实现用例的规定行为所需要的事 件。 控制类封装了特定于用例的行为,通常依赖 于应用程序的类。
类图和对象图

5
5.2.1 关联
关联(association)是模型元素间的一种语义联系 它 是模型元素间的一种语义联系, 关联 是模型元素间的一种语义联系 // 类A的源码 的源码 是对具有共同的结构特性、行为特性、关系和语义的 是对具有共同的结构特性、行为特性、class A public { 的描述. 链(Link)的描述 的描述
21
5.5 构造型
构造型(stereotype)是UML的3种扩展机制之一 是 种扩展机制之一. 构造型 的 种扩展机制之一 构造型是建模人员在已有的构造块上派生出新的构造 这些新的构造块与特定问题相关. 块,这些新的构造块与特定问题相关 这些新的构造块与特定问题相关 构造型可以应用于所有类型的模型元素. 构造型可以应用于所有类型的模型元素
31
5.8 领域分析
建立类图的过程就是对领域及其解决方案的分析与 设计过程. 设计过程 领域分析包括: 领域分析包括
通过对某一领域中的已有应用系统、理论、技术、 通过对某一领域中的已有应用系统、理论、技术、开发历 史等的研究, 来标识、收集、组织、 史等的研究 来标识、收集、组织、分析和表示领域模型及 软件体系结构的过程; 软件体系结构的过程 根据这一过程得到的结果. 根据这一过程得到的结果
23
5.6.1 边界类
边界类位于系统与外界的交界处,包括 边界类位于系统与外界的交界处 包括: 包括
用户界面类, 窗口、对话框、 用户界面类, 如: 窗口、对话框、报表类等 通讯协议类, TCP/IP的类 通讯协议类, 如: TCP/IP的类 直接与外部设备交互的类 直接与外部系统交互的类
边界类的UML表示方法 表示方法: 边界类的 表示方法
继承
MyDerivedClass att: int myFunction()
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3 操作
用于修改、检索类的属性或执行某些动作。 一个类可以有任意数量的操作或者根本没有操作 返回类型、名称和参数一起被称为特征标记。 在同一个类中,操作的名称不必是惟一的,但特 征标记必须是惟一的。 在UML中,类操作的语法为:
[可见性] 操作名 [(参数列表)] [:返回类型] [{特性}]
5.1 类的定义
面向对象系统组织结构的核心。 对一组具有相同属性、操作、关系和语义的对象 的抽象。 包括名称部分(Name)、属性部分(Attribute) 和操作部分(Operation)。
5.1 类的定义
1 2 3 4 5 6 7 名称 属性 操作 职责 约束 注释 用户定义分栏
① 对象必须了解自己,即他有自己的结构和当前状态 ② 对象必须了解他的直接关系
③ 对象有时还要监视特定的信息
类可以有任意数目的属性,也可以没有属性。 在UML中,类属性的语法为: [可见性] 属性名 [:类型] [多重性] [=初始值] [{特性}]
2 属性
(1) 可见性 (2) 属性名 (3) 类型 (4)初始值 (5) 特性 (6) 类作用域的属性
Event
-name:String=no default,{Reauired,1..30 chars} -startDate:Calendar=no defalut,{Required,>today} -duration_in_days:int=1{>0}
(6)类作用域的属性
大部分属性的拥有者是特定的对象(类实 例),这些属性称为实例作用域的属性 属性的值被定义和保存在类里,该类的任 何对象都可以访问这个值,则称为类作用 域的属性,又称为静态属性 表示:
在操作分栏的内部,根据操作的用途,可以使用 版型将操作分成许多小组。
3 操作
(1) 可见性 (2) 操作名 (3) 参数表 (4) 返回类型 (5) 特性 (6) 类作用域的操作
(1) 可见性
类型: ① 公有(Public) “+” ② 私有(Private) “-” ③ 受保护(Protected) “#” ④ 包内公有(Package) “~”
(1) 可见性
命名空间:是UML中可以被命名的元素, 它可以包含另外的命名元素。 命名空间可以规定其包含的元素的可见性 类型: ① 公有(Public) “+” ② 私有(Private)“-” ③ 受保护(Protected)“#” ④ 包(Package)”~”
(2) 属性名
每个属性都必须有一个名字以区别于类中的其他 属性。 属性名由描述所属类特性的名词或名词短语组成 单字属性名小写,如果属性名包含了多个单词, 这些单词要合并,且除了第一个单词外其余单词 的首字母要大写。 如果不同的类拥有相同的属性名,而开发人员又 要在同一上下文中引用他们,必须使用完整的路 径表示属性。
(4) 返回类型
是可选的,即操作不一定必须有返回类型。 绝大部分编程语言只支持一个返回值。 具体的编程语言一般要加一个关键字void 来表示无返回值。
属性声明的例子
+size:Area =(100,100) #visibility:Boolean = false +default-size:Rectangle #maximum-size:Rectangle -xptr:XWindowPtr=no default,required Colors:Color[3] points:Point[2..* ordered] name:String[0..1]
Event.status,Venue.status。
(3) 类型
① ② ③ ④ ⑤ 简单类型: 整型Integer 布尔型Boolean 实型Double 字符串String 枚举类型 系统中的其他类
<<enumeration>> Colour red green blue
(4) 初始值
1 名称
当类在类图显示时,名称分栏是惟一必须可见的 分栏。 应该来自系统的问题域。名称应该精确并且简短, 能够描述类所代表的对象的类型。 应该是一个名词,且不应该有前缀或后缀。例外 情况是代表对象集合的类。
Event
Agents
1 名称
名称的大小写规则最好与编程语言的规则 相对应,例如,以下为不太好的命名:
Cancelled_Show,Event_with_no_Shows,
Exempt_Employee,Non_exempt_Employee 将类的属性嵌入到类的名称中了。改为Event, Show,Employee
分为简单名称和路径名称。
2 属性
用来描述该类的对象所具有的静态特征。 一个类可以拥有三种类型的信息:
也称为默认值。 目的: ① 保护系统的完整性,防止漏掉取值或被非 法的值破坏系统的完整性。 ② 为用户提供易用性。 初始值表达式可以是一个单独的数值,也 可以是用某种语言编写的字符串。
(5) 特性
指定关于属性的约束信息。 任何希望添加在属性定义字符串值但又没有合适 地方可以加入的规则,都可以放在特性里。在其 他对象试图改变属性值时,特性字符串的规则可 以保护属性的完整性。 特性被表示为“标记定义=标记值”的形式。
(2) 操作名
用来描述所属类的行为的动词或动词短语。 单字操作名小写,如果操作名包含了多个 单词,这些单词要合并,并且除了第一个 单词外其余单词的首字母要大写。
(3) 参数表
一些按顺序排列的属性定义了操作的输入。 是可选的,即操作不一定必须有参数才行。 定义方式:“名称:类型”。 若存在多个参数,将各个参数用逗号隔开。 参数可以具有默认值。
第5章 类图和对象图
5.1 类的定义 5.2 类之间的关系 5.3 派生属性和派生关联 5.4 抽象类、接口和模板类 5.5 边界类、控制类和实体类 5.6 类图 5.7 领域分析 5.8 OO设计原则 5.9 对象图 5.10 类图和对象图的区别 5.11 在Rose中操作对象图和类图 5.12 实例——图书馆管理系统的类图