SlideShare una empresa de Scribd logo
1 de 21
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
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.
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
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
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
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
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
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
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
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
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..*
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
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
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.)
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
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.
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.
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
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
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)
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.

Más contenido relacionado

Similar a Modelos en Arquitecturas dirigidas por Modelos

Lenguajes específicos de dominio
Lenguajes específicos de dominioLenguajes específicos de dominio
Lenguajes específicos de dominioRicardo Tesoriero
 
MOF básico para Arquitecturas dirigidas por Modelos
MOF básico para Arquitecturas dirigidas por ModelosMOF básico para Arquitecturas dirigidas por Modelos
MOF básico para Arquitecturas dirigidas por ModelosRicardo Tesoriero
 
Transformaciones modelo a texto: ACCELEO
Transformaciones modelo a texto: ACCELEOTransformaciones modelo a texto: ACCELEO
Transformaciones modelo a texto: ACCELEORicardo Tesoriero
 
Introdución a las Arquitecturas Dirigidas por Modelos
Introdución a las Arquitecturas Dirigidas por ModelosIntrodución a las Arquitecturas Dirigidas por Modelos
Introdución a las Arquitecturas Dirigidas por ModelosRicardo Tesoriero
 
Transformaciones modelo a modelo: ATL (Parte I)
Transformaciones modelo a modelo: ATL (Parte I)Transformaciones modelo a modelo: ATL (Parte I)
Transformaciones modelo a modelo: ATL (Parte I)Ricardo Tesoriero
 
Construcción de Software (Patrones)
Construcción de Software (Patrones)Construcción de Software (Patrones)
Construcción de Software (Patrones)sandyx17
 
Transformaciones de modelos
Transformaciones de modelos Transformaciones de modelos
Transformaciones de modelos Ricardo Tesoriero
 
OCL en Arquitecturas dirigidas por Modelos
OCL en Arquitecturas dirigidas por ModelosOCL en Arquitecturas dirigidas por Modelos
OCL en Arquitecturas dirigidas por ModelosRicardo Tesoriero
 
Modelamiento con uml definiciones
Modelamiento con uml definicionesModelamiento con uml definiciones
Modelamiento con uml definicionesBoris Salleg
 
Presentacion unidad u1_estructura_de_datos_victor_uex
Presentacion unidad u1_estructura_de_datos_victor_uexPresentacion unidad u1_estructura_de_datos_victor_uex
Presentacion unidad u1_estructura_de_datos_victor_uexvictoruex
 
Implementacion informatica
Implementacion informaticaImplementacion informatica
Implementacion informaticaLuis Stifler
 
CENTRO DE INNOVACIÓN TECNOLÓGICO
CENTRO DE INNOVACIÓN TECNOLÓGICOCENTRO DE INNOVACIÓN TECNOLÓGICO
CENTRO DE INNOVACIÓN TECNOLÓGICOyuribel
 
CENTRO DE INNOVACIÓN TECNOLÓGICO
CENTRO DE INNOVACIÓN TECNOLÓGICOCENTRO DE INNOVACIÓN TECNOLÓGICO
CENTRO DE INNOVACIÓN TECNOLÓGICOyuribel
 

Similar a Modelos en Arquitecturas dirigidas por Modelos (20)

Lenguajes específicos de dominio
Lenguajes específicos de dominioLenguajes específicos de dominio
Lenguajes específicos de dominio
 
MOF básico para Arquitecturas dirigidas por Modelos
MOF básico para Arquitecturas dirigidas por ModelosMOF básico para Arquitecturas dirigidas por Modelos
MOF básico para Arquitecturas dirigidas por Modelos
 
Transformaciones modelo a texto: ACCELEO
Transformaciones modelo a texto: ACCELEOTransformaciones modelo a texto: ACCELEO
Transformaciones modelo a texto: ACCELEO
 
Introdución a las Arquitecturas Dirigidas por Modelos
Introdución a las Arquitecturas Dirigidas por ModelosIntrodución a las Arquitecturas Dirigidas por Modelos
Introdución a las Arquitecturas Dirigidas por Modelos
 
Transformaciones modelo a modelo: ATL (Parte I)
Transformaciones modelo a modelo: ATL (Parte I)Transformaciones modelo a modelo: ATL (Parte I)
Transformaciones modelo a modelo: ATL (Parte I)
 
Construcción de Software (Patrones)
Construcción de Software (Patrones)Construcción de Software (Patrones)
Construcción de Software (Patrones)
 
Transformaciones de modelos
Transformaciones de modelos Transformaciones de modelos
Transformaciones de modelos
 
OCL en Arquitecturas dirigidas por Modelos
OCL en Arquitecturas dirigidas por ModelosOCL en Arquitecturas dirigidas por Modelos
OCL en Arquitecturas dirigidas por Modelos
 
Tema modeloobjeto-1pp
Tema modeloobjeto-1ppTema modeloobjeto-1pp
Tema modeloobjeto-1pp
 
Modelo de analisis expo
Modelo de analisis expoModelo de analisis expo
Modelo de analisis expo
 
Modelamiento con uml definiciones
Modelamiento con uml definicionesModelamiento con uml definiciones
Modelamiento con uml definiciones
 
Presentacion unidad u1_estructura_de_datos_victor_uex
Presentacion unidad u1_estructura_de_datos_victor_uexPresentacion unidad u1_estructura_de_datos_victor_uex
Presentacion unidad u1_estructura_de_datos_victor_uex
 
Modelo informático
Modelo informáticoModelo informático
Modelo informático
 
OOSE
OOSEOOSE
OOSE
 
Diagrama de casos
Diagrama de casosDiagrama de casos
Diagrama de casos
 
Posgrado Administración de Sistemas, DevOps y CLoud Computing Sesión informativa
Posgrado Administración de Sistemas, DevOps y CLoud Computing Sesión informativaPosgrado Administración de Sistemas, DevOps y CLoud Computing Sesión informativa
Posgrado Administración de Sistemas, DevOps y CLoud Computing Sesión informativa
 
Introducción a la PPO
 Introducción a la PPO Introducción a la PPO
Introducción a la PPO
 
Implementacion informatica
Implementacion informaticaImplementacion informatica
Implementacion informatica
 
CENTRO DE INNOVACIÓN TECNOLÓGICO
CENTRO DE INNOVACIÓN TECNOLÓGICOCENTRO DE INNOVACIÓN TECNOLÓGICO
CENTRO DE INNOVACIÓN TECNOLÓGICO
 
CENTRO DE INNOVACIÓN TECNOLÓGICO
CENTRO DE INNOVACIÓN TECNOLÓGICOCENTRO DE INNOVACIÓN TECNOLÓGICO
CENTRO DE INNOVACIÓN TECNOLÓGICO
 

Modelos 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 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

  1. 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.
  2. 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.