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.

Slides:



Advertisements
Presentaciones similares
el 1, el 4 y el 9 tres cuadrados perfectos autosuficientes
Advertisements

MODELOS ORIENTADOS A OBJETOS
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS (MICROEMPRESAS, resultados provisionales) 29 de julio de 2004.
Fundamentos de Diseño de Software INFT.1
Análisis y Diseño Estructurado
Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com.
Metodologías Ágiles Patricio Letelier
CLASE 4 EL ENSAMBLADOR.
Resolución de Problemas
INTRODUCCIÓN A JAVA.
CONCEPTOS BASICOS DE PROGRAMACION
Aplicación de MDA a la Ingeniería del Conocimiento
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
Introducción a los Números Fraccionarios
INSTITUTO TECNOLOGICO DE MINATITLAN
ANALISIS ESTRUCTURADO Ing. Sonia Godoy Hortua 1. E SPECIFICACIÓN DE REQUERIMIENTOS 1. Requerimientos funcionales y no funcionales 2. Especificación de.
Técnico en programación de Software
Fundamentos de Ingeniería de Software
Combinadores SK.
Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz.
TOGAF.
Proceso de Originación de Crédito: Banco de los Alpes
Proyecto Fin de Carrera E.T.S. Ingeniería Informática 26 de Septiembre de 2006 DESARROLLO DE UN COMPONENTE TECLADO ALUMNO: Fco. Javier Sánchez Ramos TUTORES:
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
Ingeniería del Software
Ingeniería del Software
INTRODUCCIÓN A LA PROGRAMACIÓN
CULENDARIO 2007 Para los Patanes.
© Manuel ColladoHerramientas software-1 Herramientas software Clasificación. Integración de herramientas.
1  2008 Universidad de Las Américas - Ingeniería de Software : Dr. Juan José Aranda Aboy ACI491: Ingeniería de Software Unidad 7: Proceso de Ingeniería.
Desarrollo Orientado a Objetos con UML
PROYECTO MEJORA DE PROCESOS
Introducción a MÉTRICA 3.0
Unified Modeling Language (Lenguaje de Modelamiento unificado)
1 Escenarios Futuros Ingeniería de Requisitos. 2 Obtener Requisitos Explícitos Comprender el UdeD Actual Definir Requisitos del SW Comprender el UdeD.
1 LOS PROBLEMAS DE DISEÑO EN INGENIERÍA: CONCEPTO Y FORMULACIÓN NELSON VÍLCHEZ UNIVERSIDAD TECNOLÓGICA DEL CENTRO COORDINACIÓN DE INGENIERÍA.
El Proceso Software Ingeniería en Informática
STARUML.
DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
Introducción al Proceso de Desarrollo de Software Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad.
Ingeniería de Software
Como Desarrollar SW Distribuido de Calidad
Rational Unified Process (RUP)
Ciclo de Vida del Software Paradigmas de Desarrollo
Introducción al modelado Unificado
Ingeniería de Software Asistida por Computadora
Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Ingeniería de Software
Rational Unified Process (RUP)
UML 2.0 Integrantes: Diana Carolina Valencia M. Jhon Fernando Lopez T. Carlos Alberto Castillo.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Ingeniería de software
Introducción al Proceso de Desarrollo de Software Patricio Letelier Centro de Formación de Postgrado – Depto. Sistemas Informáticos y Computación Universidad.
Introducción al Proceso de Desarrollo de Software
UML Carlos Becerra C. ¿Qué es orientación a objetos? Conceptos de OO  Objetos, características de los objetos, clases e instancias,
Desarrollo de Software Orientado a Objetos (deficiencias)
ANÁLISIS Y DISEÑO DE SISTEMAS II
Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: material asignatura CS169,Software Engineering,
Introducción a UML Departamento de Informática Universidad de Rancagua
Conceptos Fundamentales
Ingeniería de Requisitos
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
Integrantes: Dennys Quintero José Ortega Simón Fagundez Caracas 09 de Febrero de 2015.
Unified Modeling Language (Lenguaje de Modelamiento unificado)
Proceso de desarrollo de Software
Introducción AOO. Contenido - Introducción - Repaso de Orientación a Objetos - UML - Casos de Uso.
Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
MODELAMIENTO VISUAL Y UML
Modelado Orientado a Objetos Programación Orientada a Objetos Departamento de Sistemas Universidad del Cauca 2006.
Transcripción de la presentación:

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

2  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

3  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

4  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).

5  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

6  ¿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

7  MBCG respecto de CG Tradicional Compilador Sistema Executable Código Fuente en HLL Librerías Run-Time Opciones de Código Compilador Código Fuente Modelos de Objetos Librerías Opciones de Arquitectura CG TradicionalMBCG

8  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

9  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”

10  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++

11  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

12  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

13  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

14  Clasificación de Enfoques MBCG Estructural De Comportamiento De Traducción ModelosCódigo Evolución de las Herramientas Cada tipo de enfoque incluye las caracte- rísticas del tipo previo

15  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

16  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

17  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)

18  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

19  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

20  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)

21  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

22  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

23  MBCG en BridgePoint

24  Resumen de Enfoques para MBCG Archetype Comunicación y Comportamiento 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 EstructuralDe ComportamientoDe Traducción

25  Una Comparación Simplificada RUP, Métrica Java, C#, …

26  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”

27  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

28  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

29  Comentarios respecto del Paradig- ma de Programación Automática Especificación Tranformación Interactiva Transformación Automática Optimización Validación de Especificación Mantenimiento Especificación de alto nivel (prototipo) Desarrollo Formal Desiciones Especificación de bajo nivel Código Fuente Especificación Informal

30  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

31  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”

32  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

33  Links International Council in SE (INCOSE) Tools Database Working Group. Case Tools Index.