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