资源预览内容
第1页 / 共54页
第2页 / 共54页
第3页 / 共54页
第4页 / 共54页
第5页 / 共54页
第6页 / 共54页
第7页 / 共54页
第8页 / 共54页
第9页 / 共54页
第10页 / 共54页
亲,该文档总共54页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第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)、属性部分(Attribute)和操作部分(Operation)。,6.1.2 类,1 名称 2 属性 3 操作 4 职责 5 约束 6 注释,名称,应该来自系统的问题域。 应该是一个名词,且不应该有前缀或后缀。 分为简单名称和路径名称。,属性,描述了类在软件系统中代表的事物(即对象)所具备的特性。 类可以有任意数目的属性,也可以没有属性。 在UML中,类属性的语法为:,属性,1. 可见性 2. 属性名 3. 类型 4. 初始值 5. 属性字符串,(1) 可见性,类型: 公有(Public) “” 私有(Private)“” 受保护(Protected)“”,(2) 属性名,每个属性都必须有一个名字以区别于类中的其他属性。 属性名由描述所属类的特性的名词或名词短语组成。 单字属性名小写,如果属性名包含了多个单词,这些单词要合并,且除了第一个单词外其余单词的首字母要大写。,(3) 类型,简单类型: 整型 布尔型 实型 枚举类型 系统中的其他类,(4) 初始值,目的: 保护系统的完整性,防止漏掉取值或被非法的值破坏系统的完整性。 为用户提供易用性。,(5) 属性字符串,指定关于属性的其他信息。 任何希望添加在属性定义字符串值但又没有合适地方可以加入的规则,都可以放在属性字符串里。,操作,对类的对象所能做的事务的抽象。 一个类可以有任意数量的操作或者根本没有操作。 返回类型、名称和参数一起被称为操作签名。 在UML中,类操作的语法为:,操作,1. 可见性 2. 操作名 3. 参数表 4. 返回类型 5. 属性字符串,(1) 可见性,类型: 公有(Public) “” 私有(Private) “” 受保护(Protected) “” 包内公有(Package) “”,(2) 操作名,用来描述所属类的行为的动词或动词短语。 单字操作名小写,如果操作名包含了多个单词,这些单词要合并,并且除了第一个单词外其余单词的首字母要大写。,(3) 参数表,一些按顺序排列的属性定义了操作的输入。 是可选的,即操作不一定必须有参数才行。 定义方式:“名称:类型”。 若存在多个参数,将各个参数用逗号隔开。 参数可以具有默认值。,(4) 返回类型,是可选的,即操作不一定必须有返回类型。 绝大部分编程语言只支持一个返回值。 具体的编程语言一般要加一个关键字void来表示无返回值。,(5) 属性字符串,在操作的定义中加入一些除了预定义元素之外的信息。,职责,类或其他元素的契约或义务。 自由形式的文本。 非形式化的方法。,约束,指定了类所要满足的一个或多个规则。 形式化的方法。,注释,注释可以包含图形也可以包含文本。,6.1.3 接口,在没有给出对象的实现和状态的情况下对对象行为的描述。 包含操作但不包含属性。 没有对外界可见的关联。 一个类可以实现一个或多个接口。,6.1.3 接口,接口类:,6.1.4 类之间的关系,1 依赖关系 2 泛化关系 3 关联关系 4 实现关系,依赖关系,表示两个或多个模型元素之间语义上的关系。 客户以某种形式依赖于提供者。 ,关联、实现和泛化都是依赖关系。,依赖关系,1. 使用依赖(Usage) 2. 抽象依赖(Abstraction) 3. 授权依赖(Permission) 4. 绑定依赖(Binding),1. 使用依赖,表示客户使用提供者提供的服务以实现它的行为,包括: 使用(use) 调用(call) 参数(parameter) 发送(send) 实例化(instantiate),2. 抽象依赖,表示客户与提供者之间的关系,依赖于在不同抽象层次上的事物,包括: 跟踪(trace) 精化(refine) 派生(derive),3. 授权依赖,表达一个事物访问另一个事物的能力,包括: 访问(access) 导入(import) 友元(friend),4. 绑定依赖,较高级的依赖类型,用于绑定模板以创建新的模型元素,包括: 绑定(bind),泛化关系,存在于一般元素和特殊元素间的分类关系。 可以用于类、用例以及其他模型元素。 描述了一种“is a kind of” 的关系。,泛化关系,泛化主要用途: 多态 继承 单继承 多重继承,关联关系,一种结构关系。 指明事物的对象之间的联系。,关联关系,1. 名称(Name) 2. 角色(Role) 3. 多重性(Multiplicity) 4. 聚合关系(Aggregation) 5. 组合关系(Composition) 6. 导航性(Navigation),(1) 名称,使用一个动词或动词短语来命名关联。 清晰而简洁地说明对象间关系。 关联的名称并不是必需的。 可以前缀或后缀一个指引阅读方向的方向指示符,以消除歧义。,(2) 角色,关联关系中一个类对另一个类所表现出来的职责。 角色的名称应该是名词或名词短语,以解释对象是如何参与关系的。,(3) 多重性,指有多少对象可以参与该关联。 可以表达一个取值范围、特定值、无限定的范围或一组离散值。 格式:“minimum.maximum” (均为Int型)。 赋给一个端点的多重性表示该端点可以有多少个对象与另一个端点的一个对象关联。,(4)聚合关系,一种特殊类型的关联。 表示整体与部分关系的关联。 描述了“has a”的关系。,(5) 组合关系,聚合关系中的一种特殊情况,是更强形式的聚合,又称强聚合。 成员对象的生命周期取决于聚合的生命周期。 聚合不仅控制着成员对象的行为,而且控制着成员对象的创建和解构。,(6) 导航性,描述一个对象通过链进行导航访问另一个对象。 使用导航性可以降低类间的耦合度。 包括:单向关联和双向关联。,实现关系,规格说明和其实现之间的关系。 客户必须至少支持提供者的所有操作。 泛化和实现都可以将一般描述与具体描述联系起来: 泛化将同一语义层上的元素连接起来,并且通常在同一模型内。 实现将不同语义层内的元素连接起来,并且通常建立在不同的模型内。,6.2 类图建模技术,6.2.1 对简单协作建模 6.2.2 对逻辑数据库模式建模 6.2.3 正向工程和逆向工程,6.2.1 对简单协作建模,识别要建模的机制。 对每种机制,识别参与协作的类、接口和其他协作,并识别这些事物之间的关系。 用协作的脚本检测事物。 把元素和它们的内容聚合在一起。,6.2.2 对逻辑数据库模式建模,在模型中识别的类,其状态必须超过其应用系统的生命周期。 创建包含这些类的类图,并把它们标记为永久的。 展开这些类的结构性细节,并注重于关联和构造类的基数。 观察系统中的公共模式,必要时可以创建简化逻辑结构的中间抽象。 考虑这些类的行为,扩展对数据存储和数据完整性来说重要的操作。 如果有可能,用工具把逻辑设计转换成物理设计。,6.2.3 正向工程和逆向工程,正向工程 逆向工程,6.3 对象图,描述参与一个交互的各个对象在交互过程中某一时刻的状态。 可以被看作是类图在某一时刻的实例。,类图和对象图的区别,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个类: Item Title Loan Reservation Borrower Administrator Librarian,6.5.2 图书馆管理系统的类图,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号