UML-实现图(组件图和部署图)

实现图是从系统的层次来描述的,描述硬件的组成和布局,描述软件系统划分和功能实现。

UML-实现图(组件图和部署图)

  • 一、组件图
    • 1.组件图的元素
      • (1)组件
      • (2)接口
      • (3)组件间的关系
    • 2.组件图的作用
    • 3.组件图的用途
    • 4.组件图的特点
    • 5.使用组件图建模
      • (1)对源代码建模
      • (2)对可执行文件建模
      • (3)对物理数据库建模
      • (4)对可适应的系统建模
  • 二、部署图
    • 1.部署图的元素
      • (1)节点
      • (2)部署图的关系
    • 2.使用部署图建模
      • (1)对嵌入式系统建模
      • (2)对客户/服务器建模
      • (3)对全分布式系统建模
  • 三、应用练习题
    • 1.例题1


一、组件图

  • ** 通常会被称为构件图**,因此组件也会被称为构件

1.组件图的元素

  • 组件图中包含多种内容,包括包、组件、接口、组件间的关系、工件和端口,也可以包括子系统,还可以包含约束和注释等内容。但是组件图中常用的只有组件接口依赖关系

(1)组件

  • 在 UML2 中,组件被认为是独立的,在一个系统或子系统中的封装单元,提供一个或多个接口。
  • 组件的重点在于强调重用性。
  • 组件是系统中遵从一组接口且提供实现的一个物理部件,通常指开发和运行时类的物理实现。可以将组件看作是一种容器,因此它没有自己的特征,但是它包含定义特征的类。
  • 组件的符号:
    在这里插入图片描述
  • 组件的分类:一类存在于开发时刻,两类存在于运行时刻。
    • 配置组件(Deployment Component): 配置组件也会被称为发布组件或者实施组件,它是运行系统需要配置的组件,是形成可执行文件的基础。操作系统、Java 虚拟机和数据库管理系统都属于配置组件。
    • 工作产品组件(Work Product Component): 有时会被称为开发用组件,这类组件主要是开发过程的产物,包括创建实施组件的源代码文件及数据文件,这些组件并不直接地参加可执行系统。而开发过程中的工作产品,用于产生可执行系统。
    • 执行组件(Execution Component): 这类组件时作为一个正在执行系统的结果而被创建的,例如由 DLL 实例化而来的 COM+对象、HTML 文档、Servlets等。
  • 组件可以包含组件。
    在这里插入图片描述

(2)接口

  • 在 UML 组件图中,接口是一组用于描述类或组件的一个服务操作,是一个被命名的操作的集合。一般情况下,可以将组件的接口分为两种类型:
    • 导出接口(Expert Interface):为其他组件提供服务的接口,一个组件可以有多个导出接口。
    • 导入接口(Import Interface): 在组件中所用到的其他组件所提供的接口,一个组件可以使用多个接口。
  • 接口的符号有两种:
    • 一种是构造型表示法,在这种接口中,接口和实现接口之间用一条带三角形箭头的虚线连接,箭头指向接口。
      在这里插入图片描述

    • 另一种形式是 “棒棒糖” 接口,可以使用一个小圆圈代表接口,用实线将接口和组件连接起来。在这种形式中,实线代表的是实线关系。
      在这里插入图片描述

(3)组件间的关系

  • 依赖关系
    在这里插入图片描述
  • 泛化关系
    在这里插入图片描述

2.组件图的作用

  • 组件图的主要目的是显示系统组件之间的结构关系
  • 在以组件为基础的开发中,组件图为系统架构师提供一个开始为解决方案建模的自然形式。组件图允许系统架构师验证系统的必需功能是由组件实现的,这样确保了最终系统将会被接受。
  • 组件图通常可以使项目发起人感到轻松,该图对于不同的小组是很有用的一种交流工具。
  • 组件图为开发者提供了将要建立的系统的高层次的架构视图,这将帮助开发者建立实现的目标。

3.组件图的用途

  • 组件图是系统实现视图的图形表示,一个组件图表示了系统实现视图的一部分,系统中的所有组件结合起来才能表示出完整的系统实现图。
  • 组件图的用途:
    • 使系统人员和开发人员能够从整体上了解系统的所有物理组件。
    • 组件图显示了被开发系统所包含的组件之间的依赖关系。
    • 从宏观的角度上,组件图把软件看作多个独立组件组装而成的集合,每个组件可以被实现相同接口的其他组件替代。
    • 可以清楚地看出系统的结构和功能,方便项目组的成员制定工作目标以及了解工作情况。
    • 有助于对系统感兴趣的人了解某个功能单元位于软件包的什么位置。

4.组件图的特点

  • 侧重于描述系统静态视图的某一侧面。
  • 只包含那些对描述该侧面内容有关的模型元素。
  • 提供与抽象层次一致的描述,只显示有助于理解该组件图的必要的修饰。
  • 图形不要过于简化,以防止产生误解。

