29 agosto 2008

Pasando de Delphi 7 a RAD Studio 2007 (8)

En este artículo vamos a ver como aprovechar las ventajas que incorpora RAD Studio 2007 para un analista/arquitecto de software.

EL DISEÑO DE MODELOS UML

Para cualquier tipo de proyecto tenemos en la ventana del proyecto la pestaña Model View que nos permite realizar modelos UML para crear nuestras clases. Cualquier cambio que se produzca en el diseño de una clase se reflejará inmediatamente en el código fuente.

Así mismo, si modificamos el código fuente de una clase se modificará su diseño UML de manera instantánea. Esto nos permite diseñar nuestros programas de una manera profesional sin tener que recurrir a herramientas externas.

COMO DISEÑAR UN MODELO

Supongamos que tenemos que diseñar e implementar un programa de facturación que va a tener unas cuantas clases relacionadas entre sí. En vez de picar código manualmente como hemos hecho hasta ahora lo vamos a diseñar todo utilizando modelos UML.

Lo primero que hay que hacer es crear una nueva unidad que va a contener nuestro código fuente. Seleccionamos en el menú superior File -> New -> Unit y guardamos la unidad con el nombre UFacturacion.pas.

Esto nos dejará una nueva unidad completamente limpia y lista para trabajar:


Ahora seleccionamos la pestaña Model View en la ventana del proyecto:


Al pulsar esta pestaña nos aparecerá este mensaje:


Nos dice que el proyecto actual no esta configurado para el modelado. Pulsamos el botón y aparecerá el editor de modelos con la jerarquía de nuestro proyecto:


Abrimos la rama del proyecto, seleccionamos la unidad UFacturacion con el botón derecho del ratón y seleccionamos Open Diagram:


En la parte central del IDE aparecerá una nueva pestaña con el editor de modelos listo para comenzar a trabajar:


Si nos fijamos en la carpeta que contiene los archivos de nuestro proyecto aparecerá una nueva carpeta dentro llamada ModelSuport_NombreDelProyecto que contiene todos los archivos gráficos UML que vamos desarrollando:


Estos archivos se van actualizando en tiempo real respecto a nuestro código fuente y viceversa.

Vamos a crear nuestro primer modelo para la clase TArticulo. Pinchamos el fondo del editor de modelos con el botón derecho del ratón y seleccionamos Add -> Class:


Nos aparecerá el diseño de una nueva clase llamada Class1:


que vamos a renombrar por TArticulo:


Ahora vamos a añadir una variables a nuestra clase. Pinchamos la clase TArticulo con el botón derecho del ratón y seleccionamos Add -> Field lo que nos creará una nueva variable – campo (Field) con el nombre Field1:


Debemos escribir el nombre del campo, dos puntos y el tipo de variable, por ejemplo:

ID:Integer

Al pulsar Intro aparecerá el signo + a su izquierda:


Esto significa que hemos creado una variable pública. Si seleccionamos esta variable y nos fijamos en el inspector de objetos podemos modificar todas sus propiedades:


En el campo visibility podemos elegir el ámbito de la variable:


De este modo vamos añadiendo campos a nuestra clase hasta completar su diseño:


Si pulsamos la pestaña UFacturacion podemos ver como se refleja inmediatamente en el código fuente:


Todo esto lo hemos hecho sin teclear ni una línea de código. Lo más sorprendente es que si yo añado una variable a la clase, por ejemplo el descuento:

TArticulo = class
public
var
ID:Integer;
Nombre:String;
Existencias:Real;
Precio:Real;
Descuento:Real; // Nuevo campo
end;

Si guardamos los cambios y nos vamos al diagrama veremos el cambio en el gráfico:


Esto da una gran flexibilidad al programador al permitir dar toques aquí y allá sin que quede desincronizado el código fuente ni su diseño UML.

Eso sí, no todo va a ser perfecto. Si cogemos todas nuestras variables en diseño y las ponemos como privadas...



Al irnos al código fuente veremos que nos ha hecho esta pequeña chapuza:


Pero bueno, sólo hay que eliminar las palabras private sobrantes y una vez reagrupemos las variables no pasará nada, el diagrama seguirá igual. Pese a este pequeño defecto hay que reconocer que las ventajas de trabajar son enormes.

Cuando estamos diseñando en el editor de modelos podemos seleccionar una clase o una variable de la misma y guardar información respecto al autor, el alias y la versión:


Así podemos trabajar en equipo con otros programadores y analistas diseñando clases y modificando programas ya realizados apuntando siempre quien ha hecho la última modificación y la versión del mismo.

AÑADIENDO MÉTODOS A LA CLASE

A una clase también se le pueden añadir constructores, procedimientos y funciones de manera tan fácil como hemos creado las variables:


Si por ejemplo creamos un constructor, lo llamará automáticamente Create y lo pondrá como público:


Reflejándolo en el código fuente de manera instantánea:


CREANDO REGISTROS

Al igual que hemos creado clases utilizando el editor de modelos podemos crear registros (record) desde la paleta de herramientas:


Se llama structure porque estamos creando una estructura de datos (record). La estructura tiene un gráfico similar a la clase:


Y su código fuente también se crea automáticamente:


En los diseños de los registros también podemos añadir las nuevas características en el lenguaje que hemos visto en artículos anteriores, como pueden ser constructores, funciones y procedimientos.

CREANDO ASOCIACIONES ENTRE LOS ELEMENTOS

Al tener disponible un completo editor UML podemos establecer relaciones, asociaciones y dependencias entre los elementos gráficos insertados:


Tenemos todo tipo de asociaciones para crear una estructura jerárquica perfecta que relacione nuestras estructuras de datos y clase de una manera concisa:


Sólo es cuestión de cogerse un buen libro de UML y aprender como diseñar un sistema completo.

EXPORTANDO EL DISEÑO

El diseño que hemos generado en el Model View podemos exportarlo pulsando el editor con el botón derecho del ratón y seleccionando Export to Image:


Se abrirá esta ventana:


En esta ventana podemos modificar el ancho y alto de la imagen que va a exportar. Si pulsamos el botón Preview veremos una vista previa de la imagen que vamos a generar:


Sólo hay que pulsar el botón Save y podemos guardarlo como imagen JPG, BMP, GIF, etc.

En el próximo artículo veremos como generar la documentación de nuestro proyecto automáticamente.

Pruebas realizadas en RAD Studio 2007.

Publicidad