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 autoevaluación de una tarea del Módulo III. Revisa aspectos formales, la descripción de un software y un mapa semántico creado con dicho software. Determina si se cumplen o no criterios específicos para cada sección y concluye que se cumplieron todos los criterios evaluados.
La autoevaluación de Maximina Alama Ramírez sobre su tarea del Módulo II cumple con todos los aspectos formales y de contenido requeridos. Describe adecuadamente el software utilizado, incluyendo sus características y dos ejemplos de uso según el área y nivel educativo. El mapa conceptual incluye los conceptos clave organizados jerárquicamente con relaciones claras. Finalmente, adjuntó el enlace a su portafolio y brindó retroalimentación a dos trabajos de compañeros.
La autora realizó una autoevaluación de su tarea del Módulo III. Cumplió con todos los aspectos formales requeridos como incluir un título, área y nivel de enseñanza, usar etiquetas, y aplicar normas de sintaxis. Además, describió ampliamente el software de mapas semánticos que utilizó, incluyendo sus características y dos ejemplos de uso. Finalmente, creó un mapa semántico con los conceptos clave organizados en sentido horario y relacionados con líneas claras, y particip
Este documento presenta una autoevaluación de una tarea del Módulo III. Se evalúan aspectos formales como el título, área y nivel de enseñanza, etiquetas y normas de sintaxis. También se describe un software educativo indicando su nombre, características y usos. Finalmente, se evalúa un mapa semántico creando sobre un tema, verificando la organización, conceptos, relaciones, formato y colores utilizados.
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.
Modelos de Marcas en Arquitecturas dirigidas por ModelosRicardo Tesoriero
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.
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 presenta una autoevaluación de una tarea del Módulo III. Revisa aspectos formales, la descripción de un software y un mapa semántico creado con dicho software. Determina si se cumplen o no criterios específicos para cada sección y concluye que se cumplieron todos los criterios evaluados.
La autoevaluación de Maximina Alama Ramírez sobre su tarea del Módulo II cumple con todos los aspectos formales y de contenido requeridos. Describe adecuadamente el software utilizado, incluyendo sus características y dos ejemplos de uso según el área y nivel educativo. El mapa conceptual incluye los conceptos clave organizados jerárquicamente con relaciones claras. Finalmente, adjuntó el enlace a su portafolio y brindó retroalimentación a dos trabajos de compañeros.
La autora realizó una autoevaluación de su tarea del Módulo III. Cumplió con todos los aspectos formales requeridos como incluir un título, área y nivel de enseñanza, usar etiquetas, y aplicar normas de sintaxis. Además, describió ampliamente el software de mapas semánticos que utilizó, incluyendo sus características y dos ejemplos de uso. Finalmente, creó un mapa semántico con los conceptos clave organizados en sentido horario y relacionados con líneas claras, y particip
Este documento presenta una autoevaluación de una tarea del Módulo III. Se evalúan aspectos formales como el título, área y nivel de enseñanza, etiquetas y normas de sintaxis. También se describe un software educativo indicando su nombre, características y usos. Finalmente, se evalúa un mapa semántico creando sobre un tema, verificando la organización, conceptos, relaciones, formato y colores utilizados.
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.
Modelos de Marcas en Arquitecturas dirigidas por ModelosRicardo Tesoriero
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.
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 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.
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.
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.
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.
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 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 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 al lenguaje Object Constraint Language (OCL). Explica que OCL es un lenguaje para especificar restricciones en modelos UML. Luego resume los orígenes y motivaciones de OCL, sus tipos de datos básicos, el uso de contexto y self, e introduce conceptos como invariantes, pre y post-condiciones. Finalmente, proporciona ejemplos de cómo usar OCL para definir restricciones en un modelo.
Este documento presenta los conceptos relacionados con la ingeniería de software en el paradigma de orientación a objetos. Introduce el marco conceptual de la orientación a objetos y el lenguaje de modelado UML, incluyendo los elementos de UML y los diferentes diagramas para modelar los aspectos de un sistema de software.
Este documento describe qué es un modelo y el lenguaje de modelado unificado (UML). Un modelo es una simplificación de la realidad que captura una vista de un sistema del mundo real. UML es una herramienta que permite a los creadores de sistemas generar diseños usando diagramas como diagramas de clases, diagramas de objetos y diagramas de componentes para comunicar sus ideas de una manera convencional y fácil de entender.
Este documento describe los tipos de datos abstractos y la memoria estática y dinámica. Explica que los tipos de datos abstractos permiten crear nuevos tipos personalizados y que la memoria estática no cambia de tamaño durante la ejecución mientras que la memoria dinámica permite solicitar memoria en tiempo de ejecución.
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.
Un diagrama de clases representa las relaciones entre las clases de un sistema, incluyendo relaciones de herencia, asociación, uso y consentimiento. Por ejemplo, un diagrama de clases podría modelar las relaciones entre las clases de Cliente, Habitación y Reservación para el sistema de reservas de hoteles.
Este documento presenta un posgrado en Administración de Sistemas, DevOps y Cloud Computing de la Universitat Oberta de Catalunya (UOC). El programa dura 30 créditos y se enfoca en preparar profesionales de TI para roles relacionados con la administración de sistemas, DevOps y computación en la nube. El documento describe los objetivos del programa, las asignaturas, las competencias que se adquieren y las salidas profesionales.
Este documento presenta los conceptos básicos de la programación orientada a objetos. Explica que un objeto es una entidad con comportamiento ante estímulos, y que pueden ser tanto físicos como abstractos. Describe las características principales de los objetos como encapsulamiento, herencia y polimorfismo. Finalmente, introduce el lenguaje UML para modelar clases, objetos y sus relaciones.
El documento describe diferentes tipos de diagramas utilizados en el análisis y diseño de sistemas, incluyendo diagramas de clases, secuencia, robustez y paquetes. Define cada diagrama y explica su propósito, como diagramas de clases muestran la estructura de un sistema a través de clases y relaciones, y diagramas de secuencia modelan la interacción entre objetos a través del tiempo. También describe los conceptos principales detrás de diagramas de robustez como identificar objetos de contorno, entidad y control.
Este documento presenta un proyecto para mejorar las condiciones tecnológicas en la universidad UDELAS-COLON a través de la implementación de un "aula móvil" con 22 portátiles. El proyecto busca brindar una mejor educación a los estudiantes mediante el uso de equipos de buena calidad y actualizados. Los portátiles estarán disponibles para su uso dentro de la universidad y serán monitoreados por estudiantes encargados.
Este documento presenta un proyecto para mejorar las condiciones tecnológicas en la universidad UDELAS-COLON a través de la implementación de un "aula móvil" con 22 portátiles. El proyecto busca brindar una mejor educación a los estudiantes mediante el uso de equipos de buena calidad y actualizados. Los portátiles estarán disponibles para su uso dentro de la universidad y serán monitoreados por estudiantes encargados.
Más contenido relacionado
Similar a Modelos en Arquitecturas dirigidas por Modelos
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.
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.
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.
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.
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 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 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 al lenguaje Object Constraint Language (OCL). Explica que OCL es un lenguaje para especificar restricciones en modelos UML. Luego resume los orígenes y motivaciones de OCL, sus tipos de datos básicos, el uso de contexto y self, e introduce conceptos como invariantes, pre y post-condiciones. Finalmente, proporciona ejemplos de cómo usar OCL para definir restricciones en un modelo.
Este documento presenta los conceptos relacionados con la ingeniería de software en el paradigma de orientación a objetos. Introduce el marco conceptual de la orientación a objetos y el lenguaje de modelado UML, incluyendo los elementos de UML y los diferentes diagramas para modelar los aspectos de un sistema de software.
Este documento describe qué es un modelo y el lenguaje de modelado unificado (UML). Un modelo es una simplificación de la realidad que captura una vista de un sistema del mundo real. UML es una herramienta que permite a los creadores de sistemas generar diseños usando diagramas como diagramas de clases, diagramas de objetos y diagramas de componentes para comunicar sus ideas de una manera convencional y fácil de entender.
Este documento describe los tipos de datos abstractos y la memoria estática y dinámica. Explica que los tipos de datos abstractos permiten crear nuevos tipos personalizados y que la memoria estática no cambia de tamaño durante la ejecución mientras que la memoria dinámica permite solicitar memoria en tiempo de ejecución.
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.
Un diagrama de clases representa las relaciones entre las clases de un sistema, incluyendo relaciones de herencia, asociación, uso y consentimiento. Por ejemplo, un diagrama de clases podría modelar las relaciones entre las clases de Cliente, Habitación y Reservación para el sistema de reservas de hoteles.
Este documento presenta un posgrado en Administración de Sistemas, DevOps y Cloud Computing de la Universitat Oberta de Catalunya (UOC). El programa dura 30 créditos y se enfoca en preparar profesionales de TI para roles relacionados con la administración de sistemas, DevOps y computación en la nube. El documento describe los objetivos del programa, las asignaturas, las competencias que se adquieren y las salidas profesionales.
Este documento presenta los conceptos básicos de la programación orientada a objetos. Explica que un objeto es una entidad con comportamiento ante estímulos, y que pueden ser tanto físicos como abstractos. Describe las características principales de los objetos como encapsulamiento, herencia y polimorfismo. Finalmente, introduce el lenguaje UML para modelar clases, objetos y sus relaciones.
El documento describe diferentes tipos de diagramas utilizados en el análisis y diseño de sistemas, incluyendo diagramas de clases, secuencia, robustez y paquetes. Define cada diagrama y explica su propósito, como diagramas de clases muestran la estructura de un sistema a través de clases y relaciones, y diagramas de secuencia modelan la interacción entre objetos a través del tiempo. También describe los conceptos principales detrás de diagramas de robustez como identificar objetos de contorno, entidad y control.
Este documento presenta un proyecto para mejorar las condiciones tecnológicas en la universidad UDELAS-COLON a través de la implementación de un "aula móvil" con 22 portátiles. El proyecto busca brindar una mejor educación a los estudiantes mediante el uso de equipos de buena calidad y actualizados. Los portátiles estarán disponibles para su uso dentro de la universidad y serán monitoreados por estudiantes encargados.
Este documento presenta un proyecto para mejorar las condiciones tecnológicas en la universidad UDELAS-COLON a través de la implementación de un "aula móvil" con 22 portátiles. El proyecto busca brindar una mejor educación a los estudiantes mediante el uso de equipos de buena calidad y actualizados. Los portátiles estarán disponibles para su uso dentro de la universidad y serán monitoreados por estudiantes encargados.
Similar a Modelos en Arquitecturas dirigidas por Modelos (20)
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 III: Arquitecturas dirigidas por Modelos.
Construcción de modelos
2. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Índice
• Repaso
• Motivación
• Abstracción, clasificación y generalización
• El Dominio del problema y el lenguaje de abstracción
• Proyecciones de modelos
• Modelos de plataformas
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]
Repaso de Terminología y
Conceptos
• Sistema
• Aplicación
• Modelo
• Implementación
• Meta-modelo
• MDA
• Puntos de Vista
• CIM
• PIM
• PSM
• Vista
• Plataforma (indep.)
• Transformaciones
• Marcado de modelos
• DSL
• Elaboración de
modelos
• Modelos ejecutables
• MDA Ágil
• Proceso MDA
4. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Nos centraremos en la elaboración
de modelos
5. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Motivación
• Un «modelo» es una simplificación de algo que podemos ver,
manipular y razonar sobre él, ayudándonos a comprender la
complejidad inherente al caso de estudio.
• Existen muchas formas de modelos en la Ingeniería
• Características de un buen modelo:
• Omite información para que los lectores puedan centrarse en los
aspectos relevantes que quiere mostrar
• Refleja algo real, abstracto o hipotético
• Más barato que la cosa real que se quiere construir
• Sirve para comunicar ideas de una forma más rápida y fácil
6. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
HERRAMIENTAS DE MODELADO
Abstracción
Clasificación
Generalización
7. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Abstracción, clasificación y
generalización
• Independientemente de la disciplina, un «modelador»:
• Abstrae => Ignora información que no es interesante en un
contexto particular
• Clasifica => Agrupa información importante en propiedades
comunes
• Generaliza => Relaciona información conceptual de acuerdo a
sus características
8. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Abstracción,clasificacióny generalización
Mundo Real
Abstracción
Clasificación
Generalización
9. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
El dominio del problema y el
lenguaje de abstracción
• Entidades conceptuales de una “Librería”
• Aplicamos abstracción, clasificación y
generalización
ABSTRACCION
Se ha ignorado información no
relevante, por ej. la edad, el
salario, estado civil, etc.
GENERALIZACIÓN
Se ha relacionado información
en función de las características
de las entidades, por ej. stock,
precio, etc.
CLASIFICACION
Diagrama de clases
10. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
El dominio del problema y el
lenguaje de abstracción
• Supongamos que necesitamos
añadir información relacionada con
el acceso a las funciones del
sistema. Por ej.
• Vendedor => Stock de un
producto
• Gerente => Stock de un producto
+ ranking de libros por ventas
Gerente
Vendedor
11. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
El dominio del problema y el
lenguaje de abstracción
• Aplicando la separación de intereses (concerns)
• Desde el punto de vista, del «dominio del problema» la Librería
puede ser modelada sin hacer referencia a la seguridad
• Además, la seguridad puede ser modelada sin hacer referencia la
Librería, por lo tanto puede definirse en otro «dominio del
problema» independiente.
• Ejemplo:
Juan Pérez
Gerente
Libreria
librosPorVentas
Entidad
Rol
Recurso
Protegido
Recurso
Protegido
Permiso
0..*
0..*
0..* 0..*
0..*
12. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
El dominio del problema y el
lenguaje de abstracción
• Cada modelo de dominio se expresa en función de un
«lenguaje de modelado», por ejemplo:
• Un «lenguaje de modelado» permite decir ciertas cosas pero
no otras. Por ejemplo:
• una asociación (composición) entre FacturaVenta y Linea muestra
que las facturas de venta están relacionadas con las líneas, pero
no muestra cómo (listas enlazadas, arrays, tablas de hash, etc.)
• El motivo principal es que el lenguaje existe a un nivel de
abstracción
Dominio Lenguaje
Flujo de aire Ecuaciones matemáticas
Circuitos electrónicos Símbolos
13. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
El dominio del problema y el
lenguaje de abstracción
• A mayor nivel de abstracción del
lenguaje, mayor funcionalidad
puede ser entregada para un
esfuerzo determinado
• Motivo: Las transformaciones nos
permiten pasar de un lenguaje a
un nivel de abstracción a otro.
• Ejemplo:
• En el caso de la relación
FacturaVenta -> Linea, si se aplica
una transformación donde las
relaciones se convierten en listas
enlazadas o un arrays
• Así, se pasa de la definición de
una propiedad multi-valuada a
un tipo de implementación de
lista específico
Relación entre los niveles de
abstracción
14. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Proyecciones de modelos
• Para que un modelo sea útil no alcanza con abstraer los intereses no
relevantes y usar un lenguaje a un nivel apropiado de abstracción.
Debemos tratar de mostrar todo a la vez para poder conseguir una
implementación. Por ejemplo:
• UML, combina el diagrama de clases con el de secuencia
• Para mostrar la estructura estática y el comportamiento dinámico de un
sistema.
• Por lo tanto, se necesitan proyecciones complementarias e
interrelacionadas que juntas muestren un modelo completo
• En este caso particular, definiremos:
• «proyección» como una representación (diagrama) de un modelo
• «modelo» como un conjunto de abstracciones relacionadas
(estructura, comportamiento, etc.)
15. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Proyecciones de modelos representan
sub-conjuntos de modelos
• No es descabellado pensar en tratar sub-conjuntos de
modelos, como modelos.
• Es decir, relacionar parte de ellos por medio de
transformaciones.
• Los modelos pueden ser incompletos. Siempre y cuando se
completen en algún nivel de abstracción (tener en mente la
implementación).
• Situación típica, «código a mano»
Modelo alto nivel
de abstracción
Modelo de nivel de
abstracción más bajo
Transformación
16. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Modelos y plataformas
• Hasta ahora hemos hablado de las propiedades de un modelo único.
• Sin embargo MDA trata la «transformación» entre «modelos», cada
uno de los cuales captura uno o más «intereses» expresados en un
«lenguaje» en un grado de abstracción específico.
• Existen 2 tipos de modelos (CIM es PIM):
• PIM: Es un modelo de un interés concreto, la banca, la telefonía, el
uso de una copiadora, etc. El meta-modelo PIM representa las
abstracciones de una o más plataformas de modelos. Por ej.
• El PIM de un Librería, no necesita capturar los detalles de seguridad, de
red, de los mecanismos de persistencia, etc.
• PSM: Es un modelo que se basa en los detalles de la plataforma. El
PSM de una librería-con-bases-de-datos se refiere a las tablas de los
datos persistentes que describen a los clientes, proveedores,
facturas, etc.
17. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Modelos y plataformas
Ejemplo PIM
• El modelo no hace
referencia al acceso
remoto, aunque la
tecnología lo ofrezca
• Lo hemos abstraído
porque:
• La operación de objetos
remotos no es
interesante, respecto del
dominio de la Librería.
• Ensuciaría el modelo con
información innecesaria.
• Supongamos que
tenemos que modelar un
sistema de gestión de
una Librería vía Web y
representar una venta.
18. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Modelos y plataformas
Ejemplo PSM
• El PSM hace referencia a
conceptos específicos de
la plataforma, accesos
locales y remotos o
persistencia (ver
estereotipos)
• El PSM usa un lenguaje
de modelado en un nivel
de abstracción más bajo
que el análisis; incluye
clases y otros elementos
que capturan cómo es el
acceso.
• Cambia el nivel de
abstracción, incluyendo
tecnología
19. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
SQL Server CLR data type (SQL Server) CLR data type (.NET Framework)
varbinary SqlBytes, SqlBinary Byte[]
binary SqlBytes, SqlBinary Byte[]
varbinary(1), binary(1) SqlBytes, SqlBinary byte, Byte[]
image ninguno ninguno
varchar ninguno ninguno
char ninguno ninguno
nvarchar(1), nchar(1) SqlChars, SqlString Char, String, Char[]
nvarchar
SqlChars, SqlString
SQLChars es mejor para la transferencia de
datos ySQLString obtiene mejor
rendimiento para operaciones con Strings.
String, Char[]
nchar SqlChars, SqlString String, Char[]
text ninguno ninguno
ntext ninguno ninguno
uniqueidentifier SqlGuid Guid
rowversion ninguno Byte[]
bit SqlBoolean Boolean
tinyint SqlByte Byte
smallint SqlInt16 Int16
int SqlInt32 Int32
bigint SqlInt64 Int64
smallmoney SqlMoney Decimal
money SqlMoney Decimal
numeric SqlDecimal Decimal
decimal SqlDecimal Decimal
real SqlSingle Single
float SqlDouble Double
smalldatetime SqlDateTime DateTime
datetime SqlDateTime DateTime
sql_variant ninguno Object
User-defined type(UDT) ninguno Misma clase que la definida en el assemblie.
table ninguno ninguno
cursor ninguno ninguno
timestamp ninguno ninguno
xml SqlXml ninguno
20. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Conclusiones
• Construimos modelos para incrementar la productividad, bajo la
suposición de que construir modelos es más barato que la cosa real.
• Los modelos permiten un razonamiento que permiten una
exploración y razonamiento más baratos del universo de discurso
• Se lleva a cabo mediante: abstracción, clasificación y generalización
de las entidades de interés.
• El “asunto de interés” se encuentra lejos de la implementación.
• Por lo tanto, el lenguaje para expresar ambos es diferente (alto y bajo
nivel)
• Alternativas:
• UML puede servir para ambos, aunque se utiliza parte de él.
• MOF como alternativa (propios lenguajes)
21. 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.
Notas del editor
La figura muestra la relación entre los animales y los conceptos de abstracción y clasificación
La abstracción se puede ver de izquierda a derecha y la clasificación de arriba abajo
La esquina superior izquierda muestra el universo de discurso (contiene cosas reales, hipotéticas y abstractas).
Un gato Munchkin, un pero Fido y una babosa (no es una mascota, porque tienen que tener nombre?)
Clasificación
Clasificamos estas criaturas de acuerdo a las propiedades comunes.
Todos los perros babean hasta cierto punto, y todos los gatos son más o menos pasotas.
Así tenemos, como mascotas, perros, gatos y animales varios (que se muestran en la esquina inferior izquierda).
Notar que clasificar no cambia el nivel de detalle, sólo agrupa propiedades e instancias comunes de las mascotas en clases comunes.
Abstracción
Algunas propiedades de las mascotas no son relevantes, como el color del pelo o los hábitos para dormir.
Así que sólo nos quedamos con las propiedades que nos interesan.
Además, algunas criaturas no son relevantes, existen pero no nos interesan (los Distracting Animals).
Las características comunes de perros y gatos (nombre y peso) han sido generalizadas en una clase separada mascota.
La agrupación de las características comunes de las mascotas se llama generalización.
Así, en el caso de Fido, se consigue una doble clasificación Perro y Mascota.
La columna derecha representa el mundo de los modelos.
El diagrama de clases captura los tipos y las propiedades de interés, así como también la generalización descripta entre mascotas y animales.
El cuadrante superior derecho representa los objetos del sistema, el cual es una instancia particular de una clase en el modelo.
Las instancias son abstracciones de las cosas en el dominio original del sistema, pero solo con las propiedades de interés.
Un ProtectedResource es algo affectado por las acciones del sistema
Una ProtectedAction es ina acción que es sujeto de autorización
Un Principal es un ser humano o una aplicación que operara como un usuario autorizado del sistema que puede disparar acciones
Un Role define la relación entre un Principal y el sistema
Un Permission refleja las acciones que un Principal, actuando en un Role, puede ejecutar en relación a un ProtectedResource particular.