Buscar

Meta-modelos e XMI

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

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

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ê viu 3, do total de 8 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

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

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ê viu 6, do total de 8 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

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

Prévia do material em texto

1 
Meta-modelos 
Franklin Ramalho 
Universidade Federal de Campina Grande - 
UFCG 
 SI2- UFCG 
2 
Agenda 
- Meta-modelo 
- Conceitos 
- Características 
- MOF 
- XMI 
- Pacotes 
- Meta-modelo MOF 2.0 
- Alinhamento entre meta-modelos dos padrões da OMG 
- KM3 
- Meta-modelagem vs Outras aplicações 
 
 SI2- UFCG 
3 
Meta-modelo 
• Um meta-modelo é um modelo que descreve um modelo 
– Ex: Meta-modelo de UML, meta-modelo de Java, meta-modelo de 
redes de Petri, etc. 
– Conceitos e relações entre conceitos 
 
• Um modelo é uma instância de um meta-modelo 
 
• Meta-linguagem é a linguagem usada para descrever meta-
modelos 
 SI2- UFCG 
4 
Meta-modelo 
[Fig. Kleppe et al.] 
 SI2- UFCG 
5 
Meta-modelo 
• Base para especificação de transformações 
– Define linguagens envolvidas na transformação (fonte e destino) 
 
• Meta-modelo pode especificar: 
– Sintaxe de linguagens 
– Sintaxe de formalismos 
– Processos, Domínios, etc 
 
• Meta-modelo de uma linguagem descreve sua sintaxe 
– Meta-modelo = sintaxe abstrata 
 
• Não define semântica 
– Alguns consideram as regras OCL como semântica estática 
 SI2- UFCG 
6 
Meta-modelos 
Metamodelo 
Modelo Modelo Modelo 
2 
 SI2- UFCG 
7 
Exemplo de meta-modelo 
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 
 SI2- UFCG 
8 
Meta-modelos e OMG 
• Formalismos: 
– MOF 
– Ecore 
– KM3, etc... 
 
• MOF 
– OMG 
– Versões: 1.3, 1.4, ..., 2.0 
 
• Padrões da OMG trazem junto: 
– Um meta-modelo MOF (UML, OCL, QVT, Semântica d Ações, etc) 
– Versão 1.4 (mais simples) 
 
• Versão 2.0 
– Complexa 
– Versões alinhadas: UML, OCL, Semântica de Ações, ... 
 SI2- UFCG 
9 
Meta-modelos e OMG 
• UML 2.0 não é apenas uma atualização de UML 1.4 
– Voltada para DDM 
 
• Especialista levaram 3 anos para projetar o meta-modelo de 
UML 2.0 
 
• UML 2.0 é uma instância de MOF 2.0 
 
• Diagramas UML 2.0 são baseados em meta-modelos 
 
• UML 2.0 dá suporte a abstrações em diferentes perspectivas 
– Casos de uso, diagramas de sequência, diagramas de classe, 
diagramas de atividades, etc. 
 SI2- UFCG 
10 
Meta-Object Facility (MOF) 
• Reusa diagrama de classes e OCL para especificar meta-
modelos 
 
• Conceitos 
– Pacote 
– Classe 
– Tipo de dados 
– Associação 
– Generalização 
 
• Meta-modelo 
– Conceitos e relações entre conceitos 
Classes Associação e generalização 
 SI2- UFCG 
11 
Meta-Object Facility (MOF) 
• Terminologia 
 
– Meta-classe 
– Meta-atributo 
– Meta-operação 
– Tipo de Dados 
– Meta-parâmetro 
– Meta-associação 
– associationEnd 
– Referência 
 
• MOF possui um meta-modelo 
Meta-meta-modelo 
 SI2- UFCG 
12 
XMI - Motivação 
• Intercâmbio de meta-dados em geral 
 
• Interoperabilidade entre ferramentas 
– Grande quantidade dos softwares utilizam diversas aplicações 
modeladas por diferentes empresas e ferramentas 
– Exemplo: modelo UML desenvolvido na ferramenta A e a empresa só 
possui licença da ferramenta B 
 
• Cooperação entre definições de meta-modelos 
– Conteúdo da informação trocada entre duas ferramentas é limitado ao 
quanto cada ferramenta pode entender deste conteúdo 
 
• Atualização de modelos em ambientes distribuídos 
 
• Geração de código a partir de modelos OO 
3 
 SI2- UFCG 
13 
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 dá suporte ao 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! 
 SI2- UFCG 
14 
XMI - Características 
• Integra UML, MOF e XML 
 
• Dá suporte a um conjunto de meta-dados completo, assim 
como fragmentos de meta-dados 
 
• Documentos XML que possuem meta-dados de acordo com 
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 
 SI2- UFCG 
15 
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 
 SI2- UFCG 
16 
MOF 2.0 
• Construção do meta-modelo MOF 2.0 
– Voltada para reuso 
– Abordagem modular 
 
• MOF é baseado em UML 
– alinhados 
 
• UML 2.0 
– UML 2.0 Infrastructure (≈30 pacotes) 
– UML 2.0 Superstructure (≈50 pacotes) 
 
