《面向对象的系统分析与设计》构件图与部署图.ppt

上传人:小飞机 文档编号:5904702 上传时间:2023-09-01 格式:PPT 页数:54 大小:1.81MB
返回 下载 相关 举报
《面向对象的系统分析与设计》构件图与部署图.ppt_第1页
第1页 / 共54页
《面向对象的系统分析与设计》构件图与部署图.ppt_第2页
第2页 / 共54页
《面向对象的系统分析与设计》构件图与部署图.ppt_第3页
第3页 / 共54页
《面向对象的系统分析与设计》构件图与部署图.ppt_第4页
第4页 / 共54页
《面向对象的系统分析与设计》构件图与部署图.ppt_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《《面向对象的系统分析与设计》构件图与部署图.ppt》由会员分享,可在线阅读,更多相关《《面向对象的系统分析与设计》构件图与部署图.ppt(54页珍藏版)》请在三一办公上搜索。

1、实现图,实现图显示系统实现时的一些特性,包括构件图和配置图。构件图显示代码本身的逻辑结构配置图显示系统运行时刻的结构,构件图,构件图,构件 是系统的可替代的物理部分,是定义了良好接口的物理实现单元,它是系统中可以替代的部分,每个构件体现了系统设计中的特定类的实现,良好定义的构件不直接依赖于其它构件,而是依赖于其它构件所支持的接口,在这种情况下,系统中的一个构件可以被支持相同的接口的其它构件所替代。,构件与类,从构件的定义上看,构件和类十分相似:二者都有名称,都可以实现一组接口,都可以参与依赖、泛化和关联关系,都可以被嵌套,都可以有实例,都可以参与交互。构件与类的区别:(1)类表示是对实体的抽象

2、,而构件是对存在于计算机中的物理部件的抽象。也就是说,构件是可以部署的,而类不能部署。(2)构件属于软件模块,而非逻辑模块,与类相比,它们处于不同的抽象级别。甚至可以说,构件就是由一组类通过协作完成的。(3)类可以直接拥有操作和属性,而构件仅拥有可以通过其接口访问的操作。,构件分类,按照构件在系统中的角色,把构件分为3种类型:1)配置构件:组成系统的基础构件,是执行其它构件的基础平台。如,操作系统、java虚拟机(JVM)、数据库管理系统都属于配置构件。2)工作产品构件:这类构件主要是开发过程的中间产物,如,创建构件时的源代码文件及数据文件都属于工作产品构件。这些构件并不是直接地参与系统运行。

3、3)执行构件:在运行时创建的构件。例如由DLL实例化形成的COM+对象、Servlets、XML文档都属于执行构件。,7,构件图提供当前模型的物理视图,对系统的静态实现视图建模。构件图显示一个系统物理设计时,构件所映射的类和对象的配置。一个构件图可以表示一个系统全部或者部分的构件体系。从组织内容看,构件图显示软件构件的组织以及构件之间的依赖关系,包括源代码构件、二进制代码构件以及可执行构件。构件图是对OO系统物理方面建模的2个图之一,构件图的概念,构件图,构件图(component diagram):描述构件及其相互关系的图。构件之间是依赖关系。通常,构件图包含3种元素:构件、接口和依赖关系。

4、每个构件实现一些接口,并使用另一些接口。,构件图的概念,构件图主要用于描述各种软件构件之间的依赖关系,例如,可执行文件和源文件之间的依赖关系,所设计的系统中的构件的表示法及这些构件之间的关系构成了构件图。与所有UML的其它图一样,构件图可以包括注释、约束、包。,10,构件图的作用,构件图的基本目的是:使系统人员和开发人员能够从整体上了解系统的所有物理部件,同时,也使我们知道如何对构件进行打包,以便交付给最终客户,最后,构件图显示了被开发系统所包含的构件之间的依赖关系。构件图从软件架构的角度来描述一个系统的主要功能,如系统分成几个子系统,每个子系统包括哪些类、包和构件,它们之间的关系以及它们分配

5、到哪些节点上等。使用构件图可以清楚地看出系统的结构和功能。方便项目组的成员制定工作目标和了解工作情况,同时,最重要的一点是有利于软件的复用。从宏观的角度上,构件图把软件看作多个独立构件组装而成的集合,每个构件可以被实现相同接口的其它构件替换。,12,构件的表示,构件是定义了良好接口的物理实现单元,是系统中可替换的物理部件。构件可以是源代码构件、二进制构件或一个可执行的构件在UML中,构件用一个左侧带有突出两个小矩形的矩形来表示。,带版型的构件,构件的表示,标识接口的构件表示法对于一个构件而言,它有两类接口:提供(provided)接口和所需(required)的接口。标识接口的构件表示方法也有

