构件图

在UML中是通过构件图和部署图来表示单元的。它们描述了系统实现方面的信息,使系统具有可重用性和可操作性。

构件

在构件图中,将系统中可重用的模块封装成为具有可替代性的物理单元,我们称之为构件,它是独立的,是在一个系统或子系统中的封装单位,提供一个或多个接口,是系统高层的可重用的部件。

构件作为系统中的一个物理实现单元,包括软件代码(包括源代码、二进制代码和可执行文件)或者相应组成部分,例如脚本或命令行文件等,还包括带有身份标识并有物理实体的文件,如运行时的对象、文档、数据库等。

构件作为系统定义良好接口的物理实现单元,它能够不直接依赖于其他构件而仅仅依赖于构件所支持的接口。通过使用被软件或硬件所支持的一个操作集——接口,构件可以避免在系统中与其他构件之间直接发生依赖关系。在这种情况下,系统的一个构件可以被支持正确接口的其他构件替代。

一个构件实例用于表示运行时存在的实现物理单元和在实例节点中的定位,它有两个特征,分别是代码特征和身份特征。构件的代码特征是指它包含和封装了实现系统功能的类或者其他元素的实现代码以及某些构成系统状态的实例对象。构件的身份特征包含有身份和状态,我们称之为有身份的构件。一个有身份的构件是物理实体的物理包容器。

在UML中,标准构件使用一个左边有两个小矩形的长方形表示,构件名称位于矩形的内部。

虚包是一种只包含对其他包所具有的元素的构件。它被用来提供一个包中某些内容的公共视图。虚包不包含任何它自己的模型元素,它的图形表示形式如下图:

系统是组织起来以完成一定目的的连接单元的集合。在系统中,肯定有一个文件用来指定系统的入口,也就是系统程序的根文件,这个文件被称为主程序。它的图形表示形式如下图:

子程序规范和子程序体是用来显示子程序的规范和实现体的。子程序是一个单独处理的元素的包,我们通常用它代指一组子程序集,如下图:


任务规范和任务体用来表示那些拥有独立控制线程的构件的规范和实现体,如下图:

包规范与包体:

在系统实现过程中,构建之所以非常重要,是因为它再功能和概念上都比一个类或者一行代码强。典型地,构件拥有类的一个协作的结构和行为。在一个构件中支持了一系列的实现元素,如实现类,即构件提供元素所需的源代码。构件的操作和接口都是由实现元素实现的,当然一个实现元素可能被多个构件支持。每个构件通常具有明确的功能,它们通常在逻辑上和物理上有粘聚性,能够表示一个更大系统的结构或行为块。

构件图的含义

构件图是用来表示系统中构件与构件之间,以及定义的类或接口与构件之间关系的图。在构件图中,构件和构件之间的关系表现为依赖关系,定义的类或接口与类之间的关系表现为依赖关系或实现关系。

在UML中,构件与构件之间依赖关系的表示方式与类图中类与类之间依赖关系的表示方式相同,都是使用一个从用户构件指向它所依赖的服务构件的带箭头的虚线表示。如下图所示,其中“ComponentA”为一个用户构件,“ComponentB”为它所依赖的服务构件。

在构件图中,如果一个构件是某一个或一些接口的实现,则可以使用一条实线将接口连接到构件,如下图所示,实现一个接口意味着构件中的实现元素支持接口中的所有操作。

构件和接口之间的依赖关系是指一个构件使用了其他元素的接口,依赖关系可以用带箭头的虚线表示,箭头指向接口符号。


构件图通过显示系统的构件以及接口等之间的接口关系,形成系统的更大的一个设计单元。在以构件为基础的开发(Component Based Development,CBD)中,构件图为架构设计师提供了一个系统解决方案模型的自然形式,并且,它还能够在系统完成后允许一个架构设计师验证系统的必须功能是否由构件来实现的,这样确保了最终系统将会被接收。

