vault backup: 2026-06-10 12:08:39

This commit is contained in:
2026-06-10 12:08:39 +08:00
parent 4684fd845c
commit 23a3765f61
16 changed files with 3882 additions and 0 deletions

View File

@@ -0,0 +1,138 @@
# 第7章 组件图与部署图
> **考试重要度**:★★★
> **核心内容**:组件的概念与类型、组件与类的关系、正向工程与逆向工程、部署图与结点
---
## 📢 从盖房子理解物理模型
💬 前面学的用例图、类图、顺序图等是**逻辑模型**——描述"软件能干什么"和"软件怎么组织"。
组件图和部署图是**物理模型**——描述"软件代码文件怎么组织"和"软件部署在哪台机器上"。
```
逻辑模型:用例图 + 类图 + 顺序图 + 协作图 + 活动图 + 状态图
物理模型:包图 + 组件图 + 部署图
```
💬 **比喻**:逻辑模型是"建筑设计图"(几室几厅、什么风格),物理模型是"施工方案"(每间房用什么材料、电线怎么走)。
---
## 💡 一、组件的概念
> **定义**:组件 = 系统中可替换的物理部件,是一个实现性文件。
💬 **大白话**:组件就是"软插件"——像电脑的USB设备一样可以拔下来换一个。
### 组件的三种类型
| 类型 | 说明 | 举例 |
|------|------|------|
| **部署组件** | 运行时需要的组件 | DLL文件、JAR文件、数据库表、XML文件 |
| **工作产品组件** | 开发过程产生的组件 | 源代码文件(.java/.cpp)、数据文件 |
| **执行组件** | 运行后产生的组件 | EXE文件、动态网页、EJB |
---
## 💡 二、组件和类的关系
🔑 **这是本章最重要的理解!**
| 维度 | 类 | 组件 |
|------|-----|------|
| **性质** | 逻辑概念("虚" | 物理概念("实" |
| **存在形式** | 设计图上的符号 | 硬盘上的文件 |
| **包含关系** | 一个类只在一个组件中 | 一个组件可以包含多个类 |
| **例子** | `class BankAccount` | `BankAccount.java` 这个文件 |
💬 **简单说**:一个.java文件可以定义多个类这个.java文件就是**组件**里面的class定义就是**类**。
### 组件之间的关系
组件之间的关系 = 包含的类之间的关系的"投影"。
> 类A依赖于类B → 组件A依赖于组件B
---
## 💡 三、正向工程与逆向工程
| 工程方向 | 含义 | 过程 |
|----------|------|------|
| **正向工程** | 模型 → 代码 | 画好类图和组件图 → 工具自动生成代码框架 |
| **逆向工程** | 代码 → 模型 | 导入源代码 → 工具自动生成类图和组件图 |
💬 **正向工程**:先设计,再生成代码骨架。
💬 **逆向工程**:拿到别人写的代码,自动生成类图来理解结构。
---
## 💡 四、部署图
### 结点的概念
> **结点** = 运行时存在的、有计算能力的物理元素。
| 结点类型 | 说明 | 举例 |
|----------|------|------|
| **处理机结点** | 有计算能力的硬件 | PC机、服务器、打印机智能 |
| **设备结点** | 无计算能力的硬件 | 调制解调器、普通终端 |
### 部署图的作用
部署图显示:
1. 系统中有哪些**硬件结点**
2. 结点之间的**连接关系**(通信路径)
3. 每个结点上运行什么**组件**
💬 **一句话**:部署图 = "哪个软件组件跑在哪台机器上"。
---
## ✍️ 边学边练
**题目**某Web系统包括以下内容请区分逻辑模型和物理模型。
① 用户类(User)、订单类(Order)
② User.java、Order.java放在src/entity目录下
③ 用户登录要用到LoginAction.java
④ 整个系统部署在一台Web服务器和一台数据库服务器上
⑤ 用户→登录界面→输入信息→验证→跳转主页
**答案:**
-**逻辑模型(类图)**—— 描述有哪些类
-**物理模型(包图+组件图)**—— 描述文件放哪个目录
-**物理模型(组件图)**—— 描述组件之间的依赖
-**物理模型(部署图)**—— 描述硬件部署
-**逻辑模型(顺序图/活动图)**—— 描述交互流程
---
## 📝 章末自测
**1. 填空题**
- 组件的三种类型是:( ___ ___ )、( ___ ___ )、( ___ ___
- 正向工程是指从( ___ ___ )生成( ___ ___
- 部署图中的结点分两种:( ___ ___ )和( ___ ___
**2. 判断题**
- ( ) 一个组件只能包含一个类
- ( ) 组件图描述的是系统的物理结构
- ( ) 部署图中的连接表示硬件之间的通信路径
- ( ) 类图是物理模型,组件图是逻辑模型
**3. 简答题**
- 简述组件和类的关系。
**答案:**
**填空题**:部署组件、工作产品组件、执行组件;模型、代码;处理机结点、设备结点
**判断题**:❌(可包含多个) ✅ ✅ ❌(反过来)
**简答题**
- 类是逻辑概念,组件是物理概念。一个组件(如.java文件可以包含一个或多个类。组件是为了"软插件"理念——将类打包成可替换的物理单元。类之间的关系决定了组件之间的关系。
---
> 🔗 上一篇:[第6章 状态图与活动图](第06章-状态图与活动图.md) | 下一篇:[第8章 包图](第08章-包图.md)