Modela un esquema de metadatos con PlantUML

Publicado el 18 de diciembre de 2018 por en Software libre, Tutoriales

En la última entrada del 2018, te voy a explicar cómo modelar un esquema de metadatos utilizando PlantUML. Fácil, sencillo y para toda la familia. Si no tienes muy claro qué es un esquema de metadatos o quieres repasar algunos aspectos teóricos, te recomiendo que leas primero la entrada que publiqué al respecto. Pero, antes de nada, ¿qué es PlantUML?

Dibuja diagramas con PlantUML

PlantUML es un proyecto libre y de código abierto para dibujar diagramas. Como su propio nombre indica, está basado en el lenguaje unificado de modelado, más conocido por sus siglas UML. Esta especificación se utiliza para representar diagramas secuenciales, modelos de datos y otro tipo de información técnica.

Aunque no ha sido diseñado específicamente para representar esquemas de metadatos, es una herramienta bastante adecuada para este fin. ¿En qué circunstancias te puede resultar útil PlantUML?

Durante la implementación de una herramienta de gestión documental, realizamos frecuentes pruebas de concepto con el cliente. El objetivo de estas demos es validar que vamos por el buen camino. En este contexto, evitamos mostrar algo tan teórico como un diagrama UML y preferimos que el cliente pruebe directamente la herramienta en un servidor de pruebas.

Sin embargo, el diagrama UML es muy útil a la hora de representar el esquema de metadatos durante el diseño del modelo de gestión documental. Los modelos de gestión documental deben ser tecnológicamente neutros. En este sentido, se debe representar los instrumentos de gestión documental de manera que puedan implementarse en cualquier tipo de entorno tecnológico.

Podríamos utilizar un lenguaje de marcado XML. Casi todas las herramientas de gestión documental son compatibles con este estándar. Sin embargo, no todas utilizan la misma especificación de XML. Algunas de ellas, como OpenProdoc, emplean una especificación propia. Además, hay que tener en cuenta que no todos los destinatarios del modelo de gestión documental saben interpretar un archivo XML. Por este motivo, es preferible optar por una representación más gráfica.

Una alternativa es representar los metadatos en varias tablas. El gran problema de las tablas es que no informan de un vistazo de las relaciones entre los distintos grupos de metadatos, las listas de vocabulario controlado, etc.

Observa, en cambio, la siguiente representación:

Ejemplo de esquema de metadatos

De un solo vistazo, nos está informando de:

  • Tipos de documentos del modelo (“Documento Base” y “Factura”).
  • Los metadatos de cada tipo de documento (“Título”, “Propietario”, “Cliente”, “Concepto”, etc.).
  • El tipo de dato que acepta cada metadato (cadena, fecha, lista, etc.).
  • Relación entre estos tipos de documentos (la factura hereda propiedades del documento base).
  • Listas de vocabulario controlado utilizadas (para el metadato “Propietario” se utiliza una lista con los nombres de tres departamentos, etc.).

Veamos, paso a paso, cómo hemos creado este diagrama con PlantUML.

Editores de código para PlantUML

Lo primero que necesitas es un editor de código compatible con PlantUML.

La combinación que yo utilizo es el editor Atom con las extensiones language-plantuml y plantuml-viewer. También existen extensiones de PlantUML para Visual Studio Code, NetBeans y otros editores de código.

Si no quieres instalar nada en tu ordenador, puedes utilizar el editor en línea PlantText. Ésta es la opción con la que vamos a trabajar en este tutorial.

Definir una clase en PlantUML

Una vez en PlantText, lo primero que tienes que hacer es definir las clases que van a formar parte de tu diagrama:

  • Documento_Base.
  • Factura.
  • Propietario.
  • Cliente.

La sintaxis para definir una clase es la siguiente:

class Documento_Base {
Título: Cadena.
Propietario: Lista.
Fecha: Fecha.
}

