El modelado de metadatos es un tipo de metamodelado utilizado en ingeniería de software e ingeniería de sistemas para el análisis y la construcción de modelos aplicables y útiles para alguna clase predefinida de problemas.
El metamodelado es el análisis, construcción y desarrollo de marcos, reglas, restricciones, modelos y teorías aplicables y útiles para el modelado de una clase predefinida de problemas.
El lado de metadatos del diagrama consta de un diagrama de conceptos. Básicamente, se trata de un diagrama de clases ajustado, como se describe en Booch, Rumbaugh y Jacobson (1999). Las nociones importantes son concepto, generalización, asociación, multiplicidad y agregación.
En primer lugar, un concepto es una versión simple de una clase del Lenguaje de Modelado Unificado (UML). La definición de clase [1] se adopta para definir un concepto, es decir: un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semántica.
Se especifican los siguientes tipos de conceptos:
En la Figura 1 se ilustran los tres tipos de conceptos que se utilizan en la técnica de modelado. Los conceptos siempre se escriben con mayúscula inicial, no solo en el diagrama, sino también cuando se hace referencia a ellos fuera del diagrama.
En la Figura 2 se ejemplifican los tres tipos de conceptos. Se ilustra parte del diagrama de datos de proceso del flujo de trabajo de requisitos en el Proceso Unificado. El MODELO DE CASO DE USO es un concepto abierto y consta de uno o más ACTORES y uno o más CASOS DE USO. ACTOR es un concepto estándar, no contiene más subconceptos. CASO DE USO, sin embargo, es un concepto cerrado. Un CASO DE USO consta de una descripción, un flujo de eventos, condiciones, requisitos especiales, etc. Debido a que en este caso no es necesario revelar esa información, el CASO DE USO se ilustra con un concepto cerrado.
La generalización es una forma de expresar una relación entre un concepto general y un concepto más específico. Además, si es necesario, se puede indicar si los grupos de conceptos identificados se superponen o están disjuntos, completos o incompletos. La generalización se visualiza mediante una flecha sólida con una punta de flecha abierta que apunta al padre, como se ilustra en la Figura 3.
En la Figura 4 se ejemplifica la generalización mostrando las relaciones entre los diferentes conceptos descritos en el párrafo anterior. El CONCEPTO ESTÁNDAR y el CONCEPTO COMPLEJO son ambos un tipo específico de CONCEPTO. Posteriormente, un CONCEPTO COMPLEJO puede especificarse en un CONCEPTO ABIERTO y un CONCEPTO CERRADO.
Una asociación es una relación estructural que especifica cómo se conectan los conceptos entre sí. Puede conectar dos conceptos (asociación binaria) o más de dos conceptos (asociación n-aria). Una asociación se representa con una línea continua no dirigida. Para darle un significado a la asociación, se puede proporcionar un nombre y una dirección del nombre. El nombre tiene la forma de un verbo activo y la dirección del nombre se representa con un triángulo que apunta en la dirección en la que se debe leer. La asociación con un nombre y una dirección del nombre se ilustra en la Figura 5.
En la Figura 6 (eliminada) se ilustra un ejemplo de asociación. El ejemplo es un fragmento del diagrama de datos del proceso del análisis de requisitos en el Proceso Unificado. Debido a que ambos conceptos no se desarrollan más, aunque existen varios subconceptos, los conceptos se ilustran como conceptos cerrados. La figura se lee como “DESCRIPCIÓN DE LA ENCUESTA describe el MODELO DE CASO DE USO”.
Además del nombre y la dirección del nombre, una asociación puede tener más características. Con la multiplicidad se puede indicar cuántos objetos de un concepto determinado se pueden conectar a través de una instancia de una asociación. La multiplicidad se visualiza utilizando las siguientes expresiones: (1) para exactamente uno, (0..1) para uno o cero, (0..*) para cero o más, (1..*) para uno o más, o por ejemplo (5) para un número exacto. En la Figura 7 se ilustra la asociación con multiplicidad.
En la Figura 8 se representa un ejemplo de multiplicidad. Es el mismo ejemplo que en la Figura 6, solo que se suman los valores de multiplicidad. La figura se lee como "exactamente una DESCRIPCIÓN DE ENCUESTA describe exactamente un MODELO DE CASO DE USO". Esto implica que una DESCRIPCIÓN DE ENCUESTA no puede describir cero o más de un MODELO DE CASO DE USO y un MODELO DE CASO DE USO no puede ser descrito por cero o más de una DESCRIPCIÓN DE ENCUESTA.
Un tipo especial de asociación es la agregación. La agregación representa la relación entre un concepto (como un todo) que contiene otros conceptos (como partes). También se puede describir como una relación de "tiene un". En la Figura 9 se ilustra una relación de agregación entre CONCEPTO ABIERTO y CONCEPTO ESTÁNDAR. Un CONCEPTO ABIERTO consta de uno o más CONCEPTOS ESTÁNDAR y un CONCEPTO ESTÁNDAR es parte de cero o más CONCEPTOS ABIERTOS.
En la Figura 10, la agregación se ejemplifica con un fragmento del flujo de trabajo de captura de requisitos en la ingeniería web basada en UML. Un MODELO DE CASO DE USO consta de uno o más ACTORES y CASOS DE USO.
En ocasiones es necesario asignar propiedades a los conceptos. Las propiedades se escriben en minúsculas, debajo del nombre del concepto, como se ilustra en la Figura 11.
En la Figura 12 se visualiza un ejemplo de un concepto con propiedades. El concepto CARACTERÍSTICA tiene cuatro propiedades, respectivamente: prioridad, tipo, riesgo y estado.
En la Tabla 1 se presenta una lista. Cada CONCEPTO requiere una definición adecuada, que se copia preferiblemente de un glosario estándar. Todos los nombres de CONCEPTOS en el texto se escriben con mayúsculas.