Buscar

Repositorio de Modelos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

1 
Repositório de Modelos 
Franklin Ramalho 
Universidade Federal de Campina Grande - 
UFCG 
 DDM- UFCG 
2 
Agenda 
• Repositório de modelos 
• Requisitos 
• Serviços 
• Formatos para modelos 
– LPOO 
– XML 
• Aplicações 
 DDM- UFCG 
3 
Motivação 
• Transformações são aplicadas a modelos 
 
• Modelos devem estar conforme algum meta-modelo 
 
• Meta-modelo é um tipo de modelo 
 
• Modelos devem ser persistentes 
 
• Modelos devem ser acessíveis 
 
• Modelos devem ser manipulados por uma séries de operações 
 
• Operações mais básicas: Edição e armazenamento 
 
• Canais de operações sobre modelos 
 DDM- UFCG 
4 
Canal de operações sobre modelos 
[Klepper et.al] 
 DDM- UFCG 
5 
Introdução 
• Um repositório de modelos pode ser definido como: 
 
– Um catálogo de modelos 
 
– Acompanhado de uma série de serviços que devem ser oferecidos 
sobre estes modelos 
 
 
 DDM- UFCG 
6 
Introdução 
• Um repositório de modelos deve oferecer os seguintes 
serviços: 
– Persistência 
– Consulta ao modelo 
– Checagem de conformidade entre modelos e meta-modelos 
– Edição de modelos 
– Controle de versões 
– Controle de acesso autenticado 
– Concorrência 
– Tolerância a falhas 
– API para canal de serviços entre ferramentas que operam sobre 
modelos 
 
2 
 DDM- UFCG 
7 
Formatos para manipulação de modelos 
• Baseada em programação orientada a objetos 
– JMI 
– EMF 
 
• Baseada em XML 
– XMI 
 DDM- UFCG 
8 
Manipulação de modelos baseada em 
LPOO 
• Como usar LPOO para manipulação de modelos? 
– Geração de código 
– Geração de documentação 
– Transformação de modelos 
 
• JMI (Java Metadata Interface) 
– JCP 
 
• EMF (Eclipse Modeling Framework) 
– Eclipse 
 
• Baseados em interfaces de manipulação de modelos! 
 DDM- UFCG 
9 
Usando Java para Manipulação de 
modelos 
Meta-Modelo 
Modelo 
Interface Java 
Objetos Java 
 DDM- UFCG 
10 
Manipulação de Modelos 
• Interfaces de manipulação 
– Interfaces sob encomenda - específicas para um meta-modelo 
 
– Interfaces reflexivas - gerais para qualquer tipo de meta-modelo 
 
• Interfaces sob encomenda são fortemente ligadas aos 
meta-elementos 
 
• Interfaces reflexivas são fracamente ligadas aos meta-
elementos 
 DDM- UFCG 
11 
Modelo e meta-modelo para casos de uso 
actor 
 
+name 
0 ..1 
system 
 
+name 
PedirItem 
ValidatarCartao 
e-Store 
Modelo UML: 
Diagrama de Casos 
de Uso 
Meta-Modelo de 
Casos de Uso 
useCase 
 
+title 
1 .. * 
0 ..* 
extends 
includes 
 DDM- UFCG 
12 
Interfaces sob encomenda 
• Interfaces sob encomenda são produzidas especificamente 
para um dado meta-modelo 
– No exemplo, para um caso de uso 
 
• Capaz de realizar operações como: 
– Saber quantos casos de uso o modelo possui 
– Saber qual o nome do caso de uso 
– Modificar o nome do caso de uso 
– Saber quantos atores o modelo possui 
– Adicionar um ator ao modelo 
– Remover um ator do modelo 
3 
 DDM- UFCG 
13 
Interfaces reflexivas 
• Interfaces reflexivas são utilizadas sobre qualquer tipo de 
modelo e meta-modelo 
– Todos modelos são conjuntos de elementos ligados entre si 
 
• Capaz de realizar operações como: 
– Saber qual a meta-classe do elemento e-store 
– Saber que esta meta-classe tem um meta-atributo com nome name 
– Saber que esta meta-classe tem meta-associação para meta-classe 
UseCase 
 
 
 
 DDM- UFCG 
14 
Interfaces de Manipulação 
Meta-Modelo 
Model 
Interfaces 
sob encomenda 
Objetos 
Interfaces 
reflexivas 
 DDM- UFCG 
15 
JMI 
• Padrão da JCP (Java Community Process) 
 
• Representa modelos através de objetos Java 
 
• Herda interfaces reflexivas 
 
• Gera interfaces sob encomenda a partir de um meta-modelo 
 
• Baseado em MOF 
 
• Define templates para geração de APIs Java 
 DDM- UFCG 
16 
Interfaces reflexivas de JMI 
Permite criar 
instâncias de 
uma meta-
classe: 
refCreateIn
stance() 
Permite acessar 
todas as 
propriedades de 
um elemento 
Através da operação 
refMetaObject(), retorna a meta-
classe de um elemento 
 DDM- UFCG 
17 
Interfaces sob encomenda de JMI 
• Regras definem como gerar interfaces sob encomenda a partir de meta-
modelos particulares 
• Exemplo: Regra de meta-classe 
– Uma meta-classe de um meta-modelo vai gerar duas interfaces: Factory e 
Instance 
• Factory 
– Tem como nome nom_meta-classeClass 
– Oferece operações de criação de instâncias da meta-classe 
– Herda da interface reflexiva RefClass 
• Instance 
– Tem como nome nome_da_meta-classe 
– Oferece operações de leitura e escrita sobre cada meta-atributo da meta-
classe 
– Oferece operações de navegação sobre cada meta-referência da meta-
classe 
– Herda da interface reflexiva RefObject 
 DDM- UFCG 
18 
Interfaces sob encomenda de JMI 
• Outra regras para: 
– Meta-associação 
– Meta-pacote 
– Etc... 
 
