【UML】构件图(Component Diagram)

本文介绍了构件图的概念、组成及绘制方法,并通过机房收费系统实例进行说明。对比部署图,阐述了两者之间的区别。

目录:

1、什么是构件图

2、构件图的组成

3、构件图的绘制

4、构件图--机房收费系统

5、构件图与部署图的区别

6、小结


1、什么是构件图
    组件图是用来反映代码的物理结构。从组件图中,可以了解各软件组件(如源代码文件或动态链接库)之间的编译器和运行时依赖关系。
    使用构件图有利于软件的复用

2、构件图的组成
(1)构件
    构件是系统的可替代的物理部分,它表示的是实际的事物,定义了良好的接口的物理实现单元,是系统中可以替代的部分,每个构件体现了系统设计中的特定类的实现
    构件和类的区分:构件是物理抽象,可以替换的文件。类是逻辑抽象,包含属性和方法。例如:这写逻辑抽象出来的东西用文件写出来编程源文件,这些源文件就是构件
(2)接口
    一个类提供给另一个类的一组操作,可以理解为一个方法。包括示出接口和引入接口
    示出接口:构件的实现接口
    引入接口:构件使用的接口
(3)关系
    实现:构件与其对应接口之间的关系
    依赖:构件与其他构件之间的关系

3、构件图的绘制
   (1)确定子系统对外的接口
   (2)确定子构件和接口
   (3)确定关系

4、构件图--机房收费系统

5、构件图与部署图的区别
          构件图显示了组件类型的定义、内部结构和依赖。构件图提供系统的物理视图,它的用途是显示系统中的软件与其他软件构件(例如,库函数)的依赖关系。构件图可以在一个非常高的层次上显示,从而仅显示粗粒度的构件,也可以在构件包层次上显示。
    部署图表示该软件系统如何部署到硬件环境中。它的用途是显示该系统不同的组件将在何处物理地运行,以及它们将如何彼此通信。因为部署图是对物理运行情况进行建模,系统的生产人员就可以很好地利用这种图。

6、小结

     对于构件图还是不太理解,只是从表面简单的认识了,相比之前的八种图,构件图在画的时候真是毫无头绪,也算是简单的画完了构件图

    以上是我对构件图的理解和认识,如有不同见解,请多多指教

### UML 构件的用法与示例 #### 基本概念 UML构件Component Diagram)是一种用于描述系统组成部分及其相互关系的表类型。它主要用于展现系统的物理结构,帮助开发者理解各个部分如何协同工作[^1]。 构件的核心在于定义和展示 **构件** 及其之间的依赖关系。构件是系统中遵循一组接口并提供具体实现的物理单元。它可以是一个模块、库或者任何可重用的功能块[^2]。 --- #### 构成要素 以下是构成 UML 构件的关键元素: 1. **构件 (Component)** 表示系统的一个物理部件,通常以矩形框表示,内部标注有构件名和可能的版本号。构件可以进一步细分为以下几种类型: - **配置构件**: 如操作系统、Java虚拟机等,作为构建可执行文件的基础。 - **工作产品构件**: 包括模型、源代码、配置文件等,例如 Java 类、JAR 文件、XML 配置文件等。 - **执行构件**: 运行时创建的实际组件,参与最终系统的运行逻辑[^2]。 2. **接口 (Interface)** 描述构件所提供的功能和服务。可以用一个小圆圈或带有凹槽的小方块表示,分别代表“提供”和“需求”的角色。 3. **依赖关系 (Dependency)** 使用带箭头的虚线表示两个构件之间存在的关联。如果一个构件依赖于另一个,则说明前者需要后者才能正常运作。 4. **端口 (Port)** 定义了构件与其他外部实体通信的方式。端口通常是构件边界上的小矩形标记。 --- #### 示例解析 下面给出一个简单的 UML 构件示例,并附上解释。 假设我们正在设计一个在线购物网站,该系统包含以下几个主要部分: - 用户界面层 (`UI Layer`) - 商业逻辑层 (`Business Logic Layer`) - 数据访问层 (`Data Access Layer`) ##### 形化表示 ```plaintext +-------------------+ | UI Component | | | | [provides: View]| +--------o---------+ | | uses v +--------o---------+ | BusinessLogicComp | | | | [requires: Model] | | [provides: Logic]| +--------o---------+ | | uses v +-------------------+ | DataAccessComp | | | | [provides: Data] | +-------------------+ ``` ##### 解释 1. `UI Component`: 提供视服务给用户交互,同时依赖业务逻辑层来获取操作结果。 2. `BusinessLogicComp`: 实现核心商业规则,既依赖数据访问层又向用户提供处理后的信息。 3. `DataAccessComp`: 负责数据库或其他持久存储的操作,向上层暴露数据查询能力。 这种分层方式清晰展示了各层次间的职责分离及协作机制。 --- #### 编程实践中的映射 为了更好地理解上述理论,我们可以将其对应到实际编程环境中。例如,在基于 Spring 的 Web 应用程序中: - `Controller` 对应于 `UI Component` - `Service` 层扮演 `BusinessLogicComp` 的角色 - `Repository/Dao` 则相当于 `DataAccessComp` 每种类型的 Bean 或者 Service Class 就构成了不同的构件实例。 ---
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值