【问题标题】:How can I automatically generate UML diagrams from Objective-C code?如何从 Objective-C 代码自动生成 UML 图?
【发布时间】:2011-07-29 13:09:39
【问题描述】:

有没有办法在 Objective-C 中从代码自动创建 UML 图?

干杯, 尼尔斯

【问题讨论】:

  • 哈!既然你已经构建了它,为什么还要麻烦文档呢? :)
  • 因为我不再负责这个项目了。
  • OmniGraffle 曾经有一个功能,您可以在上面放置一个 Xcode 项目,它会自动生成类文件。我不确定它是否仍然存在。通过查看 Doxygen,epatel 可能更接近答案。

标签: iphone objective-c ios uml


【解决方案1】:

同样的问题,还在寻找答案:

  • 检查了 Doxygen,但我只能生成文档和图形片段。也许应该花一些时间在文档上
  • 检查了 OmniGraffle,输出还不错。用完免费演示期,只为一些偶尔的图表购买完整版。可能没问题,如果你有其他用途的话。不确定,OmniGraffle 是否“正式”支持这一点

终于找到"objc_dep.py" from GitHub。它是免费、快速、简单且按原样工作的。它生成一种基于导入的“依赖图”,实际上不是 UML 或类图,但非常接近。

所以这就是我现在正在使用的,但非主动地寻找“更多”的东西。在“Dependency Graph Tool for iOS Projects”中发布了有关 objc_dep 工具的博客,如果您想了解更多示例图信息,可能会很有趣。

...但正在寻找一些东西来生成真正的类图。

【讨论】:

  • 感谢python脚本,好项目!
  • 可以使用graphviz.org/Download_macos.php打开Python脚本生成的.dot文件
  • 我在 Mac 终端中使用简单的“open file.dot -a GraphViz”,生成的文件名为 file.dot。
【解决方案2】:

看看doxygen。这似乎支持Objective-C。它可能不会为您提供 UML 图,但它能够在图表中显示参考等,并且通过添加 cmets,您可以为格式化输出提供更多信息。

请参阅此处以获取 Objective-C 中的示例,the clang project(oups,clang 实际上是用 C++ 编写的,并且适用于 Objective-C 代码)但我发现这个 blog post 是关于将 doxygen 用于 Objective-C 代码

【讨论】:

  • 该博文不再可用。
【解决方案3】:

没有合适的解决方案可以从逆向工程代码创建 UML 图。 我尝试了所有上述方法,包括python代码。 如果你有一个巨大的项目,python 代码虽然有用,但它会失败,不幸的是我的情况就是这样。

谢谢 普雷迪普

【讨论】:

  • 对于python,您是指objc_dep.py 图形生成器吗?从未见过它失败,即使有一些相当大且混乱的代码库。你能给我(任何)关于失败的信息吗,可以检查一下并修复吗?
  • 我有近 2000 节课有相互联系。用 python 代码生成的图表非常复杂和巨大,我根本无法查看。我试着用单独的包来做,然后分别使用它们。
  • 嘿,那种失败 :) 现在有过滤器可以跳过某些类或子目录。可能会有所帮助,但输出仍然取决于项目:如果它很乱,它会看起来很乱。
猜你喜欢
  • 1970-01-01
  • 2017-07-08
  • 2011-09-06
  • 1970-01-01
  • 2021-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多