Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.

Slides:



Advertisements
Presentaciones similares
Características Generales y Entornos de Desarrollo
Advertisements

Framework de.Net Infraestructura sobre la que se reúne todo un conjunto de lenguajes y servicios que simplifican el desarrollo de aplicaciones Entorno.
UML para programadores Java
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
Equipo 11 -Enríquez Chávez Jocelyn -Martínez Arvallo Diana Berenice
Introducción a la Orientación a Objetos
Prof. César Luza Montero
Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz.
Especificación y Verificación de Transformaciones de Modelos
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
Java 2 Platform Enterprise Edition
xUML Ref: CTN 80 v2.2, Supporting Model Driven Architecture with eXecutable UML, Kennedy Carter,
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
Análisis y Diseño O.O. Click to add notes Preguntas del diseño :
Unified Modeling Language (Lenguaje de Modelamiento unificado)
 El termino OO, significa que el software es organizado como una colección de objetos. Un objeto es un paquete de software que contiene datos y procedimientos.
I Taller sobre Desarrollo de Software Dirigido por Modelos, MDA y Aplicaciones (DSDM'04) MDA Aplicado: Una Gramática de Grafos para la Transformación de.
Desarrollo de Software conducido por Modelos
STARUML.
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Ingeniería de Software
Introducción a la Programación. Lenguaje de Máquina.
Viviana Poblete López Módulo: Modelo de Datos
Arquitectura de una aplicación
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Como Desarrollar SW Distribuido de Calidad
DISEÑO DE SOFTWARE 1ª. Parte
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Tema I Arquitectura de Software. Arquitectura de software es un conjunto de reglas que definen la estructura de un sistema y las relaciones entre sus.
Arquitectura Orientada a Servicios
Junio I Jornadas de trabajo META Subproyecto METAMETHOD - Soporte a la Especificación de Metodologías de Desarrollo mediante Técnicas MDD -
Asignación de Tratamientos a Responsabilidades en el contexto del Diseño Dirigido por Modelos David Ameller & Xavier Franch Universitat Politècnica de.
Comunicación y Multimedia
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
Haga clic para modificar el estilo de subtítulo del patrón 28/04/09 Por ARLEDY SARRIA MOLINA NAZLY DIAZ ARIZA JHOANNA MARQUELLA DESARROLLO DE SOFTWARE.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Patrones de Diseño en MDA
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Ingeniería de Software en la Robótica Educativa Gabriela Arévalo, Ph.D. CAETI- UAI, LIFIA-UNLP, CONICET
CICLO DE VIDA Y NORMAALIZACION DE UN SISTEMA DE BASE DE DATOS
Desarrollo de Software Orientado a Objetos (deficiencias)
Un estudio comparativo de dos herramientas MDA: OptimalJ y ArcStyler
Métrica v2.1 Técnicas: Modelado de datos (Parte 1)
Juan Timoteo Ponce Ortiz
Prof. Flor Narciso Departamento de Computación
SLAM sistema basado en componentes Basado en: “Building realiable component- based software systems”. Crnkovic & Larsson Noelia Maya Fernández. Junio de.
I NGENIERÍA DE S OFTWARE L ABORATORIO VI Diseño - Diagrama de clases Eduardo Saavedra A. 07/10/2009.
29/01/031 OCL (Object Constraint Language) Juan Casas Cuevas Mercedes Arenas Fernández Laboratorio de Sistemas de Información Facultad de Informática.
Introducción a UML Departamento de Informática Universidad de Rancagua
Conceptos Fundamentales
Ingeniería de Requisitos
Taller de Sistemas de Programas Clase 6 Dpto. de Computación y T.I.
Integrantes: Dennys Quintero José Ortega Simón Fagundez Caracas 09 de Febrero de 2015.
Actividades en el Proceso de desarrollo de Software
MAESTRIA EN CIENCIAS DE LA COMPUTACION Comparación de implementación de sistemas distribuidos usando COM y CORBA Jesús Gil Muñoz Julio 2001.
Unified Modeling Language (Lenguaje de Modelamiento unificado)
TIPOS DE DATOS ABSTRACTOS
Tipo de relación entre clases Es uno de los aspectos que distinguen el paradigma de orientación a objetos frente a otros paradigmas. Mecanismo que,
OptimalJ como herramienta MDA
Introducción AOO. Contenido - Introducción - Repaso de Orientación a Objetos - UML - Casos de Uso.
MODELAMIENTO VISUAL Y UML
Patrón de diseño BROKER
Modelado Orientado a Objetos Programación Orientada a Objetos Departamento de Sistemas Universidad del Cauca 2006.
Cómo aumentar la productividad a través de las tecnologías de modelado Adrián Noguero
Entregables del Proyecto
Universidad Nacional de Ingeniería Comprendiendo los Fundamentos de
Profesor: Jesús Chaparro Bachilleres: Perez, emibeliz Prada, Rainer Villahermosa, José Abril 2014.
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Tendencias Avanzadas de Ingeniería de Software.  Las herramientas CASE (Computer Aided Software Engineering, Ingeniería de Software Asistida por Computadora)
Transformación de modelos mediante gramáticas de grafos
Transcripción de la presentación:

Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006

Model-Driven Architecture (MDA) Es una evolución de estándares definidos por OMG (Object Management Group) para mejorar procesos de desarrollo de sistemas de software dirigidos por modelos. Ideas centrales en MDA Separar la especificación de la funcionalidad del sistema de su implementación sobre una plataforma en una tecnología específica. Separar la especificación de la funcionalidad del sistema de su implementación sobre una plataforma en una tecnología específica. Controlar la evolución desde modelos abstractos a implementaciones tendiendo a aumentar el grado de automatización. Controlar la evolución desde modelos abstractos a implementaciones tendiendo a aumentar el grado de automatización.

Plataforma en MDA Plataforma Es un conjunto de subsistemas y tecnologías que proveen un conjunto coherente de funcionalidad que puede ser usada en cualquier aplicación sin tener en cuenta detalles de cómo la funcionalidad es implementada

Modelos y MDA Distingue diferentes tipos de modelos: CIM (Computation Independent Model) CIM (Computation Independent Model) PIM (Platform Independent Model) PIM (Platform Independent Model) PSM (Platform Specific Model) PSM (Platform Specific Model) ISM (Implementation Specific Model) ISM (Implementation Specific Model)

Modelos y MDA Computation Independent Model (CIM) Es una descripción de la lógica del negocio desde una perspectiva independiente de la computación. Es un modelo del dominio Es una descripción de la lógica del negocio desde una perspectiva independiente de la computación. Es un modelo del dominio Platform Independent Model Es una descripción de la funcionalidad del sistema en forma independiente de las características de plataformas de implementación específicas. Es una descripción de la funcionalidad del sistema en forma independiente de las características de plataformas de implementación específicas.

Modelos y MDA Platform Specific Model (PSM) Es una descripción del sistema en términos de una plataforma específica. Por ejemplo,.NET, J2EE, relacional,… Implementation Specific Model Es una descripción (especificación) del sistema a nivel de código. Por ejemplo, Java, C#, …

MDA Clasificación de modelos Clasificación de modelos Independencia de plataformas específicas Independencia de plataformas específicas Transformación de modelos y refinamiento Transformación de modelos y refinamiento

Model-driven Development (MDD) Un desarrollo MDD distingue al menos las siguientes etapas: Construir un PIM en un alto nivel de abstracción, independiente de una tecnología específica. Construir un PIM en un alto nivel de abstracción, independiente de una tecnología específica. Transformar al PIM en uno o más modelos dependientes de una paltaforma específica, denominados PSM. Por ejemplo, relacional, J2EE,.NET Transformar al PIM en uno o más modelos dependientes de una paltaforma específica, denominados PSM. Por ejemplo, relacional, J2EE,.NET Transformar los PSM a código. Transformar los PSM a código.

MDD (Model-Driven Development) PIM PSM J2EE PSM REL PSM dotNET CODE CIM

Transformaciones y MDA Una transformación es el proceso para convertir un modelo en un lenguaje en un modelo en otro lenguaje. Refinamientos horizontales Refinamientos horizontales Refinamientos verticales Refinamientos verticales Antirefinamientos Antirefinamientos Refactorings Refactorings Puentes Puentes

Transformaciones y MDA La evolución desde modelos CIM a ISM es alcanzada por: Refinamientos que permiten construir una especificación más específica a partir de una más abstracta Refinamientos que permiten construir una especificación más específica a partir de una más abstracta Verticales (por ejemplo, PIM a PSM, PSM a ISM) Verticales (por ejemplo, PIM a PSM, PSM a ISM) Horinzontales (por ejemplo, PIM a PIM, PSM a PSM) Horinzontales (por ejemplo, PIM a PIM, PSM a PSM) Refactorings que permiten transformar modelos en un determinado nivel (PIM, PSM, ISM) sin cambiar su funcionalidad, pero mejorando algunos factores de calidad no funcionales. Refactorings que permiten transformar modelos en un determinado nivel (PIM, PSM, ISM) sin cambiar su funcionalidad, pero mejorando algunos factores de calidad no funcionales.

Transformaciones y MDA Otras transformaciones: Puentes entre diferentes PSMs, ISMs. Por ejemplo de COBOL a JAVA, de J2EE a.NET,… Puentes entre diferentes PSMs, ISMs. Por ejemplo de COBOL a JAVA, de J2EE a.NET,… Anti-refinamientos que permiten construir una especificación más abstracta a partir de una más específica. Por ejemplo, de ISM a PSM, de PSM a PIM,…. Anti-refinamientos que permiten construir una especificación más abstracta a partir de una más específica. Por ejemplo, de ISM a PSM, de PSM a PIM,….

Transformaciones en MDA Transformaciones automáticas tool tool PIMPSMISM

MDA- Beneficios Productividad Productividad Portabilidad Portabilidad Interoperabilidad Interoperabilidad Evolución del software Evolución del software

Metamodelos y MDA En MDA es crucial analizar, automatizar y transformar modelos: Mantener trazas y relaciones entre diferentes modelos Mantener trazas y relaciones entre diferentes modelos Lograr interoperabilidad en diferentes niveles Lograr interoperabilidad en diferentes niveles Descripciones precisas de la semántica de los modelos Metamodelos

Modelos, Transformaciones y Metamodelos OMG provee un framework conceptual y estándares para expresar modelos, relaciones y transformaciones modelo-a-modelo. UML/OCL Modelos MOF Metamodelos (Meta Object Facility) QVT Transformaciones (Query-View-Transformation)

Arquitectura de metamodelado Arquitectura de metamodelado de 4 niveles: Meta-metamodelo Meta-metamodelo (MOF) MOF (MOF) MOF Metamodelo Metamodelo (Metamodelo UML, SPEM) SPEM (Metamodelo UML, SPEM) SPEM Modelo Modelo (UML, RUP) RUP (UML, RUP) RUP Objetos Objetos “es-una-instancia” “es-una-instancia”

Transformaciones y metamodelos “es-instancia-de” RefinamientoPIM-PSM Refinamiento PIM-PIMmetamodelo PSM- PSMmetamodelo PSM- PSMmetamodelo “es-instancia-de” PIM PSM MetamodeloPIM MetamodeloPSM

MDA y Reingeniería

Especificación de transformaciones como contratos OCL TRANSFORMATION transformationName PARAMETERS<parameterList> PRE: PRE: POST: POST: Additional Operations def:…def:…END

Ejemplo BON-Metamodel simplificado

Ejemplo Metamodel UML simplificado

Especificación de transformaciones TRANSFORMATION BASIC PACKAGE TRANSFORMATION BASIC PACKAGE PARAMETERS PARAMETERS source: UMLMetamodel :: Package source: UMLMetamodel :: Package target: BON-PSM-Metamodel :: Model target: BON-PSM-Metamodel :: Model PRE: PRE: -- source es un Package simple, que sólo contiene clases y asociaciones source.ownedMember -> source.ownedMember -> forAll (s / s.oclIsTypeOf (Class) or s.oclIsTypeOf(Association)) forAll (s / s.oclIsTypeOf (Class) or s.oclIsTypeOf(Association)) POST:….

Especificación de transformaciones POST: -- para cada clase en source existe una clase target que tiene --el mismo nombre source.ownedMember -> select (oclIsTypeOf (Class)) -> forAll(classSource|target.abstractions-> exists(classTarget|classSource.name= classTarget.name )and … classTarget.name )and …

Especificación de transformaciones --para cada clase en el conjunto de superclases de --source existe una relación de herencia en el target con --el mismo nombre classSource.superclasses -> forAll (classParent | target.relationships–>select(oclIsTypeOf(inheritance) -> exists (rel | (rel.name = classParent.name))) and …

Especificación de transformaciones --para cada operación/atributo en source --existe una rutina/atributo en el target… classSource.ownedOperation -> forAll (op |target.abstractions -> select(oclIsTypeOf(Routine)-> exists(op1| operTransf (op, op1))) and classSource.ownedAttribute -> forAll (at| target.abstractions -> select(oclIsTypeOf(Attribute))-> exists(at1|attribTransf(at, at1))) )

Especificación de transformaciones POST: --para cada asociación en source existe una en target.. source.ownedMember-> select(oclIsTypeOf(Association) -> forAll (assoc| exists(assoc1|assocTransf (assoc, assoc1)) … Additional Operations

Especificación de transformaciones Additional Operations def:operTransf(O:Package::operation,F:Model::feature): Boolean = if O.stereotype.name = ´constructor´ then F.name = ´make´ else F.name = O.name endif and (F.type.conformsTo.O.type) and O.parameters -> size () size() and Sequence { 1..(O.parameters ->size())} -> forAll (i:Integer | F.parameters -> (at(i).name = O.parameters -> at(i).name) and O.parameters ->at(i).type.conformsTo.(F.parameters->at(i).type)) def: attribTransf(S:Package::Attribute,T:Model::Attribute):Boolean def: assocTransf(S:Package::Association,T:Model::Association):Boolean. END-TRANSFORMATION