简介

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

部署图建模步骤

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

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

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

    - 绘制部署图,将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. mongo 使用find的返回值,转换为数组形式

    $rs = $mongo->find(); var_dump(iterator_to_array($rs));

  2. C++学习(三十五)(C语言部分)之 单链表

    单链表 就好比火车 火车头-->链表头部火车尾-->链表尾部火车厢-->链表的节点火车厢连接的部分-->指针火车中的内容-->链表节点的的数据链表节点包含数据域和指针域数 ...

  3. ie 浏览器缓存问题

    Get请求在IE会存在缓存问题,最直接的办法  改成Post请求解决

  4. 邮件报警以及服务端能否ping通客户端的小例子(三)

           就这个小小的东西,弄了一天,弄的头晕眼花,毕竟第一次弄这个,记录下来,若干年之后,回看这些笔记,不知是什么样的感想,哈哈.我学一个东西的时候喜欢系统的来,一点一点的来,做这个的时候想法很 ...

  5. python 文件读写模式r,r+,w,w+,a,a+的区别(附代码示例)

    如下表   模式 可做操作 若文件不存在 是否覆盖 r 只能读 报错 - r+ 可读可写 报错 是 w 只能写 创建 是 w+ 可读可写 创建 是 a 只能写 创建 否,追加写 a+ 可读可写 创建 ...

  6. SQL: 某个时间段范围内,产品有价格,且求平均数

    select ID,AVG(fPrice) as avgPrice from Price where Hp_Date >='2017-07-04' and Hp_Date <='2017- ...

  7. PostgreSQL获取所有表名、字段名、字段类型、注释

    转载自:http://blog.csdn.net/cicon/article/details/51577655 获取表名及注释: select relname as tabname,cast(obj_ ...

  8. Azure CosmosDB (3) 选择适当的一致性级别

    <Windows Azure Platform 系列文章目录> 绝大部分的商业分布式数据库,要求开发人员选择两个极端的数据库一致性:强一致性(Strong Consistency)和最终一 ...

  9. Bootice1.34版本把grub4dos0.46a写入硬盘MBR失败一个例子

    Bootice1.34版本把grub4dos0.46a写入硬盘MBR失败一个例子         一个同事的台式机,BIOS启动,500GB硬盘,分了四个MBR分区,C盘是激活的主分区,第二个分区50 ...

  10. SpringCloud和Springboot

    SpringBoot+SpringCloud+SpringMVC+SpringData 我们把这种架构也称之为spring全家桶 什么是SpringCloudSpring Cloud是一系列框架的有序 ...