6、3种。,标识接口的构件3种表示方法,构件间的关系,构件有两组接口,供给接口为其它构件提供服务,需求接口使用其它构件提供的服务因此,构件间的关系就是依赖关系我们把提供服务的构件称为提供者,把使用服务的构件称为客户在UML中,构件图中依赖关系的表示方法与类图中依赖关系相同,都是一个由客户指向提供者的虚线箭头。,15,接口,接口用于描述构件所提供的服务的一组操作集合,指定了构件的外部可见操作。构件和接口之间的关系叫做实现关系。可以通过接口访问一个构件。接口和构件之间的关系分为两种:实现关系(Realization)依赖关系(Dependency)在图中,接口和构件之间用实线连接表示实现关系;而接口和

7、构件之间用虚线箭头连接则表示依赖关系。,16,构件与接口之间的关系:实现关系和依赖关系,导出接口,导入接口,为了便于构件之间替换,建议使用以上依赖关系,构件图分类,构件图可以分为两种:简单构件图和嵌套构件图。1 简单构件图我们可以把相互协作的类,组织成一个构件。利用构件图可以让软件开发者知道系统是由哪些可执行的构件组成的,这样,以构件为单位来看待系统时,让开发者清楚的看到软件系统的体系结构。,构件图分类,(1)用户界面层:采用JSP页面实现用户界面。我们通过构造型Java Server page来表示构件。这一部分的构件,主要由边界类组成。(2)业务逻辑层:在实现上主要采用了JavaBean技

8、术。使用构造型JavaBean来表示这一层的构件。这些构件主要由实体类组合而成。(3)数据访问层:该层将所有的数据访问操作封装在一个JavaBean中(如果是大型应用,可能封装成为EJB),标明了它是JDBC的一个实现。在这个例子中,对可执行程序的体系结构进行了建模,以帮助开发者了解可执行程序模块之间的关联关系,从而从宏观上认识系统。,构件图分类,销售管理服务器中包含两个构件:一个是处理收银机发送来的销售消息,完成交易处理;另一个是财务接口,负责处理与财务系统的连接,这时交易处理程序就委托财务接口来完成与财务系统的数据传送。在上图中,销售管理服务器所提供的接口和所需的接口与构件连接的点上,都有

9、一个小矩形,它表示的是“端口”。这些端口将通过带箭头的实线与具体的子构件连接,表示该接口的提供者或需求者。,嵌套构件图,2 嵌套的构件图使用嵌套的构件图来表示构件的内部结构。,构件图应用,构件图描述了软件的组成和具体结构,表示了系统的静态部分。它能够帮助开发人员从总体上认识系统。常采用构件图来描述可执行程序的结构、源代码、物理数据库组成和结构。1 对可执行程序建模通过构件图,可以清晰地表示出各个可执行文件、链接库、数据库、帮助文件和资源文件等其它可运行的物理构件之间的关系。在对可执行程序的结构进行建模时,通常应遵从以下原则:(1)首先标识要建模的构件。(2)理解和标识每个构件的类型、接口和作用

10、。(3)标识构件间的关系。,构件图应用,例如,有一个语音呼叫中心程序callcenter.exe,使用了三汇的语音卡的驱动程序shp_a3.dll,以及相应的TTS(文本转语音)引擎sh_ttsu.dll,现在我们用构件图来描述这三个构件的关系。,构件图应用,2 对源代码进行建模,构件图应用,例如:singal.h是一个头文件,被interp.cpp和signal.cpp引用,其中interp.cpp还引用了另一个头文件irq.h,而device.cpp又对interp.cpp有编译依赖关系。那么用构件图表示它们间的关系。,部署图,部署图概述,部署图(Deployment diagram)也称

11、配置图、实施图,是对OO系统进行物理建模的图.部署图用来显示系统中计算结点的拓朴结构和通信路径与结点上运行的软构件等.一个系统只有一个部署图,部署图通常用于理解分布式系统.部署图由体系工程师、网络工程师、系统工程师等描述.,部署图概述,部署图,部署图(deployment diagram,也称为配置图)是用来显示系统中软件和硬件的物理架构。从部署图中,可以了解到软件和硬件组件之间的物理关系以及软件组件在处理节点上的分布情况。使用部署图可以显示运行时系统的结构,同时还表明了构成应用程序的硬件和软件元素的配置和部署方式。,部署图的概念,部署图描述了系统中包括的计算机和其他的硬件设备,如这些计算机和

