UML建模(组件图)

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官方一个例子

image.png

如图在网上商城系统有三个子系统组成: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子系统的接口服务。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Felix的技术分享

Stetho的通信原理

2893
来自专栏魏艾斯博客www.vpsss.net

服务器安全狗 Linux 安装教程

3225
来自专栏源码之家

一键安装桌面及VNC

5136
来自专栏散尽浮华

linux下sendmail邮件系统安装操作记录

电子邮件系统的组成: 1)邮件用户代理(Mail User Agent , MUA),MUA是一个邮件系统的客户端程序,它提供了阅读,发送和接受电子邮件的用户接...

4339

Kubernetes服务网格(第8部分):Linkerd作为入口控制器

Linkerd的设计目的是使service-to-service的内部通信在应用程序中安全、快速和可靠。然而,这些目标同样适用于edge。在这篇文章中,我们...

2476
来自专栏Linyb极客之路

运维管理之防止"rm -rf /" 误删除

大概懂点linux的程序员都知道“rm -rf /”意味着擦除根路径“/”下挂载的所有内容而无需询问。以前一个主管说过,在你不充分了解某个工具的原理的时候,不要...

1114
来自专栏.Net移动开发

关于发布IOS的方法(本人亲身经历折腾很久终于成功)

前情提要:这位.NET程序员兄弟使用Smobiler开发了一个APP,尽管Smobiler云平台已经最大限度的简化了iOS应用的打包操作,但仍绕不开苹果公司强制...

1381
来自专栏安全领域

物联网 MQTT 服务质量级别

原文地址:https://dzone.com/articles/internet-things-mqtt-quality

6067
来自专栏Java后端技术栈

QQ登录网站接入功能实现--非官方文档搬运

最近第一次使用QQ登录功能,期间遇到这种问题,在网上找了很多资料,大多都是官方的搬运,并没有真正的干料,可能是个人能力问题,遇到了各种麻烦,折腾了几天,最终弄好...

1214
来自专栏FreeBuf

经验分享 | Burpsuite抓取非HTTP流量

使用Burp对安卓应用进行渗透测试的过程中,有时候会遇到某些流量无法拦截的情况,这些流量可能不是HTTP协议的,或者是“比较特殊”的HTTP协议(以下统称非HT...

80710

扫码关注云+社区