《面向对象技术chapter.ppt》由会员分享,可在线阅读,更多相关《面向对象技术chapter.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第6章 类图和对象图6.1 类图的概念6.2 类图建模技术6.3 对象图6.4 对象图建模技术6.5 实例图书馆管理系统的类图6.1 类图的概念描述类、接口、协作及它们之间关系的图。显示系统中各个类的静态结构。6.1.1 概述类图的元素:类(Class)接口(Interface)协作(Collaboration)依赖关系(Dependency)泛化关系(Generalization)关联关系(Association)实现关系(Realization)6.1.2 类 面向对象系统组织结构的核心。对一组具有相同属性、操作、关系和语义的对象的抽象。包括名称部分(Name)、属性部分(Attribut
2、e)和操作部分(Operation)。6.1.2 类1 名称2 属性3 操作4 职责5 约束6 注释名称 应该来自系统的问题域。应该是一个名词,且不应该有前缀或后缀。分为简单名称和路径名称。属性描述了类在软件系统中代表的事物(即对象)所具备的特性。类可以有任意数目的属性,也可以没有属性。在UML中,类属性的语法为:属性1.可见性2.属性名3.类型4.初始值5.属性字符串(1)可见性类型:公有(Public)“”私有(Private)“”受保护(Protected)“”(2)属性名 每个属性都必须有一个名字以区别于类中的其他属性。属性名由描述所属类的特性的名词或名词短语组成。单字属性名小写,如果
3、属性名包含了多个单词,这些单词要合并,且除了第一个单词外其余单词的首字母要大写。(3)类型 简单类型:整型布尔型实型枚举类型系统中的其他类(4)初始值 目的:保护系统的完整性,防止漏掉取值或被非法的值破坏系统的完整性。为用户提供易用性。(5)属性字符串 指定关于属性的其他信息。任何希望添加在属性定义字符串值但又没有合适地方可以加入的规则,都可以放在属性字符串里。操作对类的对象所能做的事务的抽象。一个类可以有任意数量的操作或者根本没有操作。返回类型、名称和参数一起被称为操作签名。在UML中,类操作的语法为:操作1.可见性2.操作名3.参数表4.返回类型5.属性字符串(1)可见性类型:公有(Pub
4、lic)“”私有(Private)“”受保护(Protected)“”包内公有(Package)“”(2)操作名 用来描述所属类的行为的动词或动词短语。单字操作名小写,如果操作名包含了多个单词,这些单词要合并,并且除了第一个单词外其余单词的首字母要大写。(3)参数表 一些按顺序排列的属性定义了操作的输入。是可选的,即操作不一定必须有参数才行。定义方式:“名称:类型”。若存在多个参数,将各个参数用逗号隔开。参数可以具有默认值。(4)返回类型是可选的,即操作不一定必须有返回类型。绝大部分编程语言只支持一个返回值。具体的编程语言一般要加一个关键字void来表示无返回值。(5)属性字符串 在操作的定义
5、中加入一些除了预定义元素之外的信息。职责 类或其他元素的契约或义务。自由形式的文本。非形式化的方法。约束指定了类所要满足的一个或多个规则。形式化的方法。注释注释可以包含图形也可以包含文本。6.1.3 接口 在没有给出对象的实现和状态的情况下对对象行为的描述。包含操作但不包含属性。没有对外界可见的关联。一个类可以实现一个或多个接口。6.1.3 接口接口类:6.1.4 类之间的关系 1 依赖关系2 泛化关系3 关联关系4 实现关系依赖关系表示两个或多个模型元素之间语义上的关系。客户以某种形式依赖于提供者。,关联、实现和泛化都是依赖关系。依赖关系1.使用依赖(Usage)2.抽象依赖(Abstrac
6、tion)3.授权依赖(Permission)4.绑定依赖(Binding)1.使用依赖 表示客户使用提供者提供的服务以实现它的行为,包括:使用(use)调用(call)参数(parameter)发送(send)实例化(instantiate)2.抽象依赖表示客户与提供者之间的关系,依赖于在不同抽象层次上的事物,包括:跟踪(trace)精化(refine)派生(derive)3.授权依赖 表达一个事物访问另一个事物的能力,包括:访问(access)导入(import)友元(friend)4.绑定依赖较高级的依赖类型,用于绑定模板以创建新的模型元素,包括:绑定(bind)泛化关系存在于一般元素和
7、特殊元素间的分类关系。可以用于类、用例以及其他模型元素。描述了一种“is a kind of”的关系。泛化关系泛化主要用途:I.多态 II.继承 单继承多重继承关联关系一种结构关系。指明事物的对象之间的联系。关联关系 1.名称(Name)2.角色(Role)3.多重性(Multiplicity)4.聚合关系(Aggregation)5.组合关系(Composition)6.导航性(Navigation)(1)名称使用一个动词或动词短语来命名关联。清晰而简洁地说明对象间关系。关联的名称并不是必需的。可以前缀或后缀一个指引阅读方向的方向指示符,以消除歧义。(2)角色 关联关系中一个类对另一个类所表
8、现出来的职责。角色的名称应该是名词或名词短语,以解释对象是如何参与关系的。(3)多重性 指有多少对象可以参与该关联。可以表达一个取值范围、特定值、无限定的范围或一组离散值。格式:“minimum.maximum”(均为Int型)。赋给一个端点的多重性表示该端点可以有多少个对象与另一个端点的一个对象关联。(4)聚合关系 一种特殊类型的关联。表示整体与部分关系的关联。描述了“has a”的关系。(5)组合关系聚合关系中的一种特殊情况,是更强形式的聚合,又称强聚合。成员对象的生命周期取决于聚合的生命周期。聚合不仅控制着成员对象的行为,而且控制着成员对象的创建和解构。(6)导航性 描述一个对象通过链进
9、行导航访问另一个对象。使用导航性可以降低类间的耦合度。包括:单向关联和双向关联。实现关系 规格说明和其实现之间的关系。客户必须至少支持提供者的所有操作。泛化和实现都可以将一般描述与具体描述联系起来:泛化将同一语义层上的元素连接起来,并且通常在同一模型内。实现将不同语义层内的元素连接起来,并且通常建立在不同的模型内。6.2 类图建模技术 6.2.1 对简单协作建模6.2.2 对逻辑数据库模式建模6.2.3 正向工程和逆向工程6.2.1 对简单协作建模识别要建模的机制。对每种机制,识别参与协作的类、接口和其他协作,并识别这些事物之间的关系。用协作的脚本检测事物。把元素和它们的内容聚合在一起。6.2
10、.2 对逻辑数据库模式建模 在模型中识别的类,其状态必须超过其应用系统的生命周期。创建包含这些类的类图,并把它们标记为永久的。展开这些类的结构性细节,并注重于关联和构造类的基数。观察系统中的公共模式,必要时可以创建简化逻辑结构的中间抽象。考虑这些类的行为,扩展对数据存储和数据完整性来说重要的操作。如果有可能,用工具把逻辑设计转换成物理设计。6.2.3 正向工程和逆向工程正向工程逆向工程6.3 对象图 描述参与一个交互的各个对象在交互过程中某一时刻的状态。可以被看作是类图在某一时刻的实例。类图和对象图的区别 类图 对象图 类具有三个分栏:名称、属性和操作对象只有两个分栏:名称和属性在类的名称分栏
11、中只有类名对象的名称形式为“对象名:类名”,匿名对象的名称形式为“:类名”类中列出了操作对象图中不包含操作,因为对于属于同一个类的对象而言,其操作是相同的类使用关联连接,关联使用名称、角色、多重性以及约束等特征定义。类代表的是对对象的分类,所以必须说明可以参与关联的对象的数目对象使用链连接,链拥有名称、角色,但是没有多重性。对象代表的是单独的实体,所有的链都是一对一的,因此不涉及到多重性类的属性分栏定义了所有属性的特征对象则只定义了属性的当前值,以用于测试用例或例子中6.4 对象图建模技术 识别将要使用的建模机制。对于各种机制,识别参与协作的类、接口和其他元素,同时识别这些事物之间的关系。考虑贯穿这个机制的脚本,冻结某一时刻的脚本,并且汇报每个参与这个机制的对象。按照需要显露出每个这样的对象的状态和属性值,以便理解脚本。显露出这些对象之间的链,以描述对象之间关联的实例。6.5 实例图书馆管理系统的类图 6.5.1 使用Rational Rose绘制类图的步骤6.5.2 图书馆管理系统的类图6.5.1 使用Rational Rose绘制类图的步骤1.创建类图2.加入类3.增加类的属性4.增加类的方法6.5.2 图书馆管理系统的类图7个类:ItemTitleLoanReservationBorrowerAdministratorLibrarian 图书馆管理系统的类图
限制150内