Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porPilar López Duarte Modificado hace 9 años
1
Separación Avanzada de Conceptos Dirigida por Modelos
Toñi Reina Quintero Seminario IntegraWeb - 16 Marzo 2007
2
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
3
Seminario IntegraWeb - 16 Marzo 2007
Introducción Seminario IntegraWeb - 16 Marzo 2007
4
Seminario IntegraWeb - 16 Marzo 2007
Introducción (I) MDA AOP WEB Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007
5
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
6
Desarrollo de Software Orientado a Aspectos
“Un place pour chaque chose, et chaque chose à sa place” (Proverbio Francés) Seminario IntegraWeb - 16 Marzo 2007
7
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
8
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
9
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
10
Desarrollo de Software Orientado a Aspectos
Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007
11
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
12
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
13
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
14
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
15
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
16
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
17
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
18
¿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
19
¿Qué es un metamodelo? (II)
conforme a Modelo Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007
20
¿Qué es un metamodelo? (III)
conforme a Metamodelo Modelo Introducción DSOA DSDM Conclusiones Bibliografía <<instance of >> Seminario IntegraWeb - 16 Marzo 2007
21
¿Qué es un metamodelo? (IV)
conforme a Metamodelo Modelo Introducción DSOA DSDM Conclusiones Bibliografía <<instance of >> Seminario IntegraWeb - 16 Marzo 2007
22
¿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
23
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
24
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
25
Seminario IntegraWeb - 16 Marzo 2007
Transformaciones M2M Transformaciones Introducción DSOA DSDM Conclusiones Bibliografía Motor transformaciones M2M Seminario IntegraWeb - 16 Marzo 2007
26
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
27
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 ( 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
28
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
29
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
30
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
31
Estándares implicados en MDA (I)
Catalog of OMG Modeling and Metadata Specifications 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
32
Estándares implicados en MDA (II)
Catalog of OMG Modeling and Metadata Specifications 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
33
Seminario IntegraWeb - 16 Marzo 2007
Transformaciones M2M Transformaciones Introducción DSOA DSDM Conclusiones Bibliografía Motor transformaciones M2M Seminario IntegraWeb - 16 Marzo 2007
34
56 Dos visiones de MDA Committed Companies and Their Products
"The Architecture of Choice for a Changing World®" Committed Companies and Their Products 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
35
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
36
Seminario IntegraWeb - 16 Marzo 2007
Conclusiones Seminario IntegraWeb - 16 Marzo 2007
37
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
38
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
39
Seminario IntegraWeb - 16 Marzo 2007
Conclusiones (III) MDA AOSD Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007
40
Seminario IntegraWeb - 16 Marzo 2007
Un último apunte Seminario IntegraWeb - 16 Marzo 2007
41
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 Proceedings of the 14th International Conference on Advanced Information Systems Engineering. Pages: 600 – 611, 2001 Retrieved from " Ontologías Metamodelos Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007
42
Pero, ¿dónde encaja todo esto?
MDA AOSD Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007
43
Bibliografía recomendada
Seminario IntegraWeb - 16 Marzo 2007
44
Bibliografía Recomendada (I)
MDA Anneke Kleppe, Jos Warmer, Win Bast. MDA Explained: The Model Driven Architecture™: Practice and Promise. Addison-Wesley. 2003 ISBN: X . David Frankel. Model Driven Architecture: Applying MDA to Enterprise Computing Wiley Publishing, Inc. 2003 ISBN: Stephen J. Mellor, Kendall Scott, Axel Uhl, Dirk Weise. MDA Distilled Addison-Wesley. 2004 ISBN: Stephen J. Mellor, Marc Barcell. Executable UML: A Foundation for MDA Addison-Wesley. 2002 ISBN: Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007
45
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: AOSD Robert E. Filman, Tzilla Elrad, Siobhan Clarke, Mehmet Aksit. Aspect-Oriented Software Development Addison Wesley Professional. 2004 ISBN: Communications of the ACM. Special issue on AOSD. archive Volume 44 , Issue 10 (October 2001) ISSN: Introducción DSOA DSDM Conclusiones Bibliografía Seminario IntegraWeb - 16 Marzo 2007
46
Separación Avanzada de Conceptos Dirigida por Modelos
Toñi Reina Quintero ¡Gracias por vuestra atención! Seminario IntegraWeb - 16 Marzo 2007
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.