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

简介

组件图又称构建图,用于显示系统各组件及各组件关系的物理视图。

组件图通常包括组件、接口、关系、端口和连接器,用来显示程序代码中相应的模块、源文件或源文件集合之间的依赖和泛化关系。

组件图中的组件通常由类图中的一个或多个类(对象)实现为系统中的模块、源文件、过程文件或可执行文件,最终构成系统的绝大部分功能单元。

组件图建模步骤

    - 确定系统有哪些对外接口或端口

    - 确定系统要用到哪些组件,识别出系统中的重要模块、库文件、源代码文件、数据表或文件、可执行文件或文档等,将其建模为一个个组件

    - 确定系统中各组件的类型、规格、约束和内部接口

    - 确定系统中各组件之间、接口之间、组件与接口之间的关系

 

组件图的元素

组件图中的元素包括组件、接口、关系、端口和连接器,其中组件与组件之间有依赖关系,组件与接口之间有实现关系。

  • 组件: 承担具体功能单元的实际文件,一般为lib, jar, dll, exe等格式,遵循接口定义并提供具体的接口实现

       - 组件表示法

          - 图标表示法

             

              图标表示法              小图标表示法

                       

  

          - 构造表示法

          

    

       - 组件分类:

           - 配置组件:系统中各组件执行时的环境配置文件

           - 产品组件:系统运行前的静态源文件,包括模块、源代码文件、源数据文件、链接库文件、可执行文件等

           - 过程组件:系统运行时生成的组件,包括动态生成类文件,新增数据文件、日志文件、动态网页等

  • 接口:一组操作的集合,声明了组件提供或请求的服务契约,这个契约由实现和使用这个接口的组件共同遵守

       从调用从属角度可以把接口分为需求接口和提供接口。 

      - 需求接口: 也叫需接口,是指组件像其他组件请求服务时要遵循的接口

      - 提供接口:也叫供接口,是指组件给其他组件提供服务时实现的特性和约束

      

  • 关系:实现,依赖, 泛化(具体见组件图的关系部分)
  • 端口:属于外部接口,是被封装组件与外界的交互点。实现接口的组件使用端口来收发消息,与外界交互

      - 表示法:在UML2.0中表示为小方框

        

      - 与接口关系:需求接口通过端口从外部请求服务,提供接口通过端口向外部提供服务

      - 与组件关系:组件之间可以通过端口进行交互,如收发消息

  • 连接器:两个组件或两个端口之间的通信关系。UML2.0提供两种类型的连接器

      - 代理连接器:外部端口(端口)和内部接口之间的连接器

          

      - 组装连接器:组件之间的连接器。连接器在一个组件的需求接口和另一个组件的提供接口之间建立连接,使得前一个组件能够调用后一个组件提供的服务

        

组件图的关系

组件图中的关系有实现、依赖和泛化,主要涉及组件与组件之间、组件与接口之间、接口与接口之间。

  • 实现:组件与接口之间的关系

  • 依赖:组件与组件之间的关系

      如果两个组件中的两个类存在依赖关系,那么这两个组件之间的关系就可以表示为依赖关系

      

  • 泛化:组件与组件之间、接口与接口之间

      如果两个组件中的两个类之间或两个接口之间存在泛化关系,那么这两个组件之间的关系就可以表示为泛化关系

组件图示例

以银行短信客服系统为例

组件图与相近UML图的区别

  • 组件图与类图区别:组件图与类图在以下几个方面上有显著区别

      - 抽象层次:类图侧重对单个实体和细节逻辑的抽象;组件图侧重对模块化和部署实现的抽象

      - 抽象粒度:类图中以类、接口及它们之间关系为粒度;组件图中以功能单元为粒度,通常是若干个类或接口组成

      - 外部调用:外部调用类图中的类时可以根据其可见性直接调用其属性和操作;外部调用组件图中的组件则只能通过接口访问其操作

      - 可部署性:类图与单个实体和逻辑相对应,组织结构较为分散,不具有可部署性;组件图中的组件本身就是模块化、接近最终实现的功能单元,具有可部署性

  • 组件图与包图区别:组件图与包图在以下几个方面上有显著区别

      - 抽象层次:包图侧重对类、接口及包等元素的容器性抽象;组件图侧重对库文件、源代码文件、可执行文件等的模块化抽象

      - 组织结构:包图侧重静态的、不再改变的文件结构;组件图侧重动态的、随编译/链接/执行过程改变的文件结构

      - 可部署性:包图侧重源文件间的组织关系和层次,不具有可部署性;组件图中的组件本身具有动态可执行性,所以可部署

      - 元素关系:包图元素之间的关系大多是静态包含或关联;组件图元素之间的关系大多是动态调用或实现

组件图的注意事项

      - 组件粒度适中,既易于分析又不至于数目太庞大

      - 组件图中的元素关系需要与类图及包图中元素关系相对照,避免不一致产生歧义

      - 组件图中的元素名词与来源文件一直,与部署图中的元素一致

      - 组件图如果太过繁杂又不得不标全组件,可以适当拆分成总组件图和几个组件子图

原文地址:https://www.cnblogs.com/coolstream/p/9572868.html

时间: 2024-10-21 01:38:41

Python设计模式 - UML - 组件图(Component Diagram)的相关文章

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

