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.hqwc.cn/news/413805.html

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

相关文章

C++后端笔记

C后端笔记 资源整理一、高级语言程序设计1.1 进制1.2 程序结构基本知识1.3 数据类型ASCII码命名规则变量间的赋值浮点型变量的作用字符变量常变量 const运算符 二、高级语言程序设计(荣) 资源整理 C后端开发学习路线及推荐学习时间 C基础知识大全 C那…

Flink TaskManager内存管理机制介绍与调优总结

内存模型 因为 TaskManager 是负责执行用户代码的角色,一般配置 TaskManager 内存的情况会比较多,所以本文当作重点讲解。根据实际需求为 TaskManager 配置内存将有助于减少 Flink 的资源占用,增强作业运行的稳定性。 TaskManager 内…

02 MyBatisPlus核心功能之基于Mapper接口CRUD+基于Service接口实现CRUD

项目结构: 1.1 Insert方法 // 插入一条记录 // T 就是要插入的实体对象 // 默认主键生成策略为雪花算法(后面讲解) //返回值是影响条数 int insert(T entity);1.2 Delete方法 // 根据 entity 条件,删除记录 int delete(Param(…

详解JDBC各个对象

文章目录 DriverManagerConnectionStatementPreparedStatementResultSet案例案例一:JDBC控制事务案例二:SQL 注入错误演示 DriverManager 概述:DriverManager 是驱动管理类 作用 获取数据库连接 // 返回数据库连接的对象,url 是指…

资料收集:储能bms架构

储能系统保护与控制之电池管理系统(BMS) 重点储能BMS企业汇总 储能BMS分为三级架构: 第一级:每个电池插箱包含1并48串电池模组,插箱配置1个BMU从控模块,用于对该电池组的电压、温度等信息的采集和上传。 …

学习Spring的第五天(Bean的依赖注入)

Bean的依赖注入有两种方式: 一 . 常规Bean的依赖注入 很简单,不过多赘述了,注意ref: 是构造函数或set方法的参数,一般为对象, value: 是构造函数或set方法的参数,一般为值. 看下图 1.1 下面来演示一下集合数据类型的关于Bean的依赖注入 1.1.1这是List的注入(演示泛型为Strin…

设计 Mint.com

1. 梳理 User Case 和 约束 Use cases 作用域内的Use Case User 连接到 financial accountService 从 Account 中提取 transactions 日常 Update整理 transaction 所有的手动目录由 User 覆盖没有自动化的重排机制 - 通过目录分析月消费 Service 推荐 budget 允许 user 去…

提升开发效率,Fiddler Everywhere for Mac助您解决网络调试难题

在现代软件开发中,网络调试是一个不可或缺的环节。无论是前端开发还是后端开发,我们经常需要对网络请求进行监控和调试,以便及时发现并解决问题。而Fiddler Everywhere for Mac作为一款强大的网络调试工具,能够帮助开发者提升工作…

Backtrader 文档学习-Indicators混合时间框架

Backtrader 文档学习-Indicators混合时间周期 1.不同时间周期 如果数据源在Cerebro引擎中具有不同的时间范围和不同的长度,指示器将会终止。 比如:data0是日线,data1是月线 。 pivotpoint btind.PivotPoint(self.data1) sellsignal self…

快慢指针-Floyd判圈算法

对于环形链表是否存在环的做法,普通算法可以通过额外Hash数组来存储链表元素,直到Hash数组中出现重复元素。时间复杂度O(n),空间复杂度O(n) Floyd判圈算法通过利用快慢指针的移动来实现,时间复杂度O(n)&am…

54 C++ 多线程 条件变量 condition_variable,wait(),notify_one()

一 前提:之前代码的缺陷 在前面我们使用两个线程 ,一个线程读,一个线程写来完成对于共享数据访问。 我们把这个代码 先放在这里,方便回忆,然后说明代码可能存在的问题,然后改动。 class Teacher174 { pri…

Educational Codeforces Round 161 (Rated for Div. 2)

Educational Codeforces Round 161 (Rated for Div. 2) Educational Codeforces Round 161 (Rated for Div. 2) A. Tricky Template 题意:开始没看懂。。。给出长度均为n的三个字符串abc,字符串s与模板t匹配的条件为:当模板位置字符为小写…