第6章类图和对象图-郭.ppt

上传人:本田雅阁 文档编号:3431963 上传时间:2019-08-24 格式:PPT 页数:130 大小:2.77MB
返回 下载 相关 举报
第6章类图和对象图-郭.ppt_第1页
第1页 / 共130页
第6章类图和对象图-郭.ppt_第2页
第2页 / 共130页
第6章类图和对象图-郭.ppt_第3页
第3页 / 共130页
第6章类图和对象图-郭.ppt_第4页
第4页 / 共130页
第6章类图和对象图-郭.ppt_第5页
第5页 / 共130页
点击查看更多>>
资源描述

《第6章类图和对象图-郭.ppt》由会员分享,可在线阅读,更多相关《第6章类图和对象图-郭.ppt(130页珍藏版)》请在三一文库上搜索。

1、第6章 类图和对象图 l6.1 类图的概念 l6.2 类图建模技术 l6.3 对象图 l6.4 补充:分析类 类图 l类图描述系统中类的静态结构,描述系统中 的类及类之间的关系,还描述类的内部结构 (类的属性和操作)。 l类图描述的是一种静态关系,在系统的整个 生命期中都是有效的。 l对象图是类图的实例,由于对象存在生命周 期,所以对象图只能在系统的某一时间存在 。 类图的地位 l类图是面象对象系统建模中最常用的图。 l类图是定义其它图的基础,在类图的基础上 ,可以使用状态图、协作图、组件图和配置 图等进一步描述系统其它方面的特征。 l类图中的类可以直接用某种面向对象编程语 言实现。 6.1

2、类图的概念 l描述类、接口及它们之间关系的图。 l显示系统中各个类的静态结构。 6.1.1 概述 l类图的元素: 类(Class) 接口(Interface) 依赖关系(Dependency) 泛化关系(Generalization) 关联关系(Association) 实现关系(Realization) 6.1.2 类 l类是构成类图的基础,也是面向对象系统组织 结构的核心。 l类是对一组具有相同属性、操作、关系和语义的对 象的抽象。 l类包括名称部分(Name)、属性部分(Attribute )和操作部分(Operation)。 lUML规范采用一个具有3个分栏的图标表示一个类 。 名称分

3、栏必须出现,而属性分栏和操作分栏可 以出现或不出现。 当隐藏某个分栏时,并非表明某个分栏不存在 。 隐藏操作参数隐 藏 可 见 性 6.1.2 类 l1 名称 l2 属性 l3 操作 l4 职责 l5 约束 l6 注释 (1)名称 l应该来自系统的问题域。 l应该是一个名词。 l分为简单名称和路径名称。 (2)属性 l描述了类在软件系统中代表的事物(即对象)所具 备的特性。 l类可以有任意数目的属性,也可以没有属性。 l在UML中,类属性的语法为: 1. 可见性 l可见性描述了该属性对其它类是否可见,以 及是否可以被其它类引用。 l类型: 公有(Public) “” 私有(Private)“”

4、 受保护(Protected)“” 注意: UML未规定默认 的可见性,如果没 有给出,表明该属 性的可见性尚未定 义。 2. 属性名 l每个属性都必须有一个名字以区别于类中的其他 属性。 l属性名由描述所属类的特性的名词或名词短语组 成。 l单字属性名小写,如果属性名包含了多个单词, 这些单词要合并,且除了第一个单词外其余单词 的首字母要大写。 -建议 3. 类型 l简单类型: 整型 布尔型 实型 枚举类型 l系统中的其他类 4. 初始值 l目的: 保护系统的完整性,防止漏掉取值或被非法 的值破坏系统的完整性。 为用户提供易用性。 5. 属性字符串 l属性字符串是用户对该属性性质的一个约束说

5、明 。 l例如 只读这样的特性说明该属性的值不能被修 改。 l任何希望添加在属性定义字符串值但又没有合适 地方可以加入的规则,都可以放在属性字符串里 。 +status:Status=unpaidunpaid,paid +color:Color=redred,green,yellow 确定取值范围 补充:作用域 l作用域(scope)是与属性和操作相关的一 个重要概念。 l存在两种作用域: l实例(instance)作用域下,类的每个实例 对象都有自己的属性值和操作。 l分类符(classifier)作用域下,一个类的所 有实例只存在一个属性值和操作。分类作用 域的属性和操作名字要带下划线。

