第10章 包图 构件图 与部署图.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文档。上传文档
查看更多
第10章 包图、构件图与部署图 ( Package/ Component /Deployment Diagram) 冯国奇 gqfeng@ 为什么要包 在面向对象软件开发的视角中,类显然是构建整个系统的基本构造块。但是对于庞大的应用系统而言,其包含的类将是成百上千,再加上其间复杂的关联关系、多重性等,必然是大大超出了人们可以处理的复杂度。这也就是引入了“包”这种分组事物构造块。 包的概念 包是维护和控制系统总体结构的重要建模工具,有助于方便理解和处理整个模型。 分解 是软件开发中控制软件复杂性的重要手段。 在OO方法中, 需要考虑如何把相关的类放在一起。 把语义相近并倾向于同一变化的元素组织起来加入同一个包中,以便于理解和处理整个模型。 为什么要包 包的作用是: 1)对语义上相关的元素进行分组 2)定义模型中的“语义边界” 3)提供配置管理单元 4)在设计时,提供并行工作的单元 5)提供封装的命名空间,其中所有名称必须唯一 包的概念 包的表示 UML中,用文件夹符号来表示一个包。包由一个矩形表示,它包含2栏。下面是最常见的几种包的表示法。 包的表示 包的名称 每个包必须有一个与其他包相区别的名称。标识包名称的格式有两种:简单名和全名。 其中,简单名仅包含包一个简单的名称;全名是用该包的外围包的名字作为前缀,加上包本身的名字。 Rose常用表示方法中,其包名UI就是一个简单名。而包System.Web.UI才是一个完整带路径的名称,表示UI这个包是位于System.Web命名空间中的。 包的表示 包的元素 在一个包中可以拥有各种其他元素,包括类、接口、构件、节点、协作、用例,甚至是其他包或图。这是一种组成关系,意味着元素是在这个包中声明的,因此一个元素只能属于一个包。 每一个包就意味着一个独立的命名空间,因此,两个不同的包,可以具有相同的元素名,但由于所位于的包名不同,因此其全名仍然是不同的。 像类中的属性和方法一样,包中的元素也有可见性,包内元素的可见性控制了包外部元素访问包内部元素的权限。 包的表示 包的可见性有3种: “+”表示“public” “#”表示“protected” “-”表示“private” 包的表示-包的构造型 为了表示包的新特性,用构造型来描述包的新特征。 《system》:表示整个系统。 《subsystem》:表示正在建模的系统中某个独立的子系统。 《facade》:只是某个其它包的视图,它主要用来为其它一些复杂的包提供简略视图。 《stub》:是一个代理包,它服务于某个其他包的公共内容,这通常应用于分布式系统的建模中。 《 framework》:用来表示一个框架的,框架是一个领域内的应用系统提供可扩充模板的体系结构模式。 包图中的关系 包图中的关系有2种:依赖关系、泛化关系。 1、依赖关系:分为4种。把箭尾端的包称为客户包,把箭头端的包称为提供者包。 包图中的关系 《use》关系:《use》关系是一种默认的依赖关系 ,说明客户包(箭尾端的包)中的元素以某种方式使用提供者包(箭头端的包)的公共元素,也就是说客户包依赖于提供者包。如果没有指明依赖类型,则默认为《USE》关系。 《import》关系:最普遍的包依赖类型,说明提供者包的命名空间将被添加到客户包的命名空间中,客户包中的元素也能够访问提供者包的所有公共元素。 《access》关系:如果只想使用提供者包中的元素,而不想将两个包合并,则应使用该关系。在客户包中必须使用路径名,才能访问提供者包中的所有公共元素。 《trace》关系:想表示一个包到另一个包的历史发展,则需要使用《trace》关系来表示 . 包图中的关系 包图中的关系 2、泛化关系 包间的泛化关系类似于类间的泛化关系,使用一般包的地方,可以用特殊包代替。 在系统设计中,对某一个特定的功能,有多种实现方法。例如,实现多数据库支持;实现B/S和C/S双界面。这时就需要定义一些高层次的“抽象包”和实现高层次功能的“实现包”。 泛化关系 创建包图 绘制包图的基本过程主要有三个步骤:第一,寻找包;第二,确定包之间的关系;第三,标出包内元素的可见性。 绘制包图的“最小化系统间的耦合关系”的原则: 最大限度减少包之间的依赖,包封装时,避免包之间的循环依赖;最小化每个包的public、protected元素的个数,最大化每个包中private元素的个数。 创建包图 1.标识候选包的原则: 把类图中关系紧密的类放到一个包中; 在类继承类层次中,把不同层次的类放在不同的包中。 也可以把用例模型作为包的来源。然而,用例横跨分析包是非常普遍的——一个用例可以由几个不同包中的类实现。 创建包图 2.调整候选包 在已经识别一组候选包后,然后减少包间依赖,最小化每个包的public、protec

文档评论(0)

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

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

1亿VIP精品文档

相关文档