包图郭.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
包图郭

第7章 包图 7.1 概述 7.2 包 7.3 包之间的关系 7.4 包图建模技术 7.5 实例——图书馆管理系统的包图 7.1 概述 随着软件越来越复杂,一个程序往往包含了数百个类。 那么如何管理这些类就成了一个需要解决的问题。 一种有效的管理方式是将类进行分组,将功能相似或相关的类组织在一起,形在若干个功能模块。 在UML中,对类进行分组时使用包。 包可以将任何模型元素分组。 7.2 包 包是UML中唯一的分组事物。 包的内容:可以是模型中的任意元素。如:类、接口、构件、节点、用例、包等。 包仅在建模时有意义,在系统运行时并不存在包的实例。 这点和类不一样,类在运行时会有实例(即对象)存在。 包在建模中的作用 包是维护和控制系统总体结构的重要建模工具。 把语义相近并倾向于同一变化的元素组织起来加入同一个包中,以便于理解和处理整个模型。 大多数面向对象的语言都提供了类似UML包的机制,用于组织及避免类间的名称冲突。 例如Java中的包机制,C#、C++中的命名空间。用户可以使用UML包为这些结构建模。 7.2 包 7.2.1 名称 7.2.2 拥有的元素 7.2.3 可见性 7.2.4 引入与输出 7.2.5 标准元素 7.2.1 名称 每个包必须有一个与其他包相区别的名称。 两种形式:简单名和路径名。 7.2.2 拥有的元素 包拥有的元素:类、接口、组件、节点、协作、用例、图以及其他包。 一个模型元素不能被一个以上的包所拥有。 如果包被撤销,其中的元素也要被撤销。 一个包形成了一个命名空间。 (在不同的包中可以拥有名字相同的不同元素) 一个包中的元素使用本包中的其它元素只需要元素名称,一个包中的元素要使用另一个包中的元素需要指出元素所在的包及名称。 大多数面向对象的语言都提供了类似UML包的机制,用于组织及避免类间的名称冲突。 例如Java中的包机制,C#、C++中的命名空间。用户可以使用UML包为这些结构建模。 UML有两种形式表示一个包的内容 7.2.3包中元素可见性 包中元素的可见性用来控制包外部的元素访问包内元素的访问权限。 包内公有的(public) “+” 的元素可以被任何引入该包的包内元素访问 包内受保护的(protected) “#”的元素只能被此包在继承关系上子包内元素访问。 包内私有的(private)“-”的元素只能被同一包内元素访问。 7.2.4 包的输出 输出(export): 包的公共部分称为输出。 7.2.5 包的版型 7.2.5 包的版型 7.3 包之间的关系 1.包之间的依赖关系关系 如果两个包中的元素之间有依赖关系,则这两个包之间就存在依赖关系。 包和包之间可以存在依赖关系,但这种依赖关系没有传递性。 导入依赖(import)和访问依赖(access) 包之间的依赖关系关系 1.引入(导入)(import)依赖: 当使用某个包中的元素时,如果未将包导入,则需要使用包名加元素名的形式引用指定的元素。 当一个包将另一个包导入时,该包里的元素能够使用被导入包里的元素,而不必在使用时通过包名指定其中的元素。 在导入关系中,被导入的包称为目标包。要在UML中显示导入关系,需要画一条从包连接到目标包的依赖性箭头,再加上字符import。 引入import允许一个源包中的元素单向访问目标包中的元素,导入包时,只有目标包中的public元素(输出)可见的。 一个包的输出部分仅对显式地引入这个包的其它包中元素是可见的。 包之间的依赖关系关系 2. 引入(导入)和访问依赖 包中的元素具有可见性,导入关系本身也有可见性。导入可以是公共导入也可以是私有导入。 公共导入意味着被导入的元素在将它们导入的包中具有public可见性,私有导入则表示被导入的元素在将它们导入的包中具有私有可见性。 公共导入使用import表示,私有导入使用access表示。 私有导入access也叫访问依赖。 类似于OO中继承的方式。 引入和访问依赖 注意: 包之间的复杂的依赖关系会导致软件脆弱,因为一个包里的改变会造成依赖它的其它包被破坏。 如果包之间的依赖性具有循环关系,应以各种方式切断循环。 2.泛化: 包之间可以建立泛化关系,子包继承了父包中可见性为public和protected的元素。 包之间的泛化关系类似于类的泛化关系,遵循替代原则,即特殊包可以应用到一般包被使用的地方。 3.细化关系 只有当一个包和另一个包包含相同的元素,却带来更多细节的时候,形成了细化关系。 4.实现关系 可以在包和接口之间建立实现关系。 在面向对象开发中,经常将GUI(用户图形界面)相

文档评论(0)

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

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

1亿VIP精品文档

相关文档