SlideShare una empresa de Scribd logo
1 de 37
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 II: Arquitecturas dirigidas por Modelos.
Terminología y Conceptos
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Índice
• ¿Qué es una MDA?
• Modelo
• Meta-modelo
• Plataforma
• Mapeo entre modelos
• Modelos de marcado
• Construcción de
lenguajes
• Elaboración de
modelos
• Modelos ejecutables
• MDA Ágil
• Procesos MDA
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]
ARQUITECTURAS DIRIGIDAS POR
MODELOS (MDA)
¿Qué es una MDA?
¿Cuál es la diferencia entre una MDA y otra arquitectura?
Definición de MDA
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
¿Qué es una MDA?
• Es una forma de
• Desarrollar aplicaciones
• Escribir especificaciones
• Basados en
• Un “Modelo independiente de la plataforma” (PIM) dónde se
especifican el comportamiento y la funcionalidad del negocio.
• Una MDA completa
Especificación ~ Descripción
Plataforma ~ Tecnología
PIM base
PSM 1 PSM 2 PSM 3
Implementación 1
Plataforma A
Implementación 2
Plataforma B
Implementación 3
Plataforma C
“Modelos específicos de las
plataformas” (PSM)
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
¿Cuál es la principal diferencia entre
MDA y otras arquitecturas de software?
• Arquitectura de software: Es el nivel de diseño que hace foco en aspectos
"más allá de los algoritmos y estructuras de datos de la computación; el
diseño y especificación de la estructura global del sistema es un nuevo tipo
de problema“ [1].
• MDA se focaliza en la funcionalidad y el comportamiento de un sistema
independientemente de la plataforma en la que el sistema se implemente.
• Principal ventaja: No habría que re-implementar el sistema cada vez que
aparece una nueva tecnología.
• Otras arquitecturas están atadas a una plataforma específica.
• MDA garantiza que la funcionalidad y el comportamiento se definen una
sola vez.
• La transformación de un PIM a un PSM suele ser automática
[1] David Garlan y Mary Shaw: “An introduction to Software Architecture”
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Definición de MDA
• Una MDA se basa en la separación de la especificación de la
operación de un sistema, de los detalles de la forma en la que
el sistema utilizan las capacidades de la plataforma.
• MDA provee un enfoque , y un conjunto de herramientas para:
• Especificar un sistema independientemente de la plataforma que
lo soporta
• Especificar plataformas
• Elegir una plataforma para el sistema
• Transformar la especificación del sistema en una especificación
para una plataforma específica
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
TERMINOLOGÍAY CONCEPTOS
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Sistema y Modelo
• Sistema
• Los conceptos en MDA se presentan en términos de un sistema
existente o planeado.
• Un sistema incluye todo: programa, un ordenador, partes de
otros sistemas, una federación de sistemas, gente, empresas, etc.
• Implementación
• Es una especificación que contiene toda la información necesaria
para construir un sistema y ponerlo operativo.
• Modelo
• Un modelo es una descripción o especificación de un sistema y su
entorno para un propósito particular
• Usualmente es una combinación de dibujos y texto
• El texto puede ser un lenguaje de modelado o lenguaje natural
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Características de un modelo
• Son conjuntos de elementos que describen una realidad física,
abstracta o hipotética
• Sirven como medios de comunicación
• Son más fáciles de construir que lo que se quiere construir
• Adecuados para planificar la solución del problema
• Puntos clave del modelado:
• Abstracción => ignorar información que no es interesante en un
contexto particular
• Clasificación => Agrupamiento de información importante en
propiedades comunes
• En MDA
• Se crean modelos a diferentes niveles de abstracción
• Se unen para formar una implementación particular
• Tendencias: UML & Lenguajes específicos de dominio (DSLs)
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Meta-modelo
• Es un modelo de un lenguaje de modelado
• Define la estructura, la semántica y las restricciones de una familia
de modelos.
• Un modelo es capturado por un meta-modelo.
• Ej. Un modelo que emplea diagramas de UML es capturado por el
meta-modelo de UML que describe:
• cómo los modelos pueden ser estructurados,
• los elementos que contienen
• las propiedades de los elementos.
Conjunto de todos los modelos
descriptos por el meta-modelo
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Arquitectura dirigida por modelos
• Arquitectura
• La arquitectura de un sistema es la especificación de:
• Las partes y los conectores de un sistema
• Las reglas para las interacciones de las partes utilizando estos conectores
• Dirigido por modelos
• MDA es dirigido por modelos porque utiliza modelos para dirigir la
compresión, diseño, construcción, despliegue, operación
mantenimiento y modificación
• Arquitectura dirigida por modelos
• Describe un conjunto de tipos de modelos, y las relaciones que
existen entre estos tipos de modelos
• Describe cómo se “preparan” y relacionan los modelos generados a
partir de los meta-modelos. Preparan ~ construyen
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Plataforma, independencia de la
plataforma y aplicación
• Plataforma
• Es un conjunto de subsistemas y tecnologías que proveen un
conjunto coherente de funcionalidad a través de interfaces y
patrones de uso específicos que una aplicación puede utilizar sin
conocer los detalles de implementación.
• Independencia de la plataforma
• Es una cualidad de un modelo
• Es el grado en que un modelo es independiente de las
características de cualquier plataforma
• Aplicación
• Una aplicación se refiere a la funcionalidad que va a ser
desarrollada.
• Un sistema se describe en términos de una o más aplicaciones
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Puntos de vista
• Un punto de vista de un sistema es una técnica de abstracción que
selecciona un conjunto de conceptos arquitectónicos y reglas de
estructura, para enfocarse en ciertos aspectos/intereses
(“concerns”) del sistema
• “Abstracción” significa simplificación del sistema, para conseguir un
modelo simplificado.
• MDA especifica 3 (o 4) puntos de vista de un sistema:
• Modelo independiente de la computación (CIM)
• Modelo independiente de la plataforma (PIM)
• Modelo específico de la plataforma (PSM)
• Modelo de específico de implementación (ISM)
• Un modelo de un punto de vista (o vista) es la representación del
sistema desde un la perspectiva de punto de vista particular.
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Puntos de vista de MDA
• Punto de vista independiente de la computación
• Se enfoca en el entorno del sistema
• Los requisitos del sistema
• Los detalles de la estructura y procesamiento permanecen
escondidos o indefinidos
• Punto de vista independiente de la plataforma
• Se enfoca en la operación del sistema
• Esconde los detalles de la plataforma
• Una vista independiente de la plataforma muestra la parte de la
especificación que no cambia de una plataforma a otra
• Generalmente utiliza un lenguaje de modelado
• Punto de vista específico de la plataforma
• Combina el punto de vista independiente de la plataforma con un
enfoque adicional al detalle del uso de una plataforma específica
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Modelo independiente de la
computación (CIM)
• Es una vista del punto de vista independiente de la
computación
• No muestra detalles de la estructura del sistema
• Se puede llamar modelo de dominio (vocabulario)
• El usuario principal del CIM no suele tener conocimiento de
modelos
• El CIM permite acercar a los expertos del dominio con los
expertos del diseño y la construcción del software
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Modelo independiente de la
plataforma (PIM)
• Es una vista del punto de vista independiente de la plataforma.
• Una técnica común para adquirir independencia de la plataforma es
establecer un modelo de sistema para una máquina virtual de
tecnología neutra.
• Una máquina virtual de tecnología neutra define un conjunto de
partes y servicios definidos independientemente de la plataforma
específica
• => el modelo es específico a esa plataforma
• => es el modelo es independiente del modelo de implementación
=> Exhibe un nivel específico de la plataforma , por lo tanto sirve para
un número de plataformas de tipo similar
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Modelo específico de plataforma
(PSM) y modelo de plataforma
• Modelo específico de plataforma
• Es una vista del punto de vista específico de la plataforma
• Combina las especificaciones del PIM con los detalles de
implementación que usa una plataforma particular
• Modelo de plataforma
• Provee un conjunto de conceptos técnicos que representan lo
diferentes tipos de partes y servicios que forman una plataforma.
• Especifica los elementos utilizados por el PSM
• Especifica los requisitos de uso y conexión de las partes de la
plataforma
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Plataforma
• Es la especificación de un entorno de ejecución para un conjunto de
modelos.
• Java, .NET, CORBA
• Linux, Solaris, Windows
• Debe tener una implementación de su especificación (realización).
• Una realización puede construirse sobre más de una plataforma
Diagrama de
clases de UML
.NET con
SQLServerSQLServer
.NETFigura basada en la presentada en [1].
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Transformaciones de modelos
• Es el proceso de convertir un modelo en otro del mismo
sistema
• Ejemplo:
Transformación
Figura basada en la presentada en [1].
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Transformaciones de modelos
Mapping (mapeo)
• Los modelos pueden tener relaciones semánticas con otros modelos
• Ej.: Cuando un conjunto de modelos describe un sistema particular
en diferentes niveles de abstracción
• Una transformación entre modelos toma uno o más modelos como
entrada (fuentes) y produce un modelo de salida (destino).
• Para transformar el/los modelos de entrada se describen «reglas de
transformación» dentro de una «función de transformación»; la
«transformación» es la aplicación de las «funciones de
transformación»
• Estas reglas se describen a nivel de meta-modelo, de forma tal que
son aplicables a todos los conjuntos de modelos definidos en base el
meta-modelo dado.
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Transformaciones de modelos
• Para transformar el/los modelos de entrada se describen
«reglas de transformación» dentro de una «función de
transformación»; la «transformación» es la aplicación de las
«funciones de transformación»
Meta-modelo
entrada
Reglas
Función de transformación
Meta-modelo
salida
Modelo
entrada
Modelo
salida
Transformación
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Transformaciones de modelos
• Ejemplo:
• Una clase de UML se mapea a una declaración de una clase Java,
donde el nombre de la clase Java es el de la clase UML
Figura basada en la presentada en [1].
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Función
Ejemplode
transformación
(M2T)
package es.uclm.mads.sample;
public class Libro {
private String titulo;
private String edicion;
private double precio;
private String isbn;
private int stock;
public Libro() {super();}
public void incStock(int cantidad) {this.stock = this.stock + cantidad;}
public void decStock(int cantidad) {this.stock = this.stock - cantidad;}
public String getTitulo() {return titulo;}
public void setTitulo(String titulo) {this.titulo = titulo;}
public String getEdicion() {return edicion;}
public void setEdicion(String edicion) {this.edicion = edicion;}
public double getPrecio() {return precio;}
public void setPrecio(double precio) {this.precio = precio;}
public String getIsbn() {return isbn;}
public void setIsbn(String isbn) {this.isbn = isbn;}
public int getStock() {return stock;}
public void setStock(int stock) {this.stock = stock;}
}
Propiedad2Atributo
Propiedad2Getter
Propiedad2Setter
Clase2Constructor
Clase2Clase
Transformación
Operacion2Metodo
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Modelos de marcado
• Supongamos que una «regla de transformación» transforma
un atributo UML en un dato volátil en la pila de ejecución
• Ésta puede no ser siempre la opción más apropiada para el
atributo porque se puede necesitar que sea persistente
• => 2 «reglas de transformación»
• => 1 «entrada de transformación» adicional («marca») que
seleccione qué regla aplicar.
• Una «transformación» puede usar diferentes marcas
asociadas con los «modelos fuente»
• Un «modelo de marcado» describe la estructura y la
semántica de un conjunto de tipos de marcas.
• Una función de transformación especifica los tipos de marcas
que requieren las instancias de los «meta-modelos fuente»
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Ejemplo
Cliente
facturasVentas : Collection
notasCredito : Collection
pagos : Collection
direccionesEntrega : Collection
Metamodel
Collection Set
List
CollectionSetMark
Cliente
facturasVentas : List
notasCredito : List
pagos : Set
direccionesEntrega : Set
CollectionListMark
Model
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Modelos de marcado
Figura basada en la presentada en [1].
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Ejemplo de modelo de marcado
package es.uclm.mads.sample;
public class Libro {
private String titulo;
private String edicion;
private double precio;
private String isbn;
private int stock;
public Libro() {super();}
…}
package es.uclm.mads.sample;
@Entity(name = “LIBRO")
public class Libro {
@Column(name = “TITULO", nullable = false, length = 50)
private String titulo;
@Column(name = “EDICION", nullable = true, length = 50)
private String edicion;
@Column(name = “PRECIO", nullable = false, length = 10)
private double precio;
@Id
@Column(name = “ISBN", nullable = false, length = 13)
private String isbn;
@Column(name = “STOCK", nullable = false, length = 10)
private int stock;
public Libro() {super();}
…
}
Función de transformación
VOLATIL
Propiedad2Atributo
Clase2Clase
……
…
Función de transformación
PERSISTENTE
Propiedad2AtributoPer
Clase2ClasePer
……
…
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Función de transformación
Ejemplo de modelo de marcado
package es.uclm.mads.sample;
@Entity(name = “LIBRO")
public class Libro {
@Column(name = “TITULO", nullable = false,
length = 50)
private String titulo;
private String edicion;
@Column(name = “TITULO", nullable = false,
length = 50)
private double precio;
@Id
@Column(name = “ISBN", nullable = false,
length = 13)
private String isbn;
@Column(name = “STOCK", nullable = false,
length = 10)
private int stock;
public Libro() {super();}
…
}
Propiedad2AtributoVol
Clase2ClaseVol
Propiedad2AtributoPer
Clase2ClasePer
………
Almacenamiento
PersistenteVolátil
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Modelos de marcado
De un PIM a un PSM
PIM sin marcar
PIM sin marcar
Marcas para la
Plataforma A
Marcas para la
Plataforma B
PIM sin marcar
Marcas para la
Plataforma A
Marcas para la
Plataforma B
PIM sin marcar
Marcas para la
Plataforma A
Marcas para la
Plataforma B
PSM sin
marcar para la
Plataforma A
PSM sin
marcar para la
Plataforma B
Transformación Transformación
Figura basada en la presentada en [1].
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Construcción de lenguajes
Lenguajes específicos de dominio
• Razones por las cuales se buscan definiciones más o menos formales
en MDA:
• Comunicación entre los miembros del grupo
• Comunicación con las máquinas
• Formas de definir lenguajes
1. Usar MOF (UML está definido en MOF)
2. Extender UML Profiles (perfiles de UML).
1. Estereotipos que extienden el vocabulario de UML
2. Restricciones (constraints) para crear construcciones «bien formadas»
• La definición de un lenguaje es una «sintaxis abstracta» que define
la estructura del lenguaje independientemente de los símbolos
• La notación gráfica o «sintaxis concreta» para crear, editar o
mantener los modelos en ese lenguaje (es un problema separado)
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Tipos de modelos
• Tipos de modelos
• Elaboración
• Ejecución
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Elaboración de modelos
• La elaboración de modelos se refiere a la idea de que un
modelo puede ser modificado después de ser generado.
• Principios:
• No elaborar un modelo si no es necesario
• No elaborar modelos «intermedios» si no van a ser expuestos
• Localizar la elaboración y evitar la redundancia
• Cuando un modelo se regenera, nos debemos asegurar que
ciertas áreas no sean modificadas (evitar que sean sobre-
escritas) para ello se utilizan las áreas protegidas.
• Si un área del modelo fuente está protegida, la función de
mapeo preserva esa área.
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Modelos ejecutables
• Los modelos ejecutables producen la funcionalidad deseada
en un único dominio
• Los modelos ejecutables son como código, pero
• Permiten interactuar directamente con el dominio del cliente
• Necesitan ser mezclados con otros modelos para producir el
sistema completo, por ej. La UI
• Para mezclar los modelos, se usa un compilador de modelos.
• Del mismo modo que los lenguajes de programación
independizan al programador de la plataforma de hardware,
los modelos nos independizan de la plataforma de software.
• Una forma de ejecutar modelos es mediante Executable UML
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
MDA Ágil
• Basados en la idea de que el código y los modelos ejecutables
son operacionalmente lo mismo
• El empleo de modelos ejecutables implica el testeo y
verificación instantáneos.
• Así Agile MDA soluciona el conflicto potencia entre MDA y los
métodos ágiles en cuanto a los «verfication gaps» existentes
cuando los modelos no se pueden ejecutar.
• Además, se pueden entregar pequeñas partes del mismo
• Cada modelo se ajusta al mismo metamodelo, porque todos
los modelos son iguales (no hay análisis o diseño).
• Los modelos se unen, en lugar de transformarse, y luego se
mapean a un modelo combinado que se traduce a código en
una arquitectura única de software.
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Construcción de un proceso MDA
• Pensemos en la «brecha» que separa el problema del sistema
codificado.
• Si es pequeño => saltamos
• Si es más grande necesitamos algunas rocas
• El proceso MDA =>
1. Encontrar los modelos en un único nivel de abstracción
2. Encontrar el salto óptimo entre modelos
«Cadena de Transformaciones»
Problema SistemaModelo 1 Modelo 2 Modelo N
Función de
Transformación
Función de
Transformación
Función de
Transformación
Función de
Transformación
Proceso
MDA
=> Planificación
Figura basada en la presentada en [1].
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Ejecución de un proceso MDA
• La ejecución del proceso incluye dos actividades
1. Formalización del conocimiento del tema a debatir y expresar ese
conocimiento como una implementación
2. Mapear el conocimiento formalizado en una plataforma destino para
ejecutarlo
• Formalización del conocimiento
1. Recolección de requisitos
2. Abstracción del conocimiento en conceptos
3. Expresar esos conceptos formalmente
• El Mapeo del conocimiento
1. Construir las relaciones entre modelos a través de funciones de mapeo,
modelos de marcado y transformación de modelos
2. Una vez que las funciones de mapeo y los modelos de marcados están
definidos, se procede a la transformación y verificación en:
1. Otros modelos
2. Código fuente
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. OMG. MDA Guide v.1.0.1. June, 12th 2003.

Más contenido relacionado

La actualidad más candente

Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas Shelisse De la Cruz
 
Arquitectura aplicaciones Patrones de diseño
Arquitectura aplicaciones Patrones de diseñoArquitectura aplicaciones Patrones de diseño
Arquitectura aplicaciones Patrones de diseñoGermania Rodriguez
 
UML
UMLUML
UMLUCC
 
metodologías para el análisis y diseño de sistemas
metodologías para el análisis y  diseño de sistemas  metodologías para el análisis y  diseño de sistemas
metodologías para el análisis y diseño de sistemas BrainQC
 
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseñolandeta_p
 
Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001Jose Emilio Labra Gayo
 

La actualidad más candente (13)

Patrones diseño de software
Patrones diseño de softwarePatrones diseño de software
Patrones diseño de software
 
Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas
 
Arquitectura aplicaciones Patrones de diseño
Arquitectura aplicaciones Patrones de diseñoArquitectura aplicaciones Patrones de diseño
Arquitectura aplicaciones Patrones de diseño
 
UML
UMLUML
UML
 
metodologías para el análisis y diseño de sistemas
metodologías para el análisis y  diseño de sistemas  metodologías para el análisis y  diseño de sistemas
metodologías para el análisis y diseño de sistemas
 
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño
 
UML
UMLUML
UML
 
Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 
Lenguaje Acme
Lenguaje AcmeLenguaje Acme
Lenguaje Acme
 
Equipo4
Equipo4Equipo4
Equipo4
 
Arquitectura del software
Arquitectura del softwareArquitectura del software
Arquitectura del software
 
UML
UMLUML
UML
 

Similar a Terminología y conceptos en Arquitecturas dirigidas por Modelos

Modelos en Arquitecturas dirigidas por Modelos
Modelos en Arquitecturas dirigidas por ModelosModelos en Arquitecturas dirigidas por Modelos
Modelos en Arquitecturas dirigidas por ModelosRicardo Tesoriero
 
Lenguajes específicos de dominio
Lenguajes específicos de dominioLenguajes específicos de dominio
Lenguajes específicos de dominioRicardo Tesoriero
 
Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareJosé Antonio Sandoval Acosta
 
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
 
Modelos de Marcas en Arquitecturas dirigidas por Modelos
Modelos de Marcas en Arquitecturas dirigidas por ModelosModelos de Marcas en Arquitecturas dirigidas por Modelos
Modelos de Marcas en Arquitecturas dirigidas por ModelosRicardo Tesoriero
 
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTEPRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTECAMILO
 
Capitulo 3 arquitecturas_de_desarrollo_web
Capitulo 3 arquitecturas_de_desarrollo_webCapitulo 3 arquitecturas_de_desarrollo_web
Capitulo 3 arquitecturas_de_desarrollo_webgabiar1708
 
Presentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CostePresentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CosteCAMILO
 
PROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSPROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSCAMILO
 
Proyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoProyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoCAMILO
 
presentacion de software y estimacion de doste
presentacion de software y estimacion de dostepresentacion de software y estimacion de doste
presentacion de software y estimacion de dosteCAMILO
 
Proyecto de Software y Coste
Proyecto de Software y CosteProyecto de Software y Coste
Proyecto de Software y CosteCAMILO
 
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
 
Metamodelos en Arquitecturas dirigidas por Modelos
Metamodelos en Arquitecturas dirigidas por ModelosMetamodelos en Arquitecturas dirigidas por Modelos
Metamodelos en Arquitecturas dirigidas por ModelosRicardo Tesoriero
 
Sistemas de información diapositivas de la 3era unidad
Sistemas de información diapositivas de la 3era unidadSistemas de información diapositivas de la 3era unidad
Sistemas de información diapositivas de la 3era unidadBeto Meneses
 
Análisis y diseño de sistemas sesion 13 - diagrama de componentes y despliegue
Análisis y diseño de sistemas   sesion 13 - diagrama de componentes y despliegueAnálisis y diseño de sistemas   sesion 13 - diagrama de componentes y despliegue
Análisis y diseño de sistemas sesion 13 - diagrama de componentes y despliegueGianfrancoEduardoBra
 
Proyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteProyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteCAMILO
 
Tipos de modelos de procesos
Tipos de modelos de procesosTipos de modelos de procesos
Tipos de modelos de procesosEIYSC
 

Similar a Terminología y conceptos en Arquitecturas dirigidas por Modelos (20)

Modelos en Arquitecturas dirigidas por Modelos
Modelos en Arquitecturas dirigidas por ModelosModelos en Arquitecturas dirigidas por Modelos
Modelos en Arquitecturas dirigidas por Modelos
 
Lenguajes específicos de dominio
Lenguajes específicos de dominioLenguajes específicos de dominio
Lenguajes específicos de dominio
 
Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de software
 
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
 
Modelos de Marcas en Arquitecturas dirigidas por Modelos
Modelos de Marcas en Arquitecturas dirigidas por ModelosModelos de Marcas en Arquitecturas dirigidas por Modelos
Modelos de Marcas en Arquitecturas dirigidas por Modelos
 
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTEPRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
 
Capitulo 3 arquitecturas_de_desarrollo_web
Capitulo 3 arquitecturas_de_desarrollo_webCapitulo 3 arquitecturas_de_desarrollo_web
Capitulo 3 arquitecturas_de_desarrollo_web
 
Presentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CostePresentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de Coste
 
PROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSPROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOS
 
Proyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoProyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de Costo
 
presentacion de software y estimacion de doste
presentacion de software y estimacion de dostepresentacion de software y estimacion de doste
presentacion de software y estimacion de doste
 
Proyecto de Software y Coste
Proyecto de Software y CosteProyecto de Software y Coste
Proyecto de Software y Coste
 
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
 
Metamodelos en Arquitecturas dirigidas por Modelos
Metamodelos en Arquitecturas dirigidas por ModelosMetamodelos en Arquitecturas dirigidas por Modelos
Metamodelos en Arquitecturas dirigidas por Modelos
 
Sistemas de información diapositivas de la 3era unidad
Sistemas de información diapositivas de la 3era unidadSistemas de información diapositivas de la 3era unidad
Sistemas de información diapositivas de la 3era unidad
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Software
 
Análisis y diseño de sistemas sesion 13 - diagrama de componentes y despliegue
Análisis y diseño de sistemas   sesion 13 - diagrama de componentes y despliegueAnálisis y diseño de sistemas   sesion 13 - diagrama de componentes y despliegue
Análisis y diseño de sistemas sesion 13 - diagrama de componentes y despliegue
 
Proyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteProyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de Coste
 
UML
UMLUML
UML
 
Tipos de modelos de procesos
Tipos de modelos de procesosTipos de modelos de procesos
Tipos de modelos de procesos
 

Más de Ricardo Tesoriero

Transformaciones modelo a texto: ACCELEO
Transformaciones modelo a texto: ACCELEOTransformaciones modelo a texto: ACCELEO
Transformaciones modelo a texto: ACCELEORicardo Tesoriero
 
Transformaciones modelo a modelo: ATL (ParteII)
Transformaciones modelo a modelo: ATL (ParteII)Transformaciones modelo a modelo: ATL (ParteII)
Transformaciones modelo a modelo: ATL (ParteII)Ricardo 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
 
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
 
Distributing user interfaces. 4th Distributed User Interfaces Workshop on 14t...
Distributing user interfaces. 4th Distributed User Interfaces Workshop on 14t...Distributing user interfaces. 4th Distributed User Interfaces Workshop on 14t...
Distributing user interfaces. 4th Distributed User Interfaces Workshop on 14t...Ricardo Tesoriero
 
CAUCE - Model-driven development of ubiquitous computing environments
CAUCE - Model-driven development of ubiquitous computing environmentsCAUCE - Model-driven development of ubiquitous computing environments
CAUCE - Model-driven development of ubiquitous computing environmentsRicardo Tesoriero
 
UsiXML Eclipse-based Model Editors
UsiXML Eclipse-based Model EditorsUsiXML Eclipse-based Model Editors
UsiXML Eclipse-based Model EditorsRicardo Tesoriero
 

Más de Ricardo Tesoriero (8)

Transformaciones modelo a texto: ACCELEO
Transformaciones modelo a texto: ACCELEOTransformaciones modelo a texto: ACCELEO
Transformaciones modelo a texto: ACCELEO
 
Transformaciones modelo a modelo: ATL (ParteII)
Transformaciones modelo a modelo: ATL (ParteII)Transformaciones modelo a modelo: ATL (ParteII)
Transformaciones modelo a modelo: ATL (ParteII)
 
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)
 
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
 
Distributing user interfaces. 4th Distributed User Interfaces Workshop on 14t...
Distributing user interfaces. 4th Distributed User Interfaces Workshop on 14t...Distributing user interfaces. 4th Distributed User Interfaces Workshop on 14t...
Distributing user interfaces. 4th Distributed User Interfaces Workshop on 14t...
 
CAUCE - Model-driven development of ubiquitous computing environments
CAUCE - Model-driven development of ubiquitous computing environmentsCAUCE - Model-driven development of ubiquitous computing environments
CAUCE - Model-driven development of ubiquitous computing environments
 
UsiXML Eclipse-based Model Editors
UsiXML Eclipse-based Model EditorsUsiXML Eclipse-based Model Editors
UsiXML Eclipse-based Model Editors
 

Último

Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 

Último (7)

Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 

Terminología y conceptos 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 II: Arquitecturas dirigidas por Modelos. Terminología y Conceptos
  • 2. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Índice • ¿Qué es una MDA? • Modelo • Meta-modelo • Plataforma • Mapeo entre modelos • Modelos de marcado • Construcción de lenguajes • Elaboración de modelos • Modelos ejecutables • MDA Ágil • Procesos MDA 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] ARQUITECTURAS DIRIGIDAS POR MODELOS (MDA) ¿Qué es una MDA? ¿Cuál es la diferencia entre una MDA y otra arquitectura? Definición de MDA
  • 4. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] ¿Qué es una MDA? • Es una forma de • Desarrollar aplicaciones • Escribir especificaciones • Basados en • Un “Modelo independiente de la plataforma” (PIM) dónde se especifican el comportamiento y la funcionalidad del negocio. • Una MDA completa Especificación ~ Descripción Plataforma ~ Tecnología PIM base PSM 1 PSM 2 PSM 3 Implementación 1 Plataforma A Implementación 2 Plataforma B Implementación 3 Plataforma C “Modelos específicos de las plataformas” (PSM)
  • 5. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] ¿Cuál es la principal diferencia entre MDA y otras arquitecturas de software? • Arquitectura de software: Es el nivel de diseño que hace foco en aspectos "más allá de los algoritmos y estructuras de datos de la computación; el diseño y especificación de la estructura global del sistema es un nuevo tipo de problema“ [1]. • MDA se focaliza en la funcionalidad y el comportamiento de un sistema independientemente de la plataforma en la que el sistema se implemente. • Principal ventaja: No habría que re-implementar el sistema cada vez que aparece una nueva tecnología. • Otras arquitecturas están atadas a una plataforma específica. • MDA garantiza que la funcionalidad y el comportamiento se definen una sola vez. • La transformación de un PIM a un PSM suele ser automática [1] David Garlan y Mary Shaw: “An introduction to Software Architecture”
  • 6. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Definición de MDA • Una MDA se basa en la separación de la especificación de la operación de un sistema, de los detalles de la forma en la que el sistema utilizan las capacidades de la plataforma. • MDA provee un enfoque , y un conjunto de herramientas para: • Especificar un sistema independientemente de la plataforma que lo soporta • Especificar plataformas • Elegir una plataforma para el sistema • Transformar la especificación del sistema en una especificación para una plataforma específica
  • 7. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] TERMINOLOGÍAY CONCEPTOS
  • 8. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Sistema y Modelo • Sistema • Los conceptos en MDA se presentan en términos de un sistema existente o planeado. • Un sistema incluye todo: programa, un ordenador, partes de otros sistemas, una federación de sistemas, gente, empresas, etc. • Implementación • Es una especificación que contiene toda la información necesaria para construir un sistema y ponerlo operativo. • Modelo • Un modelo es una descripción o especificación de un sistema y su entorno para un propósito particular • Usualmente es una combinación de dibujos y texto • El texto puede ser un lenguaje de modelado o lenguaje natural
  • 9. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Características de un modelo • Son conjuntos de elementos que describen una realidad física, abstracta o hipotética • Sirven como medios de comunicación • Son más fáciles de construir que lo que se quiere construir • Adecuados para planificar la solución del problema • Puntos clave del modelado: • Abstracción => ignorar información que no es interesante en un contexto particular • Clasificación => Agrupamiento de información importante en propiedades comunes • En MDA • Se crean modelos a diferentes niveles de abstracción • Se unen para formar una implementación particular • Tendencias: UML & Lenguajes específicos de dominio (DSLs)
  • 10. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Meta-modelo • Es un modelo de un lenguaje de modelado • Define la estructura, la semántica y las restricciones de una familia de modelos. • Un modelo es capturado por un meta-modelo. • Ej. Un modelo que emplea diagramas de UML es capturado por el meta-modelo de UML que describe: • cómo los modelos pueden ser estructurados, • los elementos que contienen • las propiedades de los elementos. Conjunto de todos los modelos descriptos por el meta-modelo
  • 11. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Arquitectura dirigida por modelos • Arquitectura • La arquitectura de un sistema es la especificación de: • Las partes y los conectores de un sistema • Las reglas para las interacciones de las partes utilizando estos conectores • Dirigido por modelos • MDA es dirigido por modelos porque utiliza modelos para dirigir la compresión, diseño, construcción, despliegue, operación mantenimiento y modificación • Arquitectura dirigida por modelos • Describe un conjunto de tipos de modelos, y las relaciones que existen entre estos tipos de modelos • Describe cómo se “preparan” y relacionan los modelos generados a partir de los meta-modelos. Preparan ~ construyen
  • 12. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Plataforma, independencia de la plataforma y aplicación • Plataforma • Es un conjunto de subsistemas y tecnologías que proveen un conjunto coherente de funcionalidad a través de interfaces y patrones de uso específicos que una aplicación puede utilizar sin conocer los detalles de implementación. • Independencia de la plataforma • Es una cualidad de un modelo • Es el grado en que un modelo es independiente de las características de cualquier plataforma • Aplicación • Una aplicación se refiere a la funcionalidad que va a ser desarrollada. • Un sistema se describe en términos de una o más aplicaciones
  • 13. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Puntos de vista • Un punto de vista de un sistema es una técnica de abstracción que selecciona un conjunto de conceptos arquitectónicos y reglas de estructura, para enfocarse en ciertos aspectos/intereses (“concerns”) del sistema • “Abstracción” significa simplificación del sistema, para conseguir un modelo simplificado. • MDA especifica 3 (o 4) puntos de vista de un sistema: • Modelo independiente de la computación (CIM) • Modelo independiente de la plataforma (PIM) • Modelo específico de la plataforma (PSM) • Modelo de específico de implementación (ISM) • Un modelo de un punto de vista (o vista) es la representación del sistema desde un la perspectiva de punto de vista particular.
  • 14. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Puntos de vista de MDA • Punto de vista independiente de la computación • Se enfoca en el entorno del sistema • Los requisitos del sistema • Los detalles de la estructura y procesamiento permanecen escondidos o indefinidos • Punto de vista independiente de la plataforma • Se enfoca en la operación del sistema • Esconde los detalles de la plataforma • Una vista independiente de la plataforma muestra la parte de la especificación que no cambia de una plataforma a otra • Generalmente utiliza un lenguaje de modelado • Punto de vista específico de la plataforma • Combina el punto de vista independiente de la plataforma con un enfoque adicional al detalle del uso de una plataforma específica
  • 15. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Modelo independiente de la computación (CIM) • Es una vista del punto de vista independiente de la computación • No muestra detalles de la estructura del sistema • Se puede llamar modelo de dominio (vocabulario) • El usuario principal del CIM no suele tener conocimiento de modelos • El CIM permite acercar a los expertos del dominio con los expertos del diseño y la construcción del software
  • 16. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Modelo independiente de la plataforma (PIM) • Es una vista del punto de vista independiente de la plataforma. • Una técnica común para adquirir independencia de la plataforma es establecer un modelo de sistema para una máquina virtual de tecnología neutra. • Una máquina virtual de tecnología neutra define un conjunto de partes y servicios definidos independientemente de la plataforma específica • => el modelo es específico a esa plataforma • => es el modelo es independiente del modelo de implementación => Exhibe un nivel específico de la plataforma , por lo tanto sirve para un número de plataformas de tipo similar
  • 17. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Modelo específico de plataforma (PSM) y modelo de plataforma • Modelo específico de plataforma • Es una vista del punto de vista específico de la plataforma • Combina las especificaciones del PIM con los detalles de implementación que usa una plataforma particular • Modelo de plataforma • Provee un conjunto de conceptos técnicos que representan lo diferentes tipos de partes y servicios que forman una plataforma. • Especifica los elementos utilizados por el PSM • Especifica los requisitos de uso y conexión de las partes de la plataforma
  • 18. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Plataforma • Es la especificación de un entorno de ejecución para un conjunto de modelos. • Java, .NET, CORBA • Linux, Solaris, Windows • Debe tener una implementación de su especificación (realización). • Una realización puede construirse sobre más de una plataforma Diagrama de clases de UML .NET con SQLServerSQLServer .NETFigura basada en la presentada en [1].
  • 19. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Transformaciones de modelos • Es el proceso de convertir un modelo en otro del mismo sistema • Ejemplo: Transformación Figura basada en la presentada en [1].
  • 20. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Transformaciones de modelos Mapping (mapeo) • Los modelos pueden tener relaciones semánticas con otros modelos • Ej.: Cuando un conjunto de modelos describe un sistema particular en diferentes niveles de abstracción • Una transformación entre modelos toma uno o más modelos como entrada (fuentes) y produce un modelo de salida (destino). • Para transformar el/los modelos de entrada se describen «reglas de transformación» dentro de una «función de transformación»; la «transformación» es la aplicación de las «funciones de transformación» • Estas reglas se describen a nivel de meta-modelo, de forma tal que son aplicables a todos los conjuntos de modelos definidos en base el meta-modelo dado.
  • 21. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Transformaciones de modelos • Para transformar el/los modelos de entrada se describen «reglas de transformación» dentro de una «función de transformación»; la «transformación» es la aplicación de las «funciones de transformación» Meta-modelo entrada Reglas Función de transformación Meta-modelo salida Modelo entrada Modelo salida Transformación
  • 22. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Transformaciones de modelos • Ejemplo: • Una clase de UML se mapea a una declaración de una clase Java, donde el nombre de la clase Java es el de la clase UML Figura basada en la presentada en [1].
  • 23. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Función Ejemplode transformación (M2T) package es.uclm.mads.sample; public class Libro { private String titulo; private String edicion; private double precio; private String isbn; private int stock; public Libro() {super();} public void incStock(int cantidad) {this.stock = this.stock + cantidad;} public void decStock(int cantidad) {this.stock = this.stock - cantidad;} public String getTitulo() {return titulo;} public void setTitulo(String titulo) {this.titulo = titulo;} public String getEdicion() {return edicion;} public void setEdicion(String edicion) {this.edicion = edicion;} public double getPrecio() {return precio;} public void setPrecio(double precio) {this.precio = precio;} public String getIsbn() {return isbn;} public void setIsbn(String isbn) {this.isbn = isbn;} public int getStock() {return stock;} public void setStock(int stock) {this.stock = stock;} } Propiedad2Atributo Propiedad2Getter Propiedad2Setter Clase2Constructor Clase2Clase Transformación Operacion2Metodo
  • 24. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Modelos de marcado • Supongamos que una «regla de transformación» transforma un atributo UML en un dato volátil en la pila de ejecución • Ésta puede no ser siempre la opción más apropiada para el atributo porque se puede necesitar que sea persistente • => 2 «reglas de transformación» • => 1 «entrada de transformación» adicional («marca») que seleccione qué regla aplicar. • Una «transformación» puede usar diferentes marcas asociadas con los «modelos fuente» • Un «modelo de marcado» describe la estructura y la semántica de un conjunto de tipos de marcas. • Una función de transformación especifica los tipos de marcas que requieren las instancias de los «meta-modelos fuente»
  • 25. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Ejemplo Cliente facturasVentas : Collection notasCredito : Collection pagos : Collection direccionesEntrega : Collection Metamodel Collection Set List CollectionSetMark Cliente facturasVentas : List notasCredito : List pagos : Set direccionesEntrega : Set CollectionListMark Model
  • 26. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Modelos de marcado Figura basada en la presentada en [1].
  • 27. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Ejemplo de modelo de marcado package es.uclm.mads.sample; public class Libro { private String titulo; private String edicion; private double precio; private String isbn; private int stock; public Libro() {super();} …} package es.uclm.mads.sample; @Entity(name = “LIBRO") public class Libro { @Column(name = “TITULO", nullable = false, length = 50) private String titulo; @Column(name = “EDICION", nullable = true, length = 50) private String edicion; @Column(name = “PRECIO", nullable = false, length = 10) private double precio; @Id @Column(name = “ISBN", nullable = false, length = 13) private String isbn; @Column(name = “STOCK", nullable = false, length = 10) private int stock; public Libro() {super();} … } Función de transformación VOLATIL Propiedad2Atributo Clase2Clase …… … Función de transformación PERSISTENTE Propiedad2AtributoPer Clase2ClasePer …… …
  • 28. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Función de transformación Ejemplo de modelo de marcado package es.uclm.mads.sample; @Entity(name = “LIBRO") public class Libro { @Column(name = “TITULO", nullable = false, length = 50) private String titulo; private String edicion; @Column(name = “TITULO", nullable = false, length = 50) private double precio; @Id @Column(name = “ISBN", nullable = false, length = 13) private String isbn; @Column(name = “STOCK", nullable = false, length = 10) private int stock; public Libro() {super();} … } Propiedad2AtributoVol Clase2ClaseVol Propiedad2AtributoPer Clase2ClasePer ……… Almacenamiento PersistenteVolátil
  • 29. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Modelos de marcado De un PIM a un PSM PIM sin marcar PIM sin marcar Marcas para la Plataforma A Marcas para la Plataforma B PIM sin marcar Marcas para la Plataforma A Marcas para la Plataforma B PIM sin marcar Marcas para la Plataforma A Marcas para la Plataforma B PSM sin marcar para la Plataforma A PSM sin marcar para la Plataforma B Transformación Transformación Figura basada en la presentada en [1].
  • 30. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Construcción de lenguajes Lenguajes específicos de dominio • Razones por las cuales se buscan definiciones más o menos formales en MDA: • Comunicación entre los miembros del grupo • Comunicación con las máquinas • Formas de definir lenguajes 1. Usar MOF (UML está definido en MOF) 2. Extender UML Profiles (perfiles de UML). 1. Estereotipos que extienden el vocabulario de UML 2. Restricciones (constraints) para crear construcciones «bien formadas» • La definición de un lenguaje es una «sintaxis abstracta» que define la estructura del lenguaje independientemente de los símbolos • La notación gráfica o «sintaxis concreta» para crear, editar o mantener los modelos en ese lenguaje (es un problema separado)
  • 31. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Tipos de modelos • Tipos de modelos • Elaboración • Ejecución
  • 32. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Elaboración de modelos • La elaboración de modelos se refiere a la idea de que un modelo puede ser modificado después de ser generado. • Principios: • No elaborar un modelo si no es necesario • No elaborar modelos «intermedios» si no van a ser expuestos • Localizar la elaboración y evitar la redundancia • Cuando un modelo se regenera, nos debemos asegurar que ciertas áreas no sean modificadas (evitar que sean sobre- escritas) para ello se utilizan las áreas protegidas. • Si un área del modelo fuente está protegida, la función de mapeo preserva esa área.
  • 33. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Modelos ejecutables • Los modelos ejecutables producen la funcionalidad deseada en un único dominio • Los modelos ejecutables son como código, pero • Permiten interactuar directamente con el dominio del cliente • Necesitan ser mezclados con otros modelos para producir el sistema completo, por ej. La UI • Para mezclar los modelos, se usa un compilador de modelos. • Del mismo modo que los lenguajes de programación independizan al programador de la plataforma de hardware, los modelos nos independizan de la plataforma de software. • Una forma de ejecutar modelos es mediante Executable UML
  • 34. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] MDA Ágil • Basados en la idea de que el código y los modelos ejecutables son operacionalmente lo mismo • El empleo de modelos ejecutables implica el testeo y verificación instantáneos. • Así Agile MDA soluciona el conflicto potencia entre MDA y los métodos ágiles en cuanto a los «verfication gaps» existentes cuando los modelos no se pueden ejecutar. • Además, se pueden entregar pequeñas partes del mismo • Cada modelo se ajusta al mismo metamodelo, porque todos los modelos son iguales (no hay análisis o diseño). • Los modelos se unen, en lugar de transformarse, y luego se mapean a un modelo combinado que se traduce a código en una arquitectura única de software.
  • 35. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Construcción de un proceso MDA • Pensemos en la «brecha» que separa el problema del sistema codificado. • Si es pequeño => saltamos • Si es más grande necesitamos algunas rocas • El proceso MDA => 1. Encontrar los modelos en un único nivel de abstracción 2. Encontrar el salto óptimo entre modelos «Cadena de Transformaciones» Problema SistemaModelo 1 Modelo 2 Modelo N Función de Transformación Función de Transformación Función de Transformación Función de Transformación Proceso MDA => Planificación Figura basada en la presentada en [1].
  • 36. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Ejecución de un proceso MDA • La ejecución del proceso incluye dos actividades 1. Formalización del conocimiento del tema a debatir y expresar ese conocimiento como una implementación 2. Mapear el conocimiento formalizado en una plataforma destino para ejecutarlo • Formalización del conocimiento 1. Recolección de requisitos 2. Abstracción del conocimiento en conceptos 3. Expresar esos conceptos formalmente • El Mapeo del conocimiento 1. Construir las relaciones entre modelos a través de funciones de mapeo, modelos de marcado y transformación de modelos 2. Una vez que las funciones de mapeo y los modelos de marcados están definidos, se procede a la transformación y verificación en: 1. Otros modelos 2. Código fuente
  • 37. 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. OMG. MDA Guide v.1.0.1. June, 12th 2003.

Notas del editor

  1. Describimos el conjunto de todos los modelos como un meta-modelo.
  2. Por ejemplo, un modelo de entidad relación está relacionado con una plataforma