Logo DIE

UML

Unidad de Apoyo para el Aprendizaje

Iniciar

Introducción


Para analizar y diseñar una solución de software dentro del paradigma orientado a objetos se cuenta con UML (lenguaje de modelado unificado o unified modeling language, por sus siglas en inglés). Normalmente, cuando se construye una solución de software se realizan diversos bosquejos de la solución desde distintos ángulos: de forma macro como una entidad, por actividades y roles, por componentes de software, de red, entre otros. Todas estas visiones o bosquejos de la solución se pueden crear utilizando UML.

Para poder diseñar una solución de alguno o algunos bosquejos es primordial conocer los distintos diagramas que posee UML para generar el diagrama correspondiente. El diagrama va a permitir documentar la solución del problema de manera gráfica, lo cual es útil tanto para los programadores (tienen una visión de la solución que se debe generar y los componentes de ésta) como para los administradores o líderes del proyecto (tienen la documentación con la solución del sistema). He ahí la utilidad del diagramado con UML.





Utilizar el lenguaje UML como herramienta para diseñar soluciones de software en el lenguaje de programación orientado a objetos.

UML


UML está compuesto por un conjunto de lenguajes que permiten modelar la solución de un sistema (crear el diseño de la solución). Con los diagramas UML se pueden cubrir distintos aspectos necesarios en el diseño de soluciones, desde diversos focos (se puede ver a nivel usuarios, a nivel de clases, a nivel de objetos, a nivel de componentes de software, a nivel de interacción entre objetos, etcétera).

Diagrama de bloques

Lenguajes involucrados en el diseño de UML



UML genera una solución gráfica y visual del problema, lo que hace más fácil entender cómo se debe abordar la solución de la aplicación. A través de estas soluciones gráficas se pueden mostrar características muy específicas del sistema: clases, objetos, atributos, métodos, comunicación, por mencionar algunas. Y entonces a la vez que se genera una solución del problema se genera la documentación, es decir, como la solución se describe de forma gráfica (los diagramas), esta solución permite ver cómo se resolvió el problema y queda documentado en los mismos diagramas.

De forma general, los diagramas UML están compuestos por elementos (representaciones de objetos) y por las relaciones entre ellos.

Diseño estático o de estructura

Los diagramas estáticos o estructurales aportan una visión fija del sistema. Los diagramas que permiten modelar estas características para un lenguaje orientado a objetos son:



Diagrama de casos de uso

Un diagrama de caso de uso define la manera en la que el usuario del sistema interactúa con éste. Los diagramas de casos de uso permiten modelar el comportamiento de un sistema, un subsistema o, incluso, una clase. Está compuesto por tres elementos básicos:

Diagrama de bloques



Por lo tanto, para generar un diagrama de casos de uso hay que identificar a los actores o roles que van a interactuar con el sistema, las actividades dentro del sistema, así como los permisos (relaciones) que tendrá cada actor con los casos de uso.

Diagrama de casos de uso

Diagrama de casos de uso



Diagrama de clases

Un diagrama de clases permite modelar las características de las clases que componen al sistema. Dentro de cada clase se pueden visualizar los atributos y métodos que contiene la clase. El conjunto de clases permite observar las relaciones que existen entre ellas dentro del sistema.

Los diagramas de clase están compuestos por tres elementos básicos:

Diagrama de bloques



Los diagramas de clase permiten visualizar un panorama general del sistema, así como de la comunicación que se requiere entre las diferentes clases.

Diagrama de bloques

Diagrama de clases.



Diagrama de objetos

Los diagramas de objetos modelan las instancias generadas a través de las clases y se utilizan para describir al sistema en un instante de tiempo o acción en particular.

Permiten mostrar los objetos y las relaciones entre ellos en un momento dado, por lo tanto, representa la parte estática de la interacción entre objetos (una situación específica en un momento determinado).

Los elementos utilizados para generar este tipo de diagramas son:

  • Objetos

  • Asociaciones

Los diagramas de objetos permiten conocer los valores (estado) que pueden tener los objetos en un instante de tiempo, así como su relación con otros objetos.