6、类的作用域属性: l分类作用域的属性,它能被所属类的所 有对象共享。 例如: C+中 的静态 成员 静态属性 属性声明的例子 Points属性的多重性 为2*,表示该属性 值有2个或者多个, 同时这些值之间是有 序的。 Name属性的多重性为02,表示 该属性值有可能是1个或者2个,也 可能值为null。 (3)操作 l对类的对象所能做的事务的抽象。 l一个类可以有任意数量的操作或者根本没有 操作。 l返回类型、名称和参数一起被称为操作签名 。 l在UML中,类操作的语法为: 操作 l1. 可见性 l2. 操作名 l3. 参数表 l4. 返回类型 l5. 特性字符串 1. 可见性 l类型: 公

7、有(Public) “” 私有(Private) “” 受保护(Protected) “” 包内公有(Package) “” 包内公有(Package)“” 包内公有用来描述操作的可访问性的 可见性为包内公有的操作可以被其所在包的对象访问。 2. 操作名 l用来描述所属类的行为的动词或动词短语。 l单字操作名小写,如果操作名包含了多个单 词,这些单词要合并,并且除了第一个单词 外其余单词的首字母要大写。 3. 参数表 l一些按顺序排列的属性定义了操作的输入。 l是可选的,即操作不一定必须有参数才行。 l定义方式:“名称:类型”。 l若存在多个参数,将各个参数用逗号隔开。 l参数可以具有默认值。

8、 4. 返回类型 l是可选的,即操作不一定必须有返回类型。 l绝大部分编程语言只支持一个返回值。 l具体的编程语言一般要加一个关键字void来 表示无返回值。 5. 特性字符串 l在操作的定义中加入一些除了预定义元素之 外的信息。 l例如: query这样的特性说明该操作不会修改系统 的状态。 update这样的特性说明该操作会修改系统 的状态。 (4)职责 (responsibility) l类图标中还可以制定另 一种类的信息。在操作 列表框下面的区域,可 以用来说明类的职责。 l职责描述了 类做什么 类的属性和操作能完 成什么任务。 l例如,一个洗衣机的职 责是将脏衣服作为输入 ,输出洗干

9、净的衣服。 职责 (5)约束 l指定了类所要满足的一个或多个规则。 l形式化的方法。 (6)注释 l注释可以包含图形也可以包含文本。 6.1.3 接口和抽象类-抽象类 l 抽象操作:是指在指定该操作的类中并没有该操作 的实现方法,而只是显示了操作签名的那种操作。 (例如, C+中的纯虚函数) l抽象类:至少拥有一个抽象操作的类。 l在UML图中,抽象操作的显示是在操作签名后面用 特性字符串abstract,或者将操作签名用斜体字 体方式显示。 l在UML图中,抽象类的显示是在类名后面用特性字 符串abstract,或者将类名用斜体字体方式显示 。 l如果一个类继 承了抽象类, 该类要么必须 实

10、现所有的抽 象操作称为具 体类,要么该 类也称为另一 个抽象类。 l抽象类是不能 产生实例的。 抽象类名 用斜体 l接口是一组没有相应方法实现的描述。 l接口通常被描述抽象操作,即之用操作名、参数 表和返回类型说明接口行为,而操作的实现部分 将出现在实现该接口的元素中。 l使用接口可以很好地将类所需要的行为与该行为 如何被实现完全分开。 l在进行系统建模时,接口起来十分重要的作用, 因为模型元素之间的协作是通过接口进行的。 6.1.3 接口和抽象类-接口 (interface) 6.1.3 接口和抽象类-接口 (interface) luml中接口通常只包含操作不包含属性。 l接口不能实例化为

11、对象。 l一个类可以实现一个或多个接口。 l如果类实现了接口,但未实现该接口中的所有操 作,那么此类必须声明为抽象的。 与java中接口 的概念稍有不 同。 接口与抽象类的区别 l一般接口不含有属性,抽象类可以含有属性。 l接口中声明的方法都没有实现部分,而抽象类中 的某些方法可以有具体实现。 l使用接口比使用抽象类安全,可以避免许多因为 多继承产生的问题。 6.1.4 类之间的关系 l关联(association) l聚合(aggregation)和组合(composition) l泛化 (generalization) l实现(realization) l依赖 (dependenc) 1.

