当前位置: 首页 > news >正文

构件图和部署图

 构件图(Component diagram)是面向对象系统从物理方面建模时用到的图之一,显示一组构件之间的组织和依赖关系。使用构件图的思想是复用。就像是我们盖房子,当房子的大体框架建好之后,剩下的门和窗户家具之类的直接拿来安装上即可,不需要再从新制作,直接拿来复用的思想。这些门和窗户就相当于一个个的构件。

           前面的类图用例图定义了系统的问题域词汇和系统期望的行为,序列图和状态图描述了问题域中事物是如何共同协作来完成这个行为的。前面做的都只是一些逻辑的蓝图,而构件图就是要把这些蓝图转化为存在于比特事件中的事物,是真实的物理的可触摸的事物,用构件图来可视化这些物理构件的静态方面以及它们之间的关系。

           一些概念:

          1、构件:(Component)是系统中遵从同一组接口且提供其实现的物理的、可替换的部分。每个构件能实现一定的功能为其他构件提供使用接口、方便软件的复用。例如对象库、可执行体、COM+、企业级Java Bean。

               

           2、构件类型:

    源代码构件:源代码文件

    二进制构件:目标码文件,静态链接库、动态链接库

    可执行构件:可执行程序

    数据文件或文档

          3、构件图的组成:

             构件图中包括构件、接口和四种关系,还可以包含注释和约束,以及一些包或者子系统。

          4、举例:

              

            

     要想构造出良好的构件图必须满足的几个要求:

        1、侧重于描述系统的一个层面而不是全局

        2、要包含对于理解这一方面哪些是必要的模型元素,只抓主体而不是次要的

        3、图形不能过于简化,以至于读者不会产生误解

        4、为构件图要取一个能表明意图的名称

        5、空间摆放上要合理组织元素,使得语义上接近的事物的物理位置比较接近

        6、谨慎采用构造型化元素,为你的项目或者组织选择尽量少用的通用图标,使得他们保持一致

           构件图是我在9种图中理解比较费劲的一个图,看过视频之后没有对构件图产生什么印象。所以理解的还很不到位。构件图能够很好的对系统的静态实现视图进行建模,用来支持系统部件的配置管理。达到复用的效果,节省了一些不必要的人力。

 

            部署图(Deployment Diagram)也叫做实施图,描述的是系统运行时的结构,展示了硬件的配置及其软件如何部署到网络结构中。可以了解软件和硬件的物理关系以及处理节点的组件分布情况,传达了构成应用程序的硬件和软件元素的配置和部署方式。一个部署图描述了一个运行时的硬件节点,以及在这些节点上运行的软件组件的静态视图。

       一些概念:

      1、节点(Node):

        节点是一个物理元素,在运行时存在,代表一个可计算的资源,通常占用一些内存,可以是硬件也可以是运行其上的软件系统,比如64主机、Windows server 2008操作系统、防火墙等。

      2、部署图例子:

         

         

     部署图和构件图的区别和联系:

     构件图主要目标是集中在描述系统中有哪些构件,以及构件的组成和之间的依赖关系。部署图描述的是靠节点完成,描述软件是如何在硬件上映射的以及网络的拓扑结构。

     在构件图中关系可以是四种,即关联、依赖、实现和泛化。而在部署图中各节点之间的关系只有关联和依赖。    
---------------------
作者:许小乖
来源:CSDN
原文:https://blog.csdn.net/xdd19910505/article/details/18925173
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/Ph-one/p/9927462.html

相关文章:

  • UML建模类图【2】--☆☆
  • 活动图、泳道【图1】--☆☆
  • 组件图【图4】--☆
  • 部署图【图5】--☆
  • 顺序图【6】--☆☆
  • 用例图【图7】--☆
  • 四则运算表达式分解,前中后缀表达式(栈的应用)
  • 嵌入式 Linux 对内存的直接读写(devmem)
  • C语言三个结束符:EOF ‘\0’ '\n'
  • Ymodem协议(参考STM32)
  • android uboot中的mmc命令
  • stm32最简单的实现BootLoader
  • 变参标准函数的重新封装,如printf
  • 导数与梯度
  • linux /Android 平台下使用 i2c-tools
  • SegmentFault for Android 3.0 发布
  • Android开源项目规范总结
  • CSS相对定位
  • Docker 笔记(2):Dockerfile
  • HTML5新特性总结
  • JavaScript的使用你知道几种?(上)
  • js对象的深浅拷贝
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Otto开发初探——微服务依赖管理新利器
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • php面试题 汇集2
  • react 代码优化(一) ——事件处理
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 浅谈web中前端模板引擎的使用
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 一个SAP顾问在美国的这些年
  • 用mpvue开发微信小程序
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 字符串匹配基础上
  • # 数论-逆元
  • #HarmonyOS:基础语法
  • $(selector).each()和$.each()的区别
  • (1)常见O(n^2)排序算法解析
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (二)WCF的Binding模型
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • .net Application的目录
  • .NET Framework 服务实现监控可观测性最佳实践
  • .Net 代码性能 - (1)
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .NET命令行(CLI)常用命令
  • @我的前任是个极品 微博分析
  • [ Linux 长征路第五篇 ] make/Makefile Linux项目自动化创建工具
  • [<MySQL优化总结>]