Odyssey-MDA: Uma Ferramenta para Transformações de Modelos UML

17
Odyssey-MDA: Uma Ferramenta para Transformações de Modelos UML Natanael Maia Ana Paula Blois Cláudia Werner Grupo de Reutilização de Software Outubro/2005

description

Odyssey-MDA: Uma Ferramenta para Transformações de Modelos UML. Natanael Maia Ana Paula Blois Cláudia Werner Grupo de Reutilização de Software Outubro/2005. Roteiro. Arquitetura Orientada por Modelos (MDA) Odyssey-MDA Transformações Mapeamentos Finders Mecanismos Extensão Utilização - PowerPoint PPT Presentation

Transcript of Odyssey-MDA: Uma Ferramenta para Transformações de Modelos UML

Odyssey-MDA: Uma Ferramenta para

Transformações de Modelos UML

Natanael MaiaAna Paula BloisCláudia Werner

Grupo de Reutilização de SoftwareOutubro/2005

05/Out/2005 Odyssey-MDA 2

Roteiro

Arquitetura Orientada por Modelos (MDA) Odyssey-MDA

Transformações Mapeamentos Finders Mecanismos Extensão

Utilização Considerações Finais

05/Out/2005 Odyssey-MDA 3

Arquitetura Orientada por Modelos

Abordagem que visa permitir: Especificação do software de forma independente de

uma plataforma (tecnologia) em particular Realização de transformações para aplicação de

conceitos de plataforma sobre a especificação inicial Separação entre especificação da funcionalidade e a sua

implementação numa tecnologia qualquer Facilidade na obtenção da especificação do sistema na

plataforma escolhida

05/Out/2005 Odyssey-MDA 4

Arquitetura Orientada por Modelos

Conceitos Plataforma: Conjunto de subsistemas e tecnologias que

disponibilizam serviços através de interfaces e padrões de utilização

PIM – Platform Independent Model PSM – Platform Specific Model Transformações

Modelo ↔ Modelo

Modelo ↔ Texto

05/Out/2005 Odyssey-MDA 5

Odyssey-MDA

Framework para especificação e execução de transformações sobre modelos UML PIM ↔ PIM , PIM ↔ PSM , PSM ↔ PSM

Padrões utilizados MOF – Linguagem abstrata que é usada para descrever

outras linguagens JMI – Permite a geração de interfaces Java para

manipulação de elementos de um modelo cujo meta-modelo é descrito em MOF

XMI – Permite o intercâmbio (em XML) de modelos entre ferramentas (meta-modelo MOF)

05/Out/2005 Odyssey-MDA 6

Odyssey-MDA

05/Out/2005 Odyssey-MDA 7

Transformações

Transformação de modelos Especificação declarativa:

Mapeamentos Seleção de elementos: finders Configuração dos mecanismos: properties Configuração dos relacionamentos entre elementos

Parte Imperativa: mecanismos Pré-definidos (built-ins) Definidos pelo usuário (plug-ins)

05/Out/2005 Odyssey-MDA 8

Mapeamentos

Classe → ClasseClasse → Interfaceetc.

Atributo → AtributoOperação → Atributoetc.

Classe → AtributoOperação → Classeetc.

05/Out/2005 Odyssey-MDA 9

Finders

Selecionam elementos a serem transformados Critérios de seleção de elementos:

Nome → todas os elementos com nome “create” Tipo → todas as Classes, Interfaces Estereótipos → todos os elementos <<entity>> Etiquetas → todos os elementos que tenham a

etiqueta “persistent” com valor “true”.

05/Out/2005 Odyssey-MDA 10

Transformam elementos do modelo de entrada em elementos do modelo de saída

São bidirecionais (forward e reverse) Pré-definidos (built-ins):

Novos mecanismos (plug-ins)

Mecanismos

ClassClass ClassInterface ClassAttribute ClassOperation InterfaceInterface InterfaceAttribute

InterfaceOperation AttributeAttribute AttributeOperation OperationOperation RelationshipGenerator etc.

05/Out/2005 Odyssey-MDA 11

Extensão

O usuário pode definir seus próprios mecanismos e incluir na ferramenta (plug-in)

05/Out/2005 Odyssey-MDA 12

Utilização

Stand-alone

05/Out/2005 Odyssey-MDA 13

Utilização

Odyssey-plug-in

05/Out/2005 Odyssey-MDA 14

Geração de código (Odyssey-MDA-codegen) Engenharia reversa (ARES)

Trabalhos futuros Utilização de outros meta-modelos baseados no

MOF Estudo de caso para avaliar a utilização da

ferramenta

Considerações finais

Odyssey-MDA: Uma Ferramenta para

Transformações de Modelos UML

Natanael [email protected]

Grupo de Reutilização de SoftwareOutubro/2005

05/Out/2005 Odyssey-MDA 16

Properties

Permitem a configuração dos mecanismos utilizados nas transformações (built-ins/plug-ins)

<property name="stereotype" value="EntityBean" direction="forward" />

<property name="nameTransformation" direction="forward" value="#CLASSIFIER_NAME#Bean" />

<property name="nameTransformation" direction="reverse">

<property name="input" value="#CLASSIFIER_NAME#" />

<property name="regex" value="(.*)Bean$" />

<property name="subst" value="$1" />

</property>

05/Out/2005 Odyssey-MDA 17

Relacionamentos

A geração de relacionamentos entre os elementos gerados na transformação é configurada na especificação declarativa

<relationship name="Dependency (entityBean -> entityRemoteInterface)" type="Dependency" direction="LEFT_TO_RIGHT">

<element id="entityRemoteInterface" />

<element id="entityBean" />

</relationship>