简介

部署图也称配置图,用来显示系统中硬件和软件的物理架构。从中可以了解到软件和硬件组件之间的物理拓扑、连接关系以及处理节点的分布情况。

部署图建模步骤

    - 找出需要进行部署的各类节点,如网络硬件设备、服务器硬件设备、及部署在硬件设备上的软件系统等

    - 确定各类节点之间的连接关系及通信方式

    - 从性能、可扩展性、可维护性、可移植性角度确定各类节点的数目和部署方式

    - 绘制部署图,将artifact分配给各个节点

部署图主要元素

部署图中的主要元素有节点、物件和连接。其中节点根据其状态不同又有节点实例、节点容器等区别于节点的拓扑方式。

  • 节点(Node):硬件设备或运行在硬件设备上的软件系统。

    - UML表示

   

      - 节点实例:节点的实例形式。格式为instance name: Node,与类实例格式相似,冒号前面可以有实例名称也可以没有实例名称

        

      - 节点类型:根据节点是否能够进行

        - 处理器:本身具有计算、执行等软件运行处理能力的节点

        - 设备:本身不具有软件运行处理能力的节点

      - 节点容器(Node as Container):一个节点可以包括其他的物件或节点,比如Artifact类型的库文件、可执行文件等。

        

  • 物件(Artifact):UML部署图中的物件时软件开发过程中的产物,包括需求文档、源代码、库文件、可执行程序、库文件、用户手册等。

   UML标识为 artifact + 图标 或 <<artifact>> + Name

  • 连接(Association):节点或物件之间的连线。见部署图主要关系部分

部署图主要关系

部署图中节点或物件之间存在依赖或关联关系。

  • 依赖:节点的物件之间存在相互调用的弱关系

  • 关联:节点间的通信方式。跟具体的协议有关,比如TCP/IP, ftp, http, soap, web service等

部署图示例

以订单-库存系统为例

部署图与组件图的区别

    - 组件图侧重系统组件在软件层面的定义、结构及调用关系;部署图侧重系统组件在硬件层面的组织结构

    - 组件图侧重描述哪个组件位于哪个模块或包以及各个组件的版本信息;部署图侧重描述哪个组件部署在哪个硬件设备上以及硬件设备之间的交互关系

    - 组件图中的组件侧重源文件的模块化打包;部署图中的节点侧重组件的物理部署

    - 组件图中的组件和部署图中的Artifact相对照

部署图与组件图的联系

    - 组件图和部署图都是对系统实现的UML描述,联系起来对比使用,更易加深对整个系统架构的理解,一般来说大型项目两类图都需要

    - 组件图和部署图包含相同的构成元素:组件、接口、组件间关系、组件通过提供接口向外部提供的服务、组件通过需求接口向外部请求的服务

    - 组件图和部署图都包含关联、依赖关系

    - 组件图和部署图都可以被嵌套、都可以参与外部和内部接口间的交互通信

部署图注意事项

     - 一般部署图的绘画分为四阶段:

          - 第一阶段确定需要进行部署的各类节点,如网络硬件设备、服务器硬件设备、及部署在硬件设备上的软件系统等

          - 第二阶段侧重确定节点信息、节点关系、及连接方式

          - 第三阶段把物件分配到节点

          - 第四阶段根据性能、可靠性、可维护性、可移植性等确定各类节点的数目及拓扑方式

     - 对于部署图来说,最有价值的就是节点上的物件信息

     - 在UML1.x部署图规范中,组件图中的组件可以直接部署到节点中;在UML2.x规范中,组件图中的组件不能直接部署到节点,需要通过Artifact

     - 部署图中摆放元素时尽量避免线的交叉

