Baixe o app para aproveitar ainda mais
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
Compartilhar