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