# Importación y generación de código

umbrello; es una herramienta de modelado UML, y como tal, su propósito principal es el de ayudar en el análisis y diseño de sus sistemas. Sin embargo, para realizar la transición entre el diseño y la implementación, &umbrello; permite la generación de código fuente en diferentes lenguajes de programación como ayuda inicial. Además, si desea utilizar UML en un proyecto C++ ya iniciado, &umbrello; puede ayudarle a crear una maqueta de su sistema a partir del código fuente realizando un análisis del código e importando las clases encontradas en el.

## Generación de código

&umbrello; puede generar código fuente en varios lenguajes de programación, a partir de la maqueta UML para ayudar a comenzar la implementación de su proyecto. El código generado consta de declaraciones de clases con sus métodos y atributos, de forma que usted pueda rellenar los espacios en blanco proporcionando la funcionalidad de las operaciones de sus clases.

&umbrello; 1.2 viene provisto con soporte para la generación de código en ActionScript, Ada, C++, CORBA IDL, &Java;, JavaScript, PHP, Perl, Python, SQL y XMLSchema.

### Generación de código

Para generar código con &umbrello;, en primer lugar hay que crear o cargar una maqueta que contenga al menos una clase. Una vez que este listo para comenzar a escribir el código, seleccione el Asistente de generación de código en el menú Código para iniciar un asistente que le guiará a través del proceso de generación de código.

El primer paso es seleccionar las clases para las que desea generar código fuente. De forma predeterminada se seleccionan todas las clases de la maqueta, y usted puede eliminar aquellas para las que no desea generar código eliminándolas de la lista de la izquierda.

El siguiente paso del asistente le permite modificar los parámetros que el generador de código utilizará en el proceso. Las opciones disponibles son las siguientes:

Opciones de generación de código Opciones para la generación de código en &umbrello;

Opciones de generación de código en &umbrello;

#### Opciones de generación

##### Comentado del Código

La opción Escribir comentarios de documentación aún si está vacía instruye al Generador de código a escribir comentarios del tipo /** blah */ aún cuando el bloque de comentarios se encuentre vacío. Si usted ya agregó documentación a sus clases, métodos o atributos en su Maqueta, el Generador de código escribirá estos comentarios como documentación Doxygen sin importar lo que haya definido aquí, pero si selecciona esta opción &umbrello; escribirá comentarios para todas sus clases, métodos y atributos aún cuando no exista documentación en la Maqueta, en cuyo caso usted deberá documentar sus clases más tarde editando directamente el código fuente.

Escribir comentarios para las secciones incluso si la sección está vacía producirá que &umbrello; escriba comentarios en el código fuente para delimitar las diferentes secciones de una clase. Por ejemplo Métodos públicos o Atributos antes de la sección correspondiente. Si selecciona esta opción &umbrello; escribirá los comentarios para todas las secciones de las clases aún si la sección está vacía. Por ejemplo, escribirá un comentario diciendo Métodos protegidos aún si no existen métodos protegidos en su clase.

##### Carpetas

Escribir todos los archivos generados a la carpeta. Aquí debe seleccionar la carpeta donde desea que &umbrello; guarde los archivos fuente generados.

La opción Incluir archivos de cabecera de la carpeta le permite insertar un encabezado al comienzo de cada archivo generado. Los archivos de encabezado pueden contener información sobre el copyright o la licencia, y contener variables evaluadas en tiempo de generación. Puede consultar a modo de ejemplo los archivos de encabezado distribuidos con &umbrello; para ver cómo se usan estas variables para reemplazar su nombre o la fecha y hora del momento de generación.

##### Política de sobreescritura

Esta opción le dice a &umbrello; qué hacer si el archivo que desea crear ya existe en la carpeta de destino. &umbrello; no puede modificar archivos fuente existentes, por lo que debe elegir entre sobreescribir el existente, saltar la generación de ese archivo en particular, o dejar que &umbrello; elija un nombre diferente para el archivo. Si uste elije la opción de utilizar un nombre diferente, &umbrello; agregará un sufijo al nombre del archivo.

##### Lenguaje

&umbrello; generará por omisión código fuente en el lenguaje que usted haya seleccionado como Lenguaje activo, pero con el Asistente para la generación de código usted tiene la opción de cambiar esto a otro idioma.

#### Asistente para la generación de código

El tercero y ultimo paso del asistente le mostará el estado del proceso de generación de código. Usted necesitará hacer click en el botón de Generación de código para que las clases sean escritas para usted.

Recuerde que las opciones que seleccione en el asistente de generación de código sólo son válidas para esa generación en concreto, la siguiente vez que ejecute el asistente deberá volver a seleccionar todas las opciones aunque sean las mismas. Puede evitar esto definiendo en la sección Generación de código del menú Preferencias Configurar modelador de UML &umbrello;....

Si ha ha establecido las opciones de la generación de código y quiere generar directamente algún código sin el asistente, seleccione Generar todo el código desde el menú Código. Esto generará código para todas las clases de su esquema con la configuración actual (incluyendo la carpeta de salida y las políticas de sobreescritura, así que tenga cuidado).

## Importación de código

&umbrello; puede importar código fuente de sus pryectos actuales para ayudarle a crear los esquemas de sus sistemas. &umbrello; 1.2 sólo puede hacerlo con C++ aunque en el futuro estará disponible para más lenguajes.

Para importar clases en su esquema seleccione la entrada Importar clases desde el menú Código. Una vez ahí, seleccione los archivos que contengan las declaraciones de clases de C++ y pulse aceptar. Se importaran las clases y pasarán a ser parte de su esquema en la vista en árbol. Recuerde que &umbrello; no creará ningún tipo de diagrama para mostrar sus clases, sólo las importará a su esquema para que pueda usarlas luego en cualquier diagrama.

Importación de código Menú para importación de código en &umbrello;

Menú para la importación de código fuente en &umbrello;