Este documento trata sobre los modelos de marcado y las marcas. Explica que las marcas son extensiones livianas de los modelos que capturan información adicional necesaria para las transformaciones sin contaminar los modelos. También define que un modelo de marcado establece la relación entre las marcas de la misma forma que los metamodelos lo hacen con los modelos. Finalmente, discute formas de marcado, aplicaciones de marcas y la relación entre marcas y elementos de los modelos.
Este documento presenta una lección sobre arquitecturas dirigidas por modelos. Explica conceptos clave como abstracción, clasificación, generalización y diferentes tipos de modelos. También discute la importancia de construir modelos para simplificar la comprensión de sistemas complejos y cómo los modelos pueden usarse para comunicar ideas de manera más efectiva.
Este documento presenta una introducción al lenguaje de modelado UML (Unified Modeling Language). Explica que UML combina notaciones de modelado orientado a objetos, de datos, de componentes y de flujos de trabajo. También describe brevemente la historia de UML y los participantes clave en su desarrollo. Finalmente, ofrece un breve recorrido por los principales diagramas y conceptos de UML, como casos de uso, clases, secuencias, colaboraciones, estados, actividades, componentes y despliegue.
Terminología y conceptos en Arquitecturas dirigidas por ModelosRicardo Tesoriero
Este documento presenta un resumen de los conceptos clave de las Arquitecturas Dirigidas por Modelos (MDA). Explica que una MDA separa la especificación funcional de un sistema de los detalles de implementación en una plataforma específica. Define conceptos como modelo, meta-modelo, plataforma e introduce los puntos de vista independiente de plataforma (PIM) y específico de plataforma (PSM) que son clave en MDA.
Este documento introduce los conceptos básicos de los meta-modelos y su relación con los modelos. Explica que un meta-modelo especifica los elementos de un lenguaje de modelado y permite definir transformaciones entre modelos. Además, describe la arquitectura de cuatro capas que incluye objetos, modelos, meta-modelos y meta-meta-modelos, siendo este último nivel especificado por MOF. Finalmente, concluye explicando los usos principales de los meta-modelos como declarar lenguajes de modelado y definir transformaciones entre modelos.
Este documento presenta Acceleo, un lenguaje de transformación de modelos a texto. Explica los principales componentes de Acceleo como módulos, plantillas, consultas y ayudantes. Detalla el uso de plantillas para generar texto, bucles, condiciones y asignaciones. También cubre consultas OCL para extraer información de los modelos.
Este documento presenta una introducción al lenguaje de transformación de modelos Atlas Transformation Language (ATL). Explica los conceptos básicos de ATL como módulos, reglas, helpers y librerías. También describe los diferentes tipos de reglas en ATL como reglas emparejadas, reglas perezosas y reglas llamadas, así como la estructura y sintaxis de estas reglas. El objetivo final es transformar modelos de entrada en modelos de salida mediante la especificación de correspondencias entre elementos de los metamodelos de entrada y salida.
Este documento trata sobre las transformaciones de modelos en arquitecturas dirigidas por modelos. Explica brevemente las capas de abstracción, repasa la transformación de modelos y presenta un ejemplo informal de la transformación entre un modelo de análisis y uno de diseño para un sistema bancario. Luego define conceptos como funciones y reglas de transformación para mapear modelos de una forma reutilizable.
Este documento presenta una introducción a los patrones de diseño. Explica conceptos clave como patrones, clasificaciones de patrones y plantillas de definición de patrones. Luego, analiza varios patrones importantes como Adaptador, Factoría, Singleton, Estrategia y su aplicación en un ejemplo de diseño de software para la gestión de ventas y servicios externos.
Este documento presenta una lección sobre arquitecturas dirigidas por modelos. Explica conceptos clave como abstracción, clasificación, generalización y diferentes tipos de modelos. También discute la importancia de construir modelos para simplificar la comprensión de sistemas complejos y cómo los modelos pueden usarse para comunicar ideas de manera más efectiva.
Este documento presenta una introducción al lenguaje de modelado UML (Unified Modeling Language). Explica que UML combina notaciones de modelado orientado a objetos, de datos, de componentes y de flujos de trabajo. También describe brevemente la historia de UML y los participantes clave en su desarrollo. Finalmente, ofrece un breve recorrido por los principales diagramas y conceptos de UML, como casos de uso, clases, secuencias, colaboraciones, estados, actividades, componentes y despliegue.
Terminología y conceptos en Arquitecturas dirigidas por ModelosRicardo Tesoriero
Este documento presenta un resumen de los conceptos clave de las Arquitecturas Dirigidas por Modelos (MDA). Explica que una MDA separa la especificación funcional de un sistema de los detalles de implementación en una plataforma específica. Define conceptos como modelo, meta-modelo, plataforma e introduce los puntos de vista independiente de plataforma (PIM) y específico de plataforma (PSM) que son clave en MDA.
Este documento introduce los conceptos básicos de los meta-modelos y su relación con los modelos. Explica que un meta-modelo especifica los elementos de un lenguaje de modelado y permite definir transformaciones entre modelos. Además, describe la arquitectura de cuatro capas que incluye objetos, modelos, meta-modelos y meta-meta-modelos, siendo este último nivel especificado por MOF. Finalmente, concluye explicando los usos principales de los meta-modelos como declarar lenguajes de modelado y definir transformaciones entre modelos.
Este documento presenta Acceleo, un lenguaje de transformación de modelos a texto. Explica los principales componentes de Acceleo como módulos, plantillas, consultas y ayudantes. Detalla el uso de plantillas para generar texto, bucles, condiciones y asignaciones. También cubre consultas OCL para extraer información de los modelos.
Este documento presenta una introducción al lenguaje de transformación de modelos Atlas Transformation Language (ATL). Explica los conceptos básicos de ATL como módulos, reglas, helpers y librerías. También describe los diferentes tipos de reglas en ATL como reglas emparejadas, reglas perezosas y reglas llamadas, así como la estructura y sintaxis de estas reglas. El objetivo final es transformar modelos de entrada en modelos de salida mediante la especificación de correspondencias entre elementos de los metamodelos de entrada y salida.
Este documento trata sobre las transformaciones de modelos en arquitecturas dirigidas por modelos. Explica brevemente las capas de abstracción, repasa la transformación de modelos y presenta un ejemplo informal de la transformación entre un modelo de análisis y uno de diseño para un sistema bancario. Luego define conceptos como funciones y reglas de transformación para mapear modelos de una forma reutilizable.
Este documento presenta una introducción a los patrones de diseño. Explica conceptos clave como patrones, clasificaciones de patrones y plantillas de definición de patrones. Luego, analiza varios patrones importantes como Adaptador, Factoría, Singleton, Estrategia y su aplicación en un ejemplo de diseño de software para la gestión de ventas y servicios externos.
MOF básico para Arquitecturas dirigidas por ModelosRicardo Tesoriero
El documento describe la arquitectura Meta Object Facility (MOF) 2.0, que es el fundamento para la gestión de metadatos independientes de plataforma en el enfoque Modelo Dirigido por Arquitectura (MDA). MOF 2.0 unifica los conceptos de modelado con UML 2.0 y define dos variantes principales: EMOF (MOF esencial) y CMOF (MOF completo). El documento también explica varios paquetes como Reflection, Identifiers y Extension que proveen capacidades de extensión a los meta-modelos.
1) El documento presenta un resumen breve de OOSE (Object-oriented Software Engineering) y describe sus cinco etapas principales: modelo de requerimientos, análisis, diseño, implementación y pruebas. 2) Se incluye un ejemplo de la aplicación del método OOSE a un caso de estudio de una biblioteca universitaria. 3) Finalmente, se realiza una comparativa entre OOSE y otras metodologías de desarrollo de software orientado a objetos contemporáneas como OMT y el método de Booch.
Este documento presenta una introducción a las arquitecturas dirigidas por modelos y la construcción de lenguajes. Explica que los meta-modelos definen lenguajes de una manera abstracta y que el Meta Object Facility (MOF) y los perfiles de UML son enfoques comunes para definir formalmente la sintaxis y semántica de un lenguaje específico. También cubre conceptos como estereotipos, restricciones y notaciones gráficas que son elementos clave en la construcción de lenguajes.
Introdución a las Arquitecturas Dirigidas por ModelosRicardo Tesoriero
Este documento presenta una introducción a los métodos avanzados de desarrollo de software. Explica que los métodos tradicionales de desarrollo de software son caros y propensos a errores, por lo que se necesitan nuevos enfoques. Además, describe cómo la industria del software ha estado elevando los niveles de abstracción y reutilización a lo largo de los años para mejorar la productividad y la calidad. Finalmente, introduce el concepto de Arquitectura Dirigida por Modelos como un nuevo enfoque prometedor.
El documento propone una metodología para la integración de aplicaciones empresariales mediante EAI. Describe los objetivos y problemáticas de la integración, así como las tecnologías EAI. Luego, presenta una metodología basada en RUP y UML que incluye fases de definición de requisitos, análisis, diseño, implementación y pruebas. Finalmente, discute los beneficios y riesgos de la metodología y hace conclusiones sobre la evolución de EAI.
Este documento presenta la información sobre un curso de estructuras de datos que incluye las siguientes unidades: gestión dinámica de memoria, estructuras lineales como pilas, colas y listas, estructuras no lineales como árboles y grafos. El curso otorga 3 créditos, se evalúa un 40% de proyecto final y un 33% de prácticas de laboratorio. Se requieren 4 horas para cada práctica en el edificio José Celestino Mutis.
El documento describe el proceso de análisis de requisitos. Explica que el objetivo del análisis es refinar y estructurar los requisitos capturados para lograr una comprensión más precisa. Describe los artefactos clave del análisis como el modelo de análisis, las clases de análisis, y las realizaciones de casos de uso. El modelo de análisis estructura los requisitos de una manera que facilite su mantenimiento y sirve como una primera aproximación al diseño.
El documento presenta una introducción a los conceptos fundamentales de la programación orientada a objetos y el diseño de aplicaciones en múltiples capas. Explica los conceptos básicos de POO como clases, objetos, encapsulamiento y herencia. Luego describe el modelo de arquitectura en capas para aplicaciones empresariales, con capas de presentación, lógica de negocio y datos. Finalmente introduce los patrones de diseño como mecanismos probados para resolver problemas comunes de software y promover la reutilización.
Ingeniería del Software dirigida por modelos -Versión para incrédulosJordi Cabot
Presentación en el 2do. Foro de Ingeniería de Software
Tendencias para automatizar el desarrollo de software. Hablando de modelado de software, generación de código,...
Métrica es una metodología de desarrollo de software propia del gobierno español. Está basada en los estándares ISO 12207 e ISO 15504. Define procesos para la planificación, desarrollo y mantenimiento de sistemas de información, incluyendo análisis de requisitos, diseño, construcción e implementación. La metodología produce documentación y artefactos para cada fase del ciclo de vida del proyecto.
Este documento introduce los conceptos de modelado y optimización en ingeniería. Explica que los modelos permiten resolver problemas de manera efectiva y que existen tres tipos de modelos: icnográficos (diagramas, planos), analógicos (se comportan como la realidad) y digitales o matemáticos. También define la optimización como encontrar la mejor solución posible considerando requisitos funcionales, geométricos y de materiales.
El documento describe el modelo COCOMO (Constructive Cost Model) para la estimación de costos de software. COCOMO incluye tres submodelos (básico, intermedio y detallado) que ofrecen niveles crecientes de detalle y precisión. El modelo se basa en líneas de código, capacidad de analistas y programadores, y complejidad del producto. Barry Boehm desarrolló COCOMO en 1981 y COCOMO II en 2000 para estimar esfuerzo, costo y duración de proyectos de software.
El documento presenta una introducción al análisis y diseño de software. Explica que el análisis determina qué funcionalidades desea el usuario, mientras que el diseño determina cómo se implementarán a través de elementos de software como clases y métodos. También describe técnicas como las tarjetas CRC para identificar clases durante el diseño descendente, y la refactorización para mejorar el diseño existente de forma ascendente.
El análisis y diseño orientado a objetos (ADOO) es un enfoque de la ingeniería del software, la cuál permite modelar un sistema como un grupo de objetos que interactúan entre sí
Este documento presenta la metodología ICONIX para el desarrollo de software. ICONIX combina enfoques de RUP y XP de manera iterativa e incremental. Describe las fases de ICONIX incluyendo análisis de requisitos, diseño preliminar, diseño, implementación y conclusiones. El grupo 361 de la Universidad Autónoma de Baja California aplicará esta metodología para su proyecto de ingeniería de software.
Este documento describe varios modelos de procesos de desarrollo de software, incluyendo el modelo en cascada, el modelo V, los modelos basados en prototipos y los métodos formales. El modelo en cascada sigue un enfoque secuencial de análisis, diseño, codificación, prueba y mantenimiento. El modelo V es una evolución del modelo en cascada que agrega pruebas después de cada etapa. Los modelos basados en prototipos involucran la creación y evaluación de prototipos tempranos. Finalmente, los métodos formales util
MOF básico para Arquitecturas dirigidas por ModelosRicardo Tesoriero
El documento describe la arquitectura Meta Object Facility (MOF) 2.0, que es el fundamento para la gestión de metadatos independientes de plataforma en el enfoque Modelo Dirigido por Arquitectura (MDA). MOF 2.0 unifica los conceptos de modelado con UML 2.0 y define dos variantes principales: EMOF (MOF esencial) y CMOF (MOF completo). El documento también explica varios paquetes como Reflection, Identifiers y Extension que proveen capacidades de extensión a los meta-modelos.
1) El documento presenta un resumen breve de OOSE (Object-oriented Software Engineering) y describe sus cinco etapas principales: modelo de requerimientos, análisis, diseño, implementación y pruebas. 2) Se incluye un ejemplo de la aplicación del método OOSE a un caso de estudio de una biblioteca universitaria. 3) Finalmente, se realiza una comparativa entre OOSE y otras metodologías de desarrollo de software orientado a objetos contemporáneas como OMT y el método de Booch.
Este documento presenta una introducción a las arquitecturas dirigidas por modelos y la construcción de lenguajes. Explica que los meta-modelos definen lenguajes de una manera abstracta y que el Meta Object Facility (MOF) y los perfiles de UML son enfoques comunes para definir formalmente la sintaxis y semántica de un lenguaje específico. También cubre conceptos como estereotipos, restricciones y notaciones gráficas que son elementos clave en la construcción de lenguajes.
Introdución a las Arquitecturas Dirigidas por ModelosRicardo Tesoriero
Este documento presenta una introducción a los métodos avanzados de desarrollo de software. Explica que los métodos tradicionales de desarrollo de software son caros y propensos a errores, por lo que se necesitan nuevos enfoques. Además, describe cómo la industria del software ha estado elevando los niveles de abstracción y reutilización a lo largo de los años para mejorar la productividad y la calidad. Finalmente, introduce el concepto de Arquitectura Dirigida por Modelos como un nuevo enfoque prometedor.
El documento propone una metodología para la integración de aplicaciones empresariales mediante EAI. Describe los objetivos y problemáticas de la integración, así como las tecnologías EAI. Luego, presenta una metodología basada en RUP y UML que incluye fases de definición de requisitos, análisis, diseño, implementación y pruebas. Finalmente, discute los beneficios y riesgos de la metodología y hace conclusiones sobre la evolución de EAI.
Este documento presenta la información sobre un curso de estructuras de datos que incluye las siguientes unidades: gestión dinámica de memoria, estructuras lineales como pilas, colas y listas, estructuras no lineales como árboles y grafos. El curso otorga 3 créditos, se evalúa un 40% de proyecto final y un 33% de prácticas de laboratorio. Se requieren 4 horas para cada práctica en el edificio José Celestino Mutis.
El documento describe el proceso de análisis de requisitos. Explica que el objetivo del análisis es refinar y estructurar los requisitos capturados para lograr una comprensión más precisa. Describe los artefactos clave del análisis como el modelo de análisis, las clases de análisis, y las realizaciones de casos de uso. El modelo de análisis estructura los requisitos de una manera que facilite su mantenimiento y sirve como una primera aproximación al diseño.
El documento presenta una introducción a los conceptos fundamentales de la programación orientada a objetos y el diseño de aplicaciones en múltiples capas. Explica los conceptos básicos de POO como clases, objetos, encapsulamiento y herencia. Luego describe el modelo de arquitectura en capas para aplicaciones empresariales, con capas de presentación, lógica de negocio y datos. Finalmente introduce los patrones de diseño como mecanismos probados para resolver problemas comunes de software y promover la reutilización.
Ingeniería del Software dirigida por modelos -Versión para incrédulosJordi Cabot
Presentación en el 2do. Foro de Ingeniería de Software
Tendencias para automatizar el desarrollo de software. Hablando de modelado de software, generación de código,...
Métrica es una metodología de desarrollo de software propia del gobierno español. Está basada en los estándares ISO 12207 e ISO 15504. Define procesos para la planificación, desarrollo y mantenimiento de sistemas de información, incluyendo análisis de requisitos, diseño, construcción e implementación. La metodología produce documentación y artefactos para cada fase del ciclo de vida del proyecto.
Este documento introduce los conceptos de modelado y optimización en ingeniería. Explica que los modelos permiten resolver problemas de manera efectiva y que existen tres tipos de modelos: icnográficos (diagramas, planos), analógicos (se comportan como la realidad) y digitales o matemáticos. También define la optimización como encontrar la mejor solución posible considerando requisitos funcionales, geométricos y de materiales.
El documento describe el modelo COCOMO (Constructive Cost Model) para la estimación de costos de software. COCOMO incluye tres submodelos (básico, intermedio y detallado) que ofrecen niveles crecientes de detalle y precisión. El modelo se basa en líneas de código, capacidad de analistas y programadores, y complejidad del producto. Barry Boehm desarrolló COCOMO en 1981 y COCOMO II en 2000 para estimar esfuerzo, costo y duración de proyectos de software.
El documento presenta una introducción al análisis y diseño de software. Explica que el análisis determina qué funcionalidades desea el usuario, mientras que el diseño determina cómo se implementarán a través de elementos de software como clases y métodos. También describe técnicas como las tarjetas CRC para identificar clases durante el diseño descendente, y la refactorización para mejorar el diseño existente de forma ascendente.
El análisis y diseño orientado a objetos (ADOO) es un enfoque de la ingeniería del software, la cuál permite modelar un sistema como un grupo de objetos que interactúan entre sí
Este documento presenta la metodología ICONIX para el desarrollo de software. ICONIX combina enfoques de RUP y XP de manera iterativa e incremental. Describe las fases de ICONIX incluyendo análisis de requisitos, diseño preliminar, diseño, implementación y conclusiones. El grupo 361 de la Universidad Autónoma de Baja California aplicará esta metodología para su proyecto de ingeniería de software.
Este documento describe varios modelos de procesos de desarrollo de software, incluyendo el modelo en cascada, el modelo V, los modelos basados en prototipos y los métodos formales. El modelo en cascada sigue un enfoque secuencial de análisis, diseño, codificación, prueba y mantenimiento. El modelo V es una evolución del modelo en cascada que agrega pruebas después de cada etapa. Los modelos basados en prototipos involucran la creación y evaluación de prototipos tempranos. Finalmente, los métodos formales util
Modelos de Marcas en Arquitecturas dirigidas por Modelos
1. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Métodos Avanzados de Desarrollo de Software
Asignatura Optativa de 4º Año
Grado en Informática
Departamento de Sistemas Informáticos
Universidad de Castilla-La Mancha
Métodos avanzados de
desarrollo de software
Tema VIII: Arquitecturas dirigidas por Modelos.
Modelos de marcado
2. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Índice
• Motivación
• Modelo de marcado y marcas
• Beneficios
• Formas de marcado
• Aplicación de marcas y modelos de marcado
• Relación entre marcas y modelos de marcado
• Otras marcas
• Implementaciones
• Uso
El material que aquí se presenta está parcialmente basado en una traducción de:
Stephen J. Mellor, Kendall Scott, Axel Uhl, Dirk Weise. MDA Distilled: Principles of Model-
Driven Architecture. Addison Wesley. 2004.
3. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Motivación
• Hemos visto que a que las funciones de transformación por si solas
no son suficientes para transformar un modelo fuente de forma
completa, ya que podríamos no ser capaces de seleccionar la regla
de transformación adecuada solamente con la información
contenida en el modelo fuente.
• Por lo tanto, podríamos necesitar entradas adicionales para ejecutar
la transformación
• Estas entradas adicionales se llaman marcas, las cuales son
extensiones livianas no intrusivas de los modelos que capturan la
información requerida para la transformación sin contaminar los
modelos.
• Un modelo de marcado establece la misma relación a las marcas
que los meta-modelos lo hacen a los modelos
• El modelo de marcado define nombres, tipos, y valores por omisión
para cada marca. De aquí, las instancias de las clases en un modelo
de marcado, son las marcas
4. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Modelo de marcado y marcas
Modelo Metamodelo
Transformación
Función de
Transformación
Regla de
Transformación
Marca
Modelo de
Marcado
capturado_en
0..1
destinofuente
1..* 1..*
aplicación_de
1
instancia_de
1
generaacepta
1..* 1..*
0..* 0..*
destinofuente
1..* 1
acepta
1..* 1..*
0..* 0..*
1..*
marca
0..* 0..*
modeloMarcas
genera
Figura basada en la presentada en [1].
5. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Uso de Marcas
• Consideremos un PIM, modelado sin referencia a los objetos
distribuidos y acceso remoto (similar al que vimos la clase
pasada)
Figura basada en la presentada en [1].
6. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Uso de marcas
• Una función de transformación por omisión que transforma todos
los elementos del modelo fuente en objetos accesibles
remotamente en el modelo destino.
• Esto podría llevar a una implementación muy lenta.
• Sería más eficiente hacer algunos accesos locales y otros remotos.
• => debe existir algún mecanismo que indique si
• Se debe aplicar la regla de transformación que genera un acceso
remoto.
• Se debe aplicar la regla de transformación que genera un acceso
local.
• El mecanismo que usamos es una marca.
• = que las funciones de transformación, las marcas no son parte ni del
modelo fuente ni del destino, aunque se pueden referir elementos
de ambos
7. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Uso de marcas
Figura basada en la presentada en [1].
8. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Beneficios de usar marcas
• Esta separación
• proporciona longevidad y portabilidad
• permite evaluar diferentes posibilidades de transformación sin
modificar el PIM.
• En sistemas empresariales
• Permiten que características como la distribución entre
procesadores y tareas, varíen, mientras se miden los efectos.
• En el diseño de sistemas embebidos,
• Permiten variar características asociadas a la tecnología de
implementación con modelos de aplicación
• Por ejemplo, elementos de la aplicación con una tareas o
procesador
9. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Formas de marcado
• Por el usuario, en tiempo de mapeo
• Una transformación automatizada podría pedir información (como
un Clipo) cada vez que se ejecuta para decidir.
• ¿Acceso Local o Remoto para X?
• Sin embargo, sería interesante guardar esas respuestas (para no
tener a Clipo preguntando ) en futuras aplicaciones de la misma
función de transformación sobre el mismo modelo fuente.
• Derivadas del modelo fuente
• Las marcas pueden ser derivadas automáticamente de los modelos
fuente.
• Por ejemplo:
• Se podrían contar en cuantas acciones de la clase Cliente se accede a
Cuenta y guardarlo como una marca.
• Si la cuenta es 0 => no hace falta acceso remoto.
10. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Marcas y modelos de marcado
• Existen varios tipos de marcas
• Sólo describiremos aquellas asociadas con los elementos del modelo de
desarrollo (en el nivel M1)
• Ejemplo 1
• En el caso de las cuentas, cada operación de acceso en el modelo fuente
tendremos una marca (AccessorType) con uno de estos dos valores:
• isRemote
• isLocal
• Ejemplo 2
• Supongamos que el sistema tiene que manejar 100.000 instancias de clientes
y 500.000 de cuentas.
• Éstos valores se pueden tener en cuenta cuando hay que decidir el tamaño
de las tablas en la base de datos y en la generación de sentencias de acceso
de datos optimizadas
• Esta información puede ser capturada como una marca InstanceQuantity en cada
clase
11. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Marcas y modelos de marcado
• Ejemplo 3
• Supongamos una función de transformación produce un esquema
de base de datos relacional de un modelo de UML.
• A veces, el administrador de base de datos es el que establece el
nombre de las tablas y de las columnas de base de datos.
• En este caso, no se usa la marca para seleccionar la regla a aplicar
la marca; simplemente indica los nombres de las tablas y de las
columnas de la base de datos.
• Implementaciones
• enum AccessorType [isRemote, isLocal] = isLocal
• InstanceQuantity:Int = 500000
• table: String
• column: String
UML REL
(Ejemplo 1)
(Ejemplo 2)
(Ejemplo 3)
12. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Aplicación de marcas y modelos de
marcado
• Marcas de selección
• La marca AccessorType demuestra cómo se seleccionan las reglas de
acuerdo con el valor de una marca.
• Si el valor de una marca es isRemote, la transformación usa las reglas
que producen un componente para acceso remoto
• En caso contrario utiliza las reglas para un componente de acceso local.
• Marcas de provisión
• Supongamos que decidimos asignar post-fijos a los nombres de
clases. El valor del post-fijo puede ser proveído por las marcas.
• Marcas de optimización
• Supongamos que necesitamos optimizar memoria. Si podemos
calcular a partir de los métodos cuales son las variables que se
necesitan, podemos eliminar aquellas referencias que no se
necesiten
• Marcas Mixtas
• Combinación de las anteriores
13. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
¿Cómo relacionamos las marcas y
los elementos del modelo?
• En el ejemplo remoto/local, las marcas se aplican a acciones que
leen, escriben o limpian un atributo.
• En el meta-modelo de UML, estas acciones son modeladas como un
súper-tipo de StructuralFeatureAction, y cada acción atributo puede
ser local o remota.
• El resultado es que la marca AccessorType está asociada a
StructuralFeatureAction.
• Después de enfatizar que las marcas deben estar separadas de los
modelos, sería patológico contaminar el meta-modelo con
conceptos de modelos de marcado.
• Como hemos visto las marcas son livianas, extensiones no intrusivas
añadidas al modelo de desarrollo, así que podemos ver el modelo de
marcado como una «hoja de plástico» sobre el meta-modelo.
• Específicamente una «hoja de plástico» con un atributo extendido
de StructuralFeatureAction llamado AccessorType.
14. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
¿Cómo relacionamos las marcas y
los elementos del modelo?
• En el ejemplo del acceso remoto/local; las marcas se aplican a
acciones que leen, escriben o limpian un atributo.
• Por lo tanto, una solución sería:
Notar que StructuralFeatureAction es la meta-clase de los atributos en UML.
• No tenemos la intención de que el meta-modelo debería extenderse
directamente
• Ya que dijimos que las marcas eran “independientes” y no debíamos
“ensuciar” el modelo.
• Además, un elemento del modelo puede tener varias marcas
asociadas: Stateful o Stateless, Transient o Persistent, Local o
Remote, Identificables o no
15. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
¿Cómo relacionamos las marcas y
los elementos del modelo?
• Utilizar el concepto de transparencia
• En el cual podemos “agregar información” sin necesidad de
modificar el ni el modelo, ni el meta-modelo del dominio
• Ésta es la forma “más correcta” y “elegante”
Meta-modelo de
dominio
Modelo de marcas
(meta-modelo)
Modelo de dominio
Modelo de dominio
marcado
Merge
Extends
Imports
16. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Ejemplo de múltiples intereses
• Stateful o stateless, transient o persistent, local o remote,
identificables o no.
Meta-modelo de
dominio
Modelo de marcas
(Persistencia)
Modelo de marcas
(Estado)
Modelo de marcas
(Identificación)
Modelo de dominio
Modelo de dominio
(estado)
Modelo de dominio
(identificable)
Modelo de dominio
(persistente)
Combinaciones de modelos
17. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Relacionando marcas y elementos
del modelo
• La reusabilidad está relacionada con las marcas
• Elementos que probablemente sean utilizados en forma conjunta
por funciones de transformación deben ser agrupados en un mismo
modelo de marcado
• Las marcas que capturan estas decisiones de diseño pueden ser
reutilizadas si el modelo fuente es transformado en otro modelo
destino donde decisiones de diseño similares podrían ser utilizadas.
• Ejemplo, múltiples plataformas
• Se pueden hacer particiones del marcado: una para las marcas
independientes de la plataforma y otro para las marcas específicas de
la plataforma.
• Así se puede mantener las decisiones de diseño en diferentes
plataformas
18. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Otras marcas
• Las marcas que hemos descripto son aplicadas a elementos
del modelo construidos por el desarrollador, pero existen
otras marcas
• Por ejemplo, podríamos definir marcas para que todos los
nombres de las clases terminen en «_C».
• Se aplica a todas las clases, no a clases en particular.
• Se puede ver como una marca de configuración global
• Las funciones de transformación pueden producir marcas para los
meta-modelos destino como salidas que puedes ser útiles si la
transformación necesita recordar cómo se mapean los elementos
de modelo fuente y destino.
19. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Implementaciones de marcas y
modelos de marcado
• Para asignar valores a las marcas
• Drag and Drop gráfico en carpetas que definen las marcas
• Editor que permite para los conjuntos de marcas definidos que
muestras todas las marcas definidas por el modelo para un
elemento de modelo seleccionado, con menús para cada marca.
• Archivos de texto (permiten scripting)
• Lenguaje de modelo de marcado en MOF, en repositorios (otro
modelo)
20. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Teoría de modelos de marcado
• No existe ninguna que especifique exactamente que debe ir
en el modelo de marcado y como crear uno
• Todo depende del problema a resolver
• No hay una taxonomía para las marcas de las cuales podemos
derivar todas las marcas.
21. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Uso de las marcas
• Se utilizan para seleccionar reglas de transformación y actuar
como funciones de transformación.
• Las marcas no son parte ni del modelo origen, ni del destino
• No deberían contaminar los modelos
• Deberían ser reusadas en diferentes contextos
• Los tipos de marcas que se pueden aplicar a un modelo
pueden ser capturadas en un modelo de marcado, que
definen las características de las marcas
• Las marcas y los modelos de marcas van juntos y permiten
adaptar el modelo origen al destino
• Las marcas pueden se propagadas o heredadas de un
elemento de modelo a otro
22. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Referencias
1. Stephen J. Mellor, Kendall Scott, Axel Uhl, Dirk Weise. MDA
Distilled: Principles of Model-Driven Architecture. Addison
Wesley. 2004.
2. Object Management Group. Unified Modeling Language:
Superstructure. Version 2.0, ptc/03-07-06, July 2003;
http://www.omg.org/cgi-bin/doc?ptc/2003-08-02.