1、第第1111章章 构件图构件图( (Component Component DiagramsDiagrams) ) 构件图构件图构件图概述构件图概述构件构件(组件组件)的表示和分类的表示和分类构件间的依赖关系构件间的依赖关系一、一、 概述概述构件图描述了软件的各种构件和它们之间构件图描述了软件的各种构件和它们之间的依赖关系。的依赖关系。构件是定义了良好接口的构件是定义了良好接口的物理实现单元物理实现单元,是系统中可替换的物理部件。每个构件体是系统中可替换的物理部件。每个构件体现了系统设计中的特定类的实现现了系统设计中的特定类的实现。构件可以是源代码构件、二进制构件或一构件可以是源代码构件、二进
2、制构件或一个可执行的构件。个可执行的构件。构件图示例:供销存管理系统构件图示例:供销存管理系统构件图应用构件图应用 对可执行程序建模可以清晰地表示出各个可执行文件、链接库、数据库、帮助文件和资源文件等其它可运行的物理构件之间的关系。语音呼叫中心程序语音呼叫中心程序callcenter.exe 对源代码进行建模对源代码进行建模可以清晰地表示出软件的所有源文件之间的关系,可以清晰地表示出软件的所有源文件之间的关系,有了这样的构件图,开发者能更好地理解各个有了这样的构件图,开发者能更好地理解各个源代码文件之间的依赖关系。源代码文件之间的依赖关系。构件图应用构件图应用 构件图的基本目的是构件图的基本目
3、的是:使系统人员和开发人员能够使系统人员和开发人员能够从整体上了解系统的所有物理构件。从整体上了解系统的所有物理构件。 同时同时,也使我们知道如何对构件进行打包,以交付也使我们知道如何对构件进行打包,以交付给最终客户。给最终客户。 构件图显示了所开发的系统的构件之间的依赖关构件图显示了所开发的系统的构件之间的依赖关系系.依赖关系符号依赖关系符号(-)表示构件之间的关系表示构件之间的关系.1. 构件的表示构件的表示每个构件定义了每个构件定义了2组接口组接口(一组是供给接口,表明它能提供的服务,一组是需求接口,表明它需要的服务).构件本身已经实现了供给接口声明的功能。构件本身已经实现了供给接口声明
4、的功能。表示构件图标的方法有两种:表示构件图标的方法有两种:在构件图标中没有标识接口在构件图标中没有标识接口在构件图标中标识了接口在构件图标中标识了接口二、二、 构件构件1) 没有标识接口的构件表示法第一种是表示为标有构造型component的矩形;第二种是在矩形的右上角放置一个构件图标(一个小矩形,并在左侧加上两个突出的更小的矩形);第三种是直接使用构件图标,但在UML2.0中已经不使用第三种方法了。2) 标识接口的构件表示方法也有3种2. 构件的种类构件的种类在对软件系统建模的过程中,存在在对软件系统建模的过程中,存在3种类种类型的构件:型的构件:源代码构件源代码构件二进制代码构件二进制代
5、码构件 可执行代码构件可执行代码构件 源代码构件(编译时构件)源代码构件(编译时构件)源代码构件也称为工作产品构件,是开发过程源代码构件也称为工作产品构件,是开发过程的产物。如包含源代码或数据的文件、的产物。如包含源代码或数据的文件、Web文文件、文档。件、文档。 二进制构件(连接时构件)二进制构件(连接时构件)源代码构件编译后产生的目标代码,如静态库源代码构件编译后产生的目标代码,如静态库或动态库。或动态库。 可执行构件(运行时构件)可执行构件(运行时构件)表示处理机上运行的一个可执行单元。数据库表示处理机上运行的一个可执行单元。数据库表也可看作运行时使用的构件。表也可看作运行时使用的构件。
6、 s i g n a l . h v e r s i o n = 3 . 5 s i g n a l . h v e r s i o n = 4 . 0 s i g n a l . h v e r s i o n = 4 . 1 i n t e r p . c p p s i g n a l . c p p v e r s i o n = 4 . 1 i r q . h signal.h version=3.5 signal.h version=4.0 signal.h version=4.1 signal.cpp version=4.1 interp.cpp device.cpp irq.h
7、 对源代码建模对源代码建模 对可执行文件和库建模对可执行文件和库建模 对表、文件和文档建模对表、文件和文档建模 三、三、 依赖关系依赖关系 把提供服务的构件称为提供者,把使用服务的构件称为客户 在在UML中,构件图中依赖关系的表示方法是一个由中,构件图中依赖关系的表示方法是一个由客户指向提供者的虚线箭头。客户指向提供者的虚线箭头。供应者不存在该客户就不能活动,或不能被完整供应者不存在该客户就不能活动,或不能被完整地定义或实现。地定义或实现。u通常,当一个构件被修改时,任何依赖于它的通常,当一个构件被修改时,任何依赖于它的构件可能也必须修改。构件可能也必须修改。u“使用使用”依赖依赖(没有注明的
8、依赖没有注明的依赖)是传递的。是传递的。1. 引入源代码引入源代码 Java中中, 可以在源文件中引入包可以在源文件中引入包 C+中中, 在文件中引入头文件在文件中引入头文件常见的依赖关系常见的依赖关系2.编译依赖编译依赖源文件和目标文件之间存在着依赖,源文件的任源文件和目标文件之间存在着依赖,源文件的任何改变必须重新编译并生成目标代码。何改变必须重新编译并生成目标代码。3. 档案文件和库档案文件和库(目标文件的集合,包含其他构件的构件,在(目标文件的集合,包含其他构件的构件,在java中为中为jar文件)文件)4. 编译依赖编译依赖当一个程序文件改变后,包含此文件的其它当一个程序文件改变后,
9、包含此文件的其它文件都可能需要重新编译。文件都可能需要重新编译。public class X private Y they;public class Y private X thex;u基于泛化的依赖基于泛化的依赖从子类到超类存在依赖;超类的改变可能从子类到超类存在依赖;超类的改变可能会影响子类。会影响子类。u类类A的操作接口中使用了类的操作接口中使用了类Bpublic class Apublic void anOperation(B theB)public class A private B alink;u类类A包含一个类型为包含一个类型为B类的属性类的属性p系统的设计要尽量避免循环依赖。系
10、统的设计要尽量避免循环依赖。这样可以由下向上访问它的构件,每次只考这样可以由下向上访问它的构件,每次只考虑一个构件。虑一个构件。库存控制系统的依赖图库存控制系统的依赖图 良好定义的构件不直接依赖于其它构件而良好定义的构件不直接依赖于其它构件而依赖于构件所支持的接口依赖于构件所支持的接口.在这种情况下在这种情况下,系系统中的一个构件可以被支持正确的接口的统中的一个构件可以被支持正确的接口的其它构件所替代其它构件所替代. 接口是被软件或硬件所支持的一个操作集接口是被软件或硬件所支持的一个操作集.通过使用命名的接口通过使用命名的接口,可以避免在系统的各可以避免在系统的各个构件之间直接发生依赖关系个构
11、件之间直接发生依赖关系.有利于新构有利于新构件的替换件的替换. 四、构件和接口四、构件和接口 第第12章章 配置图配置图/部署图部署图 配置图描述了运行软件的系统中硬件和软件的配置图描述了运行软件的系统中硬件和软件的物理架构。物理架构。配置图可以显示计算机节点的拓扑结构和通信配置图可以显示计算机节点的拓扑结构和通信路径、节点上执行的软件构件、硬件设备的配置。路径、节点上执行的软件构件、硬件设备的配置。 配置图中通常包含配置图中通常包含2个元素:个元素:节点(节点(Node)关联(关联(Association) 配置图示例: 节点是在运行时代表计算资源的的物理元素。 节点通常拥有一些内存,并具有
12、处理能力。 在UML中,节点用一个立方体来表示。 一、节点一、节点1 节点的种类节点的种类在实际的建模过程中,可以把节点分为两种类型:处理器(Processor):处理器是能够执行软件、具有计算能力的节点。 设备(Device):设备是没有计算能力的节点,通常情况下都是通过其接口为外部提供某种服务。 处理器(处理器(Processor)设备(设备(Device) 节点属性 象类一样,可以为一个节点提供属性描述,如,处理器速度、内存容量、网卡数量等属性。可以为节点其提供启动、关机等操作属性 。 2 节点中的配置节点中的配置 配置图可以将节点和构件结合起来,以建模处理资源和软件实现之间的关系。 当
13、构件驻留在某个节点时,可以将它建模在图上该节点的内部。 驻留在节点上的构件驻留在节点上的构件 对节点内驻留的构件描述 可以在节点和构件之可以在节点和构件之间添加一条表示依赖间添加一条表示依赖关系的虚线箭头,并关系的虚线箭头,并使用构造型来表示节使用构造型来表示节点对构件的包容。点对构件的包容。 二、二、 关联关联 配置图用关联表示各节点之间通信路径,配置图用关联表示各节点之间通信路径,表示为一条实线。表示为一条实线。 关联示例:关联示例:三、三、 部署图应用部署图应用3.1 设计阶段 在这一阶段,部署图主要用来描述硬件节点以及节点之间的连接,并没有描述节点内的构件。在设计阶段,还没有创建出软件
14、构图图12-8 仅描述硬件节点的部署图仅描述硬件节点的部署图3.2 实现阶段实现阶段 在实现阶段,已经生产出了软件构件,因此,我们可以把构件分配给对应的节点。四、 嵌入式系统建模实际应用当中,部署图主要用来对嵌入式系统、客户机/服务器系统、分布式系统进行建模,而且能够起到很好的作用。例如,一个航标RTU的嵌入式系统的部署图示。五、 配置图建模技术对系统中的节点建模。对系统中的节点建模。对节点之间的关联关系建模。对节点之间的关联关系建模。对驻留在节点上的构件建模。对驻留在节点上的构件建模。对驻留在节点上的构件之间的依赖关系建对驻留在节点上的构件之间的依赖关系建模。模。对建模的结果进行精化和细化。对建模的结果进行精化和细化。 图书馆管理系统的配置图图书馆管理系统的配置图DatabaseApplication ServerBusiness OperationInformation MaintenanceWeb Application