3.9 组件图
组件是系统中遵从一组接口且提供实现的物理部件,通常指系统实施和运行时类的物理实现,表现为系统软件文件,包括程序源文件、动态链接库文件、系统配置文件等。组件图(Component Diagram)展现了系统软件文件及文件之间的组织和依赖关系,属于面向对象系统物理建模中使用的实现图,在系统设计阶段绘制,是帮助程序开发人员理解系统的有力工具。在UML中,组件图由组件和组件之间的关系构成。
3.9.1 组件
组件是系统中可替换的代码模块,使用左侧带有两个小矩形的大矩形框表示,如图3-37所示。组件分为三种类型。
图3-37 组件
1)部署组件:是构成一个可执行系统所必需的组件,如DLL代码、EXE代码、Active控件、Web page、数据库表及JavaBean等模块。
2)工作产品组件:是指在开发阶段使用的组件,它包括源程序文件、数据文件等,一般不直接构成可执行系统。
3)执行组件:这类组件是作为一个正在执行的系统的结果而被创建的,如由DLL实例化形成的COM+对象。
一个组件可以包含多个组件,也可以被包含在其他组件中。
3.9.2 关系
关系是事件之间的联系,组件图中的组件之间存在着依赖关系,用虚箭线表示。
案例3-8
某图书管理系统的类分为4个部分:用户接口模块,主要负责系统和用户的交互,包括Frame类,Dialog类等;业务对象模块,主要负责处理系统中的业务计算,如借书、还书等功能的具体操作;数据存储模块,主要负责处理对数据的存储;通用工具模块,包括系统中的通用函数。
其中业务对象模块具体包括5个类:Item类,即书目类,表示一本实际存在的书籍或杂志;Loan类,即借书业务类,将借阅者和图书馆关联起来,一个Loan对象表示借出的一本书;BorrowerInfomation类,即借阅者信息类,表示一个借阅者;Title类,表示一种书或一种杂志,如《Java编程思想》就是一种书,用1个title表示,如果有两本这样的书,则需要用两个Item表示;Reservation类,即预定信息类,表示一个预定信息。在这5个类中,Item类和Loan类之间互相依赖,Loan类和BorrowerInfomation类之间互相依赖,BorrowerInfomation类和Reservation类之间互相依赖,Reservation类和Title之间互相依赖,Title和Item类之间互相依赖。
组件是类的物理实现,根据以上对类的描述,可得出该图书管理系统的业务对象组件图,如图3-38所示。
图3-38 某图书管理系统的业务对象组件图