面向对象系统的物理建模由组件图和部署图组成。组件图可以帮助用户了解每个功能位于软件包的位置以及它们之间的关系;部署图用来帮助用户了解软件中的各个组件驻留的硬件位置以及这些硬件之间的交互关系。
1.1 概念
组件图中包含3种元素,即组件、接口和依赖关系。组件图通过这些元素描述软件的各个组件及它们之间的依赖关系,以及组件的接口和调用关系。在UML中,组件图是系统实现视图的图形表示,与其他图类似,组件中可以包含注释和约束,也可以包含包或者子系统,将系统中的组件组合起来就能表示完整的系统实现视图。
图1 人事管理组件图
1.2 组件
组件是定义良好接口的物理实现单元,是系统中可替换的物理部件。通常情况下,组件表示由类、接口等逻辑元素打包而成的物理模块。组件包括源代码文件、可执行文件、库及数据库等。组件用一个矩形表示,一侧有两个突出的小矩形,组件名称在矩形中。
在软件系统建模的过程中,组件的类型有3种,即配置组件、工作产品组件和执行组件。
(1)配置组件:该组件是运行系统需要配置的组件,是形成或者执行文件的基础。例如操作系统、Java虚拟机或者数据库管理系统等。
(2)工作产品组件:模型、源代码和用于创建配置组件的数据库文件,是配置组件的来源。例如UML图、Java类、JAR文件、动态链接库及数据库表等。
(3)执行组件:该组件是运行时创建的组件,是最终可运行的系统产生的允许结果。例如Enterprise Java Bean、Servlet、HTML和XML文档等。
1.3 依赖关系
依赖关系是表示组件之间存在的关系。依赖关系使用一端有开放箭头的短划线表示。箭头从依赖的对象指向被依赖的对象。
图2 组件间的依赖关系
1.4 接口
组件可以通过其他组件的接口来使用其他组件中定义的操作。通过使用命名的接口,可以避免在系统中各个组件之间发生依赖关系,有利于组件的替换。与类图中的接口相同,组件图中的接口也使用圆圈表示,接口和组件之间用实线连接表示实现关系。接口和组件之间用虚线箭头连接表示依赖关系。
组件的接口分为两种,即导入接口和导出接口。其中导入接口供访问操作的组件使用,导出接口供提供操作的组件使用。
图3 导入导出接口
上图中的电器组件实现了接口,对于组件电器来说,它是导出接口,对于组件电视来说,它是导入接口。
1.5 组件图与类图
组件在很多方面与类相同,二者都有名称和依赖关系,可以被嵌套,可以参与交互,同时还可以实现一组接口,但是组件和类之间也存在区别。
(1)组件可以是一个或几个类在文件中的存在
(2)组件表示物理上的模块
(3)类是逻辑上的抽象,组件是客观上存在的物理抽象,因此组件可以存在于节点上而类不能
(4)类可以直接拥有属性和操作,而组件通常只拥有必需通过接口访问的操作
(5)类图侧重于系统的逻辑设计,而组件图侧重于系统的物理设计及实现
原文:http://blog.csdn.net/studynote/article/details/22671619