ObjectAid是一款比较好用的Java逆向工程工具(类似工具的比较见 自动生成Java类图工具比较 ),以下是使用方法。 创建基于Java代码的类图 1. 安装objectaid插件:将objectaid-1.0.9.zip解压到\(ECLIPSE_HOME/dropins/\)OBJECTAID_PLUGIN_NAME下,目录结构如下:
-
启动Eclipse,File -> New -> Other -> ObjectAid UML Diagram -> Next
-
"Folder"后写上保存类图的位置,"Name"后面写类图的名字;
-
下面的选项里勾选上感兴趣的项目,其中"Relationships"中各项的含义见后面的说明;
-
"Finish"。
-
打开新生成的类图文件(.ucls),将感兴趣的类文件拖入ucls文件窗口中(详细使用方法见ObjectAid官网上 如何生成类图的说明 ); 对Relationships的说明(与标准UML中的术语不尽一致,如何对应以后再细分析,
- 继承(Generalization):实线三角,子类/接口(Shell)指向父类/接口(ConnectionListener);
public interface Shell extends ConnectionListener
- 实现(Realization):虚线三角,源类(DummyShell)实现目标接口(Shell);
public class DummyShell implements Shell
- 关联(Association):实线箭头,源类(Connection)的一个field(m_NextShell)的类型是目标类/接口(Shell);
public class Connection { ... private Shell m_NextShell;
- 嵌入(Nesting):如下图,内部类(IACHandler)嵌入到外部类(TelnetIO)中;
public class TelnetIO { class IACHandler { ...
- 依赖(Dependencies):虚线箭头,源的方法中出现了目标类对象;
public class ShellManager { public Shell getShell(String key) { Shell myShell = null; ...
以上示例代码来自 Java Telnet daemon (wimpi)。