September 12, 2008

Metamodelo UML - 1

Como avance dentro de un proyecto de grado, me encuentro con UML(Unified Modelling Language), este famoso y conocidísimo lenguaje de modelado definido por los grandes de los procesos de desarrollo del software.

Pero, ¿qué es UML?, UML es una convención para modelar( visualizar, diseñar, especificar, documentar) algun elemento del mundo real, esa es la definicion de modelado, UML esta orientado hacia el desarrollo de software, aunque eso no quiera decir que solo se pueda usar para esto.

Perfecto entonces, es algo que me permite modelar, ¿pero como?.

UML define un conjunto de elementos que permiten el modelado, llamados diagramas. Existen diagramas de todo tipo, que tienen un objetivo específico y diferentes características propias.

Ahora mi problema es que debía definir UML en un lenguaje de programación, es decir, crear la estructura para modelor. Esto es algo interesante, ya que UML esta definido en UML !!.

Algo extraño, no?. Esto es llamado metamodelo, un metamodelo es un modelo de un modelo, son datos de datos, son esquemas de esquemas.

El metamodelo de UML se vería algo así:

Semejante cosa es posible gracias "MOF Meta-Object_Facility", que es otra norma para definir esquemas o arquitecturas, fué creado específicamente para UML, pero sus beneficios son numerosos.

Ahora como solo me interesan los diagramas de clase, una pequeña porción del UML, cada uno de estos elementos define la estructura del diagrama, sus elementos, operaciones y atributos.

Entonces la solución es utilizar MDR Meta-Data Repository, un proyecto iniciado por Netbeans que maneja una implementación del metamodelo de UML, aunque eso por supuesto no es todo lo que puede hacer.

Hasta aqui este post, más adelante seguiremos con este tema.