绘制序列图

时间:2011-06-15 21:34:07

标签: graphics diagram sequence-diagram timing-diagram

我正在寻找一个简单的语言/命令行工具来绘制sequencetiming图表(可能是两个不同的工具)。我已经找到Mscgen用于序列图绘制并且看起来很不错,但我正在研究其他可能性。

由于

9 个答案:

答案 0 :(得分:28)

我发现的最好的软件,我通常用来制作纯文本的序列图是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 example

答案 1 :(得分:19)

对于序列图,您可以查看 websequencediagrams - 它会创建漂亮的图表并具有许多功能(examples page)。它不是命令行实用程序,但它确实有它的web-API。

ditaa 从ascii源创建漂亮的图表。用java编写,可以在命令行上调用它将ascii文本转换为图表。

答案 2 :(得分:18)

<强> PlantUML 即可。 http://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

这是一个显示如何创建简单序列图的示例。 enter image description here

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

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

您还可以使用生命线激活和销毁来创建更详细的图表: enter image description here

@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

答案 3 :(得分:10)

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

因此,对于大型图表来说,这通常会让您忘记脚本中的位置。

enter image description here

答案 4 :(得分:6)

这个答案可能并不完全是你想到的,所以让我简要介绍一下背景。

多年来,我开始欣赏literate programming作为编写高质量软件并保持代码易于理解的超级好方法。也许唯一的方法......在任何情况下,序列图,视觉,很好地补充代码和写作。这有助于理解。

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}

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

example from the manual

LaTeX源中,可执行代码的相关位就在图下方, 把事情放在一起。我使用nowebsitedocs)来获取可运行的代码或文章的来源。

HTH。

答案 5 :(得分:2)

GenMyModel现在支持序列图。

Sequence sample

答案 6 :(得分:1)

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

答案 7 :(得分:1)

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

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

答案 8 :(得分:1)

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