Crear diagramas de secuencia con pic2plot

Este es un articulo un poco tecnico, pero puede que tambien te resulte de interes.Pues con esta herramienta es “muy sencillo” crear tus propios diagramas.

Acabo de terminar un proyecto Java y me encontraba documentando las clases con UMLGraph cuando he encontrado una forma muy comoda de realizar los diagramas de secuencia.

Para ello, primero instalate plotutils, son un conjunto de herramientas para realizar graficos a partir de la informacion suministrada en un fichero. Te instalas plotutils con el siguiente comando:

$ sudo apt-get install plotutils

Al instalarse plotutils, entre el conjunto de herramientas se encuentra “pic2plot” que es la que nos interesa.

Para generar los diagramas de secuencia necesitamos tambien el fichero “sequence.pic” que se encuentra en la distribucion de UMLGraph dentro de la carpeta “src“. Asi que descargate y descomprime tambien el fichero UMLGraph-4.8.tar.gz

Accede a la carpeta src y copia este fichero “sequence.pic” al directorio desde el cual vayas a ejecutar pic2plot.

Bien, ahora ya lo tenemos todo. Para generar el diagrama de secuencia tenemos que crear un fichero de texto, al que le daremos extension .pic y en el que detallamos la secuencia de operaciones que queremos generar.
Aqui te dejo un ejemplo, es un diagrama de secuencia “que no tiene ni pies ni cabeza”, pero lo he generado asi, para que puedas ver un ejemplo de todos los comandos:

.PS
copy "sequence.pic";
# Object definition
object(S,"s:Objeto1");
object(P,"p:Objeto2");
object(Z,"z:Objeto3");
placeholder_object(X);
step();
# Message exchange
message(S,P,"run()");
message(S,P,"stop()");
message(S,S,"mensaje_a_mi_mismo()");
message(P,Z,"start()");
message(Z,P,"completed()");
message(P,S,"completed()");
active(P);
return_message(P,S,"active()");
inactive(P);
active(S)
message(S,Z,"start()");
inactive(S);
destroy_message(S,Z);
create_message(P,X,"x:newObject4");
# Object lifeline completion
complete(S);
complete(P);
complete(Z);
.PE

Vamos a comentarlo un poco.

El fichero debe comenzar con .PS y acabar con .PE, son directivas que indicaran luego donde comienza y donde acaba el renderizado de la imagen.

Con # escribimos comentarios.

con object(variable,texto) creamos el objeto.

con placeholder_object(variable) referenciamos a un elemento que aun no creamos pero se hara posteriormente.

con message(origen,destino,texto) se crea un mensaje de origen a destino con el texto especificado.

con active(objeto), e inactive(objeto) indicamos el periodo en que esta activo el objeto.

con destroy_message(objeto,destino) se renderiza un mensaje de destruccion desde el origen al destino.

con create_message(origen,destino,texto) se renderiza un mensaje de creacion.

Bueno realmente es una sintaxis muy sencilla, con un par de ejemplos que pruebes, lo comprobaras.

Ahora vamos a generar la imagen.

Para eso renombramos este fichero .pic a FILENAME.pic por ejemplo y ejecutamos:

$ pic2plot -Tps FILENAME.pic > FILENAME.ps

Y se genera un fichero (postscript), podriamos haber generado un fichero gif, svg o de otro tipo mediante el flag “T”
por ejemplo:

$ pic2plot -Tgif FILENAME.pic > FILENAME.gif

Nos generaria un fichero en formato gif. Yo prefiero generar ficheros .ps se ven mejor. El resultado es el siguiente:

secuencia01.jpg

¿Genial no?. Y con esto, yo por mi parte voy a dejar de usar “Kivio” para generar los diagramas de secuencia.

Existen opciones en la linea de comandos para pic2plot. Por ejemplo con “–page-size” indicas el tamaño de la pagina, “–font-name” o “-F” la fuente que usas, “–font-size” o “-f” para el tamaño de la fuente. Otro ejemplo:

$ pic2plot -Tgif --page-size a4 --FHersheySans-Bold -f0.03 FILENAME.pic > FILENAME.gif

Nota: No todos los tipos de fuente estan disponibles. depende del tipo de fichero que generes, por ejemplo para “svg” hay unas, para “ps” otros, y para “gif” otras diferentes. Puedes ver el listado de fuentes disponibles para el tipo de fichero de salida generado con el comando:-T tipo_output –help-fonts.

Ejemplo:

$ pic2plot -T "svg" --help-fonts
Names of supported Hershey vector fonts (case-insensitive):
HersheySerif HersheyScript
HersheySerif-Italic HersheyScript-Bold
HersheySerif-Bold HersheyGothicEnglish
HersheySerif-BoldItalic HersheyGothicGerman
HersheyCyrillic HersheyGothicItalian
HersheyCyrillic-Oblique HersheySerifSymbol
HersheyEUC HersheySerifSymbol-Oblique
HersheySans HersheySerifSymbol-Bold
HersheySans-Oblique HersheySerifSymbol-BoldOblique
HersheySans-Bold HersheySansSymbol
HersheySans-BoldOblique HersheySansSymbol-Oblique


Opciones de la linea de comandos de pic2plot

Dibujando diagramas UML con UMLGraph

5 Responses to “Crear diagramas de secuencia con pic2plot”


  1. 1 cartohhhhh julio 12, 2007 en 7:28 pm

    wertyetwetwe

  2. 2 Alejandro mayo 5, 2008 en 3:35 pm

    hola amigos yo quisiera aprender esta Programa. Solo quiero sus apoyos de ustedes

  3. 3 carpediem agosto 30, 2008 en 5:14 am

    Yo estoy aprendiendo aprogramar en c# y apenas estoy aprendiendo UML, veo que trabajaste con java, pero crees que se pueda igual trabajando con c#?
    se ve chevere
    buen post, esta bastante interesante


  1. 1 Crear diagramas de secuencia con pic2plot « Java.Lang.NullPointer Trackback en mayo 25, 2007 en 1:23 pm
  2. 2 Actualizaciones semanales de Twitter para 2011-02-06 | 3Engine Trackback en febrero 6, 2011 en 12:22 pm

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s







¿Es compatible tu equipo con Ubuntu?


( Muchos fondos de pantalla, aqui )

DESCARGATE SCIFI LIFE

365 Dias de Soledad
Me debes los sueños, las promesas y las noches rotas. Me debes la paz, la sonrisa y la esperanza robadas. Me debes la sangre, las lágrimas y el sudor vertido. Me debes las noches vacías, los abrazos anhelados. Me debes un beso de ajenjo de tu amarga boca.

The Ubuntu Counter Project - user number # 11961
Geo Visitors Map
mayo 2007
L M X J V S D
« Abr   Jun »
 123456
78910111213
14151617181920
21222324252627
28293031  

Blog Stats

  • 30,272,781 hits

A %d blogueros les gusta esto: