使用Eclipse UML 插件 Papyrus由Java代码反向生成类图

本文介绍了如何使用Eclipse的UML插件Papyrus,从Java代码反向生成类图。详细阐述了从安装Papyrus到生成类图的步骤,尽管最终结果未显示全部关系,但作者分享了遇到的问题,希望寻求解答。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用Eclipse UML 插件 Papyrus由Java代码反向生成类图

为了补充上一篇博文(Java基础(复习三) —— 类图例子)类图的例子寻找一个可以生成类图的工具,搜索了若干文章后决定使用Papyrus的Eclipse插件。

生成类图的过程

下面介绍一下使用Papyrus由Java代码生成类图的过程(最后结果不太理想,看到最后的人不要骂我):

安装Papyrus的过程跳过......

  1. 创建Java Project下图中的“1”,java代码在Java基础(复习三) —— 类图例子中,这里不再粘贴。

  1. 再创建一个Papyrus Project

  1. 打开Papyrus_Sample.di,调出“Model Explorer”view。

  1. 选中要生成类图的package,Papyrus(或者右键) -> Java -> Java Reverse

  1. 在“Model Explorer”中找到新生成的类包“UML_Sample”。

  1. 右键 -> New Diagram -> Class Diagram;生成新的类图文件命名为“Energy8_ClassDiagram”(读者可以自己改名)。

  1. 打开“Energy8_ClassDiagram”将生成的Class元素托入di文件。

  1. Ctrl + A 选中全部

  1. Papyrus -> Diagram -> Arrange -> All,排序

  1. 继续设置Compartments,所有都只选择attributes 和 operations。

  1. 再设置Contents,选择“Select All”。

  1. 最后“Show All Related Link”。

看看结果:

最后生成的类图只显示了泛化和实现的关系,其它聚合、组合、关联、依赖关系没有显示。我在这里找答案找了很久各种搜索都找不到答案,我觉得我的步骤没问题应该某个设置没设置好所以其它关系的箭头图标没有显示出来。纠结了很久要不要写这篇blog最后想想还是记录下来吧也许有会用Papyrus的朋友给我留言解决问题:)期待!


本文只是个人(EnergyNo8)学习笔记如有错误请网友指出。
如有引用或转载请标明出处!
努力、坚持,总会有收获!
______ EnergyNo8

