Tutorial de diagrama de clases en UML: Definición, símbolos y relaciones

Apréndelo todo sobre los diagramas de clases en UML, su definición, notaciones, símbolos, relaciones, ejemplos y cómo hacerlos.

banner
Diagrama de clases en UML

Los diagramas de clases en UML nos ayudan a entender cómo funciona el software. Muestran las partes de un sistema de software, lo que hace cada parte y cómo estas partes se conectan entre sí. Este tutorial facilita el aprendizaje sobre los diagramas de clases en UML Es ideal tanto para principiantes como para aquellos que ya tienen algunas nociones de software. Veremos qué son estos diagramas, los símbolos que usan y cómo leerlos. Esta guía es muy útil para cualquier persona que quiera mejorar en la creación de software.

En estos diagramas, vemos cómo las diferentes partes de un sistema funcionan juntas. Este tutorial explica las diferentes formas en que se pueden conectar las partes, como la asociación, la agregación y la herencia. Usamos ejemplos fáciles para mostrar estas ideas. Esto ayuda a cualquier persona que esté planeando un nuevo proyecto de software o tratando de entender uno ya existente. Esta guía te enseñará cómo elaborar diagramas de clases en UML de una forma sencilla.

En este artículo
  1. Qué es un diagrama de clases en UML
  2. Nociones y símbolos del diagrama de clases
  3. Relaciones entre clases
  4. Ejemplos de diagrama en UML
  5. Cómo dibujar un diagrama de clases
  6. Conclusión

Parte 1. Qué es un diagrama de clases en UML

Un diagrama de clases es uno de los tipos de diagramas en UML más utilizados en ingeniería de software. Los diagramas de clases son importantes, ya que proporcionan una representación visual de cómo funciona un programa de ordenador y detalles de los componentes de un programa de ordenador, junto con sus propiedades y métodos. A continuación se presentan los componentes principales de un diagrama de clases en UML:

Clase:

Representa un plano o plantilla para crear objetos.

Normalmente se representa como un rectángulo con tres compartimentos: el superior para el nombre de la clase, el del medio para los atributos y el inferior para los métodos u operaciones.

Atributos:

Representan las propiedades o características de una clase. Los atributos generalmente se enumeran en el compartimiento del medio del rectángulo de clase. Cada atributo tiene un nombre y un tipo.

Operaciones/Métodos:

Representan las funciones o acciones que pueden ser realizadas por los objetos de una clase. Se listan en el compartimento inferior del rectángulo de clase. Cada operación tiene un nombre, parámetros y un tipo de retorno.

Relaciones:

La relación entre clases en UML se refiere a la asociación o conexión establecida entre diferentes clases dentro de un sistema. Estas relaciones definen cómo las clases interactúan entre sí, intercambian información y contribuyen a la funcionalidad general del sistema.

Parte 2. Nociones y símbolos del diagrama de clases

Los diagramas en UML utilizan formas específicas para especificar objetos. A continuación vamos a ver cómo se representan las clases con la ayuda de una clase Persona y su relación con Dirección.

▪ Representación de una clase

Una clase es un componente básico en un diagrama de clases en UML. Una clase está representada por un rectángulo. El nombre de la clase aparece en la parte superior del rectángulo con un separador debajo. A continuación se muestra una representación de un diagrama de clases de Persona

Notación de persona de diagrama de clases en UML

▪ Atributos de clases

Ahora que tenemos una forma de clase con el nombre de la clase en la parte superior, es hora de agregar los atributos de la clase. Los atributos son propiedades de la clase. Recuerda que la clase es un plano. Así que cualquier instancia de la clase tendrá su propio conjunto de atributos.

Los atributos se muestran como en la segunda partición debajo del título de la clase. Los nombres de atributos se muestran con el tipo de atributo después de dos puntos. Estos atributos corresponden a variables miembro (miembros de datos) en el código.

Así que una instancia de Persona puede tener estos atributos, por ejemplo: Nombre, Fecha de nacimiento, Género, Dirección y así sucesivamente. A continuación se muestra cómo se puede representar una instancia de Person usando una forma UML:  

Notación de atributos de clase de diagrama de clases en UML

▪ Métodos

Se supone que cada clase debe funcionar de una manera y cumplir una funcionalidad específica. Estos métodos se especifican en la forma de clase debajo de la partición de atributos. Supongamos que nuestra Persona puede realizar una rutina diaria, entonces el método realizarutinadiaria podría agregarse en la forma de clase como:

Notación de métodos de diagrama de clases en UML

Ten en cuenta que si el método devuelve cualquier valor, entonces se muestra por tipo después de dos puntos.

• Visibilidad

