Meta-Object Facility - Meta-Object Facility

Ilustração da facilidade de meta-objetos.

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

links externos