Uso de dia para diseño de aplicaciones


Antes de codificar una aplicación, es necesario sentarse frente al bloc de notas, en lugar de frente al ordenador. Realizar el análisis y el diseño de aplicaciones es una tarea básica para realizar antes de la codificación, pese a la tendencia de todos los programadores (especialmente, los inexpertos), a sentarse a programar.

El uso de herramientas como dia(editor de diagramas), permite realizar un diseño de la aplicación empleando UML, de manera que se puedan generar las clases del diagrama dibujado automáticamente. Así, el diagrama de clases UML no es sólo una ayuda al diseño de aplicaciones, sino que se convierte en un aportación interesante a la programación, lo cuál puede ser un incentivo a tener en cuenta.

Introducción


Paleta de componentes de UMLPara comenzar a trabajar con dia, es necesario seleccionar la paleta de componentes de UML, en el desplegable. Una vez hecho ésto, tendremos a nuestra disposición elementos para crear diagramas de clases, diagramas de secuencia y diagramas de casos de uso. Nótese que, al ser dia un programa de dibujo generalista, no distnigue entre estos tipos de diagramas, por lo que incluso se podrían mezclar estas entidades en uno solo (depende de nosotros el no hacerlo).

Creación del diagrama de clases


Para comenzar a dibujar clases, se pincha en el el cuadro de clase (el primero de la paleta), y se marca algún punto del área de dibujo. La clase aparecerá, con el nombre genérico de "clase".

Tres clases posicionadas en dia

Haciendo doble-clic sobre ella, obtenemos el cuadro de propiedades, en el que es posible seleccionar los atributos y los métodos.

Cuadro de propiedades para una clase

En las pestañas de "atributos" y "operaciones", colocamos todo aquello (atributos y métodos) relativo a la clase. Es necesario especificar el nombre del atributo o método, su visibilidad, su tipo, y sus parámetros (en el caso del método), por separado. En esta pestaña principal, marcamos los características de la propia clase, como que sea abstracta (tal y como aparece en la siguiente figura).

La clase figura, abstracta

En un primer paso, creamos la clase Figura, marcada como abstracta.
La clase circulo, ya completa

El segundo paso consiste en crear el círculo, con sus atributos  y métodos.
Las tres clases creadas

Finalmente, el rectángulo, también con sus atributos y métodos. No debemos olvidar marcar el método de Figura como abstracto.
Una lista de figuras

Lo último que haremos será una clase que permitirá insertar nuevas figuras, para después listarlas. Supone una relación de asociación con la clase Figura, tal y como se indica en el diagrama.
La interfaz de Kaptain

Generando el código


Una vez creado el diagrama, para generar el código fuente es necesario emplear otro proyecto, llamado dia2code. Es capaz de generar, a partir de diagramas, código para C++, C, Python, C# o Java, entre otros.

La forma más cómoda de manejar dia2code sería a través de una interfaz diseñada para la herramienta, mediante una segunda herramienta llamada Kaptain. Desgraciadamente, esta solución no parece funcionar demasiado bien.

Siempre es posible ir a la línea de comando y teclear:

$ dia2code -d src ListaFiguras.dia
$ dia2code -t java ListaFiguras.dia
$ dia2code ListaFiguras.dia

El lenguaje por defecto es C++, lo que significa que la tercera forma utilizará el directorio actual para generar las clases en C++, dado el archivo de diagrama ListaFiguras.dia, que es como se guardó el diagrama generado más arriba.

La primera forma de llamar a dia2code utiliza la opción -d, que permite especificar un directorio (en este caso, el subdirectorio src del directorio actual), para que los archivos a generar se guarden en él.

La segunda forma permite especificar el lenguaje de programación que dia2code empleará al generar el código. Como se ha comentado más arriba, por defecto este lenguaje es C++, aunque otros lenguajes permitidos son Java o C#.

La versión de dia2code para Windows contiene modificaciones del registro para hacer que, cuando se esté apuntando a un archivo .dia, símplemente con elegir "convertir a Java" (por ejemplo), se generen los archivos correspondientes. Eso sí, en el mismo directorio en el que esté el diagrama. Un error conocido es que la versión para Windows no desempaqueta el archivo .dia antes de procesarlo (los archivos .dia están basados en XML, comprimido en formato Zip), por lo que, en caso de obtener el error de que el archivo no es un archivo .dia válido, habrá que descomprimirlo primero.

A continuación, se listan los archivos generados: