odyssey-mda: uma ferramenta para transformações de modelos uml
Post on 30-Dec-2015
19 Views
Preview:
DESCRIPTION
TRANSCRIPT
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 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 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 Maiantmaia@cos.ufrj.br
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>
top related