- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UML课程 第十一章 关系详解.doc
第十一章 关系详解 1、引言: uml关系 关系是重要的建模概念。 关系代表了UML模型元素之间的语义连接。 它使得软件系统各组成部分之间的交互和协同得以描述。 三种最基本和最常用的关系,它们是: 依赖关系 泛化关系和 关联关系。 关系可以描述软件系统各组成部件的结构及它们之间的基本的语义连接。 随着软件设计建造的进一步深入和细化, 需要更详细的建模手段来对这些关系进行修饰和描述,以使得 模型更趋于完备, 更能反映软件系统在各方面的真实情况, 并满足软件系统的分析、设计和建造的需要。 在UML里,最常用的关系有: 依赖关系 泛化关系 关联关系 实现关系 本章将进一步介绍这四种关系的语义、用法和各种修饰。 2、依赖关系 在第七章介绍的三种关系中 关联关系及其各种修饰描述的内容主要是软件对象之间的结构方面的特性, 泛化关系描述的是软件对象之间在结构和行为之间的继承关系, 而依赖关系则代表类之间语义上的依赖性。 如果两个类之间存在着依赖关系 就意味着被依赖的类的语义的变化会导致依赖的类的语义的变化。 在描述语义上互相有联系的类之间的关系时, 首先考虑是否存在继承方面的关系或结构方面的关系, 并分别用对应的 泛化关系或 关联关系及其 修饰形态 进行描述 当类之间不宜于用这两种关系描述时 则考虑使用关联关系,关联关系主要强调的是类之间结果上的联系。只有当类之间不适宜用这两种关系进行描述时,才考虑使用依赖关系。 由于前两种关系的语义描述比较清晰和精确, 所以为依赖关系对软件对象之间关系的描述留下了比较大的自由度。 随着软件分析和设计的深入和细化,将发现可以用依赖关系及其变体 描述各种软件对象之间的微妙的语义连接。 在UML中,对依赖关系共设置了17种变体,以描述软件对象之间各种互相依赖的情形。 依它们连接对象的不同,可以分为六类: 1)、类或对象之间的关系; 2)、类和对象之间的关系; 3)、模型包之间的关系; 4)、用例之间的关系; 5)、对象之间的关系; 6)、建模元素和模型之间的关系。 1)、类或对象之间的关系 连接具有相同抽象级别的建模元素 例如: 可以连接两个对象、连接两个类 但不用于连接类和对象。 1、绑定依赖 依赖关系的图形表示是一个带虚线的箭头。 这个箭头连接了两个建模元素。 依赖关系的箭头指向的通常称为供应类或目标类。 箭头的起始端的那个类通常被称为是客户类或源类。 绑定依赖(bind)是依赖关系的一个变体, 它的箭头指向一个模版类, 箭头的起始端的类是一个实例化的类, 标明源类是目标类的实例化(图11.1)。 2、推导依赖 在许多情形下,经常有一个类的两个属性是互不独立的。 例如:有一个类Person,它代表一个人的相关信息, 其中有一个属性是生日BirthDate, 另一个属性是年龄Age。 显然,Age是可以从birthdate计算的出的。 为了表明一个类或对象可以从另一个类计算得出,可以用推导依赖(derive)表示。 推导依赖是依赖关系的变体。 如果两个类或对象之间存在着推导依赖,则表明此依赖关系中的源可以通过计算从目标得出。 如果在依赖关系的图形符号上放置了变体标记derive就代表此依赖关系是推导依赖(图11.2)。 3、友元依赖 友元是诸如C++等程序设计语言里用到的一个概念, 它表示第一个类赋予其之外的第二个类以访问第一个类的所有成员变量和成员函数的权限。 类之间的友元关系用友元依赖(friend)描述。 友元依赖是依赖关系的一个变体,它用依赖关系的图形符号把两个类连接起来,表明源类被赋予了访问目标类的各种属性和操作的权限。 在类图上,如果一个依赖关系上面被放置了变体标记friend,就代表此依赖关系是一个友元依赖。 在某些UML工具(如ROSE)中,为了便于正向工程,友元依赖的设置是在依赖关系的规格说明(specification)对话框内设置的。 例如,在图11.3中,类color和line存在着友元依赖关系,这表明类color可以访问类line中的私有属性,如: color,start_x等。 4、细化依赖 软件模型元素的规格说明的详细程度是逐步细化的。 在分析阶段,模型是概念性的。 当进入分析和建造阶段时, 模型的详细程度会逐步加大, 最终趋于完备。 为了达到UML模型的分析、说明、建造和建档的目的, 处于不同时期的设计模型都应该保存在软件系统的完整模型中间。 因此,同一模型元素的不同详细度的规格说明及其图形表述可以 存放在不同的模型包内, 以备不同目的的交流之用。 为了在类图上表示同一模型的不同详细度的规格说明,可以用细化依赖(refine)来表示。 细化依赖是依赖关系的一个变体,它表示源类的详细程度高于目标类的详细程度。 如果在依赖关系上放置有细化变体标
文档评论(0)