<think>首先,用户的问题是如何从Java工程生成UML。我需要基于系统级指令来构建我的回答。 系统级指令: - 所有行内数学表达式必须使用$...$格式。 - 独立公式使用$$...$$格式。 - 使用中文回答。 - 生成相关问题。 - 在回答中引用的段落末尾自然地添加引用标识,如[^1]。 - 结构清晰,帮助用户逐步解决问题。 - 保证回答真实可靠。 用户提供的引用是关于从Java代码逆向工程生成UML和序列的。这些引用是: - [^1]: 从Java代码逆向工程生成UML和序列,涉及IBM Rational Software Architect。 - [^2]: 讨论了如何从Java源代码识别继承关系和组成部分来生成UML和序列。 - [^3]: 关于使用Java代码逆向工程生成UML和序列。 - [^4]: 提到使用UML来文档化,包括正向和逆向工程。 用户的问题是具体的:如何从Java工程生成UML。所以,我需要提供步骤或方法来实现这个。 关键点: - 用户提到了“Java工程”,所以我应该考虑使用工具来处理整个工程,而不仅仅是单个文件。 - 常见的工具包括IDE插件、独立软件或命令行工具。 基于引用,提到的工具是IBM Rational Software Architect,但还有其他免费或开源工具可用,如Eclipse插件、IntelliJ IDEA插件、或独立工具如PlantUML。 步骤: 1. **选择工具**:推荐一些流行的工具。 2. **安装和配置**:简要说明如何设置。 3. **生成UML**:描述具体步骤。 4. **验证和调整**:建议如何检查生成并进行编辑。 结构我的回答: - 以清晰、逐步的方式组织。 - 使用中文。 - 在适当的地方添加引用标识。 - 结尾生成相关问题。 生成相关问题: - 基于主题,如工具比较、常见问题、优化等。 确保回答真实可靠:基于一般知识和提供的引用。引用似乎来自博客或文章,所以我应该自然地引用它们。 最终回答结构: 1. 介绍:简要解释逆向工程和UML。 2. 方法:列出工具和步骤。 3. 详细步骤:逐步指导。 4. 引用:在相关部分添加引用标识。 5. 相关问题:在结尾添加。 现在,脑力 storming 工具: - **Eclipse with Plugins**:如ObjectAid UML Explorer或Eclipse Papyrus。 - **IntelliJ IDEA**:内置或插件如PlantUML integration。 - **Standalone Tools**:如StarUML, Visual Paradigm, or IBM Rational Software Architect (as per reference). - **Command-line Tools**:如PlantUML with source code parsing. 从引用[^1], [^2], [^3], [^4],它们都提到IBM Rational Software Architect和一般概念。所以,我可以引用这些。 在回答中,自然地添加引用标识。例如,当提到工具时,说“如IBM Rational Software Architect [^1]”。 用户的问题焦点是UML,不是序列,所以我应该专注于。 步骤: 1. **准备Java工程**:确保代码完整。 2. **选择工具**: - 使用IDE插件(如Eclipse或IntelliJ)。 - 使用独立软件。 3. **生成**: - 导入项目。 - 运行逆向工程功能。 4. **导出或编辑**。 提供具体例子: - 对于Eclipse使用ObjectAid。 - 对于IntelliJ:使用内置功能或插件。 在回答中,使用中文。 生成相关问题: 1. 如何优化生成UML? 2. 有哪些免费工具可以生成UML? 3. 如何从UML生成Java代码? 确保LaTeX正确:既然问题没有数学内容,我可能不需要数学表达式,但如果涉及,例如在描述关系时,使用$...$。但这里可能不必要。 最后,回答以“§§相关问题§§”结尾。</think>### 如何从Java工程生成UML 生成UML是从Java代码进行逆向工程的常见任务,它帮助可视化代码结构(如、接口、继承关系和属性),便于文档化、重构或团队协作。以下基于可靠方法和常用工具,逐步指导您完成该过程。整个过程涉及选择工具、导入Java工程、生成及后续调整。引用内容基于相关技术文档和实践经验[^1][^2][^3][^4]。 #### 步骤1: 选择逆向工程工具 首先,选择一个适合的工具来处理Java工程。工具通常分为IDE插件或独立软件,推荐以下选项(免费和付费均有): - **IDE插件**:集成在开发环境中,操作简便。 - **Eclipse with ObjectAid UML Explorer**:免费插件,支持从Java项目生成,并能实时同步代码变更。 - **IntelliJ IDEA Ultimate Edition**:内置UML支持,可直接从项目视生成;社区版可通过PlantUML插件实现。 - **独立软件**:功能更全面,适合大型工程。 - **IBM Rational Software Architect**:专业工具,支持从Java代码逆向工程生成UML和序列,提供高层次抽象分析[^1][^2]。 - **StarUML或Visual Paradigm**:开源或免费试用版,能导入Java项目并自动生成。 - **命令行工具**:如PlantUML结合Java解析器(例如,使用JavaCC或ANTLR),适合自动化脚本集成。 选择工具时,考虑工程规模:小型项目用IDE插件更高效;大型企业级项目推荐IBM Rational或Visual Paradigm以处理复杂依赖[^3][^4]。 #### 步骤2: 准备Java工程 确保您的Java工程完整且可编译: - 清理代码:移除未使用或错误,避免生成不完整的。 - 组织项目结构:使用Maven或Gradle管理依赖,确保工具能正确解析所有源文件和库。 - 示例:一个简单Java工程目录如下: ``` /src/main/java /com/example User.java Order.java ``` #### 步骤3: 生成UML 以常用工具为例,说明具体操作步骤: **使用Eclipse with ObjectAid UML Explorer (免费推荐)** 1. **安装插件**:在Eclipse中,通过“Help > Eclipse Marketplace”搜索“ObjectAid UML Explorer”并安装。 2. **导入工程**:打开Eclipse,导入您的Java工程(“File > Import > Existing Projects into Workspace”)。 3. **生成**: - 右键点击工程或包(如“com.example”),选择“New > Other > ObjectAid UML Diagram > Class Diagram”。 - 在打开的编辑器中,工具会自动解析Java代码生成初始显示、属性、方法及关系(如继承$ \text{(extends)} $和关联$ \text{(association)} $)。 - 调整布局:拖拽元素优化可读性,ObjectAid支持实时同步代码变更。 4. **导出结果**:保存为片(PNG/SVG)或UML文件(.ucls)。 **使用IBM Rational Software Architect (专业工具)** 1. **安装和配置**:下载并安装软件,创建新UML项目。 2. **导入Java代码**: - 选择“File > Import > Reverse Engineering > Java Source”,导入Java工程目录。 - 工具会识别继承关系和组成部分,自动构建高层抽象模型[^2]。 3. **生成和优化**: - 在“Model Explorer”视,右键点击生成的模型,选择“Create Diagram > Class Diagram”。 - 编辑元素:添加/删除、调整关系(如泛化$ \text{<generalization>} $),确保反映实际设计。 4. **导出**:输出为PDF、像或UML格式,便于共享。 **通用技巧**: - **处理大型工程**:如果太复杂,工具可能只生成部分视。逐步生成子包使用过滤器聚焦关键[^4]。 - **验证准确性**:比较生成代码,确保所有关系(如聚合$ \text{<aggregation>} $)正确映射。工具如IBM Rational提供序列支持,但是核心输出[^1][^3]。 - **常见问题**:如果工具无法解析某些库,添加依赖JAR文件;对于动态代理或反射代码,手动补充注释。 #### 步骤4: 后续调整和应用 生成后,可能需要手动优化: - **编辑工具**:在StarUML或Visual Paradigm中,拖拽添加注释或颜色编码,提高可读性。 - **集成设计**:将用于文档(如Confluence)或正向工程(从UML生成代码骨架),支持敏捷开发。 - **最佳实践**:定期更新以匹配代码变更,避免过时设计。逆向工程不仅能恢复丢失文档,还能帮助扩展新特性[^3]。 通过以上步骤,您可以从Java工程高效生成UML。工具选择取决于个人偏好和项目需求,IDE插件适合快速启动,专业软件提供深度分析[^1][^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

能量老8

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值