MOF

Мета-объектное средство (MOF, Meta-Object Facility) — стандарт моделеориентированной инженерии, разработанный Object Management Group (OMG).

Методы описания

MOF использует два метода описания (viewpoints):

  1. Моделирование (Modeling viewpoint): метод описания для проектировщика системы, смотрящего сверху вниз по уровням MOF. Этот метод описания используется для того, чтобы определить информационную модель для конкретной предметной области (domain of interest). Это определение используется для последующего проектирования программного обеспечения и/или его реализации.
  2. Данные (Data viewpoint): метод описания для программиста системы, смотрящего на конкретный уровень MOF и, возможно, вверх по уровням MOF. Этот метод описания используется для того, чтобы применить распределенную парадигму OMA (Object Management Architecture) для управления информацией в соответствии с информационной моделью.

Уровни MOF

MOF возникло из UML. OMG нуждался в архитектуре метамоделирования для определения UML. MOF реализовано как четырехслойная архитектура:

Уровень Описание Определение OMG Пример
М3 Верхний уровень, ядро всего проекта.

Определяется язык, используемый MOF для создания метамоделей М2

Meta-metamodel MOF
М2 Определяется метамодель языка Metamodel,

meta-metadata

Метамодель UML,

Метамодель CWM

М1 Модели, написанные на языке, определенном в M2 Model,

metadata

Модель UML

Метаданные хранилища/BI

М0 Используется для описания объектов реального мира Object,

data

Моделируемая система,

Данные хранилища

MOF призван служить мостом между разными метамоделями, поскольку представляет собой мощную основу для их описания. Если две разные метамодели конформны MOF (то есть могут быть описаны средствами M3), то все конкретные модели (M1), базирующиеся на них, могут хранится в общем репозитории и совместно обрабатываться средствами модельных трансформаций.

В рамках M3-модели MOF описывает средства для создания и редактирования моделей и метамоделей путём определения CORBA-интерфейсов, которые описывают эти операции.