![Page 1: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/1.jpg)
Generación de Código a partir de
Modelos de Objetos:Estado del Arte
Patricio Letelier
Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia
![Page 2: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/2.jpg)
2 www.dsic.upv.es/~letelier/pub
Prólogo
El contenido de esta presentación está basado principalmente en el artículo de Rodney Bell titulado “Code Generation from Object Models”, incluido en ejemplar de Marzo de 1998 de la revista Embedded Systems Programming
![Page 3: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/3.jpg)
3 www.dsic.upv.es/~letelier/pub
Contenidos• Introducción
• ¿Qué es la MBCG?
• Clasificación de Enfoques MBCG
• Introducción y Futuro de la Tecnología MBCG
• Comentarios respecto del Paradigma de Programación Automática
• Conclusiones
![Page 4: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/4.jpg)
4 www.dsic.upv.es/~letelier/pub
Introducción
• Propósito: Elevar el nivel de abstracción del trabajo del desarrollador
• Beneficio: reducción del tiempo de puesta en mercado para productos software. (Desarrollo de sw competitivo)
Generación de Código a partir de modelos OO. Model-Based Code Generation (MBCG).
![Page 5: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/5.jpg)
5 www.dsic.upv.es/~letelier/pub
... Introducción
Desarrollo OO Actual
• Arquitecturas para sistemas OO [Lauesen 98]:– Simple Business Application
– Complex Business Application
– Technical System
• Talón de Aquiles de Métodos OO es la transición a código. La MBCG mantiene la utilidad de los modelos
![Page 6: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/6.jpg)
6 www.dsic.upv.es/~letelier/pub
¿Qué es MBCG?• Modelado (“Visual”) + Generación de Código
• Un conjunto de diagramas modelan la estructura, comunicación y comportamiento de los objetos del sistema
• Como complemento a los diagramas se utilizan especificaciones textuales
• Se utiliza una sintaxis bien definida y en algunos casos una semántica en el sentido de un lenguaje de alto nivel
![Page 7: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/7.jpg)
7 www.dsic.upv.es/~letelier/pub
MBCG respecto de CG Tradicional
Compilador
Sistema Executabl
e
CódigoFuente en HLL
LibreríasRun-TimeOpciones
de Código
Compilador
CódigoFuente
Modelosde
Objetos LibreríasOpciones de
Arquitectura
CG Tradicional MBCG
![Page 8: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/8.jpg)
8 www.dsic.upv.es/~letelier/pub
Requisitos para MBCG
• Modelos apropiados para representar el problema
• Constructores de modelado necesarios para lograr MBCG
• Madurez de los traductores* para generar código de calidad
• Metodología y herramientas para aplicación efectiva de la MBCG
![Page 9: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/9.jpg)
9 www.dsic.upv.es/~letelier/pub
Enfoques Actuales para MBCG
• En el resumen de una sesión de debate del OOPSLA’96: “Traslation: Myth or Reality”. Dos “escuelas de pensamiento”: – La “traslational” liderada por Shlaer y
Mellor “Un modelo de la aplicación y uno de arquitec-tura que se componen para generar el código”
– La “otra” liderada por Booch, Rumbaugh, Jacobson y Martin. “Diferentes niveles de abstracción hasta generar el código”
![Page 10: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/10.jpg)
10 www.dsic.upv.es/~letelier/pub
Aspectos Comunes en los enfoques actuales para MBCG• Asociados con al menos un método
de análisis y diseño
• Soportados por herramientas comerciales
• La entrada básica para la obtención de código es el modelo de estructura de los objetos
• Incluyen al menos generación en C++
![Page 11: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/11.jpg)
11 www.dsic.upv.es/~letelier/pub
... Aspectos Comunes en los enfoques actuales para MBCG• Ofrecen mecanismos para mantener
los modelos y el código sincronizados. Round-Trip Development
• Ofrecen máquinas de transición de estados para representar el comportamiento
• Han sido utilizados principalmente en desarrollo de sistemas de tiempo real y sistemas empotrados
![Page 12: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/12.jpg)
12 www.dsic.upv.es/~letelier/pub
Diferencias entre los enfoques actuales para MBCG
• El método OO asociado
• Facilidades para verificación del comporta-miento antes de la generación de código
• Lenguajes soportados además de C++
• El alcance del código generado
• El modo de sincronizar y reconciliar los modelos con el código
![Page 13: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/13.jpg)
13 www.dsic.upv.es/~letelier/pub
... Diferencias entre los enfoques actuales para MBCG• Las posibilidades de adaptación de la
tecnología de traducción. Lenguaje de Scripts
• El control del código generado y de la arquitectura del sistema
• La integración de código no generado
![Page 14: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/14.jpg)
14 www.dsic.upv.es/~letelier/pub
Clasificación de Enfoques MBCG
Estructural
De Comportamien
to
De Traducció
n
Modelos Código
Evolución de las Herramientas
• Cada tipo de enfoque incluye las caracte-rísticas del tipo previo
![Page 15: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/15.jpg)
15 www.dsic.upv.es/~letelier/pub
... Clasificación de Enfoques MBCG• MBCG Estructural: Genera plantillas de código
desde el modelo de estructura de objetos
• MBCG de Comportamiento. Genera código completo usando máquinas de transición de estados y especificaciones de acciones en un HLL
• MBCG de Traducción: Usa un modelo de arqui-tectura independiente de la aplicación para dar un control total sobre la traducción a código
![Page 16: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/16.jpg)
16 www.dsic.upv.es/~letelier/pub
Enfoque Estructural• Apropiado para metodologías en las
cuales los modelos son elaborados mediante transisión gradual entre análisis, diseño y código. OMT, OOSE y OOAD
• No existe generación de código para el comportamiento de los objetos. Aunque se utilicen máquinas de estado no se les asocia una semántica ejecutable
• Algunos productos: Rational Rose, System Architect
![Page 17: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/17.jpg)
17 www.dsic.upv.es/~letelier/pub
... Enfoque Estructural• Se ofrecen mecanismos para integrar código
escrito manualmente junto con la estructura generada
• Algunas herramientas protegen el código escrito manualmente para evitar reescribirlo en sucesivas generaciones
• Se suele ofrecer mecanismos de ingeniería inversa para establecer modelos (la parte estructural)
![Page 18: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/18.jpg)
18 www.dsic.upv.es/~letelier/pub
Enfoque de Comportamiento• El beneficio adicional obtenido es la posibili-dad de
animar y validar el comportamiento del sistema (a partir de los modelos) pero antes de generar el código
• Máquinas de estados extendidas para incluir: paralelismo, comunicación y/o jerarquía
• Métodos usados para este enfoque: Specification and Description Language (SDL), Statecharts de Harel y ROOM
![Page 19: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/19.jpg)
19 www.dsic.upv.es/~letelier/pub
... Enfoque de Comportamiento• La programación se reduce pero
algunos aspecto aún deben incorporarse manual-mente
• Los traductores ofrecen poco control sobre la generación de código
• Algunos productos: Rhapsody, ObjectTime, Tau/Developer
![Page 20: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/20.jpg)
20 www.dsic.upv.es/~letelier/pub
Enfoque de Traducción• Se desarrollan modelos de arquitectura: un
conjunto de patrones de código llamados “archetypes” que establecen reglas de traducción
• Típicos aspectos incluidos en un archetype establecen: concurrencia (threads, multitarea, sin concurrencia), manejo de eventos (colas, comunicación entre procesos, flujos I/O) y datos (estructuras, mecanismos, persisten-cia)
![Page 21: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/21.jpg)
21 www.dsic.upv.es/~letelier/pub
... Enfoque de Traducción• El modelo de arquitectura es independiente
del modelo de la aplicación. Esto favorece la reutilización de ambos modelos
• La construcción de un modelo de arquitectura es en sí un proyecto. Se utiliza un lenguaje de scripts, accediendo al repositorio. Pueden ofrecerse librerías y macanismos de composi-ción y especialización de arquitecturas
![Page 22: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/22.jpg)
22 www.dsic.upv.es/~letelier/pub
... Enfoque de Traducción• Suelen proveerse arquitecturas genéricas que
pueden modificarse. Incluso podrían ser desarrolladas por otras empresas
• Al igual que en el enfoque de comportamien-to, la generación es sólo en un sentido
• Algunos productos: BridgePoint, Intelligent CCG, OBLOG
![Page 23: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/23.jpg)
23 www.dsic.upv.es/~letelier/pub
MBCG en BridgePoint
![Page 24: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/24.jpg)
24 www.dsic.upv.es/~letelier/pub
Resumen de Enfoques para MBCG
Archetype
Comunicación y Comportamient
o de Objetos
Estructura de Objetos
Modelo de Arquitectura
Modelo de Aplicación
Traductor
Entorno de Programación
Librerías
Código Fuente Basado
en Modelo
Sistema Ejecutable
Otro Código
Estructural
De Comportamiento
De Traducción
![Page 25: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/25.jpg)
25 www.dsic.upv.es/~letelier/pub
Una Comparación SimplificadaEstructural De Comportamiento De Traducción
Modelos Usados objetos objetos, estados,acciones
objetos, estados,acciones, arquitectura
Metodologías que seAjustan al Enfoque
OMT, OOAD, OOSE Harel, SDL, ROOM Shlaer-Mellor
LenguajesGenerados
C++, Ada, ... C++, C, ... Cualquiera (segúnarquitecturadisponibles)
Alcance del CódigoGenerado
Plantillas de Clase Completo (paraanimar)
Total (aplicación final)
Control sobre elCódigo y laArquitectura
Plantilla de Clase Código Manual,Librerías, Opciones deGeneración
Completo
Herramientas Desarrollo Round-Trip,Código Protegido
Animación yDepuración de Modelos
Edición deArquitecturas
Esfuerzo deincorporación delEnfoque en un CASE
Pequeño Importante para laSemántica de Ejecución
Elevado en lo querespecta a la Definiciónde la Arquitectura
Beneficios Sincronización entre elCódigo y los Modelos
Validación Tempranade los Modelos
Reuso de Arquitecturas
RUP, Métrica
Java, C#, … Java, C#, …
![Page 26: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/26.jpg)
26 www.dsic.upv.es/~letelier/pub
Introducción de tecnología MBCG• Tecnología de élite en IS. Constituye la extensión
del concepto tradicional de CASE
• Incluye las dificultades ya detectadas en la tecnología CASE sin MBCG
• Mientras más ambicioso es el enfoque MBCG deseado, más obstáculos tiene su introduc-ción
• “Utilizar el enfoque MBCG que se ajuste a su realidad actual y posteriormente tender hacia un enfoque más exigente”
![Page 27: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/27.jpg)
27 www.dsic.upv.es/~letelier/pub
Iniciativas Actuales• Model Driven Architecture (MDA)
impulsada por la OMG
• Generación de código a partir de modelos UML en herramientas CASE
• Action Semantics, añadido a UML 1.4 para especificar ejecución de modelos UML
![Page 28: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/28.jpg)
28 www.dsic.upv.es/~letelier/pub
Futuro de la tecnología MBCG• Madurez de la tecnología. Tal como ocurrió con
los compiladores y lenguajes de alto nivel
• Integración con HLLs. Generación de código ejecutable directamente
• Simulación de modelos para su depuración
• Herramientas especiales para construir modelos de arquitecturas. Mercado de arquitecturas predefinidas
![Page 29: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/29.jpg)
29 www.dsic.upv.es/~letelier/pub
Comentarios respecto del Paradig-ma de Programación Automática
Especificación TranformaciónInteractiva
TransformaciónAutomática
Optimización
Validación deEspecificación
Mantenimiento
Especificaciónde alto nivel (prototipo)
DesarrolloFormalDesiciones
Especificaciónde bajo nivel
CódigoFuente
EspecificaciónInformal
![Page 30: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/30.jpg)
30 www.dsic.upv.es/~letelier/pub
Conclusiones• La tecnología de MBCG continúa la tendencia
natural en las herramientas de desarrollo de sw. La MBCG es un paso inevitable
• Diferentes grados de MBCG, apropiados para distintas situaciones de un equipo de desarrollo de sw
• ¿En qué tipos de aplicaciones se está utilizando?. Sistemas de tiempo real y sistemas empotrados
![Page 31: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/31.jpg)
31 www.dsic.upv.es/~letelier/pub
... Conclusiones• ¿Es razonable la generación del 100% de
código? . En algunos casos la generación consistirá simplemente en la traducción de un lenguaje algorítmico a otro. [Debate OOPSLA’96]
• Fortalezas del Modelado Conceptual Formal (Usando notaciones “visuales”). – Mejor soporte para análisis estático (model
checking) y dinámico (animación)
– Patrones de traducción más “rigurosos”
![Page 32: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/32.jpg)
32 www.dsic.upv.es/~letelier/pub
Referencias
• Rodney Bell. “Code Generation from Object Models”. Embedded Systems Programming, Marzo 1998
• Robert Balzer. “Software Technology in the 1990’s: Using a New Paradigm”. IEEE Computer, Noviembre 1983
• Søren Lauesen. “Real-Life Object-Oriented Systems”, IEEE Software, Marzo/Abril 1998
![Page 33: Generación de Código a partir de Modelos de Objetos: Estado del Arte Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad](https://reader035.vdocuments.mx/reader035/viewer/2022070304/54dbad7f4979599e0a8b4fe3/html5/thumbnails/33.jpg)
33 www.dsic.upv.es/~letelier/pub
Links
• International Council in SE (INCOSE) Tools Database Working Group. http://www.incose.org/tools/
• Case Tools Index. http://www.qucis.queensu.ca/Software-Engineering/
tools.html