包图构件图与部署.ppt
《包图构件图与部署.ppt》由会员分享,可在线阅读,更多相关《包图构件图与部署.ppt(69页珍藏版)》请在三一办公上搜索。
1、1,第10章 包图、构件图与部署图(Package/Component/Deployment Diagram),冯国奇,2,为什么要包,在面向对象软件开发的视角中,类显然是构建整个系统的基本构造块。但是对于庞大的应用系统而言,其包含的类将是成百上千,再加上其间复杂的关联关系、多重性等,必然是大大超出了人们可以处理的复杂度。这也就是引入了“包”这种分组事物构造块。,3,包的概念,包是维护和控制系统总体结构的重要建模工具,有助于方便理解和处理整个模型。分解 是软件开发中控制软件复杂性的重要手段。在OO方法中,需要考虑如何把相关的类放在一起。把语义相近并倾向于同一变化的元素组织起来加入同一个包中,以
2、便于理解和处理整个模型。,4,为什么要包,包的作用是:1)对语义上相关的元素进行分组2)定义模型中的“语义边界”3)提供配置管理单元4)在设计时,提供并行工作的单元5)提供封装的命名空间,其中所有名称必须唯一,5,包的概念,6,包的表示,UML中,用文件夹符号来表示一个包。包由一个矩形表示,它包含2栏。下面是最常见的几种包的表示法。,7,包的表示,包的名称每个包必须有一个与其他包相区别的名称。标识包名称的格式有两种:简单名和全名。其中,简单名仅包含包一个简单的名称;全名是用该包的外围包的名字作为前缀,加上包本身的名字。Rose常用表示方法中,其包名UI就是一个简单名。而包才是一个完整带路径的名
3、称,表示UI这个包是位于System.Web命名空间中的。,8,包的表示,包的元素在一个包中可以拥有各种其他元素,包括类、接口、构件、节点、协作、用例,甚至是其他包或图。这是一种组成关系,意味着元素是在这个包中声明的,因此一个元素只能属于一个包。每一个包就意味着一个独立的命名空间,因此,两个不同的包,可以具有相同的元素名,但由于所位于的包名不同,因此其全名仍然是不同的。像类中的属性和方法一样,包中的元素也有可见性,包内元素的可见性控制了包外部元素访问包内部元素的权限。,9,包的表示,包的可见性有3种:“+”表示“public”“#”表示“protected”“-”表示“private”,10,
4、包的表示-包的构造型,为了表示包的新特性,用构造型来描述包的新特征。system:表示整个系统。subsystem:表示正在建模的系统中某个独立的子系统。facade:只是某个其它包的视图,它主要用来为其它一些复杂的包提供简略视图。stub:是一个代理包,它服务于某个其他包的公共内容,这通常应用于分布式系统的建模中。framework:用来表示一个框架的,框架是一个领域内的应用系统提供可扩充模板的体系结构模式。,11,包图中的关系,包图中的关系有2种:依赖关系、泛化关系。1、依赖关系:分为4种。把箭尾端的包称为客户包,把箭头端的包称为提供者包。,12,包图中的关系,use关系:use关系是一种
5、默认的依赖关系,说明客户包(箭尾端的包)中的元素以某种方式使用提供者包(箭头端的包)的公共元素,也就是说客户包依赖于提供者包。如果没有指明依赖类型,则默认为USE关系。import关系:最普遍的包依赖类型,说明提供者包的命名空间将被添加到客户包的命名空间中,客户包中的元素也能够访问提供者包的所有公共元素。access关系:如果只想使用提供者包中的元素,而不想将两个包合并,则应使用该关系。在客户包中必须使用路径名,才能访问提供者包中的所有公共元素。trace关系:想表示一个包到另一个包的历史发展,则需要使用trace关系来表示.,13,包图中的关系,例如,有两个USE依赖,Client包将通过S
6、erver包来完成Order的存储,而Server包使用包来实现数据库的存储。,例如,Client包引用了(import)了Rule包,Rule包又引用了GUI包。同时,这还表示Client包间接引用了GUI包。,14,包图中的关系,2、泛化关系包间的泛化关系类似于类间的泛化关系,使用一般包的地方,可以用特殊包代替。在系统设计中,对某一个特定的功能,有多种实现方法。例如,实现多数据库支持;实现B/S和C/S双界面。这时就需要定义一些高层次的“抽象包”和实现高层次功能的“实现包”。,15,泛化关系,例如,说明GUI有两种风格:一种是基于WinForm的C/S风格,一种是WebForm的B/S风格
7、。,16,创建包图,绘制包图的基本过程主要有三个步骤:第一,寻找包;第二,确定包之间的关系;第三,标出包内元素的可见性。绘制包图的“最小化系统间的耦合关系”的原则:最大限度减少包之间的依赖,包封装时,避免包之间的循环依赖;最小化每个包的public、protected元素的个数,最大化每个包中private元素的个数。,17,创建包图,1标识候选包的原则:把类图中关系紧密的类放到一个包中;在类继承类层次中,把不同层次的类放在不同的包中。也可以把用例模型作为包的来源。然而,用例横跨分析包是非常普遍的一个用例可以由几个不同包中的类实现。,18,创建包图,2调整候选包在已经识别一组候选包后,然后减少
8、包间依赖,最小化每个包的public、protected元素的个数,最大化每个包中private元素的个数。做法是:在包间移动类;添加包或删除包。,19,创建包图,良好包结构的关键是包内高内聚,包间低耦合。通常,当创建分析包模型时,应该尽量使包模型简单。获得正确的包集合比使用诸如包泛化和依赖构造型的特征更加重要,这些特征可以以后再添加,仅当使用诸如包泛化和依赖构造型的特征使得模型更加容易理解时,才使用这些包整理技术。除了保持简单,还应该避免嵌套包。物件在嵌套包结构中埋藏得越深,模型变得越晦涩。,20,包图建模,将一个框架的所有类放置在相同的包中将相同继承层次的类放在相同的包中彼此间有聚集或组成
9、关系的类通常放在相同的包中彼此合作频繁的类、信息能够通过UML顺序图和UML协作图反映出来的类,通常放在相同的包中确定包与包之间的依赖关系或泛化关系,21,设计包的原则,重用等价原则(Reuse Equivalency Principle)把类放入包中时,应考虑把包作为可重用的单元.共同闭包原则(Common Closure Principle)把需要同时改变的类放在同一个包中.共同重用原则(Common Reuse Principle)不会一起使用的类不要放在同一个包中.非循环依赖原则(Acyclic Dependencies Principl)包之间的依赖关系不要形成循环.,22,构件图,
10、23,构件图,构件是系统的可替代的物理部分,是定义了良好接口的物理实现单元,它是系统中可以替代的部分;每个构件体现了系统设计中的特定类的实现,良好定义的构件不直接依赖于其它构件,而是依赖于其它构件所支持的接口,在这种情况下,系统中的一个构件可以被支持相同的接口的其它构件所替代。,24,构件图,接口是被软件或硬件所支持的一个操作集合,每个接口有一个名称,通过使用命名的接口,可以避免在系统的各个构件之间直接发生依赖关系,有利于新构件的替换。从构件组成上看,每个构件定义了2组接口(一组供给接口,一组需求接口),构件为供给接口提供了提供了功能实现部分。,25,对于一个构件而言,它包含5个要素:1)接口
11、声明:每个构件包含两组接口,一组是供给接口,表明它能提供的服务,一组是需求接口,表明它需要的服务。2)接口实现:构件是一个物理部件,它实现了供给接口声明的服务。3)构件标准:在创建构件时,每一个构件必须遵从某种构件标准。4)封装方法:也就是构件遵从的封装标准。5)部署方法:一个构件可以有多种部署方法。,26,构件与类,从构件的定义上看,构件和类十分相似:二者都有名称,都可以实现一组接口,都可以参与依赖、泛化和关联关系,都可以被嵌套,都可以有实例,都可以参与交互。构件与类的区别:类表示是对实体的抽象,而构件是对存在于计算机中的物理部件的抽象。也就是说,构件是可以部署的,而类不能部署。构件属于软件
12、模块,而非逻辑模块,与类相比,它们处于不同的抽象级别。甚至可以说,构件就是由一组类通过协作完成的。类可以直接拥有操作和属性,而构件仅拥有可以通过其接口访问的操作。,27,构件分类,按照构件在系统中的角色,把构件分为3种类型:1)配置构件:组成系统的基础构件,是执行其它构件的基础平台。如:操作系统、java虚拟机(JVM)、数据库管理系统都属于配置构件。2)工作产品构件:这类构件主要是开发过程的中间产物,如:创建构件时的源代码文件及数据文件都属于工作产品构件。这些构件并不是直接地参与系统运行。3)执行构件:在运行时创建的构件。例如由DLL实例化形成的COM+对象、Servlets、XML文档都属
13、于执行构件。,28,构件图的概念,构件图提供当前模型的物理视图,对系统的静态实现视图建模。构件图显示一个系统物理设计时,构件所映射的类和对象的配置。一个构件图可以表示一个系统全部或者部分的构件体系。从组织内容看,构件图显示软件构件的组织以及构件之间的依赖关系,包括源代码构件、二进制代码构件以及可执行构件。构件图是对OO系统物理方面建模的2个图之一。,29,构件图的概念,构件图主要用于描述各种软件构件之间的依赖关系,例如,可执行文件和源文件之间的依赖关系,所设计的系统中的构件的表示法及这些构件之间的关系构成了构件图。与所有UML的其它图一样,构件图可以包括注释、约束、包。,30,构件图的概念,3
14、1,构件图的概念,32,构件图的作用,构件图的基本目的是:使系统人员和开发人员能够从整体上了解系统的所有物理部件,同时,也使我们知道如何对构件进行打包,以便交付给最终客户,最后,构件图显示了被开发系统所包含的构件之间的依赖关系。构件图从软件架构的角度来描述一个系统的主要功能,如系统分成几个子系统,每个子系统包括哪些类、包和构件,它们之间的关系以及它们分配到哪些节点上等。,33,构件图的作用,使用构件图可以清楚地看出系统的结构和功能。方便项目组的成员制定工作目标和了解工作情况,同时,最重要的一点是有利于软件的复用。从宏观的角度上,构件图把软件看作多个独立构件组装而成的集合,每个构件可以被实现相同
15、接口的其它构件替换。,34,构件的表示,构件是定义了良好接口的物理实现单元,是系统中可替换的物理部件。构件可以是源代码构件、二进制构件或一个可执行的构件。在UML中,构件用一个左侧带有突出两个小矩形的矩形来表示。,带版型的构件,35,构件的名称,每个构件都必须有一个不同于其他构件的名称。构件的名称是一个字符串,位于构件图标的内部构件名称通常是从现实的词汇表中抽取出来的短名词或名词短语,并依据目标操作系统添加相应的扩展名,例如java和dll。,36,构件的表示,没有标识接口的构件表示法没有标识接口的构件的图形表示方法分三种:表示为标有构造型component的矩形;在矩形的右上角放置一个构件图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 构件 部署

链接地址:https://www.31ppt.com/p-6245771.html