从文本表示生成UML图

时间:2010-05-09 13:43:45

标签: linux uml

如何使用Linux中的命令行工具从包含我的进程的文本表示的文件生成UML序列图?

7 个答案:

答案 0 :(得分:11)

虽然PlantUML列在接受的答案中(在许多其他工具中),但值得更多关注。

除了可以轻松包装到命令行工具之外,PlantUML还有

  1. 优秀的文档(查看sequence diagrams的文档)
  2. 简单而强大的语法(可能与UMLGraph相媲美)
  3. styleable output
  4. 广泛的工具集成(Emacs,Sphinx)

  5. 然而,PlantUML是一个java存档,因此可能需要以下设置:

    1. 的java
    2. graphviz(序列图不需要)
    3. 一个bash包装器
    4. java和graphviz 可用作主要Linux发行版的软件包。 PlantUML本身可用于Fedora和Ubuntu。

      如果您的发行版未提供包,请从主站点下载jar文件并将其换行为bash脚本。

      bash包装器(如下所示)可以存储在路径上名为plantuml的文件中,即echo $PATH列出的目录之一。不要忘记使用chmod u+x plantuml使其可执行。

      #!/bin/bash
      # from the vim syntax plugin README at aklt/plantuml-syntax on github
      java -jar $HOME/path/to/plantuml.jar -tsvg $@
      

      然后运行plantuml apple.uml berry.uml,plantuml将创建apple.svg berry.svg。

答案 1 :(得分:6)

有很多(很多=超过10个)工具。
请参阅complete list

答案 2 :(得分:2)

不确定它是否是您想要的,但是UMLGraph可以使用graphviz和ghostscript生成序列图......

答案 3 :(得分:2)

如果您的文字表示与 yuml 非常相似,您可以使用它来制作图片,例如

简单协会

[Customer]->[Billing Address]
<img src="http://yuml.me/diagram/scruffy/class/[Customer]->[Billing Address]"/>
Image of sample UML relationship

答案 4 :(得分:2)

http://umlet.com/是另一种解决方案

答案 5 :(得分:2)

将以下来源放入.html文件并在浏览器中打开:

<html>
    <head>
        <script src="http://code.jquery.com/jquery-latest.js"></script>
        <script>
            $(document).ready(function () {
                $('textarea').each(function () {
                    $(this).hide();
                    var source = $(this).html();
                    $('body').append('<img src="http://yuml.me/diagram/scruffy/class/'
                        + source + '" />');
                });
            });
        </script>
    </head>
    <body>
        <textarea>
            [note: You can stick notes on diagrams too!{bg:cornsilk}],
            [Customer]<>1-orders 0..*>[Order],
            [Order]++*-*>[LineItem],
            [Order]-1>[DeliveryMethod],
            [Order]*-*>[Product],
            [Category]<->[Product],
            [DeliveryMethod]^[National],
            [DeliveryMethod]^[International]
        </textarea>
    </body>
</html>

您应该能够在textarea标记内看到与源对应的sample diagram。根据{{​​3}}更正来源以绘制您自己的图表。

答案 6 :(得分:0)

使用脚本替换:

  • 一个有多个空格的空间
  • 包含列字符的逗号,例如|
  • 带有回车符加空格缩进的换行符
  • 带有多个破折号的破折号
  • 大于和小于列跨度字符的字符

<强>参考