La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Patricia López & Julio Medina Computadores y Tiempo Real Santander, 2013 G80 - Advanced Computation 1 Generación de Código con BOUML.

Presentaciones similares


Presentación del tema: "Patricia López & Julio Medina Computadores y Tiempo Real Santander, 2013 G80 - Advanced Computation 1 Generación de Código con BOUML."— Transcripción de la presentación:

1 Patricia López & Julio Medina Computadores y Tiempo Real Santander, 2013 G80 - Advanced Computation 1 Generación de Código con BOUML

2 Santander, 2013 Code generation P. López & J.Medina 2 Generación de código en BOUML Para generar el código, hay que generar un artifact (.java) para cada clase. Generamos una vista de desarrollo: New Deployment View La asociamos a la vista de clases: Botón derecho sobre la vista de clases => Edit => deployment view Creamos un artefacto (.java) para cada clase : Botón derecho en la clase => Create source artifact Si no hemos asociado la vista de despliegue a la de clases no nos ofrece esa opción. Al crear los artifacts, aparecen en la vista de despliegue Elegir el directorio raíz en que se van a generar las clases: Botón derecho en el proyecto => Edit generation settings => Directory Generar el código: Botón derecho en el proyecto => Generate => Java : Se genera el código de todas las clases para las que hayamos definido un artifact Botón derecho en una clase => Generate => Java: Se genera el código de esa clase

3 Santander, 2013 Code generation P. López & J.Medina 3 Generación de código (continuación) Si queremos generar el código por paquetes Edit en el paquete donde esté el deployment view => Java directory: Directorio donde se generarán las clases definidas en ese paquete. Si se ha especificado un directorio raíz, es relativo a él. package: Nombre del paquete Java (el que aparece en la cabecera de la clase). Conviene generar un proyecto Eclipse, que coincida con el directorio principal. Así, pulsando Refresh sobre el proyecto, se irán actualizando los paquetes y clases que vayamos generando.

4 Santander, 2013 Code generation P. López & J.Medina 4 Aspectos a tener en cuenta para una correcta generación Atributos: Definir correctamente los tipos. Aquellos que no correspondan a tipos primitivos, definirlos con notación Java. Ej: List Definir estereotipos para las agregaciones múltiples: list, set, vector, map, etc. Operaciones. Definir todos los parámetros de una operación, incluidos los que devuelven “void”. Para cada operación con parámetros de entrada, pulsar “Default Definition” en su pestaña Java (para que tenga en cuenta los parámetros) antes de la generación del código. Declarar las excepciones de usuario extendiendo a Exception

5 Santander, 2013 Code generation P. López & J.Medina 5 Generación código Java en Bouml Resultado Patrón de generación que se aplica Cuando se pulsa “Default definition”, se aplica el patrón de generación Edit sobre una clase => Pestaña Java

6 Santander, 2013 Code generation P. López & J.Medina 6 Modificación de los patrones de generación de código Proyecto => Edit => Edit Generation Settings En la pestaña Types están los mapeados de tipos primitivos

7 Santander, 2013 Code generation P. López & J.Medina 7 Patrones de generación En el resto de pestañas Java[i] están los patrones de generación del resto de elementos: clases, interfaces, atributos, asociaciones, etc

8 Santander, 2013 Code generation P. López & J.Medina 8 Generación código Java de atributos

9 Santander, 2013 Code generation P. López & J.Medina 9 Generación código Java de atributos

10 Santander, 2013 Code generation P. López & J.Medina 10 Generación código Java de asociaciones múltiples EMA MagnitudMeteorologica 1..* magnitudesMeteorologicas

11 Santander, 2013 Code generation P. López & J.Medina 11 Generación código Java de asociaciones múltiples (incorrecto) EMA MagnitudMeteorologica 1..* magnitudesMeteorologicas

12 Santander, 2013 Code generation P. López & J.Medina 12 Generación código Java de asociaciones múltiples EMA MagnitudMeteorologica 1..* magnitudesMeteorologicas >  Hay que definir el tipo de asociación mediante un estereotipo. BOUML ofrece como posibilidades: List : Mapeado a la interfaz List de Java Set : Mapeado a la interfaz Set de Java Map : Mapeado a la interfaz Map de Java

13 Santander, 2013 Code generation P. López & J.Medina 13 Generación código Java de operaciones Definir siempre el valor de retorno, incluso cuando sea void (excepto en constructores)

14 Santander, 2013 Code generation P. López & J.Medina 14 Generación código Java de operaciones (incorrecto) La implementación obtenida inicialmente no muestra los argumentos de entrada

15 Santander, 2013 Code generation P. López & J.Medina 15 Generación código Java de operaciones Pulsando Default Definition genera los parámetros correspondientes

16 Santander, 2013 Code generation P. López & J.Medina 16 Generación de código de excepciones En Java una excepción extiende siempre a la clase Exception Para que BOUML genere el código de forma adecuada, hacemos que todas las excepciones de usuario extiendan a una clase Exception (para la cual no generaremos código). UserException Exception

17 Santander, 2013 Code generation P. López & J.Medina 17 Generación cuerpo de las operaciones Podemos incluso generar el código que queremos que aparezca en el cuerpo de las operaciones: Para ello tenemos que asignar a la variable de entorno BOUML_EDITOR un editor cualquiera (bloc de notas, p.e.) Pinchando Edit Body en la pestaña anterior, nos abre una ventana del editor elegido y editamos el cuerpo del procedimiento (corresponderá al identificador $body del patrón de generación) Podremos editar directamente el texto : En métodos muy sencillos Para que Java no de errores de compilación porque no se devuelven los tipos de datos que se requieren.

18 Santander, 2013 Code generation P. López & J.Medina 18 Dependencias externas Para incluir dependencias de paquetes externos (java.util, java.io, etc), añadimos el correspondiente import directamente en el artifact. Botón derecho sobre el artifact => Edit => Java Source y lo editamos directamente debajo del campo ${imports}


Descargar ppt "Patricia López & Julio Medina Computadores y Tiempo Real Santander, 2013 G80 - Advanced Computation 1 Generación de Código con BOUML."

Presentaciones similares


Anuncios Google