Unified Modelig Language. Elementos básicos.

Como muchos de ustedes saben, el UML (Unified Modeling Language) es el lenguaje estándar para modelar sistemas de información, y saber UML es uno de las habilidades más solicitadas en los profesionistas de sistemas hoy en día. Sin más preámbulos, conozcamos qué es UML y aprendamos sus fundamentos.

Un Poco de Historia
UML fue creado por Grady Booch, Ivar Jacobson y James Rumbaugh de Rational Software —conocidos como los tres amigos, aunque dicen las malas lenguas que en realidad no se tienen gran aprecio entre sí—, a partir de notaciones y técnicas que cada uno había creado anteriormente. En 1996 se publicó la versión 1.0 y se donó a la OMG (Object Management Group) para que administrara y coordinara su evolución. La versión más reciente es la 2.0. Sin embargo, todavía tiene algunos detalles pendientes de aprobar y liberar, así que en general se usa la versión anterior, que es la 1.5. Los diagramas y elementos mencionados en este artículo se refieren a la versión 1.5. La manera más sencilla de definir UML, es como un lenguaje que define nueve diferentes tipos de diagramas. Estos diagramas se dividen en dos categorías: estáticos y dinámicos.

Diagramas Estáticos
Los diagramas estáticos son aquellos que permiten modelar la estructura de un sistema. Estos son: casos de uso, clases, objetos, componentes, distribución.

Casos de uso.– Este diagrama se utiliza para representar la funcionalidad que un sistema ofrece a sus actores. Un actor es cualquier agente externo que interactúa con un sistema, como un humano, un dispositivo u otro sistema. Cuando se refieren a humanos, los actores representan roles, no usuarios individuales.

Clases.– Los diagramas de clases representan la estructura lógica de un sistema. Estos diagramas muestran clasificadores y las relaciones entre estos. Los clasificadores pueden ser clases, interfases y paquetes, mientras que las relaciones posibles son asociación, generalización, dependencia y realización. A su vez, hay tipos especiales de asociación, como la agregación, la composición, y la asociación por clases, pero estos son temas avanzados que no revisaremos en este momento. Las clases se representan como rectángulos con compartimentos opcionales. En el compartimento superior se listan los atributos de la clase, y en el inferior las operaciones que puede realizar.

Objetos.– El diagrama de objetos es como el de clases, sólo que representa objetos en lugar de clases. Clarísimo, ¿no? Recordemos que una clase es una representación de un conjunto de objetos que comparten los mismos atributos, operaciones y semántica. Por esto se dice que un objeto es una instancia de una clase. Por ejemplo, un automóvil es una instancia específica de la clase Automóvil. Esta clase puede tener entre sus atributos la marca, modelo, año y color, y entre sus operaciones pueden estar acelerar, frenar, cambiar de velocidad y girar. Habiendo aclarado la diferencia entre clases y objetos, puede que aún así tengan la duda de “y para que quiero modelar objetos si es lo mismo que modelar clases?”. Bueno, sucede que hay casos en los que las clases tienen relaciones complicadas, y a veces es útil apoyarse en diagramas de objetos para ilustrar casos específicos. O sea que los diagramas de objetos se utilizan para ejemplificar los diagramas de clases.

Componentes.– En estos se representa la organización de un sistema en componentes, y las dependencias entre estos. Mientras que una clase es algo imaginario, un componente ya es algo más real, como un programa o un archivo, que debe existir físicamente en algún lado para que el sistema pueda funcionar.

Distribución.– Los diagramas de distribución o despliegue (el término en ingles es deployment) representan la arquitectura física (hardware) de un sistema. Esto es, sus nodos (servidores, clientes, dispositivos) y conexiones.

Diagramas Dinámicos
Los diagramas dinámicos se enfocan en modelar el comportamiento. Estos son: colaboración, secuencia, estado, actividad.

Colaboración.– Los diagramas de colaboración son uno de los dos tipos de diagramas de interacción (los otros son los diagramas de secuencia). Estos diagramas muestran la interacción (en forma de mensajes intercambiados) que se da entre objetos para ejecutar algún escenario específico.

Secuencia.– Aunque en esencia los diagramas de colaboración representan la misma información que los de secuencia, estos últimos reflejan el orden de las operaciones y también pueden mostrar información adicional como la creación y destrucción de objetos.

Estado.– Estos diagramas especifican la secuencia de estados por los cuales puede pasar un objeto durante su ciclo de vida y en respuesta a eventos. En estos diagramas se pueden mostrar los estados posibles de un objeto, los eventos que disparan transiciones entre estados, y las acciones que se deben dar al entrar o salir de un estado.

Actividad.– Los diagramas de actividad se utilizan para modelar flujos de trabajo. Son muy similares a los diagramas de flujo que conocemos tradicionalmente, salvo algunas capacidades adicionales como poder modelar actividades concurrentes, e indicar el flujo de objetos de entrada o salida hacia una actividad.

Elementos Adicionales
Además de los diagramas y sus elementos, UML define algunos mecanismos auxiliares para organización y extensión. Los más comunes son:

Paquetes.– Un paquete es un mecanismo para agrupar y organizar los elementos de un modelo.

Notas.– Permite incluir comentarios sobre uno o más elementos.

Estereotipos.– Este es un mecanismo de extensión, que permite crear nuevos tipos de elementos a partir de elementos existentes. Estos nuevos tipos pueden estar personalizados o restringidos a algún dominio específico. Los estereotipos se representan a través de etiquetas encerradas por los caracteres “<< >>”. Opcionalmente los estereotipos también pueden tener íconos especiales.

Estos son los elementos básicos de UML. En esta ocasión los hemos revisado a un nivel muy superficial. Para poder manejarlos adecuadamente, es necesario que los estudiemos más y practiquemos su uso. En artículos próximos iremos profundizando al respecto. ¡Hasta entonces ...!

Referencias:
• Sitio Oficial de UML. www.uml.org www.uml.org