En los lenguajes de programación orientada a objetos, es posible alterar la visibilidad, tanto de los atributos como de los métodos, para que puedan ser expuestos al mundo exterior, dentro de la herencia o simplemente visibles dentro de la clase.

  • Público: Está representado por (+)
  • Privado: Está representado por (-)
  • Protegido: Está representado por (#)

Ahora que sabemos cómo definir clases en el diagrama de clases en UML, veamos qué tipo de información es realmente necesario que se muestre en el diagrama en UML.

Parte 3. Relaciones entre clases

En los diagramas en UML las relaciones entre las clases se expresan mediante una flecha. 

Herencia

Esta es probablemente la relación más utilizada en UML. Se puede definir como:

Conexión entre la totalidad y sus componentes, de tal manera que los componentes derivan las propiedades de sus clases padres.

Notación de relación de herencia de diagrama de clases en UML

En el contexto de UML (siglas en inglés de Unified Modeling Language), la herencia, a menudo denominada generalización, delinea la conexión entre una superclase y su subclase. La superclase se conoce también como clase base, mientras que la subclase se denomina clase derivada. La subclase es capaz de incorporar información adicional a los elementos heredados de la superclase.

Composición

La composición se puede explicar brevemente como:

La conexión entre la totalidad y sus componentes es tal que son inseparables.

A continuación se muestra un ejemplo de cómo se ve la composición en el diagrama en UML:

Notación de relación de composición del diagrama de clases en UML

Se lee como: La clase de ordenador se compone de dispositivos de entrada y salida.

Agregación

La agregación indica una relación más débil que la composición, donde una clase está asociada con otra clase como una parte, pero la parte puede existir de forma independiente.

La conexión entre la totalidad y sus componentes permite la separación entre el total y sus partes.

Notación de relación de agregación de diagrama de clases en UML

Ahora el Estudiante depende de la información del Semestre y de la Dirección. Sin embargo, el Estudiante puede existir sin tener estos elementos de información. Cualquier instancia de Estudiante puede tener Semestre o Dirección o ninguno de ellos y, aún así, existir.

Asociación

La asociación es otra relación utilizada en los diagramas en UML. Representa una relación genérica entre clases, que indica que de alguna manera están conectadas o interactúan unas con otras.

En el contexto UML, una propiedad de la clase es responsable de mantener una referencia a o varias instancias de otra clase.

Notación de relación de asociación de diagrama de clases en UML

Dependencias

  • Una conexión de dependencia significa una relación de "uso", lo que supone que las alteraciones en una entidad pueden afectar a otras que dependen de ella. El término "dependencia" se emplea cuando es esencial para indicar que una entidad utiliza a otra.
Notación de relación de dependencia de diagrama de clases en UML

Interfaz/Implementación

La interfaz es la forma en que cambiamos o modificamos el comportamiento de una clase a otra. Aquí no necesitamos heredar todos los atributos de la clase base. Más bien implementamos una interfaz que le da a cualquier clase la adopción necesaria.

Esto significa que se implementa una interfaz o se realiza una clase abstracta por otra clase.

Notación de relación de implementación de diagrama d eclases en UML

Perspectivas de los diagramas de clases

No siempre mostramos toda la información en el diagrama de clases en UML. De una necesidad a otra y de un caso a otro los detalles de una clase se pueden mostrar en el diagrama.

En términos generales, puede haber tres formas de crear diagramas de clases en UML:

  1. Concepto: Solo se refiere a los aspectos principales del negocio.
  2. Especificación: Ees más detallado que un diagrama de clases en UML conceptual y aquí mostramos los detalles de una clase en el diagrama.
  3. Implementación: Esta es una forma bastante detallada de crear un diagrama de clases en UML.

Ten en cuenta que la clase Persona depende de otra clase llamada Dirección. De aquí es de donde las relaciones vienen en los diagramas en UML. Esto es lo que vamos a ver a continuación.

Parte 4. Ejemplos de diagrama en UML

Diagrama de clases en UML de un sistema de pedidos

1. Este diagrama de clases cumple con el propósito de realizar un pedido en cualquier tienda de compras y luego verificarlo.

2.Hay esencialmente ocho tipos de clases, que son:

① Cliente: Un cliente consiste en nombre y dirección. Un cliente realiza un pedido en el sistema y lo verifica. Un cliente puede realizar un pedido, varios o ninguno.

② Pedido: Un pedido define la acción del cliente en la tienda. El pedido comprende la fecha y el estado del pedido, y puede calcular los totales y los impuestos. Un pedido debe contener uno o más detalles del pedido.

③ Detalle del pedido: Cada pedido consta de varias líneas llamadas Detalle del pedido. Aquí definimos la cantidad y la situación fiscal de esa línea. Una instancia de detalle de pedido solo puede tener un artículo.

④ Artículo: Para cada línea de pedido hay un artículo. Un artículo puede tener peso de envío y descripción.

⑤ Pago: En nuestro sistema, un cliente puede realizar un pedido que comprenda múltiples artículos. Estos conforman los detalles del pedido y luego un cliente puede pagar a través de Pago. Puede haber tres tipos de pago, cada uno con sus propios atributos: efectivo, cheque y tarjeta de crédito.

Diagrama en UML de Supermercado:

1. Se puede utilizar para mostrar el proceso de cualquier negocio minorista, incluidos supermercados o tiendas de comercio electrónico en línea.

2. El caso de uso que resuelve para cualquier negocio minorista es cómo realizar la facturación.

3. Hay esencialmente cinco clases:

① Facturación del supermercado: Este es el corazón del diagrama en UML, donde realmente tiene lugar la funcionalidad.

② Clientes: Se factura a un cliente por una compra.

③ Compra: Una compra es lo que el Cliente hace en el supermercado. La compra depende de otra entidad llamada Tarifas.

④ Tarifas: Aquí definimos el precio de diferentes artículos en nuestro mercado.

⑤ Inventario: El inventario se actualiza cada vez que se produce una facturación en nuestra tienda de compras.

Parte 5. Cómo dibujar un diagrama de clases

Dibujar un diagrama de clases implica representar la estructura de un sistema ilustrando sus clases, atributos, métodos y relaciones.

No importa qué software utilices o si estás dibujando a mano o no, los pasos y los conceptos generalmente seguirán siendo los mismos.

Aquí hay una guía paso a paso:

  1. Identifica las Clases:
  • Identifica las clases principales en tu sistema. Estos suelen ser los sustantivos en tu dominio del problema.
  • Considera qué atributos (datos) y métodos (funciones) podría tener cada clase.
  1. Crea cajas de clase:
  • Dibuja una caja para cada clase. Coloca el nombre de la clase en la parte superior de la caja.
  1. Agrega Atributos y Métodos:
    • Dentro de cada caja de clase, enumera los atributos y los métodos.
    • Los atributos generalmente se muestran con sus tipos de datos.
    • Los métodos se enumeran con sus parámetros y tipos de retorno.
  2. Dibuja relaciones:
  • Identifica las relaciones entre las clases. Las relaciones comunes incluyen asociación, agregación y composición.
  • Utiliza líneas con puntas de flecha para representar estas relaciones.
  • Etiqueta las líneas con multiplicidad (por ejemplo: 1, *, 0..1) para indicar cuántos objetos están involucrados.
  1. Considera la multiplicidad:
  • Define cuántas instancias de una clase están relacionadas con una instancia de otra. La multiplicidad se representa a menudo cerca de los extremos de las líneas de asociación.
  1. Incluye la Herencia:
  • Si tu sistema implica herencia (es decir, una clase que hereda de otra), represéntalo usando una flecha con un triángulo hueco que apunta a la superclase.
  1. Considera la visibilidad:
  • Opcionalmente, puedes usar símbolos como '+' (público), '-' (privado) y '#' (protegido) para denotar la visibilidad de atributos y métodos.
  1. Revisa y refina:
  • Asegúrate de que tu diagrama de clases refleje con precisión las relaciones y la estructura de tu sistema.
  • Refina según sea necesario, en función de los comentarios o los cambios en los requisitos.

Parte 6. Conclusión

Los diagramas de casos de uso son indispensables en el modelado y diseño de sistemas. Mejoran la comunicación, aumentan la comprensión del sistema y apoyan la gestión efectiva de proyectos. Siguiendo esta guía completa, puedes aprovechar el poder de los diagramas de casos de uso y aplicarlos a varios dominios para garantizar que tus proyectos estén bien estructurados y tengan éxito.

edrawmax logoEdrawMax Escritorio
Alternativa más fácil a Visio
Crea más de 210 tipos de diagramas
Disponible para Windows, Mac y Linux
Más de 10.000 plantillas y 26.000 símbolos gratis
Más de 10 generadores de diagramas con IA
Seguridad de datos de nivel empresarial
edrawmax logoEdrawMax Online
Edita diagramas en cualquier momento y lugar
Crea más de 210 tipos de diagramas
Seguridad de datos a nivel empresarial
Gestión y colaboración de equipos
Nube personal e integración con Dropbox

Edraw
Edraw May 27, 24
Compartir el artículo:
diagrama de ia
EdrawMax: ¡La opción inteligente para diagramas!