UML

Hemos visto distintas formas de expresar algoritmos, como el pseudocódigo y los diagramas de flujo. Estas herramientas resultan muy útiles, pero fueron pensadas para expresar procedimientos y, por lo tanto, tienen su aplicación más popular en la programación estructurada. Con la llegada de las técnicas de POO, se buscaron nuevas formas de expresar detalles
del problema por resolver ya que, en la programación orientada a objetos, sólo nos concentramos en los objetos del dominio y en los mensajes entre ellos.

¿QUÉ ES UML?

UML es la sigla de Unified Modeling Language, o Lenguaje Unificado de Modelado. Como su nombre lo indica, UML es un lenguaje. Pero no un lenguaje de programación como los que vimos durante todo el libro, sino uno de modelado: su propósito principal consiste en definir modelos. Por modelo, se entiende una representación simplificada de la realidad. Además, UML es un lenguaje visual, es decir, toda su expresividad se basa en gráficos.


El lenguaje UML nació en 1995 como resultado del trabajo en conjunto de Rumbaugh y Booch, dos investigadores en el área de Metodología, que comen- zaron a trabajar juntos en Racional, una compañía fundada por Booch. Luego se les sumó Jacobson, quien aportó más ideas para desarrollar lo que se convirtió en la primera versión de UML. Hasta entonces, se habían desarrollado unos cuantos mecanismos de modelado de software, pero como ninguno fue formalizado correctamente ni estandarizado, cada ingeniero de software los aplicaba como sa- bía y como le convenía. Esto trajo como consecuencia que los modelos desarrollados fueran incomprendidos por los programadores, perdiendo su efectividad y, por lo tanto, su utilidad. UML fue aprobado como un estándar, lo que lo con- vierte en una herramienta fundamental para los analistas, diseñadores y arquitectos de software, que necesitan transmitir a los programadores, de forma clara y precisa, los detalles del software por implementar.

UML consiste en un conjunto de diagramas de distintos tipos. Cada uno está destinado a cubrir alguno de los aspectos del software, y se pretende que con UML se puedan modelar absolutamente todos los elementos de una aplicación. Hay diagramas para modelar los objetos, sus interacciones, las interacciones del sistema con el mundo exterior (ya sean usuarios u otros sistemas). El objetivo principal de UML es el de proveer una herramienta de comunicación precisa y sin ambigüedades. En la actualidad, existen numerosas herramientas que no sólo ayudan a construir los diagramas en UML, sino que además permiten validar el modelo construido contra la especificación del lenguaje e incluso generar código sobre la base del modelo.

A lo largo de este apartado, estudiaremos los principales conceptos de algunos de los tipos de diagrama más importantes de UML y veremos cómo se relaciona con los conceptos de orientación a objetos que ya hemos aprendido.