第12讲UML组件图与部署图·什么是组件图·什么是部署图·如何建模组件图与部署图【学习目标】【学习目标】为什么要建模组件图和部署图?组件图用来建模系统的各个组件,包括源代码文件、二进制文件、脚本文件、可执行文件之间的关系,它们是通过功能或者文件组织在一起的。使用组件图可以帮助读者了解某个功能位于软件包的哪一位置,以及各个版本的软件各包含哪些功能。部署图用来帮助读者了解软件中的各个组件驻留在什么硬件位置,以及这些硬件之间的交互关系。总之,组件图和部署图可以用来帮助设计系统的整体架构。12.1.1组件1.组件的概念组件(component):是一个相对独立的可装配的物理块,一般作为一个独立的文件存在。组件具有确定的接口,相互之间可以调用,组件之间存在依赖关系。2.组件的类型•部署组件。是运行系统需要配置的组件,如:DLL、EXE、COM+、CORBA组件、EJB、动态Web页、数据库表等。•工作产品组件。如:JAVA、C++等源代码文件、数据文件等,这些组件可以产生部署组件。•执行组件。即系统执行后得到的结果组件。组件和类之间的不同点:组件和类之间的不同点:1、类是逻辑抽象,组件是物理抽象,即组件可以位于节点(node)上。2、组件是对其它逻辑元素,如类,协作(collaboration)的物理实现。即,组件是软件系统的一个物理单元。3、类可以有属性和操作;组件通常只有操作,而且这些操作只能通过组件的接口才能使用。3.组件的表示在UML中,组件使用在左侧带有两个小矩形的大矩形表示:组件和接口之间的关系组件和接口之间的关系•组件和接口之间的两种关系:dependency和realization。例:dependencyrealization使用接口的是依赖关系,实现接口的是实现关系。组件与接口依赖关系依赖关系演示两个组件之间的依赖特性。依赖关系使用在一端带有开放箭头的短划线表示。箭头从依赖的对象指向被依赖的对象。例如下图所示。(组件A依赖组件B)UML本身提供了一些固有的依赖关系定义。其表示如下图所示。该示例指示Project.vbp文件同时包含Global.bas文件和Co11ection.cls文件。虽然“includes”比较常用,但是用户也可以使用其他固化名称来描述它们之间的关系。如“imports”和“implements”,见下图所示。包含组件一个组件可以包含在其他的组件中。其标记符可在其他组件中建模组件来表示。下例演示了Inventory组件由3个独立的组件DataAccess,BusinessLogic和Userinterface组成,如下图所示。12.1.2组件图组件图(componentdiagram):描述...