Separación Avanzada de Conceptos Dirigida por Modelos

Slides:



Advertisements
Presentaciones similares
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
Advertisements

Innovaciones de Modelado en una Software Factory
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
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.
El Proceso Software Ingeniería en Informática
Programación Orientada a Aspectos (POA)
Como Desarrollar SW Distribuido de Calidad
Análisis y Diseño del Software
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.
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
5/8/2015Metamodelamiento1 METAMODELADO Carlos Mario Zapata J.
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Juan Timoteo Ponce Ortiz
Integrantes: Dennys Quintero José Ortega Simón Fagundez Caracas 09 de Febrero de 2015.
Qué es la web 2.0 Web 2.0 y educación Tipos de herramientas web 2.0 Herramientas y ejemplos de aplicación ¿Dónde buscar aplicaciones Web 2.0? Qué es la.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLEMENTACIÓN DE COMPONENTES.
USO DE LAS HERRAMIENTAS CASE MARIA VERA ANGEL CEDEÑO.
Formatos de mantenimiento. Definición: Formato de mantenimiento: Es un documento escrito en el cual se indican las principales características de un proceso.
INFORMATICA I PROYECTO SIRLA Jorge Walter Sosa Esteban Parra González Juan Camilo Morales.
Importancia de la ortografía. Significado de la ortografía La ortografía (del latín orthographia y del griego ὀ ρθογραφία ) es el conjunto de reglas y.
Accesibilidad web. ¿Qué es la accesibilidad web? Hablar de Accesibilidad Web es hablar de un acceso universal a la Web, independientemente del tipo de.
DE LOCAL A GLOBAL: SISTEMA DE INFORMACIÓN DE COLECCIONES CIENTÍFICAS DEL MUSEO NACIONAL DE CIENCIAS NATURALES - SICoC - DE LOCAL A GLOBAL: SISTEMA DE INFORMACIÓN.
Bases de datos XML Integrantes: Aaron Siles Anthony Brenes Geudy Marin Gustavo Calderon Sergio Calvo.
Programación Orientada a Objetos Semestre agosto – diciembre 2011 Encuadre.
ANTEPROYECTO MUSEOGRÁFICO “CREACIÓN MUSEO NUMISMÁTICO BANCO DE MÉXICO” LLAMADA DE PROPUESTAS.
2  Calidad del software  Medición del software: necesidad de obtener datos objetivos que ayuden a mejorar la calidad  Creación de modelos de calidad:útiles.
BPM para Consultoras de Informática Carlos Alvarez, estudiante de Informática en la Universidad de Palermo, Argentina.
Objetivo Desarrollar en los estudiantes las habilidades necesarias para identificar y estructurar una cadena de valor y un modelo de negocio cultural,
TrasguNET, funcionalidades de la web Lola García Escribano Ingeniería de productoo Junio de 2010.
LENGUAJES ESPECÍFICOS DE DOMINIO - DSL. El usar lenguajes generalistas ha tenido bastante aceptación y éxito hasta el día de hoy, de hecho poseen una.
TEMA 4: ACCESIBILIDAD A LOS CONTENIDOS DIGITALES Lourdes Moreno, Paloma Martínez Universidad Carlos III de Madrid Asignatura.
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Introducción a Bases de Datos Universidad de Managua.
Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Fundamentos de Programación Departamento.
1 Introducción a la Programación Estructurada Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006.
Accesibilidad Rafael Pedraza Jiménez Àrea de Coneixement de Biblioteconomia i Documentació Universitat Pompeu Fabra
Cómo aumentar la productividad a través de las tecnologías de modelado Adrián Noguero
Procesamiento de Datos Cód.: 330 Facilitadora: Beatriz González Profesor: Oscar Núñez Universidad Nacional Abierta Vicerrectorado Académico Área: Ingeniería.
Clase 1.  Un programador es aquella persona que escribe, depura y mantiene el código fuente de un programa informático, es decir, del conjunto de instrucciones.
Conceptos de sistemas de información 4 Sistema de información formal –Es un medio informativo organizacionalmente eficaz, que es diseñado con la finalidad.
Boeing: Bold Stroke Avionics Software Family FLOREZ FERNANDEZHECTOR NARANJO ROMERO DAVID PEDRAZA.
Diseño recursos vivientes. 2 Plan de Exposición Introducción Presentación de referentes teóricos Primeros elementos del diseño de recursos vivientes Situaciones.
METODOS DE PROGRAMACION I Ing. Vania Flores Pinto.
UML Lenguaje Unificado de Modelado. Unified Modeling Language UML es un lenguaje de propósito general para el modelado orientado a objetos. Es un lenguaje.
JOSÉ GEOVANY CON PÉREZ LICEO DEL SUR. UNIDAD I Entorno de desarrollo. UNIDAD II Introducción al lenguaje de programación. UNIDAD III Trabajando con formularios.
Un diagrama de actividades ha sido diseñado para mostrar una visión simplificada de lo que ocurre durante una operación o proceso. Es una extensión.
CONVENIO 1208 de 2015, SUSCRITO ENTRE EL MINISTERIO DE EDUCACIÓN NACIONAL, LA ORGANIZACIÓN INTERNACIONAL PARA LAS MIGRACIONES-OIM Y LA FUNDACIÓN CARVAJAL.
JSF Simplificando nuestro trabajo. JSF – Java Server Faces Celula Creative SUN 2 La principal intención es liberar al programador de aspectos Web Pretende.
¿POR QUÉ LA ARQUITECTURA DE LA EMPRESA ES IMPORTANTE? Si una empresa elige para automatizar un servicio de negocio como un servicio sistemas de información,
Silvia Herzovich – Gabriel Weinstein – Matías Silversteyn 5to BTO SPI II.
Consulting, IT & Outsourcing Professional Services Estructura de la información del proyecto Diraya Atención Especializada en una herramienta CASE (Enterprise.
El Ciclo de Vida del Software  Procesos del Ciclo de Vida del SoftwareProcesos del Ciclo de Vida del Software  Breve Introducción a la Norma ISO/IEC.
Modelo del Proceso de Negocio Francisco Valdés Souto 2 al 6 de marzo 2009 © Avantare Consultores S. A. de C. V. – Derechos.
Definición y Estructura de la Hoja Metodológica de los Indicadores Ambientales MODULO 03: CURSO INTRODUCTORIO PARA LA CONSTRUCCION DE INDICADORES AMBIENTALES.
Popplet Aplicación 2.0. Introducción Popplet es una aplicación web 2.0 (El término Web 2.0 comprende aquellos sitios web que facilitan el compartir información,
Departamento de Lenguajes y Sistemas Informáticos escuela técnica superior de ingeniería informática Extendiendo NDT para la catalogación de Requisitos.
Introducción a DSL Tools con Visual Studio Abdul Wahab Sultán Regalado.
#BeTrendinTopic Manuel Florencio Olmedo Victor García Gómez Sergio Martínez Sánchez Servicios Multimedia ARA – Grupo 02.
Introducción a la Programación Orientada a Objetos (POO) Conceptos de clase, objeto e interfaz. Atributos y métodos Fundamentos de Programación Departamento.
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Proceso de Evaluación del CAUI Objetivo General Diseñar un instrumento que permita la evaluación de las Competencias para el Acceso y Uso de la.
BASES DE DATOS ¿QUÉ SON LAS BASES DE DATOS?. ANTECEDENTES  El término de bases de datos fue escuchado por primera vez en 1963, en un simposio celebrado.
SOBRE LA DIFERENCIA ENTRE ANÁLISIS Y DISEÑO. Porqué es relevante para la interpretación de los modelos en la ingeniería dirigida por modelos.
Itinerario de Tecnología del Software. Itinerario de Tecnologías del Software Presentación Metodología y Tecnología de la Investigación (6). Tecnologías.
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)
Transformación de modelos mediante gramáticas de grafos
Metodologías de Desarrollo Web
Transcripción de la presentación:

Separación Avanzada de Conceptos Dirigida por Modelos Toñi Reina Quintero reinaqu@lsi.us.es Seminario IntegraWeb - 16 Marzo 2007

Seminario IntegraWeb - 16 Marzo 2007 Índice de contenido Introducción Desarrollo de Software Orientado a Aspectos (DSOA) Desarrollo de Software Dirigido por Modelos (DSDM) Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Seminario IntegraWeb - 16 Marzo 2007 Introducción Seminario IntegraWeb - 16 Marzo 2007

Seminario IntegraWeb - 16 Marzo 2007 Introducción (I) MDA AOP WEB Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Seminario IntegraWeb - 16 Marzo 2007 Introducción (II) Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007 Evolución de la ingeniería del software

Desarrollo de Software Orientado a Aspectos “Un place pour chaque chose, et chaque chose à sa place” (Proverbio Francés) Seminario IntegraWeb - 16 Marzo 2007

Programación Orientada a Aspectos (POA) Mecanismos Composición AOP “Let me try to explain to you, what to my taste is characteristic for all intelligent thinking. It is, that one is willing to study in depth an aspect of one’s subject matter in isolation for the sake of its own consistency,…” (E. W. Dijkstra) Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Problema: código enmarañado (Tangling & Scattering) Localización del código del análisis de archivos XML en org.apache.tomcat Localización del código de logging en org.apache.tomcat Las líneas rojas muestran el código asociado al logging. No está solamente en un sitio, ni en un número reducido de sitios. Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Consecuencias del código enmarañado Código redundante. El mismo trozo de código se repite en muchos lugares Dificultad para razonar sobre él. No hay una estructura explícita. Dificultad para realizar modificaciones. Hay que encontrar todo el código involucrado. Ineficiente cuando el código del concepto entremezclado no es necesario. Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Desarrollo de Software Orientado a Aspectos Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Seminario IntegraWeb - 16 Marzo 2007 AspectJ Terminogía AspectJ: Join Points: Sitios bien definidos en el flujo de ejecución del código donde se puede inyectar un comportamiento adicional. Advice: El comportamiento a ejecutar en el join point. (before / after/instead). Pointcut designator: Describe un conjunto de joinpoints. Aspect: Unidad modular diseñada para implementar un concepto. Puede incluir código (llamado advice) e indicar dónde, cuándo y cómo invocarlo. Weaving: Proceso de componer los módulos que tienen el núcleo de la funcionalidad con los aspectos. a small extension to Java a general-purpose AO language Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Ejemplo de aspecto AspectJ public aspect TestAspect { pointcut outputLog(): call (public void helloWorld*(..)); before(): outputLog() { System.out.println("Antes de la llamada - Hacer log a consola"); } pointcut fileLog(): call (public String helloWorldReturn()); after(): fileLog() { System.out.println("Antes de la llamada - Hacer log a un archivo"); Pointcut designator Advice Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Desarrollo de Software Dirigido por Modelos (DSDM) “Modeling is the future … And the promise here is that you write a lot less code, that you have a model of the business process … “ (Bill Gates) Seminario IntegraWeb - 16 Marzo 2007

Seminario IntegraWeb - 16 Marzo 2007 ¿Qué es un modelo? (I) DICCIONARIO DE LA LENGUA ESPAÑOLA - Vigésima segunda edición modelo. (Del it. modello). 1. m. Arquetipo o punto de referencia para imitarlo o reproducirlo. 2. m. En las obras de ingenio y en las acciones morales, ejemplar que por su perfección se debe seguir e imitar. 3. m. Representación en pequeño de alguna cosa. 4. m. Esquema teórico, generalmente en forma matemática, de un sistema o de una realidad compleja, como la evolución económica de un país, que se elabora para facilitar su comprensión y el estudio de su comportamiento. … Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Seminario IntegraWeb - 16 Marzo 2007 ¿Qué es un modelo? (II) Modelo Sistema representación de Ejemplos de modelos: Modelos matemáticos Modelos hidrológicos Modelos biológicos Modelos ecológicos Modelos económicos Modelos meteorológicos Modelos de simulación Software Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Seminario IntegraWeb - 16 Marzo 2007 ¿Qué es un modelo? (III) Modelo 1 representación de representación de Sistema Modelo 2 Modelo 3 representación de Modelo circulatorio Modelo S.Nervioso Modelo Respiratorio Varios modelos como vistas parciales de un sistema. Un sistema dado puede tener múltiples modelos. Cada modelo representa un aspecto del sistema. representación de Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Múltiples vistas de un sistema con diferentes DSL’s Vista Instalación Fontanería Vista Instalación Eléctrica Introducción DSOA DSDM Conclusiones Bibliografía Vista Estructuras Vista Cimentación Cada vista se expresa en un DSL distinto Los vocabularios de las vistas son distintos Seminario IntegraWeb - 16 Marzo 2007

¿Qué es un metamodelo? (I) Un modelo no tiene significado si se le separa de su metamodelo. Metamodelo Modelo Sistema representación de conforme a Un metamodelo es una especificación explícita de una conceptualización compartida. En un metamodelo se definen una serie de conceptos y las relaciones entre los mismos. Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

¿Qué es un metamodelo? (II) conforme a Modelo Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

¿Qué es un metamodelo? (III) conforme a Metamodelo Modelo Introducción DSOA DSDM Conclusiones Bibliografía <<instance of >> Seminario IntegraWeb - 16 Marzo 2007

¿Qué es un metamodelo? (IV) conforme a Metamodelo Modelo Introducción DSOA DSDM Conclusiones Bibliografía <<instance of >> Seminario IntegraWeb - 16 Marzo 2007

¿Qué es un meta-metamodelo? conforme a Metamodelo conforme a conforme a Modelo OMG Model to Text (Nov. 2006) A metamodel is a precise definition of the constructs and rules needed for creating semantic models. Metamodelling can also be seen as a way of organizing models, thus the OMG define 4 different levels of modelling that vary from M0 to M3. The main role of the M3-level is to define the representation structure and a global typing system for the underlying levels. MOF is placed on the top of the hierarchy, and it is used to define itself, that is the level M4 is MOF itself. EMF is also placed at this level. The UML is placed at the M2 level. An instance of an M2 diagram can be, for example, a class diagram. The M1 is our model of the system, that it is written, in this case using the UML. And , finally, at the M0 level is the instantiation of the class diagram. representación de Sistema Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Seminario IntegraWeb - 16 Marzo 2007 Resumen Un modelo es una representación de un sistema. Un modelo puede tener una representación gráfica (a veces). Un modelo está escrito en el lenguaje definido por su metamodelo único. Un metamodelo está escrito en el lenguaje de su único meta-metamodelo. Un metamodelo es un grafo etiquetado, dirigido y restringido. Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Transformaciones de modelos Metamodelo Transformación conforme a se refiere a Definición Transformación se refiere a Metamodelo origen Metamodelo destino ejecutada por conforme a conforme a Motor de Transformación Modelo origen Modelo destino entrada salida Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Seminario IntegraWeb - 16 Marzo 2007 Transformaciones M2M Transformaciones Introducción DSOA DSDM Conclusiones Bibliografía Motor transformaciones M2M Seminario IntegraWeb - 16 Marzo 2007

Seminario IntegraWeb - 16 Marzo 2007 Transformaciones M2T public class Customer{ private String name; private Address adr; public void setName(String name){ this.name=name; } public String getName(){ return this.name; public void setAddr (Address addr){ this.addr = addr; public Address getAddr(){ return this.addr; Transformaciones Introducción DSOA DSDM Conclusiones Bibliografía Motor transformaciones M2T Seminario IntegraWeb - 16 Marzo 2007

Desarrollo de Software Dirigido por Modelos (DSDM) Model Driven Software Development (MDSD) Estándar Software Factories (SF) Model Driven Architecture (MDA) Model-Integrated Computing (MIC) Otros Estándares Organismo Microsoft OMG ISIS Otros (http://www.isis.vanderbilt.edu/research/research.html) ISIS (Institute for Software Integrated Systems) Model-Integrated Computing Model-Integrated Computing (MIC) addresses the problems of developing software integrated systems by providing rich, domain-specific modeling environments including model analysis and model-based program synthesis tools. This technology is used to create and evolve integrated, multiple-aspect models using concepts, relations, and model composition principles routinely used in the specific field, to facilitate systems/software engineering analysis of the models, and to automatically synthesize applications from the models. MIC has been used to develop many different technologies and solutions for industry and government. Please browse our updated web presense for more details of our technology, research, and projects. More information on MIC is available here. Herramientas MS Visual Studio DSL Tools Eclipse EMF GMF GME Otras herramientas Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Model Driven Development Model Driven Architecture (MDA) SF vs. MDA Model Driven Development (MDD) Software Factories (SF) Model Driven Architecture (MDA) Microsoft. Líneas de Producto Software Herramientas Extensibles y Configurables Integra diferentes actividades y técnicas. Desarrollo de diferentes lenguajes y herramientas específicas. OMG. Estándares de modelado (UML, MOF, XMI, …). Niveles de modelado (CIM, PIM, PSM). Transformaciones entre niveles Modelos y transformaciones  Ciudadanos de primera clase. Nowadays there is an increasing interest in Model-Driven Development. Thus, in the last few years have come up two main approaches for addressing this paradigm: Software Factories and Model Driven Architecture. On the one hand, Software Factories is the approach proposed by Microsoft, and it is concerned with software product lines. The proposal is based on the use of extensible and configurable tools to automate the development and maintenance of the different families of a software product. It also integrates different activities and techniques. One of these activities is the development of different modelling languages (for the specific domains) and the tools for dealing with these languages. On the other hand, the Model Driven Architecture (MDA) is the proposal by the OMG. It is based on the use of its modelling standards (UML, MOF, XMI). The framework defines different levels of modelling (Computation Independent Models, Platform Independent Models, and Platform Specific Models). Thus, transformations has become key elements because they are the way of obtaining models in one level from models in another level. As a result, models and transformations are considered first-class citizens. Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Seminario IntegraWeb - 16 Marzo 2007 Objetivo de MDA Rápida adaptación a Cambios Tecnológicos IDEA: Separar las partes dependientes de una plataforma y las partes independientes de la misma. Desacoplar el modo en que se definen las aplicaciones de la tecnología en la que se ejecutan. Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Organización de modelos en MDA Computation Independent Model (CIM) Write Once, Run Anywhere Model Once, Generate Anywhere Transf. M2M Platform Independent Model (PIM) Transf. M2M Transf. M2M Cobol Platform Specific Model (PSM) Platform Specific Model (PSM) EJB Transf. M2T Transf. M2T Código Código Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Estándares implicados en MDA (I) Catalog of OMG Modeling and Metadata Specifications http://www.omg.org/technology/documents/modeling_spec_catalog.htm LENGUAJES DE MODELADO OMG Model to Text (Nov. 2006) A metamodel is a precise definition of the constructs and rules needed for creating semantic models. Metamodelling can also be seen as a way of organizing models, thus the OMG define 4 different levels of modelling that vary from M0 to M3. The main role of the M3-level is to define the representation structure and a global typing system for the underlying levels. MOF is placed on the top of the hierarchy, and it is used to define itself, that is the level M4 is MOF itself. EMF is also placed at this level. The UML is placed at the M2 level. An instance of an M2 diagram can be, for example, a class diagram. The M1 is our model of the system, that it is written, in this case using the UML. And , finally, at the M0 level is the instantiation of the class diagram. Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Estándares implicados en MDA (II) Catalog of OMG Modeling and Metadata Specifications http://www.omg.org/technology/documents/modeling_spec_catalog.htm LENGUAJES DE TRANSFORMACIONES Computation Independent Model (CIM) MOF Query / Views / Transformations (QVT) Platform Independent Model (PIM) MOF Query / Views / Transformations (QVT) OMG Model to Text (Nov. 2006) QVT integra el estándar OCL 2.0 y lo extiende a OCL imperativo. QVT define tres lenguajes específicos de dominio , llamados Relations, Core y Operational Mappings, que están relacionados entre sí en una architectura estratificada. Relations y Core son dos lenguajes declarativos a dos niveles diferentes de abstracción, con una normativa de correspondencias entre ellos. El lenguaje Relations tiene una sintaxis gráfica concreta. Finalmente, se define un mecanismo Black Box para invocar a facilidades de transformación expresados en otros lenguajes, como XSLT o Xquery. QVT/ Navigational Mappings es un lenguaje imperativo, que extiende a QVT/Relations y a QVT/Core Platform Specific Model (PSM) Introducción DSOA DSDM Conclusiones Bibliografía MOF Model to Text Código Seminario IntegraWeb - 16 Marzo 2007

Seminario IntegraWeb - 16 Marzo 2007 Transformaciones M2M Transformaciones Introducción DSOA DSDM Conclusiones Bibliografía Motor transformaciones M2M Seminario IntegraWeb - 16 Marzo 2007

56 Dos visiones de MDA Committed Companies and Their Products "The Architecture of Choice for a Changing World®" Committed Companies and Their Products http://www.omg.org/mda/committed-products.htm Elaboracionista Translacionista PIM PIM Reglas de generación PSM PSM Enfoque elaboracionista. Genera el esqueleto del PSM tomando como base el PIM y añadiendo detalles. Validación: Desde el PSM modificado se genera el PIM para ser comparado con el inicial. La definición de la aplicación se construye gradualmente conforme vas progresando de PIM a PSM a código. Una vez que se ha creado el PIM, la herramienta genera un primer esqueleto del PSM que el desarrollador puede “elaborar” añadiendo más información o más detalles. De igual forma, la herramienta genera el código final del PSM, y esto también puede ser elaborado. El que se requiera elaboración en ambos niveles (PSM y código) dependerá de la herramienta y de las circunstancias. Como resultado de la elaboración puede ocurrir que los modelos de más bajo nivel dejen de estar “sincronizados” con los de más alto nivel. Por esto, las herramientas generalmente soportan la capacidad de generar modelos de más alto nivel a partir de los de más bajo nivel. Claramente, en este enfoque, los artefactos generados (PSM y código) deben ser entendibles por el desarrollador, si no, la modificación (elaboración) no sería posible. Este enfoque representa la corriente dominante de en MDA. El PIM se traduce directamente al PSM y al código. Las reglas de generación se han de implementar en un traductor. Las reglas de generación son el talón de Aquiles de esta aproximación, ya que solamente se pueden formular para un dominio específico. Validación: No es necesaria. En este enfoque, el PIM se traduce directamente en el código final del sistema mediante generación de código. La generación (o traducción del PIM) en el código final es realizada por un generador de código sofisticado, muchas veces denominado “compilador de modelos”. El proceso es guidado por Reglas de Generación que describen cómo se representan los elementos del PIM en el código final. En este caso, el PSM es una etapa intermedia en la generación y es interno al generador de código. Generalmente no es visible ni editable por el desarrollador. Una característica de este enfoque es que el PSM y el código no son elaborados o retocados a mano. El PIM más las reglas de generación son todas las fuentes para el sistema generado. Código Código A. Kleppe, J. Warmer, W. Bast. MDA Explained: The Model Driven Architecture™: Practice and Promise S. J. Mellor, M. Barcell. Executable UML: A Foundation for MDA Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Seminario IntegraWeb - 16 Marzo 2007 Diferencias AOP/MDA El objetivo de la POA y de MDA es similar. Ambas propuestas tratan de atacar la complejidad de los sistemas a través de la separación de conceptos. AOP  Separación de “crosscutting concerns” de la lógica básica de la aplicación. MDA  Separar “conceptos tecnológicos” de la lógica de la aplicación. Tiempo compilación vs. tiempo ejecución. AOP  T. compilación o T. ejecución MDA T. compilación / T. generación Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Seminario IntegraWeb - 16 Marzo 2007 Conclusiones Seminario IntegraWeb - 16 Marzo 2007

Variabilidad de Requisitos de Clientes Conclusiones (I) Cambios Tecnológicos Rápida adaptación a Variabilidad de Requisitos de Clientes Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Conclusiones (II) Model Driven Architecture Independencia de plataforma Mejor separación de conceptos Nivel de abstracción más alto Aspect-Oriented Software Development Concern-specific modelling languages Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Seminario IntegraWeb - 16 Marzo 2007 Conclusiones (III) MDA AOSD Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Seminario IntegraWeb - 16 Marzo 2007 Un último apunte Seminario IntegraWeb - 16 Marzo 2007

Ontologías vs. Metamodelos Una ontología expresa algo con significado dentro de un universo o un dominio de discurso especificado utilizando una gramática para utilizar un vocabulario. La gramática especifica qué significa ser una sentencia bien formada, una aserción, una consulta, etc cómo los términos del vocabulario pueden utilizarse juntos. Un metamodelo puede considerarse una descripción explícita (constructores y reglas) de cómo se construye un modelo específico de dominio. En particular, esto comprende una especificación formalizada de las notaciones específicas del dominio. Normalmente, los metamodelos son un conjunto estricto de reglas. Un metamodelo válido es una ontología, pero no todas las ontologías son metamodelos. [Söderström2002] E. Söderström, B. Andersson, P. Johannesson, E. Perjons, and B. Wangler. Towards a Framework for Comparing Process Modelling Languages. Lecture Notes In Computer Science; Vol. 2348. Proceedings of the 14th International Conference on Advanced Information Systems Engineering. Pages: 600 – 611, 2001 Retrieved from "http://en.wikipedia.org/wiki/Metamodeling" Ontologías Metamodelos Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Pero, ¿dónde encaja todo esto? MDA AOSD Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Bibliografía recomendada Seminario IntegraWeb - 16 Marzo 2007

Bibliografía Recomendada (I) MDA Anneke Kleppe, Jos Warmer, Win Bast. MDA Explained: The Model Driven Architecture™: Practice and Promise. Addison-Wesley. 2003 ISBN: 0-321-19442-X . David Frankel. Model Driven Architecture: Applying MDA to Enterprise Computing Wiley Publishing, Inc. 2003 ISBN: 0-471-31920-1 Stephen J. Mellor, Kendall Scott, Axel Uhl, Dirk Weise. MDA Distilled Addison-Wesley. 2004 ISBN: 0201788918 Stephen J. Mellor, Marc Barcell. Executable UML: A Foundation for MDA Addison-Wesley. 2002 ISBN: 0201748045 Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Bibliografía Recomendada (I) Software Factories Jack Greenfield, Keith Short, Steve Cook, Stuart Kent, John Crupi Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools Wiley. 2004 ISBN: 0471202843 . AOSD Robert E. Filman, Tzilla Elrad, Siobhan Clarke, Mehmet Aksit. Aspect-Oriented Software Development Addison Wesley Professional. 2004 ISBN: 0321219767. Communications of the ACM. Special issue on AOSD. archive Volume 44 ,  Issue 10  (October 2001) ISSN:0001-0782 Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007

Separación Avanzada de Conceptos Dirigida por Modelos Toñi Reina Quintero reinaqu@lsi.us.es ¡Gracias por vuestra atención! Seminario IntegraWeb - 16 Marzo 2007