12、设备的位置以及它们之间是如何进行相互连接的,即,部署图描述系统中的硬件节点及节点之间如何连接的图。,部署图的概念,部署图的作用一个UML部署图描述了一个运行时的硬件结点,以及在这些结点上运行的软件构件的静态视图。部署图显示了系统的硬件,安装在硬件上的软件,以及用于连接异构机器之间的中间件。创建一个部署模型的目的包括 描述系统投产的相关问题 描述系统与生产环境中的其它系统间的依赖关系,这些系统可能是已经存在,或是将要引入的。描述一个商业应用主要的部署结构。设计一个嵌入系统的硬件和软件结构。描述一个组织的硬件/网络基础结构。部署图的组成元素部署图的组成元素包括节点、节点间的连接。连接把多个节点关连

13、在一起,构成一个部署图。,部署图的表示,部署图包含两个部分:节点和连接。1 节点节点代表一个运行时计算机系统中的硬件资源。节点通常拥有一些内存,并具有处理能力。例如一台计算机、一个工作站等其它计算设备都属于节点。在UML中,节点用一个立方体来表示。每一个节点都必须有一个区别于其他节点的名称。节点的名称是一个字符串,位于节点图标的内部。节点的名称有2种表示方法:简单名字和带路径的名字。简单名字就是一个文字串;带路径的名字指在简单名字前加上节点所属的包名。下面的立方体表示一个节点,其名称为Node,部署图的表示,按照节点是否有计算能力,把节点分为两种类型:处理器和设备,分别用构造型Processo

14、r和构造型Device表示处理器和设备。(1)处理器(Processor)处理器是能够执行软件、具有计算能力的节点。(2).设备(Device)设备是没有计算能力的节点,通常情况下都是通过其接口为外部提供某种服务,例如打印机、IC读写器,如果我们的系统不考虑它们内部的芯片,就可以把它们看作设备。,处理器节点的表示,设备节点的表示,部署图的表示,(3)节点中的构件当某些构件驻留在某个节点时,可以在该节点的内部描述这些构件。对于一张部署图而言,最有价值的信息就是节点上的内容,也就是安装在节点中的构件。对于这些构件,可以直接写在节点中,也可以用构件表示,或用UML2.0规范推荐的artifact、d

15、atabase、deploymentSpec等构造型来表述构件。,部署图的表示,对节点内驻留的构件描述,部署图的表示,(1)直接描述:例如在B/S客户端中,必须安装“Web浏览器”(并通过约束说明需要IE6.0以上版本或Firefox1.5以上版本)。通常,对于不是由开发团队生成的制品,例如IIS服务器这种描述方式,也可以通过“约束”来描述它。(2)artifact构造型:用来表示文件、构件等制品,例如IIS服务器上的swWeb.dll、BusinessRule.dll、DateAccess.dll及C/S客户端上的se.exe。(3)database构造型:用来表示一个实际的数据库(对应Or

16、acle的scheme),例如在数据库服务器上的sw。(4)deploymentSpec构造型:用来表示部署描述,通常对关键的配置文件进行建模,还可以在构造块中直接指出具体参数的值。对于这些构造型,可以使用依赖关系来表示他们之间的相互关系,甚至可以表示跨节点之间的依赖(入DataAccess.dll到sw之间的依赖连接)。另外,在图中,使用了一个directory构造型,这并不是一个UML标准构造型,它只是使用者的一个扩展。,部署图的表示,节点属性象类一样,可以为一个节点提供属性描述,如,处理器速度、内存容量、网卡数量等属性。可以为节点其提供启动、关机等操作属性。节点与构件的区别节点表示一个硬

17、件部件,构件表示一个软件部件。两者有许多相同之处,例如二者都有名称,都可以参与依赖、泛化和关联关系,都可以被嵌套,都可以有实例,都可以参与交互。但它们之间也存在明显的区别:构件是软件系统执行的主体,而节点是执行构件的平台;构件是逻辑部件,而节点表示是物理部件,在物理部件上部署构件。,部署图的表示,2 连接部署图用连接表示各节点之间通信路径,连接用一条实线表示。对于企业的计算机系统硬件设备间的关系,通常关心的是节点之间是如何连接的,因此描述节点间的关系一般不使用名称,而是使用构造型描述。下图是节点之间连接的例子。,部署图应用,在实际的应用中,部署图主要用在设计和实现两个阶段。1.设计阶段在这一阶

18、段,部署图主要用来描述硬件节点以及节点之间的连接。上图并没有描述节点内的构件。在设计阶段,还没有创建出软件构件。,仅描述硬件节点的部署图,部署图应用,2.实现阶段在实现阶段,已经生产出了软件构件,因此,可以把构件分配给对应的节点。实际应用当中,部署图主要用来对嵌入式系统、客户机/服务器系统、分布式系统进行建模,而且能够起到很好的作用。,描述了节点内部署的构件,部署图应用,3嵌入式系统建模如果采用部署图对嵌入式系统进行了建模,通过部署图,硬件工程师和软件开发者之间就能做更好的交流。在对嵌入式系统进行建模时,重点在于描述处理器和设备之间的关系;可以考虑对处理器和设备采取用更直观的图标。例如,一个航

