PlantUML. http://plantuml.sourceforge.net/sequence.html
PlantUML用于绘制UML图,使用简单且易于阅读的文本描述。
生成的图片可以在不涉及GPL/LGPL/ASL/EPL/MIT许可证的情况下使用。甚至不必指明它们是由PlantUML生成的,尽管这将受到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
我通常用来将纯文本转化为序列图的最佳软件是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)
要获得这个:
对于序列图,您可以看一下websequencediagrams - 它创建出外观漂亮的图表,并具有许多功能 (示例页面)。它不是一个命令行实用程序,但它具有其 Web-API。
ditaa 可以从 ASCII 源创建出外观漂亮的图表。它是用 Java 编写的,可以在命令行上调用,将 ASCII 文本转换成图表。
这个答案可能不完全符合您的想法,所以让我简要地给出一个背景。
多年来,我认识到文学编程是一种非常好的编写质量软件并保持代码易于理解的方法。也许是唯一的方法... 在任何情况下,序列图作为可视化工具,可以很好地补充代码和文字。这有助于理解。
因此,为了达到这个目的,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
(网站, 文档) 获取可运行代码或文章源代码。
希望能对您有所帮助。
\documentclass{article}
和 \usepackage{pgf-umlsd}
前言,以及周围的 \begin{document}...\end{document}
命令。https://tex.stackexchange.com/questions/185640/how-to-create-an-instance-in-pgf-umlsd - puk