Es el analisis, la construcción y el desarrollo de los
marcos, reglas, restricciones, modelos, teorías
aplicables y útiles para el modelado de una clase
predefinida. El metamodelo está dividido en dos áreas:
Area de Metadatos
Esta área almacena el metamodelo en un conjunto
de tablas relacionales se guarda una descripción
detallada del modelo de los datos a ser almacenados
en el área de datos. Este modelo parte del principio
que toda información para ser registrada en un
sistema de información debe ser estructurada en
uno o varios formatos.
- Área de Datos
Esta área almacena la información
acorde a la estructura definida en
el área de metadatos. Es aquí
donde se registra la información
proveniente del mundo real,
estructurada de acuerdo a los
formatos que forman parte del
modelo almacenado en el área de
metadatos.
Lenguaje de metamodelado.
Nos permiten reunir información precisa y detallada
tomando en cuenta notaciones en su mayoría visuales,
que intentan representar un sistema de software a un
nivel mucho más alto que los lenguajes de programación,
representándolo en forma más intuitiva. Entre los mas
destacados estàn :
MOF
Es utilizado para crear metamodelos, y es por tanto, un
elemento básico de MDA ya que permite expresar metadatos ,
es independiente de la plataforma, y está descrito con la
notación UML y Object Constraint Language (OCL. Cada
elemento del lenguaje se representa mediante una clase y sus
propiedades como atributos. Las relaciones entre elementos se
representan como asociaciones. Incluye la generalización
permitiendo expresar que un elemento es una especialización
de otro. Además, MOF usa paquetes si el metamodelo que se va
a desarrollar es muy grande.
Ecore
Es un lenguaje común basado en
EMOF que es parte de la
especificación MOF. Ecore es
usado por Eclipse Modeling
Framework (EMF) para la
definición de metamodelos. Los
metamodelos y modelos usados
por EMF se representan con
documentos XML.
UML
Es un lenguaje de modelado
visual que se usa para
especificar, visualizar, construir
y documentar artefactos de un
sistema de software. Está
pensado para usarse con todos
los métodos de desarrollo,
etapas del ciclo de vida,
dominios de aplicación y
medios.