19、标RTU的嵌入式系统的部署图示。,描述嵌入式系统的部署图,部署图应用,4客户机/服务器和分布式系统建模当开发的软件要运行在多台计算机上时,就必须将软件构件以合理的方式部署在各个节点上。其中客户机/服务器结构就是一种典型的分布式系统模型,它包含三层B/S/S结构和两层C/S结构。对于大型分布式系统可能还包括负载均衡、集群等部署结构,部署图的引入能够很好地对其进行表述。,部署图建模技术,对系统中的结点建模。对结点之间的关联关系建模。对驻留在结点上的构件建模。对驻留在结点上的构件之间的依赖关系建模。对建模的结果进行精化和细化。,确定结点和结点间的关联系,IC卡读卡器:提供给员工刷卡用,它将收集刷卡的

20、时间信息,传给应用系统,并存入数据库中应用服务器:用来负责从IC卡读卡器中收集信息,并对管理人员提供员工设置、考勤查询等功能数据库服务器:用来存储考勤数据,由于该系统比较小,因此在物理上可以与应用服务器合并客户端软件:提供给管理人员使用,连接应用服务器,完成相应操作,确定结点内的构件和构件间的依赖关联,客户端:需使用Windows操作系统,安装客户端软件(假设名为KaoQing.exe)服务器:包含一个用Delphi开发的服务端软件(设为KqServer.exe),它需要与Access数据库交互(设为KaoQing.mdb),并且需要通过IC卡读卡器的驱动程序(假设名为cardReader.d

21、ll)来实现与IC卡读卡器通信IC卡读写器:对于本系统而言,它是不执行构件的设备,不过为了方便员工,安装了3个。,45,部署图的建模,如何建模部署图 创建部署图含有如下4项任务:1)添加节点。2)添加通信关联。3)添加构件和其他内容,如类和对象。4)添加依赖关系。,46,部署图的建模,例 建模一个网上扫描系统的部署图。其详细的需求如下所示:扫描仪通过内部的PCI总线连接到网卡。需要编写代码来控制扫描仪,代码驻留在扫描仪内部。扫描仪通过无线网卡与插入到Web服务器KONG的无线hub通信,服务器通过HTTP协议向客户PC机提供Web页。Web服务器安装定制的Web服务器软件,通过专用数据访问构件

22、与产品数据库交互。在客户的PC机上将提供专用的浏览器软件,它运行产品查询插件,只与定制的Web服务器通信。,47,部署图的建模,1添加节点 第一项任务是确定系统的节点。下图演示了上面需求列表中提及的所有硬件。,48,部署图的建模,2.添加通信关联 为确定的节点添加通信关联。从需求列表中可以确定如下所示通信关联:扫描仪通过内部的PCI总线连接到网卡。网卡通过无线电波与无线hub通信。无线hub通过USB连接到名为KONG的服务器实例。KONG Web服务器通过HTTP与客户构件通信。,49,部署图的建模,50,部署图的建模,3添加构件、类和对象 接下来需要确定构件和其他内容,如类和对象。需求列表

23、显示下列构件可以用于图中:控制扫描仪的代码(名为ScanEngine构件)定制的Web服务器软件(名为WebSeverSoft构件)专用的数据访问构件(名为DataAccess构件)专用的浏览器软件(名为Browser构件)产品查询插件(名为ProductLookupAddIn构件)另外,前面还提到了产品数据库,但是它不必像前面的几个项目那样也建模为软件构件。我们要把产品数据库建模为一个类实例ProductDB。,51,10.5 部署图的建模,52,部署图的建模,4添加依赖关系 实现部署图的最后一步是添加构件和对象之间的依赖关系。它们具有下列依赖关系:WebServerSoft构件依赖于Dat

24、aAccess构件。DataAccess构件依赖于ProductDB对象。专用浏览器软件只通过运行查询插件与定制的Web服务器交互,它提供了下面的依赖关系:Browser构件依赖于WebServerSoft构件。ProduciLookupAddln构件依赖于Browser构件。,面向对象分析与设计&UML,53,10.5 部署图的建模,小结,构件表示一个具体的物理元素构件图用于显示一组构件以及它们之间的相互关系使用构件图可以对源代码文件之间、可执行文件之间的相互关系建模部署图可以显示系统中计算结点的拓扑结构和通信路径、结点上运行的软构件等。部署图中的结点分处理机和设备两种类型部署图中的连接表示的是两个硬件之间的关联关系,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号