【IT168 技术文章】

今天都在看代码,觉得怎么看都不够清晰,于是想尝试用Eclipse来生成一个UML来看,于是就有了下面的。

EclipseUML Studio Edition下载地址:

例子:一个用于UML建模的插件

要查看插件的例子,以及查看它是如何与 Eclipse 集成的,请下载流行的 OMONDO EclipseUML(参阅 参考资料中的链接);您需要注册,不过该插件是免费的。这个插件依赖 GEF,即 Graphical Editor Framework,这是另一个 Eclipse 插件。GEF 是 Tools 子项目的一部分。要下载 GEF,请转到 Eclipse Web 站点(参阅 参考资料),选择“downloads”,然后单击“Tools PMC downloads page”链接。注意您需要下载 OMONDO 推荐的 GEF 版本(针对 OMONDO 1.0.2 的是 GEF 2.0 版)。

下载之后,插件的安装通常是通过解压缩下载文件,并将其内容复制到 Eclipse 插件目录来完成的。在此例中,GEF 需要解压缩到 Eclipse目录(它将自动从该目录进入插件目录)。为安全起见,您可能想将它解压缩到某个临时目录,再相应地从那里复制相关目录。如果 Eclipse 正在运行,您需要停止它然后再重新启动它,这样它才能识别新安装的插件。

一旦 EclipseUML(以及 GEF)安装完成,您就能够像创建一个 Java 类文件一样创建一个类图。在 Java 透视图中,右键单击 Package Explorer 中的“Hello”项目,然后从弹出菜单上选择 New=>Other。New 对话框的左边窗格中将会有一个用于 UML 的新选项。EclipseUML 的免费版本仅支持类图,因此右侧的惟一选项是 UML Class Diagram。请选择 UML Class Diagram,然后为该类图键入一个名称,比如“Hello”:

Class Diagram编辑器

编辑器区域中将会出现一个图形编辑器,它带有用于绘制类图的画布。您可以通过两种方式创建类图:通过将 Java 文件从 Package Explorer 拖放到类图上,从而对现有代码进行逆向工程;或者使用空白类图上面工具栏中可用的绘制工具。要试验第一种方法,请创建一个名为 Person 的新类(使用 File=>New=>Class),然后赋予它下面列出的两个私有属性:

/** Person.java

* @author david

*/

public class Person {

private String name;

private Address address;

/**

* Returns the address.

* @return Address

*/

public Address getAddress() {

return address;

}

/**

* Returns the name.

* @return String

*/

public String getName() {

return name;

}

/**

* Sets the address.

* @param address The address to set

*/

public void setAddress(Address address) {

this.address = address;

}

/**

* Sets the name.

* @param name The name to set

*/

public void setName(String name) {

this.name = name;

}

}

应该承认,我仅键入了针对 name 和 address 的行。getter 和 setter 方法是通过 Eclipse 自动生成的,即右键单击源代码,然后从弹出菜单上选择 Source=>Generate Getter and Setter。

请保存并关闭 Person.java Hello.ucd。

Person类图

要从 UML创建Java类,请单击类图窗口顶部工具栏上的“New class”按钮,即左起第三个按钮,然后单击类图。当 New 类向导打开时,请键入Adress作为类名称,然后按 Finish。

您可以右键单击类名称并选择 New=>Attribute,从而给类添加属性。在 New 属性对话框中,请输入属性名称、类型和可见性。然后右键单击类名称并选择 New=>Method来添加方法。

当您更改类图时,图下面的 Source Editor 窗口将反映所做的更改。最后,您可以单击 Association 按钮(左起第五个),绘制一条从 Person 类指向 Address 类的线段,从而绘制这两个类之间的关系图。这样会调出另外一个对话框,您可以在其中输入关联属性(请参考 EclipseUML 帮助,以了解关于必需信息的更多内容)。完成后的图应该类似如下:

关联图

这个 UML 插件展示了 Eclipse 插件的几个典型特点。首先,它展示了工具之间的紧密集成。表面上绝对无法看出有多个组件在工作;与 Eclipse 平台和 JDT 的集成是无缝的。例如,当 Person 类被创建时,它显示语法错误是因为它的一个属性 Address 没有定义。一旦 Address 类在 UML 图中创建完成,这些组件就会分开显示出来。

另一个特点是 EclipseUML 利用其他插件提供的功能的能力——在此例中是 GEF 插件,它提供用于开发可视化编辑器的工具。

还有另一个特点涉及 EclipseUML 插件使用多层次功能来分发的方式。支持类图的基本插件是免费的,但是更成熟的版本要付费才能使用。

Eclipse平台体系结构

Eclipse平台是一个具有一组强大服务的框架,这些服务支持插件,比如 JDT 和插件开发环境(PDE)。它由几个主要的部分构成:平台运行库、工作区、工作台、团队支持和帮助。

Eclipse 平台体系结构图

