组件图是做什么用的?
组件图是用来描述各个模块之间的相互关系的图。
每个模块都有各自的功能职责,但是他们之间相互是如何交流、依赖的呢,这时候就需要用到组件图来描述。
组件图的组成
- 组元
这是一个基本的组件图组成单位,可以是一个类,也可以是一个模块,也可以是一个系统,每个组元有自己的行为功能,可以对外提供接口,有的也需要依赖其他组元帮忙实现抽象接口
组元.png
上图中,语音识别服务对外提供了getPort的功能实现,而网上法庭则正好需要依赖一个getPort的功能来实现自己的功能,两人一拍即合。 -
依赖关系
组件图.png
如上图所示,我们有一个Account的组件,内部由两个组元来实现,Orders组件需要一个Account功能实现,而正好Customers对外提供了一个Account的功能实现。
-
连接关系
连接关系.png
组元之间除了依赖关系,还有连接关系,如上图所示,Orders和Customers是相互关联的关系,可能双方相互拥有对方的实例对象,也可能一方拥有另一方的实例对象。
官方实例
官方实例.png这里来看下一个官方实例
如上图所示:
- 有三个子系统组件:WebStore、Warehouses、Accounting
- warehouse对外提供了Search Inventory(搜索存货)、Manage Inventory(管理存货)的功能实现,而这两个实现都由内部的Inventory组件来实现
- Accounting对外提供manage Orders、manage customer的功能实现,但是依赖一个manage inventory,这个manage inventory功能由Warehouse来提供支持,accounting内部由orders、customer两个组件来实现,orders的manage customers依赖于customers的实现
- webstore子系统,对外提供productSearch、OnlineShopping和userSession的功能实现,但是又依赖于search inventory、manage orders和manage customers。webstore内部由searchEngine、shopping cart、authentication三个组件来实现
从上面的实例分析可以看出,分析组件图,最好是从外至内,从大到小来分析。
网友评论