graphics - secuencia - diagramas de colaboracion
Dibujar diagramas de secuencia (9)
Estoy buscando una utilidad sencilla de línea de lenguaje / comando para dibujar diagramas de sequence y timing (podrían ser 2 herramientas diferentes). Ya he encontrado Mscgen para el diagrama de secuencia y me parece bastante bueno, pero estoy estudiando otras posibilidades.
Gracias
El mejor software que he encontrado y que suelo usar para hacer diagramas de secuencia a partir de texto sin formato es SDEdit . Es una herramienta de Java, por lo que puede usarlo en cualquier sistema operativo. ¡Y es software libre!
Con esta herramienta, escribes lo siguiente:
#![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)
para obtener esto:
Es posible que esta respuesta no sea exactamente lo que tenías en mente, así que déjame darle un contexto en breve.
A lo largo de los años he llegado a apreciar la alfabetización como una manera súper agradable de escribir software de calidad y mantener ese código comprensible. Tal vez la única forma ... En cualquier caso, los diagramas de secuencia, siendo visuales, complementan muy bien el código y la escritura. Esto facilita la comprensión.
LaTeX / PGF / pgf-umlsd / noweb
Por lo tanto, para este propósito, LaTeX + pgf-umlsd puede crear diagramas muy atractivos. Se especifican semánticamente, como la mayoría de las otras herramientas, lo que significa que dices qué secuencia tienes qué, y no cómo debe verse. El programa calcula la imagen correcta.
Entonces este código 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}
crea esta imagen (por supuesto usando las fuentes del resto de su documento, etc.):
En la fuente de LaTeX, los bits relevantes de código ejecutable están justo debajo del diagrama, manteniendo las cosas juntas. Uso noweb
( site , docs ) para obtener el código ejecutable o la fuente del artículo.
HTH.
Otra herramienta de diagrama de secuencia es http://sequencediagram.org donde es posible dibujar el diagrama para generar la secuencia de comandos y la secuencia de comandos para obtener el diagrama al mismo tiempo.
Por lo tanto, es bueno para diagramas grandes en los que normalmente pierdes la noción de dónde estás en el guión.
Para diagramas de secuencia, puede echar un vistazo a websequencediagrams - crea diagramas atractivos y tiene muchas funcionalidades ( página de ejemplos ). No es una utilidad de línea de comandos, pero sí tiene su API web.
ditaa crea bonitos diagramas de fuente ascii. Escrito en java, se puede invocar en la línea de comando para convertir texto ascii en diagramas.
Para los diagramas de secuencia, es posible que también desee ver Visual Paradigm , una herramienta bastante poderosa.
EventStudio System Designer 5 podría funcionar para usted. Genera diagramas de secuencia a partir de una entrada basada en texto. También maneja múltiples escenarios.
GenMyModel ahora es compatible con diagramas de secuencia.
PlantUML . plantuml.sourceforge.net/sequence.html
PlantUML se utiliza para dibujar el diagrama UML, usando una descripción de texto legible y simple.
Las imágenes generadas se pueden utilizar sin ninguna referencia a la licencia GPL / LGPL / ASL / EPL / MIT. Ni siquiera es necesario estipular que se hayan generado con PlantUML, aunque esto será apreciado por el equipo de PlantUML.
En mi experiencia, ha sido fácil de usar y produce buenos diagramas. No puedo recomendarlo más.
Tipos de archivo de salida:
-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
Aquí hay un ejemplo que muestra cómo crear un diagrama de secuencia simple.
@startuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
Alice -> Bob: Another authentication Request
Alice <-- Bob: another authentication Response
@enduml
También puede crear diagramas más detallados mediante el uso de la activación y destrucción de la línea de vida:
@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