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
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
2
•
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
3
•
www.dsic.upv.es/~letelier/pub
Introducción
Generación de Código a partir de modelos OO.
Model-Based Code Generation (MBCG).
• 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)
4
•
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
5
•
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
•
www.dsic.upv.es/~letelier/pub
6
MBCG respecto de CG Tradicional
CG Tradicional
Opciones
de Código
Código
Fuente
en HLL
Librerías
Run-Time
MBCG
Opciones de
Arquitectura
Modelos
de
Objetos
Compilador
Compilador
Sistema
Executable
Código
Fuente
Librerías
7
•
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
8
•
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 arquitectura 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”
9
•
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++
10
•
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. RoundTrip 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
11
•
www.dsic.upv.es/~letelier/pub
Diferencias entre los enfoques
actuales para MBCG
• El método OO asociado
• Facilidades para verificación del comportamiento 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
12
•
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
13
•
www.dsic.upv.es/~letelier/pub
Clasificación de Enfoques MBCG
Modelos
Estructural
De
De
Comportamiento Traducción
Código
Evolución de las Herramientas
• Cada tipo de enfoque incluye las características del tipo previo
14
•
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 arquitectura independiente de la aplicación para dar
un control total sobre la traducción a código
15
•
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
•
www.dsic.upv.es/~letelier/pub
16
... 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)
17
•
www.dsic.upv.es/~letelier/pub
Enfoque de Comportamiento
• El beneficio adicional obtenido es la posibilidad 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
18
•
www.dsic.upv.es/~letelier/pub
... Enfoque de Comportamiento
• La programación se reduce pero algunos
aspecto aún deben incorporarse manualmente
• Los traductores ofrecen poco control sobre la
generación de código
• Algunos productos: Rhapsody, ObjectTime,
Tau/Developer
19
•
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, persistencia)
20
•
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 composición y especialización de arquitecturas
21
•
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 comportamiento, la generación es sólo en un sentido
• Algunos productos: BridgePoint, Intelligent
CCG, OBLOG
22
•
www.dsic.upv.es/~letelier/pub
MBCG en BridgePoint
23
•
www.dsic.upv.es/~letelier/pub
Resumen de Enfoques para MBCG
Código Fuente
Basado en
Modelo
Modelo de Aplicación
Estructura de
Objetos
Comunicación y
Comportamiento
de Objetos
Archetype
Traductor
Entorno de
Programación
Librerías
Otro Código
Modelo de Arquitectura
Estructural
•
www.dsic.upv.es/~letelier/pub
Sistema
Ejecutable
De Comportamiento
De Traducción
24
Una Comparación Simplificada
E s tru c tu ra l
D e C o m p o rta m ie n to
D e T ra d u c c ió n
M o d e lo s U s a d o s
o b je to s
o b je to s, e sta d o s ,
a ccio n e s
o b je to s, e sta d o s ,
a ccio n e s , a rq u ite ctu ra
M e to d o lo g ía s q u e s e
A ju s ta n a l E n fo q u e
O M T, O O AD, O O SE
H a re l, S D L, R O O M
S h la e r-M e llo r
L e n g u a je s
G e n e ra d o s
C + + , A d a , ...
C + + , C , ...
Java, C#, …
Java, C#, …
C u a lq u ie ra (se g ú n
a rq u ite ctu ra
d isp o n ib le s)
A lc a n c e d e l C ó d ig o
G e n e ra d o
P la n tilla s d e C la se
C o m p le to (p a ra
a n im a r)
T o ta l (a p lica ció n fin a l)
C o n tr o l s o b r e e l
C ó d ig o y la
A rq u ite c tu ra
P la n tilla d e C la se
C ó d ig o M a n u a l,
Lib re ría s, O p cio n e s d e
G e n e ra ció n
C o m p le to
H e rra m ie n ta s
D e sa rro llo R o u n d -T rip ,
C ó d ig o P ro te g id o
A n im a ció n y
D e p u ra ció n d e M o d e lo s
E d ició n d e
A rq u ite ctu ra s
E s fu e rz o d e
in c o rp o ra c ió n d e l
E n fo q u e e n u n C A S E
Pequeño
Im p o rta n te p a ra la
S e m á n tica d e E je c u ció n
E le va d o e n lo q u e
re sp e cta a la D e fin ició n
d e la A rq u ite ctu ra
B e n e fic io s
S in cro n iza ció n e n tre e l
C ó d ig o y lo s M o d e lo s
V a lid a ció n T e m p ra n a
d e lo s M o d e lo s
R e u so d e A rq u ite ctu ra s
RUP, Métrica
25
•
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 introducción
• “Utilizar el enfoque MBCG que se ajuste a su
realidad actual y posteriormente tender hacia
un enfoque más exigente”
26
•
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
27
•
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
28
•
www.dsic.upv.es/~letelier/pub
Comentarios respecto del Paradigma de Programación Automática
Desiciones
Desarrollo
Formal
Especificación
Informal
Especificación
Especificación
de alto nivel
(prototipo)
Tranformación
Interactiva
Especificación
de bajo nivel
Código
Transformación Fuente
Automática
Optimización
Validación de
Especificación
Mantenimiento
29
•
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
30
•
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”
31
•
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
32
•
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
33
•
www.dsic.upv.es/~letelier/pub
Descargar

Generación de Código a partir de Modelos de Objetos