5.使用组件图建模

(1)对源代码建模

在这里插入图片描述

(2)对可执行文件建模

在这里插入图片描述

(3)对物理数据库建模

在这里插入图片描述

(4)对可适应的系统建模


二、部署图

  • 部署图通常会被称为配置图,它是用来显示系统中软件和硬件的物理架构。
  • 一个 UML 部署图描述了一个运行时的硬件节点,以及这些节点运行的软件组件的静态视图。
  • 部署图(Deployment Diagram)描述处理器、设备、软件组件在运行时的架构。它是系统拓扑的最终物理描述,即描述硬件单元和运行在硬件单元上的软件的结构
    在这里插入图片描述

1.部署图的元素

  • 部署图的组成元素包括节点和节点之间的连接,连接把每个节点关联在一起,从而构成一个部署图。部署图中除了包含基本的节点、组件和关系等元素外,还可以包含其他的元素,例如子系统、包、设备、执行环境以及工作(制品)等。

(1)节点

  • 节点是存在于运行时并代表 一项计算资源的物理元素,一般至少拥有一些内容,而且通常具有处理能力。他一般用于对执行处理或计算的资源建模,通常具有两方面内容,即能力(基本内存、计算能力和二级存储器)和位置(在所有必需的地方均可得到)。
  • 节点的两种类型:
    • 处理器(Processor):处理器是能够执行软件组件且具有计算能力的节点,例如服务器。处理器和设备是一个相反的概念。
    • 设备(Device): 设备是不能执行软件组件的外围硬件且是没有计算能力的节点,通常通过其接口为外接提供某种服务,例如打印机和扫描仪等都是设备。
  • 节点和组件的区别:
    在这里插入图片描述

(2)部署图的关系

  • 依赖关系
    在这里插入图片描述
  • 实现和关联关系
    • 实现关系是节点内组件向外提供服务,其符号是一条实线。关联关系体现节点间的通信关联,其符号也是一条实线。
      在这里插入图片描述

2.使用部署图建模

(1)对嵌入式系统建模

在这里插入图片描述

(2)对客户/服务器建模

在这里插入图片描述

(3)对全分布式系统建模

在这里插入图片描述

三、应用练习题

1.例题1

  • 教室在线答疑系统有4个组件:教室客户端程序、学生客户端程序、白板程序、通信协议。其中,教室客户端、学生客户端都要依赖于白板程序以及通信协议。画出该系统部署图。
    在这里插入图片描述

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

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

相关文章

为什么要将应用微服务化

上古时期的高可用架构 其实在十多年前,“架构师”并不是一个需求很大的职业,一来那时还没有“全民App”级别的应用,除了三大门户网站以外,其他的网上应用业务压力并不大;二来也没有现如今这么丰富的技术选型,几乎清一…

LINUX基础培训九之网络管理