• Plataformas que executam JMI: 
– NetBeans (http:://mdr.netbeans.org) 
– ModFact (http:://modfact.lip6.fr) 
4 
 DDM- UFCG 
19 
EMF 
• É um framework aberto para modelagem e geração de 
código 
– Eclipse Modeling Framework(EMF) 
 
• Princípios semelhante ao JMI 
 
• Fortemente acoplado à plataforma Eclipse 
 
• Permite construir um meta-modelo e gerar as interfaces 
reflexivas e sob encomenda para este 
1. Manipular as instâncias do meta-modelo 
2. Integrado ao Eclipse 
3. Interface gráfica para (1) 
 DDM- UFCG 
20 
EMF 
• EMF é baseada no Ecore e não em MOF! 
 DDM- UFCG 
21 
Meta-modelo Ecore 
 DDM- UFCG 
22 
Meta-modelo Ecore 
 DDM- UFCG 
23 
EMF 
• Para se usar o EMF precisa-se representar o domínio 
desejado através do Ecore 
 
• Ecore pode ser criado: 
– Diretamente no EMF Editor 
– Importando um UML model 
– Importando um XMLSchema 
– Importando interfaces Java 
 
• EMF pode gerar: 
– Implementação Java 
– XML Schema 
– Projetos e plug-ins no Eclipse 
 
• EMF provê notificação de mudanças no modelo 
 DDM- UFCG 
24 
EMF 
UML 
UML 
UML 
XMLS 
UML 
Java 
Modelo Ecore 
I 
M 
P 
O 
R 
T 
GERAÇÃo 
UML Código 
Java 
UML Editores 
de 
modelos 
5 
 DDM- UFCG 
25 
Componentes do EMF 
• EMF Core: 
– Meta-modelo Ecore 
– Notificação de mudanças no modelo 
– Persistência e serialização 
– Interfaces reflexivas e sob encomenda 
– Validação de modelos 
– Suporte para execução de modelos 
 
• EMF Edit 
– Suporte para construção de editores de modelos 
 
• EMF CodeGen 
– Importação de modelos: Interfaces Java, XML Schema e UML 
– Geração de código para componentes Core e Edit 
 DDM- UFCG 
26 
Usando XML para Manipulação de 
modelos 
Meta-Modelo 
Modelo 
XML Schema 
ou DTD 
Documentos 
XML 
 DDM- UFCG 
27 
XMI - Introdução 
• XMI (XML-based Metadata Interchange)é um formato de intercâmbio 
para meta-dados, definidos de acordo com o padrão MOF 
 
• Padrão da OMG 
 
• Envolvidos: Unysis, IBM, Rational, Sybase, Genesis, Xerox, etc. 
 
• XMI suporta o intercâmbio de qualquer tipo de meta-dados que pode 
ser expresso em MOF 
 
• Intercâmbio serializado de meta-dados 
 
• XMI mostra como salvar modelos MOF em XML! 
 DDM- UFCG 
28 
XMI - Características 
• Integra UML, MOF e XML 
 
• Suporta um conjunto de meta-dados completo, assim como 
fragmentos de meta-dados 
 
• Documentos XML que estão conforme XMI, possuem: 
– Elementos XML que são requeridos por XMI 
– Elementos XML que contêm meta-dados de acordo com MOF 
– Elementos XML que contêm meta-dados de acordo com um meta-
modelo estendido 
 
• Namespaces permite que um documento XML use múltiplos 
meta-modelos ao mesmo tempo 
 DDM- UFCG 
29 
XMI 
 
 
XML Schema 
XML 
MOF 
X 
M 
I 
UML 
UML 
 
UML 
 Models UML 
 
CWM 
 Models UML 
 
MOF 
 MetaModels 
Validate 
 DDM- UFCG 
30 
Exemplo de codificação XMI 
system 
+name 
 * 
pedirItem 
validarCartao 
0 ..* 
extends 
includes 
useCase 
 
+title 
e-Store 
0 ..1 
actor 
+name 
<umlModel> 
 <useCase id = “uc1”> 
 <title visib = pub> “pedirItem” </title> 
 </useCase> 
 <useCase id = “uc2”> 
 <title visib = pub> “validarCartao” </title> 
 </useCase> 
 <actor id = “a1”> 
 <name visib = pub> “Cliente” </name> 
 </actor> 
… 
<actor2useCase id = “a12uc1”> 
 <in idref = “a1”/> <out idref = “uc1”/> 
 </actor2useCase> 
 <actor2useCase id = “a12uc2”> 
 <in idref = “a1”/> <out idref = “uc2”/> 
 </actor2useCase> 
</umlModel> 
Cliente 
6 
 DDM- UFCG 
31 
POO x XMI 
• POO: 
– Serviços de manipulação de modelos e aplicação pode ser diretamente 
programável na mesma linguagem 
– Conciso e sucinto 
– Alinhamento de paradigmas (Meta-modelo x Modelo x Programação) 
– Necessidade de aplicações intermediárias para persistência e leitura 
humana 
– Não suporta o princípio da meta-circularidade 
– Persistência indireta 
– Compreensão dificultada para humanos 
 
• XMI: 
– Serviços de manipulação de modelos e aplicação precisam ser programados 
em uma outra linguagem 
– Verborrágico 
– Não há alinhamento de paradigmas (Meta-modelo x Modelo x 
Programação) 
– Não precisa de aplicações intermediárias para persistência e leitura 
humana 
– Suporta o princípio da meta-circularidade 
– Persistente 
– Compreensão facilitada para humanos e máquina 
 DDM- UFCG 
32 
Repositórios de Modelos 
• ZoooMM 
– Centenas de modelos, meta-
modelos e meta-meta-modelos 
– UML, MOF, OWL, RDFS, DAML, 
XMLS, etc 
• AM3 (ATLAS MegaModel 
Management) 
• ReMoDD: A Repository for Model 
Driven Development) 
 DDM- UFCG 
33 
Exercícios 
1. Construa um meta-modelo simplificado para diagrama 
de classes UML 
 
2. Especifique um conjunto de serviços providos por 
interfaces sob encomenda e reflexivas geradas para o 
meta-modelo da questão 01. 
 
3. Especifique uma transformação de classes e atributos 
UML para código Java, usando os serviços especificados 
na questão 02. 
 
 DDM- UFCG 
34 
Referências e Bibliografia 
• OMG Specifications. http://www.omg.org 
 
• MDA explained (The model-driven architecture: practice and 
promise). Kleppe, A., Warmer, J. and Bast, W. Object-
Technology Series. Addison-Wesley. 2003. 
 
• MDA en action (Ingénérie logicielle guidée par les modèles). 
Blanc, X. Eyrolles. 2005.

Outros materiais