第9章 包图.pptVIP

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 包图 在对一个大型的软件系统建立模型时往往需要面对和处理大量的模型元素,如对象类、接口、组件、节点、图等。 UML的包是一种对模型元素进行成组组织的通用机制,它把语义上相近的可能一起变更的模型元素组织在同一个包里,便于理解复杂的系统,控制系统结构各部分间的接缝。 包可以用于组织一个系统模型。一个系统的框架、模型、子系统等也都可以看作是特殊的包。 第9章 包图 9.1 包 9.1 包 9.1.1 包的语义和表示 运用包可以把语义上相近的可能一起变更的模型元素组织在同一个包里,对包中的元素作为一个整体对待,并且控制它们的可视性和存取。 包的图标是一个大矩形(内容 框)的左上角带一个小矩形( 名字框),如图9.1所示。 包的名字可是一个简单名或路 径名。在包名之后或之下,可 用括在花括号中的文字(约束) 说明包的性质,如“{abstract}” 、“{version}”等。 9.1.1 包的语义和表示 一个包可以拥有一个或多个模型元素,包括对象类、接口、组件、节点、协同、Use Case、图等,甚至拥有其他包。 所有UML的模型元素都可以放入包内。通常,一个包拥有的是对象类或其他的包。 包与它所含的模型元素之间的关系是一种组合联系,即一个包由一个或多个模型元素组成。一个包消失了,它所拥有的全部模型元素也随之消失。 不同包的模型元素可以同名,但在同一个包中的模型元素不能同名。 9.1.1 包的语义和表示 包的模型元素名前可以有可视性标记,分别用“+”、“#”、“-”表示可视性为“公共”、“保护”、“私用”,如图9.2所示。 包只是一种组织模型元素的容器,它没有实例,只有内含的内容,即对象类、接口等模型元素。 9.1.1 包的语义和表示 包纯粹是一种概念性的建模工具,它与组件不同。包只在软件的开发过程中存在,它类似一个有标签的文件夹,其中包含有包的名字和内容。而组件是系统的组成部分,既存在于软件的开发过程中,也存在于系统的运行期间。 包内的模型元素具有较强的内聚性,不同的包的元素之间的耦合性很弱。 9.1.2 包的嵌套 包可以拥有其他包作为包内的元素,子包又可以拥有自己的子包,这样可以构成一个系统的嵌套结构,以表达系统模型元素的静态结构关系。 包的嵌套可以清晰地表现系统模型元素之间的相互关系。但嵌套不宜过深,包的嵌套层数一般以2~3层为宜。 9.1.2 包的嵌套 例:图9.3是包的嵌套的一个示例,它表示一个通用图形编辑器的组织结构。 包与它的元素的组成关系可以用树形结构表示,这对于表达概念模型是有用的。例如,图9.4是图9.3的树形表示,只不过它不能表达子包之间的依赖联系。 9.1.2 包的嵌套 例:包的嵌套示例,如图9.3所示。 9.1.2 包的嵌套 例:包中元素的树形结构示例,如图9.4所示。它是图9.3的树形表示。 9.2 包的联系 9.2.1 依赖与输入依赖 包与包之间的联系主要有两种:依赖(尤其是输入依赖)和泛化。 两个模型元素之间存在着依赖是指一个元素的定义的改变会引起另一个元素发生相应改变。 两个包之间存在着依赖通常是指这两个包所含的模型元素之间存在着一个或多个依赖。 对于由对象类组成的包,如果在两个包的任何对象类之间存在着任何一种依赖,则这两个包之间存在着依赖。 9.2.1 依赖与输入依赖 包的依赖联系同样是用一条虚箭线表示,虚箭线从依赖包(源)指向独立包(目标)。 包的依赖联系没有传递性。 例: “订货”包与“顾客”包之间存在着依赖,如图9.5所示。 9.2.1 依赖与输入依赖 例:包的嵌套与泛化示例,如图9.5所示。 9.2.1 依赖与输入依赖 包的依赖联系可以加上许多构造型规定它的语义,其中最常见的一种依赖是输入依赖。 输入依赖是包与包之间的一种存取依赖关系。输入指允许一个包的元素存取另一个包的元素。输入依赖是单向的。输入依赖没有传递性。 包的公共部分,即其可视性为“公共”的模型元素,称为包的输出。包的输出只对另一个与它有输入依赖的包才是可视的、可存取的。 输入依赖的表示方法是在虚箭线上标有构造型Import,箭头从输入方的包指向输出方的包。 9.2.1 依赖与输入依赖 例:包的输入依赖示例,如图9.6所示。 9.2.2 泛化 泛化联系表达事物的一般与特殊的关系。如果两个包之间存在有泛化联系,意指其中的特殊性包必须遵循一般性包的接口。 与类的继承相同,特殊包从一般包继承其所含的公共类,并且可以重载和添加自己的类。特殊包可以代替一般包,用在一般包使用的任何地方。 例如,在图9.5中包“数据库接口”与包“Oracle接口”、“Sybase接口”之间存在泛化联系。其中,“数据库接口”包是一般包,“Ora

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档