Python设计模式 - UML - 部署图(Deployment Diagram)的更多相关文章

  1. Python设计模式 - UML - 对象图(Object Diagram)

    简介 对象图和类图的基本概念是类似的,可以看作类图在系统某一时刻的镜像,显示了该时刻系统中参与交互的各个对象以及它们之间的关系. 对象图的元素包括对象.链接.包,元素之间的关系和类图相似. 对象图建模 ...

  2. Python设计模式 - UML - 总览

    说到设计模式就不得不涉及建模思想,说到建模思想自然而然会应用UML,目前业界开源的UML工具很多,用起来也非常便捷.近几年来随着软件应用领域开发模式转向快速迭代试错,UML在敏捷开发,尤其是web及m ...

  3. UML之部署图(Deployment Diagram)

    计算机系统由硬件和软件组成,应用软件的命令,先转化为操作系统命令,再转化为汇编语言,最后再转化为二进制命令,由硬件来运行.软件要部署到硬件上才具有生命.Deployment Diagram展示的就是把 ...

  4. Python设计模式 - UML - 类图(Class Diagram)

    简介 类图是面向对象分析和设计的核心,用来描述系统各个模块中类与类之间.接口与接口之间.类与接口之间的关系,以及每个类的属性.操作等特性,一般在详细设计过程中实施. 类图本身就是现实世界的抽象,是对系 ...

  5. 部署图 Deployment Diagram

    UML部署图描述了一个运行时的硬件结点,以及在这些结点上运行的软件组件的静态视图. 部署图显示了系统的硬件,安装在硬件上的软件,以及用于连接异构的机器之间的中间件. 下面这张图介绍了部署图的基本内容: ...

  6. Python设计模式 - UML - 通信图(Communication Diagram)

    简介 通信图表示对象之间的消息往来,是表述时序图中信息交互的另一种UML图,介绍完时序图就要对照学习一下通信图,二者是一体两面的. 通信图和时序图可以相互转换,二者的侧重点不同,通信图侧重哪些对象发送 ...

  7. Python设计模式 - UML - 交互概述图(Interaction Overview Diagram)

    简介 交互概述图是将不同交互图衔接在一起的图,属于UML2.0的新增图.交互概述图并没有引入新的建模元素,其主要元素来自于活动图和时序图.交互概述图侧重从整体上概览交互过程中的控制流,包括交互图之间的 ...

  8. Python设计模式 - UML - 定时图(Timing Diagram)

    简介 定时图也是一种交互图,用来描述对象或实体随时间变化的状态或值,及其相应的时间或期限约束.定时图应用较广,并不局限于软件工程领域. 定时图侧重与时间线相关的值或状态的改变,这些改变可能来自于收到消 ...

  9. Python设计模式 - UML - 组件图(Component Diagram)

    简介 组件图又称构建图,用于显示系统各组件及各组件关系的物理视图. 组件图通常包括组件.接口.关系.端口和连接器,用来显示程序代码中相应的模块.源文件或源文件集合之间的依赖和泛化关系. 组件图中的组件 ...

随机推荐

  1. zabbix客户端的安装、zabbix主被动模式、添加主机模板等、处理页面的中文乱码

    1.zabbix客户端的安装: 如下步骤: wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch. ...

  2. Dijkstra(迪杰斯特拉)模板

    直接将模板封装在结构体里面. struct Edge{ int from,to,dist; Edge(int u, int v,int d): from(u),to(v),dist(d){} }; s ...

  3. python函数之第一类对象

    目录 python函数之第一类对象 python函数之第一类对象 第一类对象(英语:First-class object)在计算机科学中指可以在执行期创造并作为参数传递给其他函数或存入一个变数的实体. ...

  4. golang-generate-1pixel-image

    package main import ( "bytes" "encoding/base64" "flag" "html/temp ...

  5. day052 django第三天 url和视图

    一.基本格式 from django.conf.urls import url from . import views #循环urlpatterns,找到对应的函数执行,匹配上一个路径就找到对应的函数 ...

  6. bcdboot(引导修复工具) 命令行工具使用方法

    BCDboot 是一种用于快速设置系统分区或修复系统分区上的启动环境的工具.系统分区是通过从已安装的 Windows(R) 映像复制一小部分启动环境文件来设置的.BCDboot 还会在系统分区上创建引 ...

  7. UML 序列图详解

    现在是二月,而且到如今你或许已经读到.或听到人们谈论UML 2.0 —— 包括若干进步的 UML 的新规范,所做的变化.考虑到新规范的重要性,我们也正在修改这个文章系列的基础,把我们的注意力从 OMG ...

  8. 读取Excel的部分问题

    1.office分很多版本,导致Excel连接字符串不同. 2.是否有标题头的问题(在连接字符串中设置) 3.Excel本身删除分数据删除和表格结构删除.普通delete只能删除数据, 还是能读取到表 ...

  9. Centos7 安装redis集群哨兵模式

    https://blog.csdn.net/lihongtai/article/details/82826809

  10. Qt中三种解析xml的方式

    在下面的随笔中,我会根据xml的结构,给出Qt中解析这个xml的三种方式的代码.虽然,这个代码时通过调用Qt的函数实现的,但是,很多开源的C++解析xml的库,甚至很多其他语言解析xml的库,都和下面 ...