UML教程06-类图和对象图

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第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》)泛化关系存在于一般元素和特殊元素间的分类关系。可以用于类、用例以及其他模型元素。描述了一种“isakindof”的关系。泛化关系泛化主要用途:I.多态II.继承①单继承②多重继承关联关系一种结构关系。指明事物的对象之间的联系。关联关系1.名称(Name)2.角色(Role)3.多重性(Multiplicity)4.聚合关系(Aggregation)5.组合关系(Composition)6.导航性(Navigation)(1)名称使用一个动词或动词短语来命名关联。清晰而简洁地说明对象间关系。关联的名称并不是必需的。可以前缀或后缀一个指引阅读方向的方向指示符,以消除歧义。(2)角色关联关系中一个类对另一个类所表现出来的职责。角色的名称应该是名词或名词短语,以解释对象是如何参与关系的。(3)多重性指有多少对象可以参与该关联。可以表达一个取值范围、特定值、无限定的范围或一组离散值。格式:“minimum..maximum”(均为Int型)。赋给一个端点的多重性表示该端点可以有多少个对象与另一个端点的一个对象关联。(4)聚合关系一种特殊类型的关联。表示整体与部分关系的关联。描述了“hasa”的关系。(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使用RationalRose绘制类图的步骤6.5.2图书馆管理系统的类图6.5.1使用RationalRose绘制类图的步骤1.创建类图2.加入类3.增加类的属性4.增加类的方法6.5.2图书馆管理系统的类图7个类:①Item②Title③Loan④Reservation⑤Borrower⑥Administrator⑦Librarian6.5.2图书馆管理系统的类图

1 / 54
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功