本文目录导读:

绘制包图(Package Diagram)通常用于展示UML(统一建模语言)中的系统架构、模块分组及依赖关系,包图的核心元素是包(矩形+小标签)、依赖(虚线箭头)、导入/访问关系。
以下是使用常见工具绘制包图的具体方法,分为专业UML工具、通用绘图工具和代码生成工具三类。
使用专业UML工具(最推荐)
这类工具内置了UML符号和自动排版功能,效率最高。
StarUML (免费/付费,Windows/Mac/Linux)
- 步骤:
- 新建项目,选择 Model -> Add Diagram -> Package Diagram。
- 从左侧工具箱拖拽 Package 元素到画布。
- 双击包名修改名称(
Controller、Service、Data Access)。 - 连接关系:选中 Dependency(依赖)箭头,从一个包拖向另一个包(表示源包依赖目标包)。
- 如需嵌套(子包),直接将包拖入另一个包内部即可。
- 优点: 完全遵循UML 2.x规范,支持生成代码和导出高分辨率图片。
Visual Paradigm (功能强大,支持在线版)
- 步骤:
- 在线版直接选择“包图”模板;桌面版新建Diagram -> UML -> Package Diagram。
- 使用 Shape Library 添加 Package。
- 使用 Dependency 工具画连线。
- 可以给包添加 元素 (Class/Interface) 显示内部结构。
- 优点: 有丰富的模板,自动生成依赖关系报告。
PlantUML (基于文本代码生成,适合程序员)
-
原理: 写一段简单代码,工具自动渲染成图。
-
示例代码 (.puml文件):
@startuml package "用户界面层" { [登录页面] [主页] } package "业务逻辑层" { [用户服务] [订单服务] -> 用户服务 : 依赖 } package "数据访问层" { [数据库接口] } "用户界面层" --> "业务逻辑层" "业务逻辑层" --> "数据访问层" @enduml -
使用工具: VS Code(安装PlantUML插件)、在线编辑器(如 planttext.com)、或本地Jar包。
-
优点: 版本控制友好(文本文件),自动对齐,无需拖拽。
使用通用绘图工具(手动拖拽)
如果你不需要严格的UML规范检查,这些工具也很方便。
draw.io / Diagrams.net (免费在线/离线)
- 步骤:
- 打开 draw.io,选择 UML 模板库。
- 从左侧形状面板找到 UML -> Package 形状(通常是右上角带小标签的矩形)。
- 拖出包,修改文字。
- 连接线使用 箭头 样式,选择虚线箭头表示依赖。
- 使用 容器 功能:将子包拖到父包上方,父包会自动成为容器(显示为包图风格)。
- 技巧: 在形状属性中,将“包”的样式设置为“包含元素”模式,这样拖入的子元素会被包住。
Microsoft Visio (订阅制,Windows)
- 步骤:
- 新建 -> 类别 -> 软件和数据库 -> UML 模型图。
- 在形状窗口找到 UML 用例/包 模具。
- 拖拽 包 形状。
- 拖拽 依赖 连接线并连接到两个包。
- 注意: Visio支持UML 2.0规范,但操作稍复杂。
在线白板工具 (Miro, ProcessOn, 腾讯CoDesign)
- 步骤:
- 在搜索形状中输入 “Package Diagram” 或 “UML包”。
- 拖出矩形框,手动添加标签(文字加下划线或加小矩形标签)。
- 使用箭头连接。
- 适用场景: 快速架构草图、团队协作可视化。
关键绘图规范(确保画得对)
包图看起来简单,但容易画错,请注意以下几点:
-
包的表现形式:
- 标准画法:一个矩形,左上角有一个小矩形(标签栏),大矩形里写包名,小矩形里可写
<<package>>或留空。 - 简化画法:一个矩形,顶部居中写包名,加
<<package>>构造型。
- 标准画法:一个矩形,左上角有一个小矩形(标签栏),大矩形里写包名,小矩形里可写
-
关系:
- 依赖(Dependency):虚线箭头 ,箭头指向被依赖的包(A依赖B,箭头从A指向B)。
- 导入(Import):
<<import>>的虚线箭头,表示将目标包的元素导入到源包。 - 访问(Access):
<<access>>的虚线箭头,表示有限制地访问。 - 泛化(Generalization):实线空心三角箭头,表示通用/特化关系(很少用在包图,更多用在类图)。
-
嵌套:子包应该完全置于父包矩形的内部。
总结建议
| 场景 | 推荐工具 | 理由 |
|---|---|---|
| 学生作业/学习 | StarUML 或 draw.io | 免费、规范、易上手 |
| 程序员/文档代码化 | PlantUML | 文本编写,可集成到Git/Markdown |
| 团队协作/在线办公 | draw.io (集成谷歌/微软) | 免费、多人实时编辑、数据存自己网盘 |
| 企业级正式设计 | Visual Paradigm 或 Enterprise Architect | 功能完整,支持模型驱动开发 |
| 快速草图/白板 | Miro 或 Excalidraw | 手绘风格,适合会议讨论 |
简易三步法(以draw.io为例):
- 打开
draw.io,选 UML 模板。 - 拖一个“包”形状,修改名字为系统模块名(如“用户管理”)。
- 用虚线箭头连接相关包(方向:依赖指向被依赖方)。
这样一幅标准的包图基本就成形了,如果你需要更具体的操作(比如如何在PlantUML中设置依赖关系),可以告诉我你使用的工具,我可以给出对应的详细步骤。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。