版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章第四章 静态视图静态视图 一、类与关系一、类与关系 二、二、 类图类图 三、三、 对象图对象图 四、四、 包图包图类类类类是任何面向对象系统中最重要的构造块。类是一种重要的分类器是任何面向对象系统中最重要的构造块。类是一种重要的分类器(Classifier),),用来描述结构和行为特性的机制,它包括类、接口、数用来描述结构和行为特性的机制,它包括类、接口、数据类型、信号、组件、节点、用例和子系统。据类型、信号、组件、节点、用例和子系统。类是对一组具有相同属性、操作、关系和语义的对象的描述。这些对象类是对一组具有相同属性、操作、关系和语义的对象的描述。这些对象包括现实世界中的软件事物和硬件
2、事物,甚至也可以包括纯粹概念性的包括现实世界中的软件事物和硬件事物,甚至也可以包括纯粹概念性的事物,它们是类的实例。一个类可以实现一个或多个接口。结构良好的事物,它们是类的实例。一个类可以实现一个或多个接口。结构良好的类具有清晰的边界,并成为系统中职责均衡分布的一部分。类具有清晰的边界,并成为系统中职责均衡分布的一部分。类在类在UML中由专门的图符表达,是一个分成中由专门的图符表达,是一个分成3个分隔区的矩形。其中顶个分隔区的矩形。其中顶端的分隔区为类的名字,中间的分隔区放类的属性、属性的类型和值端的分隔区为类的名字,中间的分隔区放类的属性、属性的类型和值(在(在UML符号表示中给出类的初始值
3、),第符号表示中给出类的初始值),第3个分隔区放操作、操作的个分隔区放操作、操作的参数表和返回类型。参数表和返回类型。 一、类与关系一、类与关系关系关系 关系(关系(Relationship)是事物间的联系。在类的关系是事物间的联系。在类的关系中,最常用的中,最常用的4种分别为:依赖(种分别为:依赖(Dependency),),它表示类之间的使用关系;泛化(它表示类之间的使用关系;泛化(Generalization),),它表示类之间的一般和特殊是关系;关联它表示类之间的一般和特殊是关系;关联(Association),),它表示对象之间的结构关系;实它表示对象之间的结构关系;实现(现(Rea
4、lization),),它是规格说明和其实现之间的它是规格说明和其实现之间的关系。关系。1. 依赖(依赖(Dependency) 依赖是两个元素之间的关系,对一个元素(提供者)依赖是两个元素之间的关系,对一个元素(提供者)的改变可能会影响或提供消息给其他元素(客户)。的改变可能会影响或提供消息给其他元素(客户)。也就是说:客户以某种方式依赖于提供者。在实际也就是说:客户以某种方式依赖于提供者。在实际的建模中,类元之间的依赖关系表示某一类元以某的建模中,类元之间的依赖关系表示某一类元以某种方法依赖于其他类元。种方法依赖于其他类元。 从语义上理解,关联、实现和泛化都是依赖关系,从语义上理解,关联、
5、实现和泛化都是依赖关系,但因为他们有更特别的语义,所以在但因为他们有更特别的语义,所以在UML中被分离中被分离出来作为独立的关系。出来作为独立的关系。 在图形上,在图形上,UML把依赖描述成一条有向的虚线,指把依赖描述成一条有向的虚线,指向被依赖的对象。向被依赖的对象。2. 泛化(泛化(Generalization) 泛化是一般事物(称为超类或父类)和该事物的较为特殊的泛化是一般事物(称为超类或父类)和该事物的较为特殊的种类(称为子类)之间的关系,子类继承父类的属性和操作,种类(称为子类)之间的关系,子类继承父类的属性和操作,除此之外通常子类还添加新的属性和操作,或者修改了父类除此之外通常子类
6、还添加新的属性和操作,或者修改了父类的某些操作。泛化意味着子类的对象可以用在父类的对象可的某些操作。泛化意味着子类的对象可以用在父类的对象可能出现的地方,但反过来则不成立。能出现的地方,但反过来则不成立。 例如:电视可以分为彩色电视和黑白电视,电视也可以分为例如:电视可以分为彩色电视和黑白电视,电视也可以分为CRT电视、液晶电视、背投电视、等离子电视。这些都是泛电视、液晶电视、背投电视、等离子电视。这些都是泛化关系,只为观察事物的角度不一样。更简单的来说,泛化化关系,只为观察事物的角度不一样。更简单的来说,泛化关系描述了类之间的关系描述了类之间的is a kind of(属于属于的一种)的关系
7、。的一种)的关系。 在图形上,泛化用从子类指向父类的空心三角形箭头表示。在图形上,泛化用从子类指向父类的空心三角形箭头表示。3. 关联(关联(Association) 关联是一种结构关系,它指明一个事物的对关联是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系。也就是说,象与另一个事物的对象间的联系。也就是说,如果两事物间存在链接,这些事物的类间必如果两事物间存在链接,这些事物的类间必定存在着关联关系,因为链接是关联的实例,定存在着关联关系,因为链接是关联的实例,就如同对象是类的实例一样。就如同对象是类的实例一样。4. 实现(实现(Realize) 实现是规格说明和其实现间的关系。
8、它表示不继承结实现是规格说明和其实现间的关系。它表示不继承结构而只继承行为。大多少情况下,实现关系用来规定构而只继承行为。大多少情况下,实现关系用来规定接口和实现接口的类或组件之间的关系。接口和实现接口的类或组件之间的关系。 接口是能够让用户重用系统一组操作集的接口是能够让用户重用系统一组操作集的UML组件。组件。一个接口可以被多个类或组件实现,一个类或组件也一个接口可以被多个类或组件实现,一个类或组件也可以有多个接口。可以有多个接口。 可以在两种情况下使用实现关系:第一,在接口与实可以在两种情况下使用实现关系:第一,在接口与实现该接口的类间;第二,在用例以及实现该用例的协现该接口的类间;第二
9、,在用例以及实现该用例的协作间。作间。二、二、 类图类图 类图(类图(class diagram)是描述类、接口、协作、以是描述类、接口、协作、以及它们之间关系的图。它是系统中静态视图的一部及它们之间关系的图。它是系统中静态视图的一部分,静态视图可以包括许多的类图。静态视图用于分,静态视图可以包括许多的类图。静态视图用于为软件系统进行结构建模,它构造系统的词汇和关为软件系统进行结构建模,它构造系统的词汇和关系,而结构模型的视化就是通过类图来实现的。系,而结构模型的视化就是通过类图来实现的。 类图所包括的内容如下:类图所包括的内容如下:(1)类)类(2)接口)接口(3)协作)协作(4)依赖、泛化
10、、实现和关联关系)依赖、泛化、实现和关联关系类图的用途类图的用途 类图是系统静态视图的一部分,它主要是用来描类图是系统静态视图的一部分,它主要是用来描述软件系统的静态结构。该视图主要支持系统的述软件系统的静态结构。该视图主要支持系统的功能需求,也就是系统要提供给最终用户的服务。功能需求,也就是系统要提供给最终用户的服务。当系统分析师以支持软件系统的功能需求为目的当系统分析师以支持软件系统的功能需求为目的设计静态视图时,通常以下述设计静态视图时,通常以下述3种方法之一使用类种方法之一使用类图。图。(1)对系统的词汇建模对系统的词汇建模(2)对简单协作建模)对简单协作建模(3)对逻辑数据库模式建模
11、)对逻辑数据库模式建模类图建模技术类图建模技术 1. 对简单协作建模对简单协作建模 协同是软件系统的动态交互在软件系统的静态视图上的映协同是软件系统的动态交互在软件系统的静态视图上的映射。协同的静态结构是通过类图表达出来的。在对类图的射。协同的静态结构是通过类图表达出来的。在对类图的简单协同建模时,不仅要描述类的职责、结构和服务,还简单协同建模时,不仅要描述类的职责、结构和服务,还要强调类间的关系。要强调类间的关系。 在协同建模时,要遵循的策略包括:在协同建模时,要遵循的策略包括: (1)识别要模拟的机制。一个机制描述了被建模的部分)识别要模拟的机制。一个机制描述了被建模的部分系统的一些功能和
12、行为,这些功能和行为是由类、接口等系统的一些功能和行为,这些功能和行为是由类、接口等元素交互作用产生的。元素交互作用产生的。 (2)对每种机制,识别参与协作的类、接口和其他协作,)对每种机制,识别参与协作的类、接口和其他协作,并识别它们间的关系。并识别它们间的关系。 (3)通过协作的脚本,发现建模的模型是否有被遗漏和)通过协作的脚本,发现建模的模型是否有被遗漏和语义错误的地方,并更正错误。语义错误的地方,并更正错误。 (4)得出相应类的对象,并确定具体的属性和操作。)得出相应类的对象,并确定具体的属性和操作。2. 对数据库模式建模对数据库模式建模 在对软件系统进行建模时,不仅要定义系统的动态行
13、为,还需要为在对软件系统进行建模时,不仅要定义系统的动态行为,还需要为动态行为所操作的数据指定相应的格式。动态行为所操作的数据指定相应的格式。 传统的逻辑数据库建模工具传统的逻辑数据库建模工具“实体关系(实体关系(E-R)”图只针对数据,图只针对数据,而而UML的类图还允许对行为建模。的类图还允许对行为建模。 在为数据库建模时,要遵循的策略包括:在为数据库建模时,要遵循的策略包括:(1)在系统中确定的类,它的状态必须超过其应用系统生命周期。)在系统中确定的类,它的状态必须超过其应用系统生命周期。(2)创建包含这些类的类图,并把它们标记成永久的()创建包含这些类的类图,并把它们标记成永久的(pe
14、rsistent)。)。(3)展开这些类的结构信息,即详细的描述属性的细节,并注重关展开这些类的结构信息,即详细的描述属性的细节,并注重关联和构造这些类的基数。联和构造这些类的基数。(4)观察系统中的公共模式(如循环关联、一对一关联等),它们)观察系统中的公共模式(如循环关联、一对一关联等),它们往往使物理数据库设计复杂化。如果必要,系统分析师需要创建简往往使物理数据库设计复杂化。如果必要,系统分析师需要创建简化逻辑结构的中间抽象。化逻辑结构的中间抽象。(5)考虑这些类的行为,扩充那些对于数据存储和数据完整性很重)考虑这些类的行为,扩充那些对于数据存储和数据完整性很重要的操作。要的操作。(6)
15、如果可能,用工具来把逻辑设计换成物理设计。)如果可能,用工具来把逻辑设计换成物理设计。三、三、 对象图对象图 在在UML中,对象图(中,对象图(Object Diagram)是表是表示在某一时刻一组对象以及它们之间的关系示在某一时刻一组对象以及它们之间的关系的图。的图。 对象图可以被看作是类图在系统某一时刻的对象图可以被看作是类图在系统某一时刻的实例。实例。 在图形上,对象图由节点以及连接这些节点在图形上,对象图由节点以及连接这些节点的连线组成,节点可以是对象也可以是类,的连线组成,节点可以是对象也可以是类,连线表示对象间的关系。连线表示对象间的关系。对象图建模对象图建模 对象图主要用来描述类
16、的实例在特定时刻的状态。对象图主要用来描述类的实例在特定时刻的状态。它可以是类的实例也可以是交互图的静态部分。它可以是类的实例也可以是交互图的静态部分。 对于组件图和部署图来说,对于组件图和部署图来说,UML可以直接对它们建可以直接对它们建模,组件图和部署图上分别可以包含部件或结点的模,组件图和部署图上分别可以包含部件或结点的实例。实例。 对象图的建模过程:对象图的建模过程:(1)确定参与交互的各对象的类,可以参照相应的)确定参与交互的各对象的类,可以参照相应的类图和交互图;类图和交互图;(2)确定类间的关系,如依赖、泛化、关联和实现;)确定类间的关系,如依赖、泛化、关联和实现;(3)针对交互
17、在某特定时刻各对象的状态,使用对)针对交互在某特定时刻各对象的状态,使用对象图为这些对象建模;象图为这些对象建模;(4)建模时,系统分析师要根据建模的目标,绘制)建模时,系统分析师要根据建模的目标,绘制对象的关键状态和关键对象之间的连接关系。对象的关键状态和关键对象之间的连接关系。 四、四、 包图包图 包图由包和包之间的联系构成,它是维护和控制系统总体包图由包和包之间的联系构成,它是维护和控制系统总体结构的重要建模工具。结构的重要建模工具。 当对大型系统进行建模时,经常需要处理大量的类、接口、当对大型系统进行建模时,经常需要处理大量的类、接口、构件、节点和图,这时就有必要将这些元素进行分组,即
18、把构件、节点和图,这时就有必要将这些元素进行分组,即把那些语义相近并倾向于一起变化的元素组织起来加入同一那些语义相近并倾向于一起变化的元素组织起来加入同一包,这样方便理解和处理整个模型。同时也便于轻松地控包,这样方便理解和处理整个模型。同时也便于轻松地控制这些元素的可见性,使一些元素在包外可见,一些元素是制这些元素的可见性,使一些元素在包外可见,一些元素是隐藏在包内的。隐藏在包内的。 设计良好的包是高内聚、低耦合的,并且对其内容的访问具设计良好的包是高内聚、低耦合的,并且对其内容的访问具有严密的控制。有严密的控制。包的名字包的名字 和其他建模的元素一样,每个包都必须有一个区别和其他建模的元素一
19、样,每个包都必须有一个区别于其他与其他包的名字。模型包是名字是一个字符于其他与其他包的名字。模型包是名字是一个字符串,它可分为简单名(串,它可分为简单名(simple name)和路径名和路径名(path name)。)。简单名是指包仅含一个简单的名简单名是指包仅含一个简单的名称,路径名是指以包所位于的外围包的名字作为前称,路径名是指以包所位于的外围包的名字作为前缀的包名。缀的包名。 图形上,包是带有标签的文件夹。图形上,包是带有标签的文件夹。包拥有的元素包拥有的元素 包是对模型元素进行分组的机制,它把模型包是对模型元素进行分组的机制,它把模型元素划分成若干个子集。包可以拥有元素划分成若干个子
20、集。包可以拥有UML中中的其他元素,包括类、接口、组件、节点、的其他元素,包括类、接口、组件、节点、协作、用例和图,包甚至还可以包含其他包。协作、用例和图,包甚至还可以包含其他包。 包的作用不仅仅是为模型元素分组。它还为包的作用不仅仅是为模型元素分组。它还为所拥有的模型元素构成一个命名空间,这就所拥有的模型元素构成一个命名空间,这就意味着一个模型包的各个同类建模元素不能意味着一个模型包的各个同类建模元素不能具有相同的名字,不同模型包的各个建模元具有相同的名字,不同模型包的各个建模元素能具有相同的名字,因为它们代表不用的素能具有相同的名字,因为它们代表不用的建模元素。在同一包内,不同种类的模型元
21、建模元素。在同一包内,不同种类的模型元素能够具有相同的名字,但可能会带来不必素能够具有相同的名字,但可能会带来不必要的麻烦,不推荐这么做。要的麻烦,不推荐这么做。包的可见性包的可见性 包的可见性用来控制包外界的元素对包内元素的可包的可见性用来控制包外界的元素对包内元素的可访问权限,这一点和类的可见性类似。可见性可以访问权限,这一点和类的可见性类似。可见性可以分成分成3种。种。 (1)公有访问()公有访问(public):):包内的模型元素可以被包内的模型元素可以被任何引入了此包的其他包的内含元素访问。公有访任何引入了此包的其他包的内含元素访问。公有访问用前缀于内含元素名字的加号(问用前缀于内含
22、元素名字的加号(+)表示。)表示。 (2)保护访问()保护访问(protected):):表示此元素能被该表示此元素能被该模型包在继承关系上后继模式包的内含元素访问。模型包在继承关系上后继模式包的内含元素访问。保护访问用前缀于内含元素名字的号()表示。保护访问用前缀于内含元素名字的号()表示。 (3)私有访问()私有访问(private):):表示此元素可以被属表示此元素可以被属于用一包的内含元素访问。私有访问用前缀于内含于用一包的内含元素访问。私有访问用前缀于内含元素名字的减号()表示。元素名字的减号()表示。引入与输出引入与输出 在在UML里,引入一个包中的元素可以单向的访问另里,引入一个
23、包中的元素可以单向的访问另一个包中的元素。引入(一个包中的元素。引入(import)关系用构造型的关系用构造型的import来修饰。包中具有公有访问权限的内含元素来修饰。包中具有公有访问权限的内含元素称为输出(称为输出(export)。)。泛化关系泛化关系 和类间的泛化关系类似,包间也存在着泛化关系。和类间的泛化关系类似,包间也存在着泛化关系。包间的泛化关系也像类那样遵循替代原则,特殊包包间的泛化关系也像类那样遵循替代原则,特殊包可以应用到一般包被使用的任何地方。包间还存在可以应用到一般包被使用的任何地方。包间还存在另一种关系:引入和访问依赖,用于在一个包引入另一种关系:引入和访问依赖,用于在一个包引入另一个包输出的元素。另一个包输出的元素。标准元素标准元素 UML的扩充机制同样适用于包。可以使用标记值来增的扩充机制同样适用于包。可以使用标记值来增加包的新特
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药品标准AI优化策略-洞察分析
- 2025年沪科新版七年级地理上册阶段测试试卷含答案
- 2025年外研版九年级生物上册月考试卷
- 物联网与电子制造设备互联-洞察分析
- 2025年沪教版九年级地理下册阶段测试试卷
- 音乐制作智能化技术-洞察分析
- 2025年沪科版七年级历史上册阶段测试试卷
- 2025年岳麓版九年级科学下册月考试卷
- 2025年外研版三年级起点高一物理下册阶段测试试卷含答案
- 2025年人教新起点八年级科学下册阶段测试试卷含答案
- 深圳2024-2025学年度四年级第一学期期末数学试题
- 中考语文复习说话要得体
- 《工商业储能柜技术规范》
- 华中师范大学教育技术学硕士研究生培养方案
- 医院医学伦理委员会章程
- xx单位政务云商用密码应用方案V2.0
- 风浪流耦合作用下锚泊式海上试验平台的水动力特性试验
- 高考英语语法专练定语从句含答案
- 有机农业种植技术操作手册
- 【教案】Unit+5+Fun+Clubs+大单元整体教学设计人教版(2024)七年级英语上册
- 2020年的中国海外工程示范营地申报材料及评分标准
评论
0/150
提交评论