软件项目管理【UML-组件图】

目录

一、组件图概念

二、组件图包含的元素

1.组件(Component)->构件

2.接口(Interface)

3.外部接口——端口

4.连接器(Connector)——连接件

4.关系

5.组件图表示方法

三、例子


一、组件图概念

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

构件图 = 构件(Component) + 接口(Interface) + 关系(Relationship) + 端口(Port) + 连接器(Connector)

  • 在面向对象系统的物理方面进行建模要用到两种图:组件图和配置图。

二、组件图包含的元素

1.组件(Component)->构件

  • 组件是定义了良好接口的物理实现单元,是系统中可替换的物理部件。
  • 组件代表系统的一个物理实现块,代表逻辑模型元素如类、接口、协同等的物理打包。
  • 构件通过它的提供接口和请求接口展现行为。
  • 由于在UML2.0中,构件是一种类,因此构件具有属性、操作和可见性。这些概念的含义与在类图中定义的是一样的,只是在这里把这些概念应用在构件上。

组件的命名:

  组件的名称有两种:简单名和路径名。并依据目标操作系统可以添加相应的扩展名,例如javadll

表示方式:组件用一个左侧带有突出两个小矩形的矩形来表示。

UML2.0中表示方式:构件用加构造型《component》的矩形框来表示,左上角添加以前的构件符号,如果没有构件细节可在中央直接写上名字。

(构造型和左上角的图标可以二选一)

UML2.0把构件分为基本构件和包装构件

  • 基本构件
    注重于把构件定义为在系统中可执行的元素。
  • 包装构件
    扩展了基本构件的概念,它注重于把构件定义为一组相关的元素,这组元素为开发过程的一部分。也即, 包装构件定义了构件的命名空间方面。在构件的命名空间中,可以包括类、接口、构件、包、用况、依赖(如映射)和制品。按照这种扩展,构件也具有如下的含义:可以用构件来装配大粒度的构件,方法为把所复用的构件作为大粒度构件的成分,并把它们的请求和提供接口连接在一起(简单理解:组件包含组件,组拼大组件)。

组件的种类

  1. 配置组件(Deployment Component):运行系统需要配置的组件,是形成可执行文件的基础—操作系统、JAVA虚拟机、DBMS;
  2. 工作产品组件(Work Product Component):包括模型、源代码和用于创建配置组件的数据文件,它们是配置组件的来源—UML图、java类和数据库表;
  3. 执行组件(Execution Component):在运行时创建的组件,是最终可运行的系统产生的允许结果—.net组件

2.接口(Interface)

  • 接口(interface)接口由一组操作组成,它指定了一个契约,这个契约必须由实现和使用这个接口的构件的所遵循。

接口分提供接口和请求接口

  • 把构件实现的接口称为提供接口(供接口),这意味着构件的提供接口是给其它构件提供服务的。实现接口的构件支持由该接口所拥有的特征,包括接口拥有的约束。
  • 构件使用的接口被称为请求接口(需接口),即构件向其它构件请求服务时要遵循的接口

表示方式:

  • 供接口用“棒棒糖”式的图形表示,即由一个封闭的圆形与一条直线组成。
  • 需接口用“插座”式的图形表示,即由一个半圆与一条直线组成。

3.外部接口——端口

  • 端口是UML2.0引入的概念
  • 端口描述了在构件与它的环境之间以及在构件与它的内部构件之间的一个显示地交互点
  • 端口是一个封装构件的显示的对外窗口,所有进出构件的交互都要通过端口。
  • 使用端口能在更大的程度上增加构件的封装性和可替代性。
  • 端口是构件的一部分,端口的实例随着它们所属的构件的实例一起被创建和撤消。

<1>接口与端口的关系

  提供接口说明了通过端口来提供服务,请求接口说明了通过端口需要从其它构件获得服务。

  一个构件可以通过一个特定端口同另一个构件通讯,而且通讯完全是通过由端口支持的接口来描述的。

<2>表示方式

  尾部加小方框的正常接口表示,小方框就被称为端口。

4.连接器(Connector)——连接件

UML2.0提供两种类型的连接器:

  1. 代理连接器(Delegation Connector)——委托连接件:连接外部接口的端口和内部接口。
  2. 组装连接器(Assembly Connector)——组装连接件:组件连接器表示构件之间的关系,它连接构件内部的类,将一个构件的供接口和一个构件的需接口捆绑在一起

  • 连接端口意味着请求端口要调用提供端口中的操作,以得到服务。
  • 立端口和接口的优点在于在设计时,两个构件彼此不需要了解对方的内部,只要它们的接口是相互兼容的即可。
  • 如果一个端口提供一个特定的接口而另一个端口需要这个接口,且接口是兼容的,那么这两个端口-便是可连接的。

<1>组装连接件

有两种表示装配连接件的方法:

  1. 如果要显式地把两个构件实例衔接在一起,在它们的端口之间画一条线即可。
  2. 如果两个构件实例相连是由于它们有兼容的接口,则可以使用一个“球-穴”标记来表示构件实例之间的连接关系。

  装配连接件是两个构件实例间的连接件,它定义一个构件实例提供服务,另一个构件实例使用这些服务。装配连接件用于把一个请求接口或端口与一个提供接口或端口的连接起来。在执行时,消息起源于一个请求端口,沿着连接件传递,被交付到一个提供端口