• Meta-modelo MOF 2.0 reusa: 
– UML 2.0 Infrastructure 
Pacotes 
 SI2- UFCG 
17 
Meta-modelos de padrões da OMG 
UML::InfraStructure
UML::SuperStructure
MOF
Operadores 
Entre pacotes 
 SI2- UFCG 
18 
Pacotes 
• Agrupa um conjunto de elementos UML 
– namespace 
 
• Cada elemento do modelo deve pertencer, no máximo, a um 
pacote 
 
• Relações entre pacotes: 
– Dependências 
• Aninhamento (sub-pacotes) 
• Import 
• elementImport 
• Merge 
4 
 SI2- UFCG 
19 
Pacotes 
 SI2- UFCG 
20 
Merge entre pacotes 
• Integra elementos de dois pacotes em um pacote resultante 
 SI2- UFCG 
21 
UML 2.0 Infrastructure 
 SI2- UFCG 
22 
UML 2.0 Infrastructure::Core 
UML::InfrastructureLibrary::Core
PrimitiveTypes
Abstractions
Basic
Constructs
 SI2- UFCG 
23 
UML::Infrastructure::Core::PrimitiveTypes 
 SI2- UFCG 
24 
UML::Infrastructure::Core::Abstractions 
5 
 SI2- UFCG 
25 
UML::Infrastructure:: Core::Abstractions 
 SI2- UFCG 
26 
UML::Infrastructure:: Core::Abstractions 
 SI2- UFCG 
27 
UML::Infrastructure:: Core::Abstractions 
 SI2- UFCG 
28 
UML::Infrastructure:: Core::Abstractions 
 SI2- UFCG 
29 
UML::Infrastructure:: Core::Abstractions 
 SI2- UFCG 
30 
UML::Infrastructure:: Core::Basic 
6 
 SI2- UFCG 
31 
UML::Infrastructure:: Core::ConstructsSI2- UFCG 
32 
UML 2.0 Superstructure 
• Dividido em 3 pacotes de alto nível: 
– Structure 
 
 
– Behavior 
 
 
– Supplement 
 
 
 
• Sub-dividida em outros sub-pacotes 
Diagramas 
estruturais 
Diagramas 
comportamentais 
Conceitos 
adicionais 
 SI2- UFCG 
33 
UML 2.0 Superstructure – Part I 
Structure 
Conceitos relativos ao diagrama 
de classes 
Conceitos que permitem especificar 
a estrutura interna de uma classe 
(composição de elementos 
interconectados) 
Conceitos relativos ao diagrama 
de componentes 
Conceitos relativos ao diagrama 
de implantação 
 SI2- UFCG 
34 
UML 2.0 Superstructure – Part II 
Behavior 
Conceitos necessários aos 
aspectos dinâmicos 
Conceitos relativos à Semântica 
de Açoes 
 SI2- UFCG 
35 
UML 2.0 Superstructure – Part III 
Supplement 
 SI2- UFCG 
36 
<<import>>
MOF
CMOFEMOF
<<merge>> <<merge>>
UML::Infrastructure
Constructs
PrimitiveTypes
Basic
<<import>>
<<import>>
<<import>>
<<import>>
MOF 2.0 
Essential MOF para 
elaboração de meta-
modelos sem 
associação 
Complete MOF para 
elaboração de meta-
modelos com 
associação 
7 
 SI2- UFCG 
37 
Meta-modelo EMOF 
 SI2- UFCG 
38 
Meta-modelo EMOF - Tipos EMOF 
 SI2- UFCG 
39 
Meta-modelo EMOF - Tipos de Dados 
EMOF 
 SI2- UFCG 
40 
Meta-modelo EMOF - Pacotes EMOF 
 SI2- UFCG 
41 
Meta-modelo EMOF - Classes EMOF 
 SI2- UFCG 
42 
Meta-modelo CMOF 
8 
 SI2- UFCG 
43 
Meta-modelo CMOF 
 SI2- UFCG 
44 
MOF 
• Reusa diagrama de classes e OCL para especificar meta-
modelos 
 
• Vantagens: 
– Mais clara (notação visual) 
– Baseada em grafos (abstrai ordem de leitura) 
– Entidades (classes) têm uma estrutura e comportamento. 
– Relações incluem generalização e associações indiretas 
– Facilita o reuso 
– Permite expressar constraints nos elementos da linguagem 
 
• Modularidade refinada trouxe grande complexidade! 
 SI2- UFCG 
45 
Exemplo de Meta-modelo Simplificado de 
XML em MOF 
 SI2- UFCG 
46 
Exercícios 
• Especificar em MOF, um meta-modelo simplificado para 
Java, cobrindo: 
– Pacotes, classes, interfaces, atributos e métodos 
 
• Complementar o exercício anterior, cobrindo, no corpo dos 
métodos Java: 
– Comandos, expressões e seqüenciadores (exceções, desvios 
incondicionais e escapes) 
 
• Estudar os meta-modelos de diagrama de classes e de 
casos de uso em UML 
 SI2- UFCG 
47 
Referências 
• Especificação de UML da OMG

Outros materiais