UML建模(组件图)
阿里巴巴长期招聘Java研发工程师p6,p7,p8等上不封顶级别,有意向的可以发简历给我,注明想去的部门和工作地点:1064454834@qq.com
欢迎关注微信公众号:技术原始积累 获取更多技术干货
7、组件图
组件图是为了展示组元(components),组元提供的接口(provided inerfaces)和需要调用的接口(required interfaces),端口(ports)之间关系的一种图,组件图是主要被用于基于组件开发时候用来描述SOA系统。
__7.1 元素介绍 __
-
组元(Component)
组元是代表一个系统中一个模块的类,并且组元的表现(比如实现)在其所在的环境上下文中是可被替换的,组元有自己的行为,比如对外提供接口和使用其他组件接口,这些接口潜在的是通过端口(ports)暴露或者使用。
image.png
如图语音识别服务组元对外提供getPort接口供其他组元调用,网上法庭说明自己需要使用getPort接口来实现自己的功能。
-
端口(port)
端口表述了一个一个类与它所在的环境或者其他类的一个交互点,
image.png
如图Accounting组元内部的Customers提供Account服务,而Orders组元则使用Account服务。
-
连接线(Connector)
连接线是用来连接两个或者多个实例使他们直接能够进行交流协作。主要用来连接两个端口直接的交流
image.png
__7.2 一个例子 __
下面分析下uml官方一个例子
如图在网上商城系统有三个子系统组成:webstore,accounting,warehouses;
WebStore子系统包含三个组员,搜索引擎,购物车,认证系统。搜索引擎组元通过对外提供了一个ProductSearch接口运行其他组件搜索和查看商品,另外这接口是搜索引擎组件使用库存组件提供的Search Inventory接口来实现。购物车组元则把调用订单组元的的Manage Orders接口的功能封装下自己对外提供了onllineShopping接口,认证组元则允许用户创建账号,登陆或者退出,并且绑定订单到具体用户。
accounting子系统对外提供了Manage Orders 和 Manage Customers接口,并且通过代理连接到子系统内部的Orders和customers组元,。Orders组元调用了Customers组元的Manager customers接口,Customers调用了Accounts组元的Manager Accounts模块。
Warehouses子系统提了Search Inventory and Manage Inventory组件,并且通过依赖方式是要了Accounting子系统的接口服务。
欢迎关注微信公众号:技术原始积累 获取更多技术干货
image.png