eclipse制作uml_Eclipse生成一个UML相关推荐

  1. 超详细AI二维码制作教程:手把手教你如何用Stable Diffusion 生成一个创意二维码?

    AI已来,未来已来! 来势汹汹的人工智能,如同创世纪的洪水,正在全世界的范围内引发一场史无前例的科技革命.AI正在改变世界!而我们正是这场巨变的见证者. 今天我们要介绍的内容就是:如何利用AI工具St ...

  2. 使用ECLIPSE制作可执行文件

    2008 - 12 - 17 使用Eclipse制作可执行jar文件 1 , 右击 Eclipse 项目,点击 Export . 2 , 选中 java-jar 文件. 3 , 选中要发布为 jar ...

  3. Hadoop学习全程记录——在Eclipse中运行第一个MapReduce程序

    网友分享,拿来共享一下 这是Hadoop学习全程记录第2篇,在这篇里我将介绍一下如何在Eclipse下写第一个MapReduce程序. 新说明一下我的开发环境: 操作系统:在windows下使用wub ...

  4. 在Eclipse中写第一个hibernate小例子

    在hibernate自带的文档中,包含了一个很简单的小例子,不过这个小例子是基于ant的,而且说的不是很详细,不利于新手学习.在这里,我将在Eclipse中实现这个例子,并给出详细的实现步骤.     ...

  5. 基于bboss开发平台eclipse开发工程生成工具介绍

    为什么80%的码农都做不了架构师?>>>    基于bboss开发平台eclipse开发工程生成工具介绍 一.工具简介   bboss开发平台发布出两个资源包:  war部署包  数 ...

  6. H5类似易企秀/编辑器/页面制作/开发/生成工具/软件/源码/授权

    代码地址如下: http://www.demodashi.com/demo/14960.html 项目简介 H5DS (HTML5 Design software) 这是一款基于WEB的 H5制作工具 ...

  7. 一张照片,如何生成一个二维码?

    冬天落在恭王府的第一场大雪.春天聚在河边觅食的麻雀.盛夏午后从冰箱里拿出来的大西瓜.深秋爬满南墙的红叶--每一份惊喜和快乐,都值得分享给更多的朋友. 今天我们要介绍的是,如何将一张照片,做成一个二维码 ...

  8. 太帅了!3分钟用ChatGPT生成一个美队的Logo图标!

    ChatGPT是目前最火最出圈的产品,各路大佬云集发车,我们菜鸟团队也在第一时间分享了很多玩法!(我们公众号已经分享了十几篇原创干货,翻翻历史文章哈).如果到现在还不知道GPT赶紧去面壁思过吧! 从玩 ...

  9. 使用visio如何快速生成一个网格状图案,文档技巧!

    如何使用visio如何快速生成一个网格状图案 我的成果图: 操作步骤如下: 1.新建一个visio文件,选择"基本框图".点击创建. 2.从左侧形状窗口中基本形状中选中正方形拖动到 ...

最新文章

  1. Linux中使用ps、awk、sh一起批量杀死所有的dotnet进程。
  2. 记一次线上Java程序导致服务器CPU占用率过高的问题排除过程
  3. Missing artifact log4j:log4j:bundle:1.2.17
  4. java yeild_Java 中 Thread.yield() 方法详解
  5. webpack 报错 path is not defind
  6. 风变Python 之旅5----for...in 以及while的循环学习
  7. 181219每日一句
  8. 【hacker的错误集】IndentationError: expected an indented block
  9. 席位、交易单元、交易网关是什么
  10. 用计算机技术辅助语文教学,利用计算机技术辅助拼音学习“潜力无限”
  11. 美团2017校园招聘编程题
  12. 《操作系统教程》(第五版)费翔林等著 课后习题参考答案
  13. T-Code (Controlling)
  14. 好和弦-5-调式和音阶
  15. 基于VTK的PACS系统的开发 心路历程2
  16. AutoCAD二次开发之删除图层及图层上所有的实体
  17. CAXA电子图板2013机械版下载及安装教程详解
  18. 大V吐槽微信电脑版:视频、表情占满C盘
  19. UEFI无法进入WIN10的系统?BIOS找不到ssd硬盘?reboot and select proper boot device的另一种解决思路
  20. 乖离水机器人攻略_乖离性百万亚瑟王幽蓝机器人卡牌推荐 超弩幽蓝机器人攻略...

热门文章

  1. xe ftp.config.php,用PHP实现一个高效安全的ftp服务器(一)
  2. 机器人搬运礼盒程序_礼盒厂公司2020范文
  3. centos7 查看ip_VMware安装CentOS 7操作系统详细操作教程(网络配置)
  4. memory matlab,memory – 在MATLAB中处理大量结构
  5. curl测试返回时间
  6. 九、序列参数集Sequence Paramater Set(SPS)解析
  7. 怎样用C语言数码管编写E1显示程序,跪求单片机0~99数码管显示用C语言编写的程序...
  8. python 网盘多帐号_CuteOne:一款基于Python3的OneDrive多网盘挂载程序,带会员/同步等功能...
  9. java 日期检查_如何在Java中检查日期
  10. android 下拉刷新 组件,android系统自带下拉刷新控件的实现