45

我正在寻找一种简单的语言/命令行实用程序来绘制序列图和时序图(可能是 2 个不同的工具)。我已经找到了用于绘制序列图的Mscgen,看起来还不错,但我正在研究其他可能性。

谢谢

4

9 回答 9

32

植物UMLhttp://plantuml.sourceforge.net/sequence.html

PlantUML 用于绘制 UML 图,使用简单易读的文本描述。

然后可以在不参考 GPL/LGPL/ASL/EPL/MIT 许可证的情况下使用生成的图像。甚至没有必要规定它们是使用 PlantUML 生成的,尽管 PlantUML 团队会很感激。

根据我的经验,它很容易使用,并且可以生成漂亮的图表。 我不能高度推荐它。

输出文件类型:

-tsvg     To generate images using SVG format
-teps     To generate images using EPS format
-txmi     To generate XMI file for class diagram
-thtml    To generate HTML files for class diagram
-ttxt     To generate images with ASCII art
-tutxt    To generate images with ASCII art using Unicode characters

下面是一个示例,展示了如何创建一个简单的序列图。 在此处输入图像描述

@startuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response

Alice -> Bob: Another authentication Request
Alice <-- Bob: another authentication Response
@enduml

您还可以使用生命线激活和销毁来创建更详细的图表: 在此处输入图像描述

@startuml
participant User

User -> A: DoWork
activate A

A -> B: << createRequest >>
activate B

B -> C: DoWork
activate C
C --> B: WorkDone
destroy C

B --> A: RequestCreated
deactivate B

A -> User: Done
deactivate A

@enduml
于 2015-01-11T14:22:04.393 回答
30

我发现的最好的软件,我通常用来从纯文本制作序列图是SDEdit。它是一个 Java 工具,因此您可以在任何操作系统中使用它。而且它是免费软件!

使用此工具,您可以编写以下内容:

#![SD ticket order]
ext:External[pe]
user:Actor
/order:Order[x]
db:TicketDB
acc:Account

ext:user.order a ticket!
user:order.new()
order:return=db.reserve(date,count)
db:return=acc.debit(cost)
acc:return=db.bonus(date,count)

获得这个:

SDEdit 示例

于 2012-10-09T20:14:34.780 回答
20

对于序列图,您可以查看websequencediagrams - 它创建漂亮的图表并具有很多功能(示例页面)。它不是一个命令行实用程序,但它确实有它的 web-API。

ditaa从 ascii 源创建漂亮的图表。用java写的,可以在命令行调用,把ascii文本转成图表。

于 2011-06-15T21:57:16.587 回答
12

另一个序列图工具是http://sequencediagram.org,可以在其中绘制图表以生成脚本和脚本以同时获取图表。

因此,它适用于您通常无法跟踪您在脚本中的位置的大型图表。

在此处输入图像描述

于 2014-11-18T00:31:04.180 回答
7

更新:可能美人鱼已经足够好了,你可以在各种markdown编辑器中使用它,比如hackmd。否则,对于打印,请参阅下面我的原始答案。


这个答案可能与您的想法不完全一样,所以让我简要介绍一下上下文。

多年来,我开始欣赏文学编程是编写高质量软件并保持代码可理解的超级好方法。也许是唯一的方法......无论如何,序列图是可视化的,很好地补充了代码和写作。这有助于理解。

LaTeX / PGF / pgf-umlsd / noweb

因此,为此目的,LaTeX + pgf-umlsd可以创建非常漂亮的图表。与大多数其他工具一样,它们是在语义上指定的,这意味着您说的是什么序列,而不是的外观。该程序计算正确的图片。

所以这个 LaTeX 代码

\documentclass{article}
\usepackage{tikz}
\usepackage{pgf-umlsd}

\begin{document}
\begin{sequencediagram}
  \newthread{t}{:Thread}
  \newinst[1]{i}{:Instance}
  \begin{sdblock}{Block}{description}
     \begin{call}{t}{function()}{i}{}
  \end{call}
  \end{sdblock}
\end{sequencediagram}
\end{document}

创建这张图片(当然使用文档其余部分的字体等):

手册中的示例

LaTeX 源代码中,可执行代码的相关位就在图的下方,将它们放在一起。我使用noweb( site , docs ) 来获取可运行的代码或文章的来源。

HTH。

于 2014-10-25T12:47:16.527 回答
2

GenMyModel现在支持序列图。

序列样本

于 2014-07-30T05:28:36.657 回答
1

EventStudio System Designer 5可能适合您。它从基于文本的输入生成序列图。还可以处理多种情况。

于 2011-06-22T02:15:36.317 回答
1

对于序列图,您可能还想查看UMLGraph

2018-08-24 更新:网页似乎已移至此处

于 2011-09-07T15:02:36.380 回答
1

对于序列图,您可能还想查看Visual Paradigm,这是一个非常强大的工具。

于 2011-12-20T23:36:22.047 回答