【问题标题】:Generation of Class Diagram from XMI从 XMI 生成类图
【发布时间】:2012-09-25 19:46:41
【问题描述】:

情况

我有一个 PHP 项目,其中有很多类,在 Zend Naming Convention 之后的很多文件夹中有很多关系。

我使用 NetBeans IDE 7.1。 我在 Windows 7 下工作。

目标

我需要查看类关系的图形表示,可能具有不同的深度和不同程度的复杂性。此外,如果图表中的类是可点击的,那就太好了。我不一定需要生成文档。

尝试

1。在 NetBeans 中

NetBeans 是一个很棒的 IDE,有很多特性。事实上,它可以识别类依赖关系,明智的做法是假设它有某种方式以图形方式查看这种关系,本机或通过插件。这样的plugin 存在,但适用于版本 5.5。我有7.1,它不兼容。失败。

2。企业架构师

一个简单的谷歌搜索带来Enterprise Architect 作为解决此类问题的全能、完全全面的工具。所以,我下载并安装。我不打算详细说明我无法理解如何做任何事情,以及教程如何吹嘘软件可以做什么,但很少说如何

所以,我导入了源代码。它生成了许多不同的类并解析了所有成员。此外,它还生成了类图。 “完美!”,我虽然,但唉。类图仅显示类之间的关系,其文件位于同一源文件夹中,尽管关系已在类的属性中明显注册。搜索有关如何将所有这些图表合并为一个的文档是不成功的。失败。

注意:我在 here 之前创建了一个并行线程。

3。 PHP_UML

找到this PEAR tool。看起来不错。因此,我阅读了有关如何从各种来源为我的设置安装它的文档,然后运行它。首先,我使用了 html 输出格式。伟大的!大量带有索引的文档,bla bla bla。但是,它可以朝着我想要的方向做的最好的事情是: 不用说,我猜这是我真正需要的一个非常糟糕的超级简化版本。结论:失败。

4。企业架构师 + PHP_UML

不过,PHP_UML 也可以生成 XMI​​。哇。很不错。我可以存储我的关系并以不同的方式查看它们并与其他人交流。

所以,我将它导入 Enterprise Architect。结果:与之前单独使用 Enterprise Architect 相同,只是没有类图。只是上课。据我了解,我现在可以手动创建关系。史诗般的失败。

5。 ArgoUML + PHP_UML

在寻找解决方案的某个地方,我偶然发现有人评论说他们使用ArgoUML。已下载并安装。 XMI 导入有些麻烦(必须明确将版本更改为 1)。失败(参见尝试 3)。

结论

这样一个看似微不足道的任务,却又如此艰巨。我必须通过this whole list,尝试每个应用程序吗?

【问题讨论】:

  • 这是四个不同的问题,其中只有两个与 XMI 有关。 StackOverflow 问题和答案旨在形成一个存储库,其他人可以在其中找到相同问题的解决方案。请针对每个工具将此问题拆分为一个,我将回答有关 EA 的问题。
  • 我已经在你的 (rather duplicate) 问题中告诉过你,你也可以使用 Phpstorm 来生成它。此外,这个问题听起来更像是无用的咆哮。如果您需要使用 Netbeans,您应该提交功能请求(我认为相关的请求已关闭,因为没有兴趣这样做,所以如果您选择了错误的产品)不够灵活或不够胜任使用其他现有工具)。
  • Hakra,没有“四个不同的问题”。我已经在“目标”部分说明了我需要什么。 “尝试”部分列出了我所做的,因此没有相同的建议。
  • 我是那个说这是四个不同问题的人,我坚持这一点。正如标题所示,前两个与 XMI 无关。您无法将所有相关标签添加到问题中这一事实也非常清楚地表明它涉及太多不同的主题。我理解你的沮丧,但请接受这不是一个带有对话线程的讨论论坛,它是一个问答网站,问题和答案都应该与其他人相关 (stackoverflow.com/questions/how-to-ask),实现这一点的最佳方法是保持他们具体。
  • Uffe,我不明白你在哪里看到 4 个不同的问题。尝试说明了我是如何到达现在的位置的。问题是:我想从源代码生成一个类图。现在,我有一个 XMI 文件,我想从中生成图表,正如问题的标题所示。

标签: php uml class-diagram enterprise-architect argouml


【解决方案1】:

其中一种方法是采用我的尝试 2 或 4 中说明的方法, 然后按照 Enterprise Architect 给出的here 的说明进行操作。

使用 PHP_UML 生成XMI 文件:

  • 如果您已经单独安装了 PHP,请按照these instructions 安装 PEAR(如果尚未安装)。
  • 如果您在 Windows 下使用 XAMPP(我的情况),请按照 these instructions 将 PEAR 添加到 PATH env variable 从而使 PEAR 通过 CMD 可用,并了解如何在 *nix 和 Windows 中安装软件包系统。 提示: PATH 分隔符是“;” (分号)用于 Windows。
  • 在某些设置中,例如如果使用 XAMPP,则您是 may need to activate the XSL extension。在这种情况下,打开您的 php.ini 文件(您可能需要管理员权限才能保存它),然后取消注释或将以下行添加到“动态扩展”部分的底部:extension=php_xsl.dll
  • 使用pear install PHP_UML 安装PHP_UML 包。
  • 执行phpuml -f xmi -o name_of_output_dir。如果您打算稍后将生成的 XMI 用于某些较旧的程序,则可能需要通过添加 -x 1 来指定 XMI 版本 1。
  • 对我来说,这并没有立即起作用,说我缺少 ../../data/xmlschema.rng。不知道为什么会发生这种情况,但是如果您遇到类似的错误,您可以从 here 下载它并将其放入 PEAR 目录下的 data 文件夹中。

此 XMI 稍后可与 Enterprise ArchitectArgoUMLother XMI tools 一起使用。

【讨论】:

  • 添加简短说明如何在例如中可视化类图会很棒。企业架构师。 1) 导入 xmi 到 EA:Ctrl+Alt+IMenu > Package > Import/Export > Import Package From XMI File2) 显示图表:???
  • @VladimirVukanac 此答案中的第一个链接(名为“此处”)。
  • 那是很久以前的事了。我必须记住目标是什么。不过谢谢!
【解决方案2】:

编辑:对于想要从 PHP 项目生成 UML 类图的人来说,这个答案是一个替代方案,它没有解释如何读取 XMI 文件)

目标

我需要查看类关系的图形表示, 可能具有不同的深度和不同程度的复杂性。还有,它 如果图中的类是可点击的,那就太好了。我不 必然需要生成文档。

如果您的目标是从 PHP 项目生成类图,我找到了比使用 PHP_UML 更好的解决方案。您可能想要的是 BoUML,使用此软件,您可以选择一个 PHP 项目文件夹并对其进行逆向工程。然后创建一个类图。当您在其上拖放类时,关系与 AlgoUML 不同(如果我没记错的话)。 XMI 文件在这种情况下不再有用。

【讨论】:

  • 很遗憾,但 BoUML 已过时,例如它不支持破坏反转的混合返回类型 (function Foo: ?Bar)。 PHP_UML 生成正确的 XMI,但由于同样的原因,BoUML 在导入期间中断。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多