Meta-Object Facility - Meta-Object Facility
O Meta-Object Facility ( MOF ) é um padrão Object Management Group (OMG) para engenharia orientada a modelos . Seu objetivo é fornecer um sistema de tipos para entidades na arquitetura CORBA e um conjunto de interfaces através das quais esses tipos podem ser criados e manipulados. A página de referência oficial pode ser encontrada no site da OMG.
Visão geral
O MOF foi desenvolvido para fornecer um sistema de tipos para uso na arquitetura CORBA , um conjunto de esquemas pelos quais a estrutura, significado e comportamento dos objetos podem ser definidos e um conjunto de interfaces CORBA através das quais esses esquemas podem ser criados, armazenados e manipulados .
O MOF foi projetado como uma arquitetura de quatro camadas. Ele fornece um metametamodelo na camada superior, chamado de camada M3. Este modelo M3 é a linguagem usada pelo MOF para construir metamodelos, chamados modelos M2. O exemplo mais proeminente de um modelo MOF da Camada 2 é o metamodelo UML, o modelo que descreve a própria UML. Esses modelos M2 descrevem elementos da camada M1 e, portanto, modelos M1. Esses seriam, por exemplo, modelos escritos em UML. A última camada é a camada M0 ou camada de dados. É usado para descrever objetos do mundo real.
Além do modelo M3, o MOF descreve os meios para criar e manipular modelos e metamodelos, definindo interfaces CORBA que descrevem essas operações. Por causa das semelhanças entre o modelo MOF M3 e os modelos de estrutura UML, os metamodelos MOF geralmente são modelados como diagramas de classes UML. Um padrão de suporte do MOF é o XMI , que define um formato de troca baseado em XML para modelos nas camadas M3, M2 ou M1.
Arquitetura de metamodelagem
MOF é uma arquitetura de metamodelagem fechada ; define um modelo M3, que se conforma a si mesmo. MOF permite uma arquitetura de meta-modelagem estrita ; cada elemento do modelo em cada camada está estritamente em correspondência com um elemento do modelo da camada acima. O MOF fornece apenas um meio de definir a estrutura ou sintaxe abstrata de uma linguagem ou de dados. Para definir metamodelos, o MOF desempenha exatamente o papel que EBNF desempenha para definir gramáticas de linguagem de programação. MOF é uma linguagem específica de domínio (DSL) usada para definir metamodelos, assim como EBNF é uma DSL para definir gramáticas. Da mesma forma que o EBNF, o MOF pode ser definido no MOF.
Em suma, o MOF usa a noção de MOF :: Classes (não deve ser confundida com UML :: Classes ), conforme conhecido pela orientação a objetos , para definir conceitos (elementos de modelo) em uma camada metálica. MOF pode ser usado para definir metamodelos orientados a objetos (como UML, por exemplo), bem como metamodelos não orientados a objetos (como uma rede de Petri ou um metamodelo de serviço da Web ).
Em maio de 2006, o OMG definiu dois pontos de conformidade para o MOF:
- EMOF para Essential MOF
- CMOF para MOF completo
Em junho de 2006, um pedido de proposta foi emitido pela OMG para uma terceira variante, SMOF (Semantic MOF).
A variante ECore que foi definida no Eclipse Modeling Framework está mais ou menos alinhada no EMOF da OMG.
Outro padrão relacionado é o OCL , que descreve uma linguagem formal que pode ser usada para definir as restrições do modelo em termos de lógica de predicado .
QVT , que apresenta meios para consultar, visualizar e transformar modelos baseados em MOF, é um padrão muito importante, aprovado em 2008. Consulte Linguagem de Transformação de Modelo para obter mais informações.
Padrão internacional
MOF é um padrão internacional:
- MOF 2.4.2
- ISO / IEC 19508: 2014 Tecnologia da informação - Object Management Group Meta Object Facility (MOF) Core
- MOF 1.4
- ISO / IEC 19502: 2005 Tecnologia da informação - Meta Object Facility (MOF)
O MOF pode ser visto como um padrão para escrever metamodelos , por exemplo, para modelar a sintaxe abstrata de linguagens específicas de domínio . Kermeta é uma extensão do MOF que permite que ações executáveis sejam anexadas a metamodelos EMOF, tornando possível também modelar uma semântica operacional DSL e obter prontamente um interpretador para ela.
JMI define uma API Java para manipular modelos MOF.
O MOF da OMG não deve ser confundido com o Managed Object Format (MOF) definido pela Distributed Management Task Force (DMTF) na seção 6 do Common Information Model (CIM) Infrastructure Specification, versão 2.5.0.
Veja também
Referências
Leitura adicional
- Especificação oficial do MOF da OMG
- Ralph Sobek, Documentos de especificações do MOF
- Johannes Ernst, O que é metamodelagem?
- Woody Pidcock, Quais são as diferenças entre um vocabulário, uma taxonomia, um tesauro, uma ontologia e um metamodelo?
- Anna Gerber e Kerry Raymond, MOF para EMF e Back Again.
- Tecendo a executabilidade em meta-linguagens orientadas a objetos
- Suporte MOF para solicitação de proposta RFP de estruturas semânticas em SMOF