<2>委托连接件

  委托有这样的含义:具体的消息流将发生在所连接的端口之间,可能要跨越多个层次,最终到达要对消息进行处理的最终部件实例。这样,使用委托连接件可对构件行为的层次分解建模。

  委托连接件把外部对构件端口的请求分发到构件内部的部件实例进行处理,或者通过构件端口把构件内部部件实例向构件外部的请求分发出去。

  构件内部的一个部件可以是另一个构件或是一个类。注意,必须在两个提供端口间或两个请求端口间定义委托连接件。

注意事项:因为构件是可以嵌套的,所以内部构件之间的连接(球-穴)是组装连接件,内部构件与端口之间的连接(实线箭头)是委托连接件。

4.关系

5.组件图表示方法

三、例子

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/145690.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Centos 7 Zabbix配置安装

前言 Zabbix是一款开源的网络监控和管理软件&#xff0c;具有高度的可扩展性和灵活性。它可以监控各种网络设备、服务器、虚拟机以及应用程序等&#xff0c;收集并分析性能指标&#xff0c;并发送警报和报告。Zabbix具有以下特点&#xff1a; 1. 支持多种监控方式&#xff1a;可…

MySQL -- 库和表的操作

MySQL – 库和表的操作 文章目录 MySQL -- 库和表的操作一、库的操作1.创建数据库2.查看数据库3.删除数据库4.字符集和校验规则5.校验规则对数据库的影响6.修改数据库7.备份和恢复8.查看连接情况 二、表的操作1.创建表2.查看表结构3.修改表4.删除表 一、库的操作 注意&#xf…

视频去噪网络BSVD的实现

前些天写了视频去噪网络BSVD论文的理解&#xff0c;详情请点击这里&#xff0c;这两个星期动手实践了一下&#xff0c;本篇就来记录一下这个模型的实现。 这个网络的独特之处在于&#xff0c;它的训练和推理在实现上有所差别。在训练阶段&#xff0c;其使用了TSM&#xff08;T…

Hexo搭建个人博客系列之环境准备

环境准备 Git Git官网&#xff0c;安装过程,就是一直下一步,详细的看这篇文章 Git的安装 Node.js Node.js官网 Node.js的安装 注册一个GitHub账号 安装hexo 新建一个文件夹(位置任意),运行cmd(若出现了operation not permitted,就以管理员的权限来运行cmd)&#xff0c;运行…

WordPress SMTP邮件发送插件 Easy WP SMTP

Easy WP SMTP是一款 WordPress 邮件发送插件&#xff0c;WordPress 中经常用到邮件发送&#xff0c;包括新注册用户的邮件通知、找回密码通知、评论回复通知等。因为云服务器默认不启用 SMTP功能&#xff0c;所以需要安装 SMTP插件来解决这个问题。 SMTP 主机&#xff1a;smtp.…

acwing第 126 场周赛 (扩展字符串)

5281. 扩展字符串 一、题目要求 某字符串序列 s0,s1,s2,… 的生成规律如下&#xff1a; s0 DKER EPH VOS GOLNJ ER RKH HNG OI RKH UOPMGB CPH VOS FSQVB DLMM VOS QETH SQBsnDKER EPH VOS GOLNJ UKLMH QHNGLNJ Asn−1AB CPH VOS FSQVB DLMM VOS QHNG Asn−1AB&#xff0c;其…

node-red常用包分析

node-red-contrib-opcua Use OpcUa-Item to define variables. Use OpcUa-Client to read / write / subscribe / browse OPC UA server. 需要想通过OpcUa-Item节点来指定一个数据点。 触发器-->opcua_item----->opcua_client opcua_client的Action项解析&#xff1a; …

【数据分享】2023年我国上市公司数据(Excel格式/Shp格式)

企业是经济活动的参与主体&#xff0c;一个城市的企业数量决定了这个城市的经济发展水平&#xff01;之前我们分享过2023年高新技术企业数据&#xff08;可查看之前的文章获悉详情&#xff09;&#xff0c;我国专精特新“小巨人”企业数据&#xff08;可查看之前的文章获悉详情…

使用Dockerfile生成docker镜像和容器的方法记录

一、相关介绍 Docker 是一个开源的容器化平台&#xff0c;其中的主要概念是容器和镜像。 容器是 Docker 的运行实例。 它是一个独立并可执行的软件包&#xff0c;包含了应用程序及其依赖的所有组件&#xff08;如代码、运行时环境、系统工具、库文件等&#xff09;。容器可以在…

Python 爬虫入门:常见工具介绍

接着我的上一篇文章《网页爬虫完全指南》&#xff0c;这篇文章将涵盖几乎所有的 Python 网页爬取工具。我们从最基本的开始讲起&#xff0c;逐步涉及到当前最前沿的技术&#xff0c;并且对它们的利弊进行分析。 当然&#xff0c;我们不能全面地介绍每个工具&#xff0c;但这篇…

如何压缩ppt文件的大小?

如何压缩ppt文件的大小&#xff1f;要知道现在很多课件都是使用ppt文件&#xff0c;那么就导致ppt文件过大&#xff0c;我们很多时候电脑的存储空间就不够了。为了能够更好的存储这些ppt文件&#xff0c;我们通常会选择压缩ppt文件。怎么压缩ppt文件更快更好&#xff0c;没有损…

【保姆级教程】:docker搭建MongoDB三节点副本集

容器可以理解为一个进程&#xff0c;镜像是把环境&#xff0c;组件等都配置好&#xff0c;运行成容器的&#xff0c;容器里面运行服务&#xff0c;也可以说是一个进程。镜像是模板&#xff0c;镜像是实例。 一个镜像可以创建多个实例。也就是多个容器&#xff0c;容器之间相互…