UML--构件图详解相关推荐

  1. UML概述及UML图详解

    ​ UML概述 一.UML简介 (一)UML (Unified Modeling Language)为面向对象软件设计提供统一的.标准的.可视化的建模语言.适用于 描述以用例为驱动,以体系结构为中心的 ...

  2. UML图详解(四)对象图

    一.概念 对象图是一个系统的详细状态在某一时刻的快照. 是对象类图的实例,也称为"实例图". 对象图描述系统的某一瞬间,表达系统的对象在该时刻的具体状态(属性和操作). 二.详解 ...

  3. 常用的UML建模详解

    UML主要包括图表中的十一种,那在本次的介绍中,只讲解活动图.状态机图.顺序图. 种类 UML图 作用 结构图 类图 主要用来业务概念模型分析,在需求分析中必不可少 对象图 一般开发人员会使用,产品经 ...

  4. SVG与UML图详解

    一.SVG 可缩放矢量图形(SVG)是W3C的推荐标准,它使用XML描述两维图形结构和图形应用,可以在Web浏览器.手持设备或移动电话等多种上显示.目前稳定版本为1.1版,最新的版本是以草案形式存在的 ...

  5. UML图详解(五)组件图

    一.概念 组件图(Component Diagram)又称为构件图,他描述的是在软件系统中遵从并实现一组接口的物理的.可替换的软件模块. 构件图 = 构件(Component) + 接口(Interf ...

  6. UML建模详解(1)—初识UML建模

    UML建模简介:       UML(Unified Modeling Language的缩写),也称统一建模语言.是用来做软件建模的.不光是在软件的设计阶段用到,在软件的测试,部署阶段都要用到.用于 ...

  7. oracle的uml图,详解Oracle中XMI开发UML图表技术

    描述 XML是面向机器的数据格式,虽然手工编写困难,但处理效率高.当 XML(扩展标记语言)于 1998 年 2 月被引入软件工业界时,它给整个行业带来了一场风暴.有史以来第一次,这个世界拥有了一种用 ...

  8. UML图详解(七)——交互图(时序图与协作图)

    一.概念 交互图描述对象之间的动态合作关系以及合作过程中的行为次序. 交互图常常用来描述一个用例的行为,显示该用例中所涉及的对象以及这些对象之间的消息传递情况,即一个用例的实现过程. 交互图有顺序图和 ...

  9. UML图详解(八)状态机(状态图和活动图)

    一.概念 状态图和活动图是状态机的两种表现形式.利用状态机可以精确地描述对象的行为. 从对象的初始状态起,开始响应事件并执行某些动作,这些事件引起状态的转换:对象在新状态下又开始响应事件和执行动作,如 ...

  10. 2023上半年软件设计师-试题详解与分析

    目录 前言 上午题 计算机组成原理 信息安全 计算机相关法律 软件设计 语言处理 操作系统 软件工程 软件测试 面向对象编程 程序设计语言 数据库 数据结构与算法 计算机网络 计算机专业英语 下午题 ...

最新文章

  1. 年末福利,C/S应用升级更新完整解决方案放送
  2. 在校园里捉到一只小鸟,怎么办?
  3. 重构之美-走在Web标准化设计的路上[振臂一呼:Css, Stop! ]
  4. java手动编译jar包_Maven 手动添加第三方依赖包及编译打包和java命令行编译JAVA文件并使用jar命令打包...
  5. 设计模式学习之--Singleton(单例)模式
  6. Linux的i2c通讯协议
  7. 超详细的MySQL完全卸载教程
  8. 软考中级数据库系统工程师复习资料
  9. java svn 创建分支_Eclipse下svn的创建分支/合并/切换使用
  10. android夜间模式监控
  11. Android 录制手机内部声音(screen recorder)framework层问题分析
  12. spark graphx实现共同好友的聚合
  13. 要成就事业,更要分享快乐 记上海润邦(集团)有限公司董事长兼总经理李东
  14. 硬件使用74hc138的C语言程序,【Arduino教程】第三十一讲:74HC138实验
  15. 大数据风控项目实战 Drools规则引擎
  16. Android Studio的Android Device Monitor在哪儿?
  17. Coursera吴恩达《优化深度神经网络》课程笔记(3)-- 超参数调试、Batch正则化和编程框架
  18. RISC-V入门笔记(新手必看!)
  19. 086 定积分应用元素法求面积
  20. endnote按照apa6th格式复制_参考文献格式apa6.pdf

热门文章

  1. Django下载文件——三种方法和大文件下载
  2. 田字格写汉字word模板下载可打印【教程】
  3. 嵌入式技术栈之I2S
  4. Kali Linux无线网络渗透测试教程(大学霸内部资料)
  5. 干货:io流带时间的聊天室【客户端与服务端】
  6. ZZULIOJ.1706: 神奇的编码
  7. graphpad prism基础使用教程
  8. 图形推理1000题pdf_江苏省考倒计时4天!再看一遍判断推理各个模块重点!
  9. 无线传感器网络:LEACH路由协议优化python仿真代码
  10. Delphi 的并行计算