Un lenguaje de modelado de objetos es un conjunto estandarizado de símbolos que se utilizan para modelar un sistema de software mediante un marco orientado a objetos . Los símbolos pueden ser informales o formales y pueden ir desde plantillas gráficas predefinidas hasta modelos de objetos formales definidos por gramáticas y especificaciones.
Un lenguaje de modelado suele estar asociado a una metodología de desarrollo orientado a objetos. El lenguaje de modelado define los elementos del modelo. Por ejemplo, que un modelo tiene clases, métodos, propiedades de objeto, etc. La metodología define los pasos que los desarrolladores y usuarios deben seguir para desarrollar y mantener un sistema de software. Pasos como Definir requisitos , Desarrollar código y Probar el sistema .
Es común equiparar el lenguaje de modelado y la metodología de modelado. Por ejemplo, el método Booch puede hacer referencia al estándar de diagramación de Grady Booch , a su metodología o a ambos. O bien, la técnica de modelado de objetos de Rumbaugh es tanto un conjunto de diagramas como un modelo de proceso para desarrollar sistemas orientados a objetos.
En los primeros años de la comunidad orientada a objetos existían varios estándares de metodología y modelado que competían entre sí. Booch y Rumbaugh eran dos de los más populares. Objectory de Ivar Jacobson , Shlaer-Mellor y Yourdon-Coad también eran populares.
Sin embargo, la comunidad orientada a objetos valora la reutilización y la estandarización. Como se muestra en el gráfico, a mediados de los años 90 se hicieron esfuerzos para reconciliar los modelos principales y centrarse en una especificación unificada. El gráfico muestra la evolución de uno de los estándares de lenguaje de modelado de objetos más importantes: el lenguaje de modelado unificado (UML).
El UML comenzó como un intento de algunos de los principales líderes de pensamiento de la comunidad de definir un lenguaje estándar en la Conferencia OOPSLA '95. Originalmente, Grady Booch y James Rumbaugh fusionaron sus modelos en un modelo unificado. A esto le siguió la compra por parte de la empresa de Booch, Rational Software, de la empresa Objectory de Ivar Jacobson y la fusión de su modelo con el UML. En ese momento, Rational y Objectory eran dos de los actores dominantes en el pequeño mundo de los vendedores independientes de herramientas y métodos orientados a objetos. [2]
El Object Management Group se hizo cargo del UML y se hizo cargo de él. El OMG es una de las organizaciones de normalización más influyentes en el mundo de la orientación a objetos. El UML es a la vez un metamodelo formal y una colección de plantillas gráficas. El metamodelo define los elementos de un modelo orientado a objetos, como las clases y las propiedades. Es esencialmente lo mismo que el metamodelo en lenguajes orientados a objetos, como Smalltalk o CLOS. Sin embargo, en esos casos, el metamodelo está destinado principalmente a ser utilizado por los desarrolladores en tiempo de ejecución para inspeccionar y modificar dinámicamente un modelo de objetos de la aplicación. El metamodelo UML proporciona una base formal matemática para las diversas vistas gráficas que utiliza el lenguaje de modelado para describir un sistema emergente.
El siguiente diagrama ilustra la jerarquía de clases de las distintas plantillas gráficas definidas por el UML. Los diagramas de estructura definen la estructura estática de un objeto: su lugar en la jerarquía de clases, su relación con otros objetos, etc. Los diagramas de comportamiento especifican los aspectos dinámicos del modelo, la lógica del proceso de negocio, la coordinación y la sincronización de los objetos distribuidos, etc. [3] [4]
Si no fuera por el dominio que ha ganado UML en la industria, MDA y los estándares de modelado relacionados ni siquiera podrían existir.