基本概念:组件图即是用来描述组件与组件之间关系的一种UML图。组件图在宏观层面上显示了构成系统某一个特定方面的实现结构。

  组件图中主要包含三种元素,即组件、接口和关系。

  组件图通过这些元素描述了系统的各个组件及之间的依赖关系,还有组件的接口及调用关系。此外,组件图还可以使用包来进行组织,使用注解与约束来进行解释和限定。

  组件图在面向对象设计过程中起着非常重要的作用:它明确了系统设计,降低了沟通成本,而且按照面向对象方法进行设计的系统和子系统通常保证了低耦合度,提高了可重用性。

组件图的组成元素:组件、接口、组件图中的关系、组件的内部结构。

组件

  组件,是系统设计的一个模块化部分,它隐藏了内部的实现,对外提供了一组接口。

  组件是一个封装完好的物理实现单元,它具有自己的身份标示和定义明确的接口。并且由于它对接口的实现过程与外部元素独立,所以组件具有可替换性。

                     

  组件在系统中一般存在三种类型,分别为部署组件、工作产品组件和执行组件。

    a.配置组件是构成系统所必要的组件,是运行系统时需要配置的组件。

    b.工作产品组件主要是开发过程的产物,是形成配置组件和可执行文件之前必要的工作产品,是部署组件的来源。工作产品组件并不直接参与到可执行系统中,而是用来产生系统的中间产品。

    c.执行组件代表可运行的系统最终运行产生的运行结果,并不十分常见。

一个ATM机的组件:

系统设计的一个模块化部分

显示界面

读卡机

业务操作----查询、取款、转账、挂失

学校教务系统的组件:

系统设计的一个模块化部分

登录界面、业务动作、层业务实现层

学生管理、教师管理、成绩维护、选课

接口

  对于一个组件而言,它有两类接口,提供接口与需求接口。

    a.提供接口:又被称为导出接口或供给接口,是组件为其他组件提供服务的操作的集合。

    b.需求接口:又被称为引入接口,是组件向其他组件请求相应服务时要遵循的接口。

端口

  端口(port)是一个被封装的组件的对外窗口。在封装的组件中,所有出入组件的交互都要通过端口。组件对外可见的行为恰好是它端口的综合。此外,端口是有标识的。别的组件可以通过一个特定端口与另一个组件通信。在实现时,组件的内部组件通过特定的外部端口来与外界交互,因此,组件的每个部件都独立与其他部件的需求。端口允许把组件的接口划分为离散的并且可以独立使用的几部分。端口提供的封装性和独立性更大程度上保证了组件的封装性和可替换性。

组件的内部结构

  在UML 2规范中,组件允许通过嵌套结构来表现组件的内部结构。

  子组件之间通过接口建立关系。图中组件边缘的小矩形被称为端口,端口可以理解为组件的入口与出口,组件通过端口与外部元素相互协作。端口上可以添加提供接口或需求接口来使组件得以扩展。

组件图中的关系

1.依赖关系

  a.组件与需求接口之间建立依赖关系

  b.组件与组件之间建立依赖关系:说明在运行过程中A在某些行为上依靠组件B的支持

2.实现关系

  组件与提供接口之间建立实现关系

组件图的建模技术

对源代码结构建模

  识别出感兴趣的源代码文件集合,并建模为组件。

  如果系统规模较大,使用包对组件进行分组。

  可以使用约束或注解来表示源代码的作者、版本号等信息。

  使用接口和依赖关系来表示这些源代码文件之间的关系。

  检查组件图的合理性,并识别源代码文件的优先级以便进行开发工作。

对可执行程序结构建模

  识别出相关的运行组件集合。

  考虑集合中每个组件的类型。

  如果系统规模较大,可以使用包对组件进行分组。这里包的使用可以对应于相应文件的文件存储结构。

  分析组件之间的关系,使用接口和依赖关系建模这些关系。

  考量建模结果是否实现了组件的各个特性,对建模的结果进行细化。

案例(分析一个已经存在的系统)

画出下列描述的网上商城组件图:购物车、订单、库存、支付管理组件,使用组件图进行完善。

识别组件:购物车、订单、库存、支付管理

识别组件之间的关系通过一个现实的例子。

在购买一件商品时,我们首先是浏览商品,了解商品详情。在商品详细页面上,我们可以看到一个“加入购物车”

                组件图