前言、本章学习目标 了解LINUX网络接口和主机名配置的方法熟悉网络相关的几个配置文件了解网关和路由熟悉网络相关的命令使用 一、网络IP地址配置 在Linux中配置IP地址的方法有以下这么几种: 1、图形界面配置IP地址(操作方式如Windows系统配置IP&…

快速入门Torch构建自己的网络模型

真有用构建自己的网络模型 读前必看刚学完Alex网络感觉很厉害的样子,我也要搭建一个可以看着网络结构实现上面的代码你已经很强了,千万不要再想实现VGG等网络!!!90%你能了解到的模型大佬早已实现好,直接调用…

MFC CAsyncSocket类作为客户端示例

之前写过CAsyncSocket类使用的博客;进一步看一下; VS新建一个MFC 对话框工程; 添加一个类,从CAsyncSocket继承,起个自己的名字; 对话框添加几个编辑框,按钮,静态控件; 为自己的CxxxAsyncSocket类添加重写的虚函数,OnConnect、OnReceive、OnSend; 自己的CAsyncSoc…

pytorch一致数据增强—独用增强

前作 [1] 介绍了一种用 pytorch 模仿 MONAI 实现多幅图(如:image 与 label)同用 random seed 保证一致变换的写法,核心是 MultiCompose 类和 to_multi 包装函数。不过 [1] 没考虑各图用不同 augmentation 的情况,如&am…

生物制药厂污水处理需要哪些工艺设备

生物制药厂是一种特殊的工业场所,由于其生产过程中涉及的有机物较多,导致废水中含有高浓度的有机物和微生物等污染物,因此需要采用一些特殊的工艺设备来进行污水处理。本文将介绍生物制药厂污水处理中常用的工艺设备。 首先,对于生…

【面试合集】说说微信小程序的支付流程?

面试官:说说微信小程序的支付流程? 一、前言 微信小程序为电商类小程序,提供了非常完善、优秀、安全的支付功能 在小程序内可调用微信的API完成支付功能,方便、快捷 场景如下图所示: 用户通过分享或扫描二维码进入商…

2024年华数杯国际赛赛题浅析

21号完赛,28号出成绩的华数杯国际赛,作为美赛最合适的练手赛正式开赛。为了让大家更好地比赛,首先为大家带来本次竞赛两道题目的浅要解析。主要分析两道题目适合的群体,未来大家求解过程中可能遇到的问题。方便大家快速完成选题。…

农业四情监测管理系统的特点优势

TH-Q2农业四情监测管理系统是一种利用现代信息技术,对农业生产中的墒情、苗情、虫情、灾情进行实时监测和管理的智能化系统。那么,这个系统到底有哪些特点和优势呢?让我们一起来了解一下。 1.实时监测:通过传感器、摄像头等设备&a…

美国智库发布《用人工智能展望网络未来》的解析

文章目录 前言一、人工智能未来可能改善网络安全的方式二、人工智能可能损害网络安全的方式三、人工智能使用的七条建议四、人工智能的应用和有效使用AI五、安全有效地使用人工智能制定具体建议六、展望网络未来的人工智能(一)提高防御者的效率&#xff…

DWM1000 MAC层

DWM1000 MAC层 MAC层 概述 MAC层,即媒体访问控制层,是数据通信协议栈中的一个重要部分,位于链路层的下半部分,紧邻物理层。在OSI模型中,它属于第二层,即数据链路层的一部分。MAC层的主要职责是控制如何在…

框架基础-Maven+SpringBoot入门

框架基础 Maven基础 Maven概述 Maven是为Java项目提供项目构建和依赖管理的工具 Maven三大功能 - 项目构建构建:是一个将代码从开发阶段到生产阶段的一个过程:清理,编译,测试,打包,安装,部署…

运筹说 第46期 | 目标规划-数学模型

经过前几期的学习,想必大家已经对线性规划问题有了详细的了解,但线性规划作为一种决策工具,在解决实际问题时,存在着一定的局限性:(1)线性规划只能处理一个目标,而现实问题往往存在多个目标;(2)…

GEE时序——利用sentinel-2(哨兵-2)数据进行地表物候学分析(时间序列平滑法估算和非平滑算法代码)

简介 哨兵-2A/B 串联卫星的空间分辨率高、重访时间长,有可能改进对陆地表面物候的检索。不过,生物群落和区域特征在很大程度上限制了陆表物候学算法的设计。在北极地区,这种生物群落特有的特征包括长期积雪、持续云层覆盖和生长季节短暂。在此,我们评估了哨兵-2 获取北极高…

【jupyter添加虚拟环境内核(pytorch、tensorflow)- 实操可行】

jupyter添加虚拟环境内核(pytorch、tensorflow)- 实操可行 1、查看当前状态(winR,cmd进入之后)2、激活虚拟环境并进入3、安装ipykernel5、完整步骤代码总结6、进入jupyter 添加pytorch、tensorflow内核操作相同,以下内容默认已经安…

Klocwork—符合功能安全要求的自动化静态测试工具

产品概述 Klocwork是Perforce公司产品,主要用于C、C、C#、Java、 python和Kotlin代码的自动化静态分析工作,可以提供编码规则检查、代码质量度量、测试结果管理等功能。Klocwork可以扩展到大多数规模的项目,与大型复杂环境、各种开发工具集成…

低代码自动化测试的实践

何为低代码测试 传统上,功能、 UI、端到端等测试自动化的实现都涉及编写测试脚本,代替测试人员执行重复的手动测试任务。自动化脚本的开发工作通常由 QA 工程师或开发人员完成,这需要编写大量代码。 而低代码甚至无代码的理念也是在自动化测…

【ubuntu】ubuntu 20.04安装docker,使用nginx部署前端项目,nginx.conf文件配置

docker 官网:Install Docker Engine on Ubuntu 一、安装docker 1.将apt升级到最新 sudo apt update2.使用apt安装 docker 和 docker-compose (遇到提示输入y) sudo apt install docker.io docker-compose3.将当前用户添加到docker用户组 …

HNU-模式识别-作业2-面向应用分类系统

模式识别-作业2 计科210X 甘晴void 202108010XXX 【具体实现思路是按照去年数学建模国赛题来做的,就放个思路,完整不放全了】 题目: 查阅文献资料,构建一个面向应用的分类系统。 要求: 至少3页A4纸,文…

Leetcode951. 翻转等价二叉树

Every day a Leetcode 题目来源:951. 翻转等价二叉树 解法1:递归 存在三种情况: 如果 root1 或者 root2 是 nullptr,那么只有在他们都为 nullptr 的情况下这两个二叉树才等价。如果 root1,root2 的值不相等&#x…