Hay cinco elementos importantes en la sintaxis:

  • El término reservado “class”, que sirve para indicar que estás definiendo un elemento de tipo “Clase”.
  • El nombre de la clase, que debe ir a continuación del término reservado “class”.
  • Las llaves de apertura y cierre, que deben ir a continuación del nombre de la clase y al final de la clase.
  • El nombre de cada campo.
  • El tipo de dato que acepta cada campo.

Una vez hayas terminado de escribir la clase, pulsa el botón “Refresh” y PlantText renderizará una imagen de la misma.

Modelado de esquema de metadatos con PlantUML en PlantText

Observa que todo el texto que escribas debe encontrarse entre los términos “@startuml” y “@enduml”.

Relaciones entre clases

Una vez hayas definido todas las clases de tu esquema de metadatos, debes indicar las relaciones entre ellas. Para simplificar, en este tutorial veremos únicamente dos tipos de relaciones:

  • Herencia: Se establece una relación padre/hijo en la cual el hijo hereda todas las propiedades del padre. Es decir, si tenemos una clase padre con el metadato “Título”, todos sus hijos también tendrán también el metadato “Título”. Representamos la herencia con los caracteres <|-.
  • Agregación: En una relación de agregación, los elementos de una clase son parte de otra clase. Por ejemplo, los departamentos relacionados en la clase “Propietario” pueden formar parte del metadato “Propietario” definido para el tipo documental “Documento_Base”. Representamos la agregación con los caracteres o-.

Puedes leer más sobre los tipos de relaciones en esta entrada divulgativa de Karla Cevallos.

En este ejemplo, “Factura” es el hijo de “Documento_Base”. “Propietario” y “Cliente” tienen una relación de agregación con “Documento_Base” y “Factura”, respectivamente. La sintaxis para representar estas relaciones en PlantUML es la siguiente:

Documento_Base o- Propietario
Documento_Base <|-- Factura
Factura o- Cliente

Éste es el resultado cuando pulsamos el botón “Refresh”.

Modelado de esquema de metadatos con PlantUML en PlantText

Observa que el número de guiones en las flechas puede variar. Utilizamos uno solo cuando la relación se produce al mismo nivel; dos, cuando se produce a un nivel inferior, etc.

Exporta tu esquema de metadatos

Una vez hayas terminado de trabajar en PlantText, podrás exportar el resultado en PNG, SVG y TXT. El formato PNG es lo que estás buscando si quieres insertar los esquemas en el modelo de gestión documental que estás redactando.

¡Y eso es todo!

Espero que esta entrada te haya resultado interesante y, como de costumbre, te animo a compartir tus dudas y sugerencias en la sección de comentarios. Recuerda que puedes suscribirte en la columna de la derecha o seguir nuestro feed RSS. Nos vemos en 2019 con nuevas entradas sobre gestión documental y software libre.

2 respuestas a “Modela un esquema de metadatos con PlantUML”

  1. Marisé Cantero Regos dice:

    Sería susceptible utilizar PlantUML para hacer el esquema de metadatos de NEDA? NEDA ya es un esquema de metadatos pero necesitamos aplicación informática.

    • Guillermo dice:

      Hola Marisé,

      PlantUML es un lenguaje con el que podríais modelar vuestro esquema de metadatos basado en NEDA, es decir, representarlo gráficamente. Lo que vais a obtener con PlantUML es un diagrama. Sin embargo, lo que deduzco de tu comentario es que necesitáis una aplicación informática compatible con el estándar NEDA para describir vuestra documentación. Si es así, y queréis que os asesoremos en el proceso de selección y/o implementación, podéis escribirnos a info[arroba]nosturi.es.

      Si lo que necesitáis es hacer un diagrama, PlantUML es una opción muy recomendable. Nosotros lo usamos mucho. Aquí te adjunto un documento con la especificación completa: http://plantuml.com/PlantUML_Language_Reference_Guide.pdf

      Gracias por comentar!

      Guillermo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.