UML之组件图的更多相关文章

  1. UML:组件图

    要搞清楚组件图,必须先搞清楚什么是组件? 组件有以下特点:1.能实现一定功能,或者提供一些服务.2.不能单独运行,要作为系统的一部分来发挥作用.3.在物理上独立的,不是逻辑上的概念.4.可单独维护.可 ...

  2. UML_组件图

    简介 众所周知,组件图是用来描述系统中的各组件之间的关系.首先我们必须知道组件的定义是什么,然后组件之间有哪些关系.理清楚这些,我们在以后的设计中才能 派上用场.UML语言对组件的定义已发生了巨大变化 ...

  3. UML精粹5 - 状态图,活动图,通信图,组合结构,组件图,协作,交互概述图,时间图

    状态机图state machine diagram 下面是状态图的一个例子(一个城堡中的秘密保险箱的控制面板). 转换transition包括3个部分:trigger-signature [guard ...

  4. UML组件图(转载)

    概述: 组件图是不同的性质和行为.组件图用于模拟物理方面的系统. 现在的问题是什么,这些物理方面?物理方面的元素,如可执行文件,库,文件,证件等它位于在一个节点. 因此,组件图用于可视化的组织和系统组 ...

  5. (转)UML实践----用例图、类图、对象图、顺序图、协作图、状态图、活动图、组件图、配置图

    面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified Modeling Language™),这篇课程的目的是展示出UML ...

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

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

  7. 【UML】NO.48.EBook.5.UML.1.008-【UML 大战需求分析】- 组件图(Component Diagram)

    1.0.0 Summary Tittle:[UML]NO.48.EBook.1.UML.1.008-[UML 大战需求分析]- 组件图(Component Diagram) Style:DesignP ...

  8. UML部署图和图九组件图

    前言     UML大部分描写叙述了逻辑和设计方面的信息.实现图用来描写叙述实现方面的信息.实现图包含部署图和构件图. 构件图     1. 概念      构件图从软件架构的角度来描写叙述一个系统的 ...

  9. UML组件图

    组件图用于可视化在一个系统中的物理组件.这些组件包括库,程序包,文件等. 组件图 = 构件(Component)+接口(Interface)+关系(Relationship)+端口(Port)+连接器 ...

随机推荐

  1. [https][openssl] OpenSSL 公钥、私钥以及自签名证书

    转自:https://www.zybuluo.com/muyanfeixiang/note/392079 简介 公钥私钥用来互相加解密的一对密钥,一般是采用RSA非对称算法.公钥加密的私钥能解密,私钥 ...

  2. 压缩维度oj P1173+P1174+P1164

    今天在洛谷上刷dp,忽然冒出一道求最大字段和的问题,然后忘了瞬间忘了这是dp,几分钟一个贪心出来了成功ac,忽然想起自己在作dp,于是乖乖刷dp. 这个可能很多人都会但是今天有4种解法哦,本人只尝试了 ...

  3. CSDN论坛 > Delphi > VCL组件开发及应用 DBLookupComboBox用法

    (1)DataSource属性    该属性用于连接要编辑数据的主表数据源(2)DataField属性    该属性用于指定要编辑的数据字段名(3)ListSource属性    .    该属性用于 ...

  4. 图->连通性->最小生成树(普里姆算法)

    文字描述 用连通网来表示n个城市及n个城市间可能设置的通信线路,其中网的顶点表示城市,边表示两城市之间的线路,赋于边的权值表示相应的代价.对于n个定点的连通网可以建立许多不同的生成树,每一棵生成树都可 ...

  5. 重读《深入理解Java虚拟机》七、探究Java内存模型

    1.计算机物理内存结构(物理内存结构决定了虚拟机内存结构) 由于处理器和主存储设备在运算速度上不上同一个数量级上,因此处理器和主存储器之间不得不增设一层高速缓存,将部分在主存储设备的运算放在高速缓存内 ...

  6. websocketd

    https://www.cnblogs.com/tinywan/p/6826125.html https://www.jianshu.com/p/63afd0099565

  7. nodejs 学习三 异步和同步

    同步函数 for (let i = 0; i < 10; i ++) { setTimeout(() => { console.log(`${i} ______ ${new Date}`) ...

  8. sql server 复制常见问题及查看

    1.SQL Server同步复制问题排查方法http://blog.csdn.net/roy_88/article/details/41481059 2.[同步复制常见错误处理1]当IDENTITY_ ...

  9. RadioButton使用

    RadioButton和CheckBox差不多,这里只写一个,因为我本身不是学andorid,所以就当给自己留一个备份,省的每次用到都需要代码敲一次,很麻烦 1.如果想选中时想改变颜色可以设置一个xm ...

  10. RN TextInput用法

    效果图: 代码: import React, {Component} from 'react' import {StyleSheet, View, Text, TouchableOpacity, Te ...