当前位置: 首页 > news >正文

组件图【图4】--☆

 

 

一:定义

1,组件图又称为构件图(Component Diagram) 。组件图中通常包括组件、接口,以及各种关系。组件图显示组件以及它们之间的依赖关系,它可以用来显示程序代码如何分解成模块或组件。一般来说,组件就是一个实际文件,可以有以下几种类型:
   >源代码组件:一个源代码文件或者与一个包对应的若干个源代码文件。
   >二进制组件:一个目标码文件,一个静态的或者动态的库文件。
   >可执行组件:在一台处理器上可运行的一个可执行的程序单位,即所谓可执行程序。

2,组件图可以用来显示编译、链接或执行时组件之间的依赖关系,以及组件的接口和调用关系。

 

3,组件间的关系有两种:泛化关系和依赖关系,如果两个不同组件中的类存在泛化关系或依赖关系,那么两个组件之间的关系就表示为泛化关系或依赖关系。

4,对于由多个组件组成的大系统来说,组件图非常重要。

 

 

二:实例

 

三:组成元素

   >组件:系统中可以替换的部分,一般对应一个实际文件,如exe、jar、dll等文件,它遵循并提供了一组接口的实现。

   >接口:一组操作的集合,它指明了由类或组件所请求或者所提供的服务。

   >部件:组件的局部实现。

   >端口:被封装的组件与外界的交互点,遵循指定接口的组件通过它来收发消息。

   >连接件:在特定语境下组件中两个部件之间或者两个端口之间的通信关系。

   >供(Provided)接口与需(Required)接口。

 

四:组件图绘制技巧

1,当需要把系统分成若干组件(构件),希望借助接口或组件将系统分解为低层结构并表示其相互关系时需要使用组件图。

2,在绘制组件图时,应该注意侧重于描述系统的静态实现视图的一个方面,图形不要过于简化,应该为组件图取一个直观的名称,在绘制时避免产生线的交叉。

3,注意组件的粒度,粒度过细的构件将导致系统过于庞大,会给版本管理带来问题。

 

 

 

五:案例分析

1,在某销售终端系统中,客户端收银机可以通过销售消息接口与销售服务器相连。考虑到网络可能不可靠,需要提供一个消息队列组件。在网络环境畅通时收银机直接与服务器相连;如果网络不可靠则与消息队列交互,当网络可用时队列再与服务器交互。服务器分解为两个主要组件,主要包括事务处理组件和记账驱动组件,记账驱动组件需要和记账系统交互。绘制系统组件图。

 

2,某Java EE项目组件图

 

 

---------------------
作者:椰子Tyshawn
来源:CSDN
原文:https://blog.csdn.net/litianxiang_kaola/article/details/53968947
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/Ph-one/p/9947097.html

相关文章:

  • 部署图【图5】--☆
  • 顺序图【6】--☆☆
  • 用例图【图7】--☆
  • 四则运算表达式分解,前中后缀表达式(栈的应用)
  • 嵌入式 Linux 对内存的直接读写(devmem)
  • C语言三个结束符:EOF ‘\0’ '\n'
  • Ymodem协议(参考STM32)
  • android uboot中的mmc命令
  • stm32最简单的实现BootLoader
  • 变参标准函数的重新封装,如printf
  • 导数与梯度
  • linux /Android 平台下使用 i2c-tools
  • 在android下使用i2c tools
  • ubuntu查看文件和文件夹大小
  • matlab的三维绘图和四维绘图
  • CentOS 7 修改主机名
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • Docker入门(二) - Dockerfile
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • Effective Java 笔记(一)
  • java 多线程基础, 我觉得还是有必要看看的
  • Java|序列化异常StreamCorruptedException的解决方法
  • java2019面试题北京
  • javascript数组去重/查找/插入/删除
  • Js基础知识(一) - 变量
  • Protobuf3语言指南
  • Web设计流程优化:网页效果图设计新思路
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 初识MongoDB分片
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 基于组件的设计工作流与界面抽象
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 面试遇到的一些题
  • 使用权重正则化较少模型过拟合
  • 双管齐下,VMware的容器新战略
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 智能合约Solidity教程-事件和日志(一)
  • 追踪解析 FutureTask 源码
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (南京观海微电子)——COF介绍
  • (四)Android布局类型(线性布局LinearLayout)
  • (一)Neo4j下载安装以及初次使用
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)视频码率,帧率和分辨率的联系与区别
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .libPaths()设置包加载目录
  • .net Stream篇(六)
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...