12、关联关系 当类之间在概念上有连接关系时,这种关系叫做 关联(association)。 l名称(Name) l角色(Role) l多重性(Multiplicity) l限定关联 l自反关联 l关联上的约束 l派生关联 l关联类 l导航性(Navigation) l聚合关系(Aggregation) l组合关系(Composition (1) 名称 l关联名来描述关联的作用,清晰而简洁地说明对 象间关系。使用一个动词或动词短语来命名关联 。 l关联的名称并不是必需的。 l可以前缀或后缀一个指引阅读方向的方向指示符 ,以消除歧义。 一个关联队员和球队之间的关联。可以用一 个短语“队员为篮球队效力(

13、plays on)”来刻划这 个关联。 关联的导航型 l单向关联:关联是单向的,从一个类的对象 可以找到另一个,反过来却不可。 l双向关联:关联是双向的,如果一个对象和 另一个对象关联,那么这两个对象都互相知道 对方。 (2) 角色 当一个类和另一个类发生关联时,每个类通 常在关联中部扮演着某种角色。一个类对另 一个类所表现出来的职责。 l在队员和球队的关联中,如果球队是职业篮 球队,那么它就是队员的雇主(Employer), 队员就是球队的雇员(Employee)。 l角色名不是类的组成部分,一个类可以在不 同的关联中扮演不同的角色。 l由于角色名称和关联名称都被用来描述关系 的目的,所以角

14、色名称可以代替关联名称, 或者两者同时使用。 l与关联名称不同,角色名可以生成代码。( 使用Rose工具可以直接生成代码) l角色本身也具有可见性。(UML2.0不 在提倡使用角色本身的可见性) private class Person private String personName; protected Company employer; /* * */ public Person() public class Company private String companyName; public Person employee; /* * */ public Company() priv

15、ate class Password /* * */ public Password() public class Id public Password thePassword; /* * */ public Id() 单向关联 (3) 多重性 l关联的多重性指某个类有多少个对象可以和另一 个类的单个对象关联。 l表示多重性的方法是在参与关联的类附近的关联 线上注名多重性数值。可以表达一个取值范围、 特定值、无限定的范围或一组离散值。 l格式:“minimummaximum” (均为Int型) 。 (3) 多重性 n UML使用星号(*)来代表许多(more)和多个 (many)。 n 在一种

16、语境中,两点代表or(或)关系,例如 “1*”代表一个或者多个 n 在另一种语境中,or关系用逗号来表示,例如 “5,10”代表5或者10。 l如果没有明确标识多重性,就意味着1。 思考:多重性 3,69 表示什么? (4)限定关联(qualified association ) l带有限定符的关联称为限定关 联(受限关联)。 l限定关联用于一对多或多对多 关联这种情况。 l限定符的作用就是给定关联一 端的一个对象和限定符以后, 可确定另一端的一个对象和对 象集。 l一个customer可以在 bank中有多个account, 但给定了一个account值 后,就可以对应一个 customer

17、,或者没有。因 为多重性为01。 l这里的多重性表示的是 customer和(bank, account)之间的关系。 (bank,account)0,1 customer Customer-多个(bank,account) l限定符指定了如何标识一对多关联或多对多关联中 的多端对象集中的一个特定对象,并且可以将其看 做是区分这种关联中所有对象的一种关键字。 l限定关联把模型从一对多关联简化为一对一关联。 l限定符是关联线的一个附加信息,而不是类的。 限定符 针对于学生端的 针对于关联 l限定符这个概念在设计软件时非常有用,如果一 个应用系统需要根据关键字对一个数据集做查询 操作,则经常会用到

18、限定关联。 l引入限定符的一个目的就是把多重性从n降到1 或01,这样如果做查询操作,则返回的对象至 多是一个,而不会是一个对象集。如果查询操作 的结果是单个对象,则这个查询操作的效率会较 高。 l所以在使用限定符时,如果限定符另一端的多重 性仍为n,则引入这个限定符的作用就不是很大 。因为查询结果任然还是结果集,所以也可以根 据多重性来判断一个限定符的设计是否合理。 (5)自反关联 l一个类可能与它自己发生 关联,这样的关联被称为 自身关联。 l当一个类的对象可以充当 多种角色时,自身关联就 可能发生。 lCarOccupant(车上的人) 既可能是一个司机 (driver)也可能是一个乘

19、客(passenger)。 (6)关联上的约束 l两个类之间的一个关联有一个规则约束。 有序关联 或关联 (7)派生属性和派生关联 l派生属性(derived attribute)和派生关联( derived association)是指可以从其他属性和 关联计算推演得到的属性和关联。 l派生属性和派生关联的名字前需要加一个斜杠 “/”。 l在生成代码时,派生属性和派生关联都不产生相 应的代码。 (8)关联类 l 和类一样,关联也可以有自己的属性和操作。此 时,这个关联实际上是个关联类。 l 关联类的可视化表示方式与一般的类相同,但是 要用一条虚线把关联类和对应的关联线连接起来 ,来标识关联的

20、一些附加信息。 l 关联类也可以与其他类关联。 关联类 private class Person private String personName; protected Company employer; / public class Company private String companyName; public Person employee ; / private class Contract private Double salary; /* * */ public Contract() 多重性 下图是player类和Team类之间的Plays on 关联对应的关联类:Contr

21、act(契约)关联类 。它又同时和GeneralManager(总经理)类 发生关联。 关联类也可以 与其他类关联 2.聚合关系 l一种特殊类型的关联 。 l表示整体与部分关系 的关联。 l描述了“由构成”、 “包含”、 “是的一 部分”的关系。 共享聚合 l如果聚合关系中的处于部分方的对象同时参与了多个 处于整体方对象的构成,则该聚合称为共享聚合。 l例如:一个球队(整体方)由多个球员(部分方)组 成,但是一个球员还可能参加多个球队,球队和球员 的这种关系就是共享聚合。 l共享聚合关系可以通过聚合的多重性反应出来。如果 作为整体方的类的多重性不是1,该聚合就是共享聚 合。 可以在聚合关系 上

22、建立约束 2. 组合关系 l聚合关系中的一种特殊情况,是更强形式 的聚合,又称强聚合。 l成员对象的生命周期取决于聚合的生命周 期。 l部分类完全隶属于整体类。 l聚合不仅控制着成员对象的行为,而且控 制着成员对象的创建和解构。 聚合和组合的两端也可以添加角色和多重性 。 组合的实现方 式一般是将部 分类中的对象 作为整体类的 成员对象,将 部分类封装在 整体类中。 聚合和组合的区别 l聚合关系表示事物的整体/部分关系的较弱的情况,组 合关系表示事物的整体/部分关系的较强的情况。 l在聚集关系中,代表部分事物的对象可以属于多个聚集 对象,可以为多个聚集对象所共享,而且可以随时改变 它所从属的聚

23、集对象。代表部分事物的对象与代表聚集 事物的对象的生存期无关,一旦删除了聚集对象,不一 定也随即删除代表部分事物的对象。 l在组合关系中,代表整体事物的对象负责创建和删除代 表部分事物的对象,代表部分事物的对象只属于一个组 合对象。一旦删除了组合对象,也就随即删除了相应的 代表部分事物的对象。 3.泛化关系 l存在于一般元素和特殊元素间的分类关系。 l可以用于类、用例以及其他模型元素。 l描述了一种“is a kind of” 的关系。 l类的泛化关系可以是多层的。 ROSE中, 只有父类 的共有 (public)和 保护 (protect) 成员会被 子类继承 。 泛化的好处 l把一般的公共

24、信息放在一般元素中,处理某个具体 特殊情况时只需定义该情况的个别信息,公共信息 从一般元素中继承得到,增强了系统的灵活性、易 维护性和可扩充性。(继承性) l程序员只要定义新扩充或更改的信息就可以了,旧 的信息完全不必修改(仍可以继续使用),大大缩 短了维护系统的时间。 l可实现多态。一般元素出现的地方都可以用特殊元 素来代替。(子类代替父类) l多态技术利用抽象类定义操作,而用子类实现该操 作的方法,达到单一接口,多种功能的目的。 l人“驾驶”交通工具这个 关联关系。当人执行( 调用)drive( )操作时, 如果当时可用的对象是 汽车,那么汽车轮子将 被转动;如果当时可用 的对象是船,那么

25、螺旋 桨就会动起来,这种就 是在运行时可能执行的 多种情况,称为“多态” 。 lC+中,多态利用虚函 数或纯虚函数实现。( 使用指向基类的指针进 行函数调用) l替换原则:父类出现的任何地方都可以用子类代替 。 泛化关系上的约束-受限泛化 UML预定义的泛化约束有:多重,不相交,完全,不完全 受限泛化的表示形式 : l1.多重继承:子类的子类可以同时继承多个上一级子类。 l例如:水陆两用继承了交通工具两次。 l2.不相交继承:与多重继承对立,一个子类不能同时继承多个上一 级子类。如果不做特别声明,一般的继承都是不相交继承(默认的 继承标准)。上例如果没有多重约束,则不允许水陆两用类多重继 承,

26、只允许继承其中之一。 分辨器:把一般类和具体类划分 开的依据。 l3.完全继承指父类的所有子类都被穷举完毕,不可能 再有其它的未列出的子类存在。 l4.非完全继承与完全继承相反,父类的子类并不是都 列出来了,而是随着问题的不断解决,不断的补充和 完善,也正是这一点为日后系统的扩充和维护带来极 大的方便。(是默认的继承标准)。 4.实现关系 l一个元素完成另一个元素的操作功能。(实现是 规格说明和其实现之间的关系。) l如接口类及其实现:接口没有属性,只有声明的 操作方法(对方法没有实现部分),而由其实现 类具体定义实现部分。 l如用例以及实现该用例的协作之间也是实现关系 。 泛化关系和实现关系

27、的异同点 l泛化和实现关系都可以将一般描述与具体描述联 系起来。 l泛化将同一语义层上的元素连接起来,并且通常 在同一个模型内。 l实现关系则将不同语义层内的元素连接起来,通 常建立在不同模型内。在不同发展阶段可能有两 个或多个类等级存在,这些类等级的元素通过实 现关系联系在一起。 5.依赖关系 l关联、实现和泛化都是依赖关系。但它们有更特别的语义, 所以在UML中被分离出来作为独立的关系。 基本的依赖关系 在依赖关系上可以用构造型来更具体化依赖的种类 。 l1. 使用依赖(Usage) l2. 抽象依赖(Abstraction) l3. 授权依赖(Permission) l4. 绑定依赖(B

28、inding) 1. 使用依赖 -最常使用的依赖 l表示一种元素(客户)使用其它元素(提供者)提 供的服务以实现它的行为,包括: 使用(use) 调用(call) 参数(parameter) 发送(send) 实例化(instantiate) 使用use:声明使用一个模型元素需要用 到已存在的另一个模型元素,这样才能实现 使用者的功能(包括调用、实例化、参数、 发送)。 调用call:声明一个类调用其他类的操 作的方法。 参数parameter:声明一个操作和它的 参数之间的关系。 发送send:声明信号发送者和信号接 受者之间的关系。(例如遥控器和电视机) 实例化instantiate:声明

29、一个类的方法 创建了另一个类的实例。 注意: 与关联关系不一样的是,依赖关系本身不生 成专门的实现代码。 2. 抽象依赖 l表示客户与提供者之间的关系,依赖于在不 同抽象层次上的事物,包括: 跟踪(trace) 精化(refine) 派生(derive) 跟踪trace:表示两个元素代表的是不同模型中的同 一个概念。通常这些模型分属于开发过程中不同阶段。 精化refine:表示位于不同的开发阶段或处于不同的 抽象层次中的一个概念的两种形式之间的映射关系。并不 意味这两种形式会在最后的模型中共存,它们中一个通常 是另一个的未完善形式。设计类将refine在分析过程 中描述的类。 派生derive

30、:声明一个实例可以从另一个实例导出。 可以根据提供方的信息计算出客户方。 3. 授权依赖 l表达一个事物访问另一个事物的能力,被依 赖元素通过规定依赖元素的权限,可以控制 和限制对其进行访问的方法。包括: 访问(access) 导入(import) 友元(friend) 访问access:允许一个包访问另一个包 的内容。(必须使用路径名称访问) 导入import:允许一个包访问另一个包 的内容,并为被访问的包的组成部分增加别 名。 友元friend:允许一个元素访问另一个 元素,不管被访问的元素是否具有可见性。 4. 绑定依赖 l较高级的依赖类型,用于绑定模板以创建新 的模型元素,包括: l绑

31、定(bind) 例如:C+中的函数模板、类模板 与具体函数 和具体类之间的关系。 类模板(带参数的类 parameterized class) lUML中,类矩形框右上角挂着一个小的虚线框 ,框中是为了生成具体类所需要指值的参数列表 。当为这些参数指定值时,就说这些参数被绑定 到这些值上。 l右上角虚线框中的“T”是一个分类,它说明这个 类是创建其他类的模板。 C+提供模板机制,java中没有与此等价的语法结构 类模板C+代码 #include using namespace std; template /声明一个模板,虚拟类型名为T class Compare /类模板名为Compare p

32、ublic: Compare(T a, T b) /构造函数 x=a;y=b; T max( ) return (xy)?x:y; T min( ) return (x cmp1(3,7); /定义对象cmp1,用于两个整数的比较 cout cmp2(45.78,93.6); /定义对象cmp2,用于两个浮点数的 比较 cout cmp3(a,A); /定义对象cmp3,用于两个字符的比较 coutcmp3.max( )“ is the Maximum of two characters.”endl; coutcmp3.min( )“ is the Minimum of two charact

33、ers.”endl; return 0; 运行结果 7 is the Maximum of two integers. 3 is the Minimum of two integers. 93.6 is the Maximum of two float numbers. 45.78 is the Minimum of two float numbers. a is the Maximum of two characters. A is the Minimum of two characters. 两种表示参数化类的方法 l1. 显式绑定(explicit binding):明确显示 出生成的类

34、和参数化类之间的依赖关系,并提 供生成类的名字。 l2. 隐式绑定(implicit binding):不显示出 依赖关系,绑定参数出现在产生的类名后面 ,并用尖括号括起来。 6.2 类图的绘制 类图的抽象层次 l在软件开发的不同阶段,使用的类图具有不同的 抽象层次。 类图的3个 层次之间没 有一个很清 晰的界限, 类图从概念 层到实现层 的过度是一 个渐进的过 程。 6.3 对象图 对象和类的关系 链 l对象是类的实例,链是类图中关联的实例。 l链连接的是对象,可以有链名,和对象名一样都要 加下划线。 注意: 链可以有名称、 角色、但没有多 重性,所有的链 都是一对一的关 系。 对象图 l对

35、象是类的实例,对象图也可看作是类图的实例 。 l对象图描述了参与交互的各个对象在交互过程中 某一时刻的状态。可以认为对象图是类图在某一 时刻的实例。 类 对象:只 有两栏 类图和对象图 类图和对象图的区别 类图类图 对对象图图 类类具有三个分栏栏:名称、属性和操作对对象只有两个分栏栏:名称和属性 在类类的名称分栏栏中只有类类名对对象的名称形式为为“对对象名:类类名”, 匿名对对象的名称形式为为“:类类名” 类类中列出了操作对对象图图中不包含操作,因为对为对 于属于 同一个类类的对对象而言,其操作是相同 的 类类使用关联连联连 接,关联联使用名称、角 色、多重性以及约约束等特征定义义。类类 代表

36、的是对对对对 象的分类类,所以必须须 说说明可以参与关联联的对对象的数目 对对象使用链连链连 接,链拥链拥 有名称、角 色,但是没有多重性。对对象代表的是 单单独的实实体,所有的链链都是一对对一的 ,因此不涉及到多重性 类类的属性分栏栏定义义了所有属性的特征对对象可以给给出属性的当前值值,以用于 测试测试 用例或例子中 6.4 用例分析分析类 UML主要有3种主要的类版型 : entity boundarycontrol 引入边界类、控制类、实体类的概念 有助于分析和设计人员确定系统中的 类。 每个actor/user case对至少要有一个边界类,但并非每 个actor/user case对

37、都要生成唯一的边界类。例如:多个 actor启动一个用例时,可以用一个边界类与系统通信。 边界类的分类 用户接口类 帮助与用户进行通信的类,通过标准的I/O 设备提供人机界面 系统接口类 帮助与其他系统进行通信的类,系统接口 对象隐藏如何与外部接口通信的细节 设备接口类或Timer 提供对硬件设备的软件接口 实体类 l实体类是持久的,是永久保存的信息。就是保存到数 据库或文件中。实体对象可以出现在多个用例中。 l实体类可以通过事件流和交互图发现。 l通常,每个实体类在数据库中有相应的表,实体类中 的属性对应数据库中表的字段。 l但这并不意味着,实体类和数据库中的表是一一对应 的。有可能是一个实体类对应多个表,也可能是多个 实体类对应一个表。(与数据库设计模式有关)。 l有时Actor也可作为实体类。 控制类 l控制类是负责其他工作的类。它负责协调其他类 工作和控制总体逻辑流程。 l一般每个用例都有一个控制类,控制用例中的事 件顺序,控制类也可以在多个用例间共用。 l控制类通常被看成一个乐队的指挥,它指挥(控 制)参与use case的其它对象的行为,通知对象 什么时候执行以及执行什么。 l其他类并不向控制类发送很多消息,而是控制类 发出很多消息。 关联可以是双向的,单向的,自关联的 作业1:根据UML类图理解其表示含义 作业2:根据UML类图理解其表示含义

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1