第三章 类图
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Class2
关联
(1)关联名
描述关联的作用; 通常使用动词或动词短语;
关联
(2)角色
关联两端的类可以某种角色参与关联; 通常使用名词或名词短语;
关联
(3)多重性
某个类有多少个对象可以和另一个类的单个 对象关联;
关于多重性
老公
1
老公
1..n
夫妻关系 夫妻关系
老婆
1
老婆
1
关联
(3)多重性
表示客户与提供者之间用不同的方法表现同一个概念, 通常一个概念更抽象,一个概念更具体。包括:
① 跟踪<<trace>>--声明不同模型中的元素之间存在一些 连接但不如映射精确。
② 精化<<refine>>--声明具有两个不同语义层次上的元 素之间的映射。
③ 派生<<derive>>--声明一个实例可以从另一个实例导 出。
另一种类型的约束是OR关系,图中标明高中生( high school student)选(choose)专业课( academic),或者选商务课(commercial)时的 模型。
关联
(6)限定符
在关联端紧靠源类图标处可有限定符,带有限 定符的关联称为限定关联。
限定符的作用:用于将一个多(或一)对多关 联转化为一个多(或一)对一关联。
3.2 UML中的类
(7)类的约束 约束指定了类所要满足的一个或多个规则。 在UML中,约
束是用花括号括起来的自由文本。
Washing Machine
Brand name Model name Serial number Capacity Add clothes( ) Add detergent( ) Remove clothes( )
限定符是关联的属性,而不是类的属性。
关联
(6)限定符
关联
(7)关联的种类
自返关联 二元关联(前述) N元关联
1、包含关系
一辆汽车有4个轮子,我们可以这样表示
你可能觉得这样表示还不太合适,汽车应该包含4个轮 子,或者说轮子本来就属于汽车的一部分,那怎样画能 更加贴切表示这样的关系呢?我们可以这样画:
如果一个烟鬼嗜烟如命,用类图可以这样表示:
关于依赖
假设你正在设计一个能显示公司全体成员的制表系统, 公司的员工可以填写这个系统中的电子表格。员工要选 择菜单来填写表格。在你的设计中,有一个Syetem( 系统)类和一个Form(表格)类。System类的众多操 作中有一个displayForm(f:Form),系统所要显示的 表格取决于用户选择的表格。
不要因为你能1对多个男朋友(或女朋友)就很开心, 这是一种很不好的关系,强烈建议你将1对多的关系变 为1对1,而且说不定有朝一日你会被别人1对多
题目1:
如果你还没有另一半,你的另一半是作为“虚拟情人” 存在的,你可以画成这样
有连接关系时,类之间的连接叫做关联。
队员和球队之间的关联,可以用短语“队员为篮球队效 力”来刻画,图形表示为:
Player
plays on
Team
关联
关联有名称、角色、多重性和导航性等语法。
Class1
association name
rolename1 multiplicity1
rolename2 multiplicity2
Window
1
1
1..n
Menu
1..n
Button
关于聚合与组合
部门 部门
员工
0..n
员工
0..n
“弱”包含表示如果部门没有了,员工也可以继续存在 ;
“强”包含表示如果部门没有了,员工也不再存在。
在做软件需求时,往往会将所有的包含关系画成“弱” 包含,后面发现某些关系可以表示为“强”包含是,才 转为实心菱形。
3.2 UML中的类
(3)关联类
当两个类之间具有多对多的关系,并且有些属性不 属于关联两端任何一个类;
关联类通过一条虚线和对应的关联连接;
3.2 UML中的类
(4)主动类
主动类的实例称为主动对象,一个主动对象拥有一个 控制线程并且能够发起控制活动;具有独立的控制期。
从某种意义上说,它就是一个线程。
3.2 UML中的类
(3)类的命名
由字符、数字、下划线组成的惟一的字符串; 采用CamelCase格式(大写字母开头,混合大
小写,每个单词一大写开始,避免使用特殊符 号) 类名的两种表示方法
➢简单名 Order ➢路径名 java::awt::Rectanget
businessRule::Order
3.2 UML中的类
(5)类的操作 操作名的命名规范习惯采用和属性名相同的命名规则。 类的操作的定义格式
[可见性] 操作名 [(参数列表)] [:返回类型] [{特性}] 例: +hide():Boolean
#create() -attachXWindow(xwin:XwindowPtr)
3.2 UML中的类
在UML2.0中,主动类的表示方法为:在类的两边加上 垂直线。
3.2 UML中的类
(5)嵌套类
将一个类的定义放在另一个类定义的内部,这就是嵌 套类。
在UML中,可以采用一个锚图标来表示这种关系
3.3 类图中的关系
按照关系的性质分为4种: 关联
1、包含 2、泛化 3、依赖 4、实现
关联
association 关联是模型元素间的一种语义联系,当类之间在概念上
3.2 UML中的类
(1)抽象类
在UML中,抽象类和抽象方法的表示是将其名 字用斜体表示。
3.2 UML中的类
(2)接口
接口是一种类似于抽象类的机制,是一个没有 具体实现的类。
接口可以实现多态; 在UML中接口有两种表示方法:
图标表示法
Collection 《Interface》
构造符号表wk.baidu.com法
(3) 授权依赖
表达提供者为客户提供某种权限以访问其内容的情形。 包括:
① 访问<<access>>--允许一个包访问另一个包的内容。 ② 导入<<import>>--允许一个包访问另一个包的内容
并为被访问包的组成部分增加别名。
③ 友元<<friend>>--允许一个元素访问另一个元素,不 管被访问的元素是否具有可见性。
这种设计的UML表示法可以画成如下
4、依赖分类
依赖关系可以分为以下四类: 1) 使用依赖(Usage) 2) 抽象依赖(Abstraction) 3) 授权依赖(Permission) 4) 绑定依赖(Binding)
(1)使用依赖
表示客户使用提供者提供的服务以实现它的行为, 包括:
① 使用<<use>>--声明使用一个类时需要用到已存在 的另一个类。
如果你还没有另外一半,请你虚拟一位你的意中人, 用类图画出你和你的虚拟意中人的关系。
如果你还没有到恋爱或结婚年龄,那么你不需要完成 这个练习,直接看后面的参考答案。
题目1:
对于已婚的,如果你是男生,在这个关系中的角色就是 老公,一个老公只能对应一个老婆,你应该不会画成1 对多吧?
如果你未婚,但你同时有多个男朋友或者女朋友,那么 你们的关系可以这样表示
(6)类的职责 职责指类承担的责任和义务。
在矩形框中最后一栏中写明类的 职责。
Washing Machine
Brand name Model name Serial number Capacity Add clothes( ) Add detergent( ) Remove clothes( ) Take dirty clothes as input and produce clean clothes as output
) )
关联
(4)导航性 用箭头显示导航性; 描述源对象通过链接访问目标对象; A类有一个成员变量保存的是B类的一个引用,也就 是说由A类可以找到B类,可以画成下图所示
请假条
请假者
关联
(5)关联的约束
关联可加上一些约束,以加强关联的含义;
关联
(5)关联的约束
一个BankTeller为顾客服务,但是服务的顺序要按 照顾客排队的次序进行。在模型中可以通过在 Customer类附近加上一个花括号括起来的 “ordered(有序)”来说明这个规则,也就是指明 约束。
3.2 UML中的类
(4)类的属性 属性描述了类的静态特征; 属性名的第一个字母小写; 属性的定义格式
[可见性] 属性名 [:类型] [ ‘[’多重性[次序]‘]’] [=初始值] [{特性}]
说明:可见性包括+、-、#、~ 例:#visibility:Boolean=false
colors:Color[3] points: Point[2..* ordered] name:String[0..1]
3.1 类图的概念
图3-1电子商务网站的对象模型
3.1 类图的概念
2、类图的作用 类图常用来描述业务或软件系统的组成、结构和关系。
3、类图的组成元素 类 接口 协作 关系 注释 约束 包
3.2 UML中的类
1、类的表示 (1)类的定义
类是具有相似结构、行为和关系的一组对象的描述 符。 (2)类的表示
操作 显示一个类引用另一个类
4、依赖-Dependency
软件开发中,往往会设计一些公用类,供别的类调用, 如果这些公用类出问题了,那调用这些公用类的类都会 因此而出问题。
两个元素之间的一种关系,其中一个元素(提供者)的变 化将影响另一个元素(客体),或向它提供所需信息
显示一个类引用另一个类 你很爱你老婆,没有你老婆你活不下去,可以这样表 示
第三章 类图
3.1 类图的概念 3.2 UML中的类 3.3 类图中的关系 3.4 阅读类图 3.5 如何建立类图 3.6 Rose2003类图操作
3.1 类图的概念
1、类图
类图是描述类、协作(类或对象间的协作)、接口及其关 系的图。
类图是逻辑视图的重要组成部分,用于对系统的静态结 构建模,涉及到具体的实现细节。 在系统分析阶段,类图主要用于显示角色和提供系统 行为的实体的职责; 在系统设计阶段,类图主要用于捕捉组成系统体系结 构的类结构; 在系统编码阶段,根据类图中的类及它们之间的关系 实现系统的功能。
聚合 组合
聚合-Aggregation
类之间的一种整体与部分的关系
体现了一种层次结构,整体类位于部分类的上层,多 个部分类处于并列的层次
University
1
Department
1..n
组合-Composition
是一种特殊形式的聚合(强聚合),聚合中的每个部 分只能属于一个整体;
表示类之间整体和部分的关系。 整体与部分具有相同的生存期。
② 调用<<call>>--声明一个类调用其他类的操作的方 法。
③ 参数<<parameter>>--声明一个操作和它的参数之 间的关系。
④ 发送<<send>>--声明信号发送者和信号接收者之间 的关系。
⑤ 实例化<<instantiate>>--声明用一个类的方法创建 了另一个类的实例。
(2) 抽象依赖
{capacity=16 or 18 or 20 lb}
3.2 UML中的类
2、类的种类 (1)抽象类 当某些类有一些共性的方法或属性时,可以定义一个
抽象类来抽取这些共性,然后将包含这些共性方法和 属性的具体类作为该抽象类的继承; 抽象类是一种不能直接实例化的类,不能用抽象类创 建对象; 抽象类可以实现多态;
在UML中,常用的关联的多重性表示格式如下:
0..1
0或1
1
1
0..*(0..n)
0或多个
*
0或多个
1..* (1..n)
1或多个
8
8
5,7..10
5或7~10
多当
重类
AB
性 是 ,
和 类
就 说 明 类
之 间 是 一
对 类
对 零 或
是一
可(
选
的
(
BA
one-to-zero or one
optional
关于聚合与组合
2、泛化-Generalization
表示两个类元间“一般”与“特殊”的关系。 对应面向对象编程语言中类与类之间的继承关系。 “is a kind of”关系,XX是一种XX
Athlete
Swimmer
Golfer
3、实现-Realization
表达一种说明元素与实现元素之间的关系; 类和接口之间的关系是实现关系,表示类实现接口提供的
(4) 绑定依赖
较高级的依赖类型,用于绑定模板以创建新的模型元 素,包括:
① 绑定<<bind>>--为模板参数指定值,以生成一个新的 模型元素。
几个练习题
题目1:用类图表达出你和你的另外一半的所有关系。 你结婚了吗?如果你已婚,请用类图描绘你和你的另 外一半的关系
如果你是单身,你有男朋友或女朋友吗?有的话,请 用类图画出你们俩人的关系