Archive for the 'UML' Category

Generar diagramas de secuencia UML de manera automática a partir del código Java mediante IntelliJ

Vaya titulo de post más largo me ha quedado. Pero de eso se trata precisamente, A veces ya sea por seguir el flujo de una aplicación o porque necesitamos documentar nos sería útil generar el diagrama de secuencia de los métodos de nuestras clases. Y si ésto se realiza de manera automática, mejor que mejor. Aunque he visto algún que otro plugin para Eclipse, me parecieron mucho más complicados y ésta vez me he decantado por utilizar un IDE nuevo: IntelliJ

Antes de empezar es recomendable que tengamos instalado JDK 1.8 o posterior. Continuamos… Los pasos son sencillos.

Primero nos descargamos la versión de IntelliJ community Edition desde la página web.

Cuando ya lo tengamos instalado, creamos por ejemplo un nuevo proyecto Java y desde el menu IntelliJ > Preferencias > Plugins buscamos e instalamos un plugin que se llama SequenceDiagram

c1

reiniciamos entonces intelliJ y cuando vuelve a iniciar, cargamos nuestro proyecto y nos movemos al método de la clase Java de la que queremos obtener el diagrama de secuencia, entonces desde el menu superior seleccionamos Tools > Sequence Diagram…

Y de manera automática se genera el diagrama de secuencia, que podremos exportar como imagen.

c2

Referencias | StackOverflow

SPE: Stani’s Python Editor, un completo IDE para Python

Son innumerables los editores e IDEs que existen para trabajar con Python. Hablar de todos ellos seria practicamente imposible, pero hoy voy a comentar uno que me gusta especialmente: se llama Stani’s Python Editor, abreviado SPE.
Es un IDE para python bastante completito para todos aquellos que esten empezando: resaltado de sintaxis, te muestra ayuda contextual de las funciones y los modulos, debugger, generación dinamica de diagramas UML y documentación, posibilidad de invocar a utilidades externas, entre ellas al diseñador gráfico y mucho más.
Si quieres echarle un vistazo, puedes instalarlo con:

$ sudo apt-get install spe

Lleva bastante tiempo sin actualizarse, pero aún así es bastante completo para cualquier proyecto básico que quieras hacer.

Enlace | SPE IDE
Relacionado | Si nunca has usado Python y quieres ir empezando: Python para todos

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





¿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
agosto 2019
L M X J V S D
« Jul    
 1234
567891011
12131415161718
19202122232425
262728293031  

Blog Stats

  • 30.888.457 hits