《类图对象图和包图》PPT课件

《类图对象图和包图》PPT课件

ID:45586362

大小:3.33 MB

页数:84页

时间:2019-11-15

上传者:U-145848
《类图对象图和包图》PPT课件_第1页
《类图对象图和包图》PPT课件_第2页
《类图对象图和包图》PPT课件_第3页
《类图对象图和包图》PPT课件_第4页
《类图对象图和包图》PPT课件_第5页
资源描述:

《《类图对象图和包图》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

面向对象建模技术软件工程系林琳 2第3章类图、对象图和包图类图和对象图合称为结构模型视图或者静态视图,用于描述系统的结构或静态特征。类图用来描述系统中的类以及类与类之间的静态关系等;对象用来描述特定时刻实际存在的若干对象以及它们之间的关系。一个系统的模型中可以包含多个对象图,每个对象图描述了系统在某个特定时刻的状态。 3本章学习要点:理解类图的基本概念为系统建模类建模类之间的关联关系理解并建模泛化关系了解依赖关系和实现关系了解对象图和包图的概念构造类图 43.1类图构建面向对象模型的基础是类、对象以及它们之间的关系。在不同的系统中描述的类可以是各种各样的。在面向对象的处理中,类图处于核心地位,它提供了用于定义和使用对象的主要规则,同时,类图是正向工程(将模型转化为代码)的主要资源,是逆向工程(将代码转化为模型)的生成物。类图是任何面向对象系统的核心。 53.1.1概述类图是描述类、接口以及它们之间关系的图,它显示了系统中各个类的静态结构。可以用某种面向对象的语言实现类图中的类。建模对象对系统的词汇建模对协作建模对数据库模式建模 类图的元素:类(Class)接口(Interface)协作(Collaboration)依赖关系(Dependency)泛化关系(Generalization)关联关系(Association)实现关系(Realization)3.1.1概述 一个例子 3.1.2类及类的表示类是对资源的定义,它所包含的信息主要用来描述某种类型实体的特征以及对该类型实体的使用方法。对象是具体的实体,它遵守类制定的规则。类定义了一组具有状态和行为的对象,这些对象具有相同的属性、操作、关系和语义。类包括名称部分(Name)、属性部分(Attribute)和操作部分(Operation),名称必须有,属性和操作部分可以省略。8名称属性操作名称名称属性名称操作 1名称2属性3操作4职责5约束6注释3.1.2类及类的表示 1名称应该来自系统的问题域。应该是一个名词,且不应该有前缀或后缀。分为简单名称和路径名称。 2属性描述了类在软件系统中代表的事物(即对象)所具备的特性。类可以有任意数目的属性,也可以没有属性。在UML中,类属性的语法为: 2属性1.可见性2.属性名3.类型4.初始值5.属性字符串 (1)可见性类型:公有(Public)“+”私有(Private)“-”被保护(Protected)“#”UML中没有默认可见性类型 (2)属性名每个属性都必须有一个名字以区别于类中的其他属性。属性名由描述所属类的特性的名词或名词短语组成。单字属性名小写,如果属性名包含了多个单词,这些单词要合并,且除了第一个单词外其余单词的首字母要大写。 (3)类型应为属性指定所属的数据类型整型布尔型实型枚举类型系统中的其他类用户自定义的数据类型 (4)初始值目的:保护系统的完整性,防止漏掉取值或被非法的值破坏系统的完整性。为用户提供易用性。 (5)属性字符串指定关于属性的其他信息。任何希望添加在属性定义字符串值但又没有合适地方可以加入的规则,都可以放在属性字符串里。 特殊类型的属性类的作用域属性:属性下加下划线对象属性:用数组表示 3操作对类的对象所能做的事务的抽象。一个类可以有任意数量的操作或者根本没有操作。由返回值类型、名称和参数表描述。在UML中,类操作的语法为: 3操作(1)可见性(2)操作名(3)参数表(4)返回类型 (1)可见性类型:公有(Public)“+”私有(Private)“-”受保护(Protected)“#”包内公有(Package)“~” (2)操作名用来描述所属类的行为的动词或动词短语。单字操作名小写,如果操作名包含了多个单词,这些单词要合并,并且除了第一个单词外其余单词的首字母要大写。 (3)参数表一些按顺序排列的属性定义了操作的输入。是可选的,即操作不一定必须有参数才行。定义方式:“名称:类型”。若存在多个参数,将各个参数用逗号隔开。参数可以具有默认值。 (4)返回类型是可选的,即操作不一定必须有返回类型。绝大部分编程语言只支持一个返回值。具体的编程语言一般要加一个关键字void来表示无返回值。 4职责类或其他元素的契约或义务。自由形式的文本。非形式化的方法。 5约束指定了类所要满足的一个或多个规则。形式化的方法。 6注释注释可以包含图形也可以包含文本。 3.1.3定义类实体抽象成类将系统要处理的数据抽象为类的属性处理数据的方法抽象成类的操作要对问题域有透彻的理解依据:需求规格说明书 类之间的关系关联关系(Association)泛化关系(Generalization)依赖关系(Dependency)实现关系(Realization) 对象之间的通信手段,包括:二元关联关联类或关联与反身关联聚合(Aggregation)组成(Composition)3.2关联关系 3.2.1二元关联只有两个类参与的关联在类图中的关联关系,两个类的相应对象所具有的关系称为链 名称角色多重性约束限定符导航性3.2.1二元关联 (1)名称使用一个动词或动词短语来命名关联。清晰而简洁地说明类间关系。关联的名称并不是必需的。可以前缀或后缀一个指引阅读方向的方向指示符,以消除歧义。一般是从左到右,从上到下阅读。如果方向不同,要指出来。 (2)角色关联关系中一个类对另一个类所表现出来的职责。角色的名称应该是名词或名词短语,以解释对象是如何参与关系的。可以用角色名代替关联名。 (3)多重性指有多少对象可以参与该关联。可以表达一个取值范围、特定值、无限定的范围或一组离散值。格式:“minimum..maximum”(均为Int型)。赋给一个端点的多重性表示该端点可以有多少个对象与另一个端点的一个对象关联。确定方式: (4)约束规定了实现关联端点时必须遵守的规则 (5)限定符使用关键字ID识别对象集合中的对象,称为受限关联 (6)导航性描述一个对象通过链进行导航访问另一个对象。使用导航性可以降低类间的耦合度。包括:单向关联和双向关联。双向导航一般省略箭头。大多数情况都是双向导航 3.2.2关联类与关联关系相连的类。关联类与关联相对应,表示关联的附加信息关联类是一种将数据值和链接关联在一起的手段 关联类与一般类的不同:一般类描述的是实体,关联类描述的是关系关联类与一般类的相同:关联类也是类,也可以与其他类关联3.2.2关联类 3.2.3或关联或关联指多个关联附加约束条件,使类中的对象一次只能参与一个关联关系 3.2.3反身关联参与关联的对象属于同一个类,称为反身连接。 3.2.4聚合关系(Aggregation)在关联之上的紧密耦合表示整体与部分关系的关联。整体类和部分类都可以独立存在。 3.2.5组成关系(Composition)更紧密耦合的关系表示整体与部分关系的关联。部分类不能脱离整体类存在。1..*1..* 3.3泛化关系(Generalization)存在于一般元素和特殊元素间的分类关系。可以用于类、用例以及其他模型元素。描述了一种“isakindof”的关系。 3.3.1泛化的含义和用途一般元素称为超类或父类,特殊元素称为子类子类继承了父类的所有属性和操作,并具有自己独有属性和操作。 3.3.2泛化的层次泛化可以有多层泛化是类关系中最强的耦合形式,必要时才使用只有在一个类确实是另一个类的特殊类型时才使用泛化 3.3.2泛化的层次不提倡使用多重泛化 3.3.3泛化约束泛化约束的表示 3.3.3泛化约束泛化约束的类型不完全约束{incomplete}完全约束{complete}解体约束{disjoint}重叠约束{overlapping} 3.4依赖关系表示两个或多个模型元素之间语义上的关系。一种元素以某种形式依赖于另一种元素。关联、实现和泛化都是依赖关系的特例。 依赖关系1.使用依赖(Usage):最常用2.抽象依赖(Abstraction)3.绑定依赖(Binding)4.授权依赖(Permission) 实现关系用于规格说明与实现之间的关系,通常用在接口以及实现该接口的类之间。 类关系图 3.5构造类图模型迭代进行以下步骤问题域类建模GUI类建模数据访问类建模 3.5构造类图模型首先对问题域类建模,步骤是:一、确定可以在用例图中找到的类二、为类图中的类添加必要的特性和操作三、分析类之间的关系 问题域类建模一、确定可以在用例图中找到的类找出系统需求中的所有名词,作为类的候选者,形容词作为属性的线索,动词作为操作的候选者。筛选类:去除冗余、无关、笼统名词、统一不一致的用法。对剩下的名词适当分类(人、事、物)通过检查名词是否存在相关的属性和行为,如果有,则应该建立相应的类。抽象出共享功能,构成单独的类。二、分析类的属性和操作 例需求(P256)针对图书管理系统的需求,抽象出Borrower、Librarian、Administrator、Title、Book和Loan类,抽象出管理员Manager类,Librarian和Administrator作为Manager类的泛化分析类的属性和操作 类的属性和操作1 类的属性和操作2 类的属性和操作3 1个Title对应1到多个Book1个Book对应0到1个Loan1个Borrower对应0到多个LoanLibrarian和Administrator是Manager类的泛化三、分析类之间的关系 问题域类图1 问题域类图2 用户接口类(GUI)建模用户接口类与用例图密切相关图书管理员的接口类系统管理员的接口类 图书管理员的接口类 系统管理员的接口类 数据访问类建模Manager、Borrower、Title、Book和Loan都是持久性类,需要存储到数据库,因此抽象出共享的访问数据库的Persistent类,实现对数据库的增删改查操作。Manager、Borrower、Title、Book和Loan都是Persistent的泛化 数据访问类建模 GUI类与问题域类的关系大多比较简单借书、还书GUI类涉及较多类。 3.6抽象类抽象的操作,留给子类实现操作全部是抽象的类称为抽象类抽象类不能实例化抽象操作和抽象类用斜体表示 3.7接口一组没有相应方法实现的操作,类似于抽象类,不能实例化接口只有操作,没有属性通过将接口与类相关联,实现该接口。构造型表示法球型表示法 3.8对象图描述参与一个交互的各个对象在交互过程中某一时刻的状态。可以被看作是类图在某一时刻的实例。对于每个属性,对象都有特定的值 3.8对象图对象之间的关系称为链,从类图中的关联而来。同一个类图所对应的对象图可以有多个,多个对象图合在一起共同展示了随着时间的推移,在不同时间点系统的对象状态。 类图和对象图的区别类图对象图类具有三个分栏:名称、属性和操作对象只有两个分栏:名称和属性在类的名称分栏中只有类名对象的名称形式为“对象名:类名”,匿名对象的名称形式为“:类名”类中列出了操作对象图中不包含操作,因为对于属于同一个类的所有对象而言,其操作是相同的类使用关联连接,关联使用名称、角色、多重性以及约束等特征定义。类代表的是对对象的分类,所以必须说明可以参与关联的对象的数目对象使用链连接,链拥有名称、角色,但是没有多重性。对象代表的是单独的实体,所有的链都是一对一的,因此不涉及到多重性 3.9包图包是对模型元素分组管理的机制。一个包可以包含一组类,还可以包含接口、用例、节点等模型元素。一个元素只能由一个包拥有。包划分的原则:低耦合、高内聚。Java中称为包(Package)C++、C#中称为命名空间(Namespace) 3.9.1理解包图包表示方法 3.9.1理解包图包中的可见性当一个包使用另一个包中元素时,形成包之间的依赖,应避免依赖形成循环× 3.9.2导入包一个包将另一个包导入时,该包里的元素能够使用那个被导入包里的元素,而不必通通过包名指定元素。目标包 导入包元素的可见性导入包时,只有目标包中的Public元素是可用的,Private元素不可见<> 导入关系的可见性导入方式公共导入<>具有传递性私有导入<>不具有传递性 3.9.3使用包图建模面向对象中的三层包设计:用户界面GUI包问题域PD包数据访问DB包 本章完

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