Diagrama de objetos

Diagrama de objetos





Diseño dinámico o de comportamiento


Los diagramas dinámicos o de comportamiento permiten visualizar la comunicación entre elementos del sistema para un proceso específico, los diagramas que permiten modelar estas características para un lenguaje orientado a objetos son:



Diagrama de estados

Los diagramas de estados describen las transiciones por las que puede pasar un objeto durante su tiempo de vida en la aplicación, así como la manera en la que cambia de estado el objeto.

Los elementos de un diagrama de estados son:

Diagrama de bloques



Un diagrama de estados permite modelar el comportamiento de un objeto de manera autómata, viendo todas las posibles transiciones que puede generar.

Diagrama de estados

Diagrama de estados



Diagrama de actividades

El diagrama de actividades muestra el flujo de acciones (operaciones que se ejecutan) y los objetos involucrados. Permite visualizar el orden en el que se van realizando tareas dentro de un sistema, así como los objetos involucrados en la comunicación.

Los componentes básicos de un diagrama de actividades son:

Diagrama de bloques

Un diagrama de actividades permite ver la comunicación que tienen de manera interna las actividades que puede realizar un objeto, ya sea con métodos propios del objeto (secuencial) o con otros objetos.

Diagrama de bloques

Diagrama de actividades

Diagrama de interacción

Estos diagramas representan la comunicación que se lleva a cabo entre un cliente (actor) o un objeto (clase) cuando se ejecuta una acción en el sistema.

Los elementos básicos de los diagramas de interacción son:

Diagrama de bloques



Los diagramas de interacción, a su vez, se dividen en dos tipos:

Los diagramas de secuencia muestran una interacción ordenada de eventos, visualizando los objetos participantes en cada interacción, así como los mensajes que intercambian entre ellos.

Los diagramas de secuencia permiten ver la interacción que se genera al ejecutar una acción, así como los objetos involucrados en el proceso.

Diagrama de secuencia

Diagrama de secuencia

Los diagramas de colaboración muestran la interacción entre varios objetos y el orden que existen entre ellos. La secuencia de los mensajes y los flujos de ejecución concurrentes se determinan mediante números secuenciales.

Un diagrama de comunicación permite visualizar la interacción que se presenta en un proceso en particular e identificar los objetos involucrados y el orden de invocación.

Diagrama de comunicación

Diagrama de comunicación

ícono

Actividad. Identificación de diagramas UML

UML es un lenguaje que permite la documentación de sistemas de manera gráfica, esto sirve para que cualquier usuario con poco conocimiento del sistema pueda entenderlo y, por lo tanto, expandirlo o darle mantenimiento.

ícono

Autoevaluación. Diagramas UML

Para crear una aplicación se debe iniciar con la etapa de análisis, para determinar los requerimientos del usuario. Después se pasa a la etapa de diseño, donde se genera la solución del problema en alto nivel. Es en esta etapa donde los diagramas UML tienen su razón de ser.

Los diagramas UML permiten diseñar la solución del problema de forma gráfica. Los diagramas pueden incluir el funcionamiento de la aplicación a nivel de clases, el modelado de la aplicación a nivel de usuarios o roles, la arquitectura de hardware a ocupar, los componentes de software del sistema, etc.

Todos los diagramas mencionados se pueden crear utilizando UML. Además, estos diagramas le sirven al programador para que pueda implementar la solución en un lenguaje de programación, pero también le sirven al líder de proyecto y al cliente como documentación del sistema.


Fuentes de información

Gomaa, H. (2011). Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures. Washington: Cambridge University Press.

Miles, R. y Hamilton, K. (2006). Learning UML 2.0. Boston: O Reilly Media.

Schmuller, J. (2000) Aprendiendo UML en 24 horas. México: Prentice Hall.


Cómo citar


Solano, J. A. (2020). UML. Unidades de Apoyo para el Aprendizaje. CUAED/Facultad de Ingeniería-UNAM. Consultado el (fecha) de (vínculo)