简介 类图是面向对象分析和设计的核心,用来描述系统各个模块中类与类之间.接口与接口之间.类与接口之间的关系,以及每个类的属性.操作等特性,一般在详细设计过程中实施. 类图本身就是现实世界的抽象,是对系统中各种概念进行建模,并描绘出它们之间的关系,所以类图关注的对象就是元素及元素之间的关系. 类图建模步骤 - 抽象出类实体 - 识别出类的主要属性 - 画出类之间的关系 - 对各个类进行分析.梳理.设计 类图的元素 类图中包含以下几种模型元素:类.接口.关系.协作.注释.约束.包. 类 在UML的图

Python设计模式 - UML - 包图(Package Diagram)

简介 包图是对各个包及包之间关系的描述,展现系统中模块与模块之间的依赖关系.一个包图可以由任何一种UML图组成,可容纳的元素有类.接口.组件.用例和其他包等.包是UML中非常常用的元素,主要作用是分类.容纳其他元素.包与包之间的关系有泛化.细化和依赖,主要取决于包内部成员之间的关系. 包图建模步骤 - 分析系统的模型元素,运用分层设计把概念.语义和逻辑上相近的元素包含在同一个包中 - 对于每个包,分析包内每个元素的可访问属性,并标识出该元素的可见性 - 确定包与包中元素之间的泛化.细化.依赖关系

Python设计模式 - UML - 总览

说到设计模式就不得不涉及建模思想,说到建模思想自然而然会应用UML,目前业界开源的UML工具很多,用起来也非常便捷.近几年来随着软件应用领域开发模式转向快速迭代试错,UML在敏捷开发,尤其是web及mobile开发领域应用越来越少. 就国内软件行业发展现状来说,稳定成熟的商业软件凤毛麟角,初具雏形的互联网App大行其道,竞争中的公司更看重的是快速占领市场,小团队快速迭代试错,而不是长期.精心打磨同一款软件产品,所以注重统一规范.充分需求分析.严密框架设计的UML显得相对繁琐,自然会被灵活敏捷的各

UML之类图(Class Diagram)

类图是类的静态关系描述图,简单来讲有两个方面,有哪些类,这些类之间的关系是什么?需要注意的是类图描述的是静态关系,动态行为的如流程,判断,循环等类图无法描述,需要搭配其它UML图. 类自身的描述 生物由细胞构成,类图由类构成,我们先看看类长什么样,如何描述.首先类有一个唯一的名字,通常用手写字母大写的英文字母表示,一班名字应该用名词来表示.类的内部有两个部分构成,数据部门和操作部门.数据部门也叫属性(Property),存储一些数据.状态.关联等信息,操作部门表示的是该类能够执行的操作(Oper

Python设计模式 - UML - 部署图(Deployment Diagram)

简介 部署图也称配置图,用来显示系统中硬件和软件的物理架构.从中可以了解到软件和硬件组件之间的物理拓扑.连接关系以及处理节点的分布情况. 部署图建模步骤 - 找出需要进行部署的各类节点,如网络硬件设备.服务器硬件设备.及部署在硬件设备上的软件系统等 - 确定各类节点之间的连接关系及通信方式 - 从性能.可扩展性.可维护性.可移植性角度确定各类节点的数目和部署方式 - 绘制部署图,将artifact分配给各个节点 部署图主要元素 部署图中的主要元素有节点.物件和连接.其中节点根据其状态不同又有节点

设计模式-UML类图的各符号含义(转)

UML类图的各符号含义 类图基本符号可拆分为虚线,箭头,实线,空心右三角,实心右三角,空心菱形和实心菱形.由这些基本的图形进行组合构成了类图的基本符号.这里要注意这几个符号的顺序,代表了类与类之间关系的耦合程 度.越向右耦合度越高. 其中虚线+箭头是表示即依赖的关系,实线+箭头表示关联的关系,虚线+空心右三角表示implements,实线+空心右三角表示的是泛化,即类的继承关系.实线+空心菱形表示的是聚合的关系,实线+实心菱形则表示 组合的关系. 另外一点是在看类图的时候要注意.类图的思想其实也

[设计模式]-UML类图的各符号含义

UML类图的各符号含义 类图基本符号可拆分为虚线,箭头,实线,空心右三角,实心右三角,空心菱形和实心菱形.由这些基本的图形进行组合构成了类图的基本符号.这里要注意这几个符号的顺序,代表了类与类之间关系的耦合程 度.越向右耦合度越高. 其中虚线+箭头是表示即依赖的关系,实线+箭头表示关联的关系,虚线+空心右三角表示implements,实线+空心右三角表示的是泛化,即类的继承关系.实线+空心菱形表示的是聚合的关系,实线+实心菱形则表示 组合的关系. 另外一点是在看类图的时候要注意.类图的思想其实也

java设计模式--UML类图

2016-06-07 22:46:16 下面简单介绍UML类图:(图是截取的,大家可以用UML工具去画) 1.描述类的类图 类:Person 属性:name   age   sex 访问权限:-  表示私有的private   +:表示公共的public  #:表示protected 方法: getName():String   setName(name:String)   getAge():int   setAge(age:int)   getSex():String   setSex(sex

【UML】构件图Component diagram(实现图)(转)

http://blog.csdn.net/sds15732622190/article/details/49048887 前言 下面要介绍UML中的构建图,它属于实现图的一种,五种静态图之一. 定义 表示系统中构件与构件之间,以及定义的类或接口与构件之间关系的图.多个系统构件组成了构件图. 构件种类 实施构件 一个可执行系统必要和充分的构件,运行时创建的组件,也可以是最终可运行系统产生的允许结果.如,动态链接库,可执行文件等. 配置构件 运行系统需要配置的构件,形成可执行文件的基础.如,操作系统