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 Politécnica de Valencia

Prólogo

  • Upload
    gannon

  • View
    48

  • Download
    2

Embed Size (px)

DESCRIPTION

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 Politécnica de Valencia. Prólogo. - PowerPoint PPT Presentation

Citation preview

Page 1: Prólogo

Generación de Código a partir de

Modelos de Objetos:Estado del Arte

Patricio LetelierDepartamento de Sistemas Informáticos y Computación

Universidad Politécnica de Valencia

Page 2: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

5 www.dsic.upv.es/~letelier/pub

... IntroducciónDesarrollo 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: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

23 www.dsic.upv.es/~letelier/pub

MBCG en BridgePoint

Page 24: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

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: Prólogo

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