Ingeniería del Software Basada en Modelos
23 de Marzo de 2010
Master Oficial en Tecnologías de la Información y Sistemas Informáticos Universidad Rey Juan Carlos
Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
U Universidad Rey Juan Carlos
Belén Vela Sánchez
[email protected]
Grupo Kybele Universidad Rey Juan Carlos
Índice • • • •
Motivación Marco de Trabajo Arquitectura de MIDAS MIDAS MDA Tool – M2DAT – Módulo OR – Módulo XML – M2DAT/DB Demo
• Conclusiones y Futuros Trabajos Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
2
1
Motivación ME/R
Metodologías clásicas de desarrollo de BD Relacionales
MR
Reglas de Transformación
Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
Código SQL
3
Motivación • BD Relacionales ocupan todavía el primer lugar en el mercado tradicionales aplicaciones de gestión. • Nuevas aplicaciones más sofisticadas que requieren almacenamiento de distinto tipo de información: • Estructurada (pero más compleja) • Semi-Estructurada
Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
4
2
Motivación Información estructurada
Limitaciones de las BD Relacionales • • •
Complejidad en las relaciones Nº de Tuplas Nº de Joins Rendimiento
BD Objeto-Relacionales • Mejoran el soporte para gestión de datos complejos • Basadas en estándares (SQL:2003) • Incorporada en productos comerciales Metodologías que guíen la tarea de diseño de BD OR Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
Motivación Información semi-estructurada
XML se ha convertido en estándar de facto: • Intercambio de información entre organizaciones • Transporte de datos entre aplicaciones heterogéneas • Almacenamiento de este tipo de información Definición de Estructura de documentos XML • Document Type Definitions (DTDs) Carencias sintácticas y semánticas Estructura complicada • Aparición del estándar XML Schema Definido en XML Sistema de tipos más rico (tipos definidos por el usuario) Soporte namespaces Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
3
Motivación
Almacenamiento de datos XML
Sistemas de Ficheros
BD Convencionales
Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
Motivación
Almacenamiento de datos XML
BD XML • Mejor y más directa alternativa para el almacenamiento y la gestión de documentos XML BD XML nativas
Extensiones XML para DB
XML DB XML Extender SQLXML …
…
Metodologías que guíen la tarea de diseño de BD XML Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
4
Motivación Desarrollo de Software Dirigido por Modelos • Uso de modelos en distintos niveles de abstracción • Definición de reglas de transformación entre los diferentes modelos MDA - Model Driven Architecture • Marco de trabajo para el DSDM PIM
Platform Independent Model
Código Final
PSM
Distintas Plataformas
Platform Specific Model
PIM2PSM
PSM2Code
Una aproximación MDA para el desarrollo dirigido por modelos del contenido en el marco de la metodología MIDAS Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
Índice • • • •
Motivación Marco de Trabajo Arquitectura de MIDAS MIDAS MDA Tool – M2DAT – Módulo OR – Módulo XML – M2DAT/DB Demo
• Conclusiones y Futuros Trabajos Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
10
5
Marco de Trabajo
¿Qué es MIDAS? • Es una metodología dirigida por modelos para el desarrollo de aplicaciones orientadas a servicios. • Basada en MDA contempla los tres niveles de abstracción (CIM – PIM – PSM) y la definición de mappings entre los mismos.
Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
11
Marco de Trabajo Nuestro marco de trabajo está basado en dos pilares: 1. Una arquitectura dirigida por modelos (MDA), que incluye: • • •
Los principales aspectos a la hora de modelar un SI y el proceso. Los metamodelos para cada aspecto (CIM, PIM y PSM), las relaciones entre los metamodelos y los aspectos. Los mappings entre los metamodelos.
2. Herramienta MDA: • •
Soporte a la arquitectura MDA propuesta, la transformación entre modelos y la generación de código. Fácilmente extensible para poder incoporar nuevos metamodelos y mappings siempre que se necesite.
Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
12
6
Índice • • • •
Motivación Marco de Trabajo Arquitectura de MIDAS MIDAS MDA Tool – M2DAT – Módulo OR – Módulo XML – M2DAT/DB Demo
• Conclusiones y Futuros Trabajos Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
13
Arquitectura de MIDAS
Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
14
7
Arquitectura de MIDAS:
PIM
Quality
Security
Architecture
CIM
Semantics
La tercera dimensión
PSM Content
Hypertext
Behaviour
Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
15
Arquitectura de MIDAS: Aspecto del Contenido
MIDAS/DB
Propuesta de MIDAS para el desarrollo del aspecto del contenido
Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
8
Arquitectura de MIDAS: Aspecto del Contenido
MIDAS/DB
"
# $ CREATE OR REPLACE TYPE Jefe_Proyecto AS (Codigo_Id NUMBER, Nombre
NUMBER, Dirige
!
SQL
VARCHAR2(30), Telefono
REF Proyecto);
Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
17
Arquitectura de MIDAS: Aspecto del Contenido
Aproximación Dirigida por Modelos para el desarrollo de contenido de un SI en el marco de MIDAS: MIDAS/DB •
Especificación de perfiles UML y reglas de transformación
•
Formalización de las reglas de transformación
Construcción de la herramienta de soporte: M2DAT/DB •
Desarrollo DSLs para modelado del contenido
•
Desarrollo de editores gráficos
•
Codificación de reglas de transformación (M2M)
•
Generación automática de código (M2T) Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
18
9
Arquitectura de MIDAS: El proceso
Reglas de Transformación M2M
Modelo Conceptual (PIM)
Generación de Código M2T
Código SQL/ XML Schema
Modelo OR/XML (PSM)
M2DAT Facilidades de EMF Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
19
Arquitectura de MIDAS: Mappings
• Los modelos dirigen el proceso de desarrollo propuesto Las transformaciones de modelos completan la definición del método “ … the mapping description may be in natural language, an algorithm in an action language, or a model in a mapping language …”
• Definición de los Mappings – Aproximación Inicial – Formalización Posterior – Implementación
[MDA Guide – OMG, 2001]
Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
20
10
Arquitectura de MIDAS: Mappings
1. Definición de las reglas en lenguaje natural. 2. Utilización de gramáticas de grafos para la formalización de las transformaciones de modelos. Acercar a analistas y desarrolladores Detectar errores e inconsistencias en las primeras etapas del desarrollo software Incrementar la calidad de los modelos así como el código generado
3. Implementación de las reglas definidas mediante gramáticas de grafos (paso 2) mediante el lenguaje de transformación de modelos ATL (Atlas Transformation Language) y en QVT Operational Mappings (Open Canarias) QVT sin implementación completa (Relational, Operational y Core) ATL: estándar de-facto para las transformaciones de modelos (soporte e interoperabilidad)
4. Finalmente, para la generación de código a partir de modelos (PSM código) se ha usado MOFScript
Lenguaje que actualmente está en proceso de revisión para ser adoptado por el grupo OMG como estándar para la transformación de modelos a texto. Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
21
Índice
• • • •
Motivación Marco de Trabajo Arquitectura de MIDAS MIDAS MDA Tool – M2DAT – Módulo OR – Módulo XML – M2DAT/DB Demo
• Conclusiones y Futuros Trabajos Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
22
11
Marco de Trabajo Nuestro marco de trabajo está basado en dos pilares: 1. Una arquitectura dirigida por modelos (MDA), que incluye: • • •
Los principales aspectos a la hora de modelar un SI y el proceso. Los metamodelos para cada aspecto (CIM, PIM y PSM), las relaciones entre los metamodelos y los aspectos. Los mappings entre los metamodelos.
2. Herramienta MDA: • •
Soporte a la arquitectura MDA propuesta, la transformación entre modelos y la generación de código. Fácilmente extensible para poder incoporar nuevos metamodelos y mappings siempre que se necesite.
M2DAT
Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
23
MIDAS MDA Tool
MIDAS MDA Tool - M2DAT • •
M2DAT es una herramienta MDA para el desarrollo de SI, que nace con el propósito de dar soporte al marco de trabajo de MIDAS. M2DAT permitirá validar las propuestas de MIDAS.
La funcionalidad de la herramienta da soporte para: • La elaboración de cada uno los modelos que forman parte del proceso de desarrollo propuesto por MIDAS. • La ejecución automática de transformaciones entre esos modelos. • Parametrización de las transformaciones utilizando modelos weaving para realizar anotaciones a los modelos. • Generación de código automático.
Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
24
12
MIDAS MDA Tool MIDAS MDA Tool - M2DAT Está formada por un conjunto independiente de módulos (para cada aspecto) que trabajan de manera integrada: •
Contenido: módulos PIM y PSM, y los mappings entre ellos (OR y XML Schemas) M2DAT/DB
•
Comportamiento: módulo PSM para la generación de WSDL. Se han implementado los editores y actualmente se están implementando los mappings.
•
Hipertexto: se han implementado los mappings, actualmente se han implementando los editores. M2DAT tiene alto grado y sencillez de escalabilidad. Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
25
Índice
• • • •
Motivación Marco de Trabajo Arquitectura de MIDAS MIDAS MDA Tool – M2DAT – Módulo OR – Módulo XML – M2DAT/DB Demo
• Conclusiones y Futuros Trabajos Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
26
13
MIDAS MDA Tool: Módulo OR
MIDAS/DB
SQL
# $
XML Schema
Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
27
MIDAS MDA Tool: Módulo OR
! "#
%$Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
28
14
MIDAS MDA Tool: Módulo OR
! % ECLIPSE
EMF
! " #$ %
%
!
GMF
"
Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
29
MIDAS MDA Tool: Módulo OR
& • • •
Definición de las transformaciones utilizando lenguaje natural Se formalizan las transformaciones usando gramática de grafos La implementación se realiza utilizando alguna propuesta de modelos de transformación existente (ATL y QVT Operational) Data PIM
Standard Data PSM (SQL:2003)
Product Data PSM (Oracle10g)
Clase
Structured Type + Typed Table
Object Type + Object Table
Atributos
Asociaciones
Multivaluado
Array/Multiset
Varray/Nested Table
Compuesto
ROW/Structured Type (column)
Object Type (column)
Calculado
Trigger/Method
Trigger/Method
1a1
Ref/Ref
Ref/Ref
1aN
Ref- Multiset/Array
Ref-Nested Table/Varray
NaM
Multiset/Array - Multiset/Array
Nested Table/Varray - Nested Table /Varray
Agregación
Multiset/Array
Nested Table/Varray of References
Composición
Multiset/Array
Nested Table/Varray of Objects
Generalización
Types/Typed Tables
Types/Typed Tables
Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
30
15
MIDAS MDA Tool: Módulo OR
' UML2 : Es una implementación del meta-modelo de UML basada en EMF para la plataforma de ECLIPSE
Una aproximación metodológica dirigida por modelos para el desarrollo del aspecto del contenido de un SI
31
MIDAS MDA Tool: Módulo OR
& LHS - UML Class Diagram -
???:UML::Class
RHS - OR Model -
1
match(1).name:OR::Typed Table
name:String=???
1’
3 :UML::Stereotype
ownedAttibute
name: String= Persistent
1’ match(1).name + “_Type”:OR::Structured Type
* ???:UML::Property name:String=?? datatype:Datatype=??
2
* match(2).name:OR::Attribute datatype = match(2).datatype
2’
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
rule Class2UDT { from c : UML!Class to udt : modeloOR!StructuredType( Name