Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.

Slides:



Advertisements
Presentaciones similares
U.M.L A/Gx. Diego Gutiérrez Application Analysis and Design.
Advertisements

INSTITUTO TECNOLÓGICO DE MORELIA JOSÉ MARIA MORELOS Y PAVÓN
Lenguaje Unificado de Modelado
ANÁLISIS DE REQUERIMIENTOS
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
Tipos de Servicios Web.
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.
Especificación y Verificación de Transformaciones de Modelos
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
UNIDAD 1: “ Introducción al Lenguaje Unificado de Modelado ”
METODOLOGIA DE LA PROGRAMACION
El paradigma de la orientación a objetos La programación orientada a objetos genera códigos eficientes y estandariza la metodología de programación, además.
Unified Modeling Language (Lenguaje de Modelamiento unificado)
Análisis y Diseño orientado a objetos con UML.
Autor: Antonio Sarasa Cabezuelo Directora: María Antonia Huertas.
I Taller sobre Desarrollo de Software Dirigido por Modelos, MDA y Aplicaciones (DSDM'04) MDA Aplicado: Una Gramática de Grafos para la Transformación de.
Modelado Arquitectónico
STARUML.
* FRAUSTO JIMENEZ GABRIELA * * HERNANDEZ TORRES ANA LAURA * * MANDUJANO JUAN CARLOS * * NOVA MARIN YARELI PAULINA * * ZAVALA CORTE JOCELYN ARELI *
Ingeniería de Software
Sesión 5 Herramientas de creación de DSL gráficos (GMF)
Ingeniería de Software Orientado a Objetos
Como Desarrollar SW Distribuido de Calidad
DISEÑO DE SOFTWARE 1ª. Parte
Fundamentos de programación
Facilitador: Ing. Jorge Alarcón
Tema I Arquitectura de Software. Arquitectura de software es un conjunto de reglas que definen la estructura de un sistema y las relaciones entre sus.
POR MARCO LEANDRO RUIZ ZAPATA. Start UML Unified Modeling Language lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad;
Poder Expresivo de UML 2.0 para especificar arquitecturas de Software
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Introducción al modelado Unificado
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.
Patrones de Diseño en MDA
5/8/2015Metamodelamiento1 METAMODELADO Carlos Mario Zapata J.
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Ingeniería de Software en la Robótica Educativa Gabriela Arévalo, Ph.D. CAETI- UAI, LIFIA-UNLP, CONICET
Importancia en la efectividad del:
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
Desarrollo de Software Orientado a Objetos (deficiencias)
1 Sebastián Argüello A60490 semana 3 Autómatas y compiladores CI-1322.
Juan Timoteo Ponce Ortiz
Introducción a UML Departamento de Informática Universidad de Rancagua
Conceptos Fundamentales
DIAGRAMA DE SECUENCIA Y ACTIVIDADES.
Jairo Pinto Ing. sistemas
UML.
Introducción al proceso de verificación y validación.
Integrantes: Dennys Quintero José Ortega Simón Fagundez Caracas 09 de Febrero de 2015.
PROCESOS DE DESARROLLO DE SOFTWARE
TEMA: DISEÑO DE LA SOLUCION INTREGRANTES DE EQUIPO: ERIKA CRUZ MARTINEZ RODOLFO LOPEZ ANOTA LUIS ARMANDO LIÑA QUECHA JOSE FRANCISCO MEZO VARELA LUIS ENRIQUE.
Punto 1 – Introducción al servicio Juan Luis Cano.
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.
MODELAMIENTO VISUAL Y UML
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
PRESENTACION DE INGENIERIA ORIENTADA A OBJETOS
CICLO DE VIDA DE UN SOFTWARE. Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de.
Fundamentos de Ingeniería de Software
Modelado Orientado a Objetos Programación Orientada a Objetos Departamento de Sistemas Universidad del Cauca 2006.
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Presentación De UML Lenguaje estándar para escribir planos de software Se usa para visualizar, especificar, construir y documentar los artefactos de un.
Cómo aumentar la productividad a través de las tecnologías de modelado Adrián Noguero
Universidad Nacional de Ingeniería Comprendiendo los Fundamentos de
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Introducción a la Ingeniería del Software 1 El Diseño de Software Caracteristicas: Proceso Creativo Requiere de experiencia e ingenio Necesita del aprendizaje.
Tendencias Avanzadas de Ingeniería de Software.  Las herramientas CASE (Computer Aided Software Engineering, Ingeniería de Software Asistida por Computadora)
Transcripción de la presentación:

Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006

Consideraciones para el desarrollo de herramientas CASE basadas en UML/MDA

Sintaxis de los lenguajes visuales

Definición de la sintaxis de los lenguajes visuales Metamodelos Surgieron para definir la sintaxis de lenguajes visuales basados en diagramas de entidad-relación. UML es el referente de este estilo de definición sintáctica, que usa una técnica de metamodelado con 4 niveles de metamodelos. Gramáticas de grafos Interpretan modelos gráficos como grafos y usan reglas de transformación para expresar las reglas para construir diagramas correctos. Sólo una clase restringida de grafos puede ser descrita por gramáticas de grafos [1]. [1] Marriot, K., Meryer, B. Visual Language Theory, Springer, 1998.

Definición de la sintaxis de los lenguajes visuales Grafos abstractos Transforma diagramas concretos en un lenguaje de modelamiento en un grafo abstracto que preserva la topología. Este grafo es interpretado como un metamodelo del lenguaje. Debe complementarse con especificaciones en un lenguaje de constraints basado en lógica [2]. [2] Ebert, J., Suttenbach, R. An OMT Metamodel, Technical report 13, University of Koblenz, EBNF Una integración de Gramáticas de cadenas para lenguajes libres del contexto y gramáticas de atributos para sensibles al contexto y reglas operacionales para expresar constraints de la sintaxis dinámica [3] [3] Xia, Y. Glinz, M. Rigorous EBNF-based Definition for a Graphic Modeling Language, IEEE, 2003

Relación entre gramáticas libres del contexto y metamodelos MOF

Las gráficas y ejemplos de esta sección fueron extraídos de: Alanen, M., Porres, I. A Relation between Context-Free grammars and meta Object facility Metamodels. Turku Centre for Computer Science TUCS Technical Report 606,

BNF (Backus Naur Form) y MOF (Meta Object Facility) Metamodelos Lenguaje de modelos Gramáticas Lenguaje de programas Transformación de una gramática en un metamodelo G MM Transformación de un texto (código) en un modelo T M Son reversibles G MM T M

BNF y MOF Se han desarrollado tecnologías para derivar metamodelos de varias fuentes: BNF UML ERD … Por ejemplo MDWorkbench es un IDE basado en Eclipse para generación de código y transformaciones de modelos para implementa estrategias MDA/MDE.

BNF y MOF QVT (Query, View, Transformation) Metamodel Transformaciones Relaciones Especificación de transformaciones, no ejecutables multidireccionales Mappings Implementación de transformaciones, potencialmente unidireccionales

BNF y MOF

G MM Relación a nivel de metamodelos que puede implementarse mediante los mappings G MM G MM

BNF y MOF G MM Cada gramática válida puede ser mapeada a un Cada gramática válida puede ser mapeada a un metamodelo válido. metamodelo válido. Cada metamodelo válido puede ser mapeado a Cada metamodelo válido puede ser mapeado a una gramática válida una gramática válida La relación es reversible La relación es reversible Los modelos válidos deberían producir árboles de sintaxis válidos y viceversa. Los modelos válidos deberían producir árboles de sintaxis válidos y viceversa. Toda la información debe estar contenida en la gramática o el metamodelo Toda la información debe estar contenida en la gramática o el metamodelo

Algoritmo para transfomar una EBNF en un metamodelo MOF

Algoritmo para transformar una EBNF en un metamodelo MOF

Algoritmo para transformar un metamodelo a una BNF

Ejemplo: desde una gramática JAVA simplificada a MOF

Metamodelo JAVA generado desde BNF simplificada

Algoritmos para transformaciones entre BNF y MOF Estos algoritmos no mapean cualquier gramática arbitraria en un metamodelo arbitrario. Por ejemplo, no pueden ser usadas para mapear la gramática de JAVA en un metamodelo UML. Esto debería resolverse en dos etapas, primero mapear JAVA a un metamodelo JAVA y luego, de éste a un metamodelo MOF usando transformaciones modelo a modelo. El mismo razonamiento se aplica en la dirección inversa.

Algoritmos para transformaciones entre BNF y MOF Las transformaciones son específicas para cada par de lenguaje de programación y de modelamiento. Es posible definir un mapping de un metamodelo MOF a otro usando transformaciones de modelos.

Relaciones a nivel de modelos Esta relación define mappings desde un árbol de sintaxis BNF ( es decir un programa) y un modelo, y desde un modelo a un árbol de sintaxis. El mapping de un árbol de sintaxis a un modelo es una instanciación de elementos del metamodelo de acuerdo al mapping definido entre EBNF y el metamodelo.

Reingeniería basada en MDA

Arquitectura de una heramienta de ingeniería inversa Tonella, P. Potrich, A. Reverse Engineering of Object-Oriented Code, Springer, 2005

Reingeniería de sistemas legacy En [1] se describe un estudio de factibilidad en la reingeniería de sistemas legacy de una compañía aseguradora. Los pasos del proceso propuesto son: 1) Parsing del código del sistema legacy de acuerdo a la gramática. 2) Mapping de los árboles de sintaxis abstracta obtenidos en el paso previo a un modelo de gramática que está definida en MOF. [1]Reus, T., Geers, H. van Deursen, A. Harvesting Software System for MDA-based Reengineering. Lecture Notes in Computer Science 4066, Springer, 2006.

