第8章+包图讲述.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章包图讲述

包 定义:A package is a general-purpose mechanism for organizing elements into groups. 包的作用: 用于组织模型中的元素以便更容易理解; 对包中元素进行可见性控制。 说明: 包名分simple name和path name两种形式。 例: Camera Sensors::Vision::Camera 包中可以包含其它建模元素,如class, interface, component, node, use case, package, … , 等。 包可以嵌套,但嵌套层次不要过深。 包没有实例,即在系统运行时见不到包。 子系统概念:版型为subsystem的包。 包之间的泛化关系。例: 包的应用 对建模元素进行分组。 在Rose中,包可以提供一些特殊的功能,如 在数据建模中,用包表示模式和域包;在数据模型和对象模型之间的转换是以包为单位进行的; 在Web建模中,包可以表示某一虚拟目录(virtual directory),在该目录下的所有web元素都在这个包中; 包在Rose中还可以作为控制单元(controlled unit),以方便团队开发和配置管理。 设计包的原则 在建立包时,应把概念上和语义上相近的模型元素纳入一个包。好的设计要求体现高内聚、低耦合的特性。在设计包时,应遵循以下一些原则: 重用等价原则 共同闭包原则 共同重用原则 非循环依赖原则 重用等价原则(Reuse Equivalency Principle, REP) 指的是把类放入包中时,应考虑把包作为可重用的单元。 这种设计原则和用户的使用心理有关,对于可重用的类,其开发可能比较快,开发人员会不断地推出这些可重用类的升级版本,但对于可重用类的使用者来说,不会随着可重用类的每次升级而修改自己的系统,不过,在需要升级的时候又会要求很容易地用新版本的可重用类替换旧版本的可重用类,因此设计包的一个原则是把类放在包中时要方便重用,方便对这个包的各个版本的管理。 共同闭包原则(Common Closure Principle, CCP) 指的是把那些需要同时改变的类放在一个包中。 例如,如果一个类的行为和/或结构的改变要求另一个类作相应的改变,则这两个类应放在一个包中;或者在删除了一个类后,另一个类变成多余的,则这两个类应放在一个包中;或者两个类之间有大量的消息发送,则这两个类也应放在一个包中。 共同闭包原则就是要提高包的内聚性、降低包与包之间的耦合度,希望在改动或升级一个包的时候要尽量少影响别的包。 共同重用原则(Common Reuse Principle, CRP) 指的是不会一起使用的类不要放在同一包中。 这个原则和包的依赖关系有关。如果元素A依赖于包P中的某个元素,则表示A会依赖于P中的所有元素。也就是说,包P中的任何一个元素做了修改,则都要检查元素A是否还能使用包P,即便所修改的元素和A完全没有关系。 修改了一个对用户实际上毫无影响的类,却逼得用户不得不重新检查是否还可以同样方式使用新的包是不合理的。 说明: 重用等价原则、共同闭包原则、共同重用原则这3个原则事实上是相互排斥的,不可能同时被满足,它们是从不同使用者的角度提出的,重用等价原则和共同重用原则是从重用人员的角度考虑的,而共同闭包原则是从维护人员的角度考虑的。 共同闭包原则希望包越大越好,而共同重用原则却要求包越小越好。 在开发的早期,可以共同闭包原则为主,而当系统稳定后,可以对包做一些重构,这时要以重用等价原则和共同重用原则为主。 非循环依赖原则(Acyclic Dependencies Principle, ADP) 指的是包之间的依赖关系不要形成循环。也就是说不要有包A依赖于包B,包B依赖于包C,而包C又依赖于包A这样的情况出现,如果确实无法避免出现包之间的循环依赖,则可以把这些有循环依赖关系的包放在一个更大的包中,以消除这种循环依赖关系。 包图建模风格 建模风格1:使包具有内聚性。 放在包中的任何东西,当和包中的其余内容一起考虑时应该有意义。 一个好的判断包是否具有内聚性的方法是看能否给包起一个简短的、描述性的名字,如果不能,则很可能把几个不相关的东西放在一个包中了。 建模风格2:垂直分层类包图。 包位置的放置反映了系统体系结构的逻辑分层。按照惯例,一般是采用自上而下的方式画分层结构。 建模风格3:在包上用版型指明体系结构的层次。 把设计按照体系结构的层次进行组织是非常常见的,比如用户界面层、业务/领域层、持久/数据层、基础设施/系统层等进行组织。 例:可以用版型user interface、domain、infrastructure和database等表示不同层的包。 例题1 例题2 例题2 例题3 例题

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档