Reingeniería de sistemas legacy 3) Convertir la gramática de 2) en un metamodelo genérico que permita expresar información del software en forma independiente del lenguaje. 4) Mapping de los modelos que son instancias del metamodelo genérico, usando transformaciones modelo a modelo a modelos UML que pueden ser usados para generar código o como documentación.

Reingeniería de sistemas legacy

Transformaciones y metamodelos “es-instancia-de” AntiRefinamientoISM-PSM Anti Refinamiento ISM-PSM “es-instancia-de” PSM ISM MetamodeloPSM MetamodeloISM

Arquitecture-Driven Modernization ADM

ADM La misión de ADM es crear estándares en el marco de OMG y MDA para la modernización de sistemas existentes y consolidar prácticas que conduzcan a la realización de proyectos de modernización exitosos. La modernización soporta una serie de iniciativas (escenarios) para incluir mejoras en la calidad de las aplicaciones, conversión código a código, migración a diferentes plataformas, migración a SOA, a MDA.

ADM Uno de los principales objetivos fue la creación de KDM (Knowledge Discovery Metamodel), un metamodelo que permite interoperabilidad entre diferentes herramientas. Las diferentes herramientas deberían intercambiar vistas comunes sobre plataformas y lenguajes con el fin de analizar y estandarizar sistemas existentes. KDM está alineado con MOF 2.0. KDM representa a los principales artefactos del software (propios) o aquellos externos con los que interactúa

ADM Task Force- Roadmap OMG Adopted Specification ptc/ RFP #1: ADM: Knowledge Discovery Meta Model Package Facilitar el intercambio de metadatos de sistemas existentes para varias herramientas de modernización. RFP #2: ADM: Abstract Syntax Tree Meta Model (ASTM) Construido sobre KDM para representar software bajo el nivel procedural

ADM Task Force- Roadmap RFP #3: ADM: Analysis Package Un estándar para facilitar el análisis de metadatos estructurales a fin de derivar metadatos de comportamiento de sistemas. RFP #4: ADM: Metrics Package RFP #5: ADM: Visualization Package RFP #6: ADM: Refactoring Package RFP #7: ADM: Target Mapping & Transformation Package