Tabla de contenidos
Tabla de contenidos
Diagrama de clases UML
Cuando se construye una casa o edificio, arquitectos e ingenieros elaboran un conjunto de planos para visualizar todos los aspectos de la construcción antes de que comience cualquier trabajo. Los diagramas de clases del lenguaje de modelado unificado (UML) cumplen la misma función que un plano, pero para el desarrollo de software.
Así como no construirías una casa sin un plano, no es buena idea construir un sistema sin un diagrama UML durante su inicio y actualización. Los diagramas de clases UML forman parte de una serie de diagramas UML que visualizan diferentes aspectos del desarrollo, todos utilizando el mismo lenguaje para una interpretación más sencilla.
Introducción al diagrama de clases UML
Los diagramas de clases son uno de varios tipos de diagramas estructurales de UML. Los diagramas estructurales muestran la estructura estática de un sistema, en lugar de mostrar cómo cambia un objeto con el tiempo.
Los diagramas de clases visualizan las clases de un sistema y las relaciones entre ellas.
En diseño orientado a objetos, las clases crean y operan objetos. Los objetos son instancias de clases. Por lo tanto, las clases son elementos de alto nivel esenciales de un sistema. Se derivan durante el diseño y se utilizan para comunicarse sobre el diseño o los cambios en el diseño.
En un diagrama de clases, los nombres de las clases son los mismos que los nombres de los objetos porque el propósito de una clase es definir los atributos y operaciones para cada instancia de objeto en el sistema. Una clase es un modelo para un objeto, y un diagrama de clases es el modelo estático del sistema.
En el desarrollo de software, los diagramas de clases UML no existen por sí solos. Dependen de los diagramas de casos de uso y están estrechamente vinculados a los diagramas de objetos y comunicación. Juntos, todos los diagramas UML modelan, conceptualizan y documentan el funcionamiento de un sistema antes, durante y después de la implementación.
¿Qué es una clase en UML?
Una clase es un elemento de modelado que define las características del objeto que representa, incluidos sus atributos y comportamientos.
Tomemos como ejemplo la clase 'Car'. 'Car' tiene un conjunto de atributos estáticos, como marca, modelo, año y color. La clase 'Car' también tiene métodos (cosas que los coches pueden hacer) como acelerar, desacelerar, detenerse y arrancar. Dado que un objeto es una instancia de la clase: una instancia de objeto puede ser: Subaru, Forester, 2023, verde oscuro. En este ejemplo, los atributos de este coche son marca, modelo, año y color
¿Cuál es el propósito de los diagramas de clases UML?
Un diagrama de clases UML tiene dos propósitos principales como modelo estático de un sistema orientado a objetos:
- Visualizar las clases de un sistema y sus propiedades.
- Mostrar y analizar las relaciones entre las clases.
Además de estos, los diagramas de clases UML también son la base para los diagramas de componentes y despliegue que muestran los aspectos de hardware y software de un sistema.
Beneficios de los diagramas de clases UML
Los diagramas de clases UML son herramientas prácticas de modelado para construir una arquitectura de software. Junto con otros diagramas UML, los desarrolladores y las partes interesadas visualizan diferentes vistas de un sistema. Estos diagramas nos ayudan a entender cómo funciona el sistema, cómo se comporta y cómo se relacionan sus partes.
Crear diagramas de clases durante el diseño facilita el proceso de desarrollo al mostrar claramente las clases, sus atributos y sus métodos. También muestran cómo se relacionan las clases entre sí. Ver una construcción conceptual de un sistema antes de que se escriba cualquier código ayuda a los desarrolladores a comunicarse entre sí y con otras partes interesadas.
Los diagramas de clases también respaldan cambios en el sistema al mostrar un esquema de una aplicación completa. Aplicar cambios o adiciones a un diagrama de clases UML proporciona una vista previa de cualquier nueva clase y cómo el cambio impacta en las clases existentes.
Componentes clave de los diagramas de clases UML
Los diagramas de clases UML contienen clases y sus interacciones. Cada clase se muestra en un rectángulo que, de arriba a abajo, contiene el nombre de la clase, sus atributos y sus métodos. Solo el nombre de la clase es obligatorio. El nivel de detalle necesario determina si se muestran los atributos y métodos.
Las interacciones en un diagrama de clases UML muestran las relaciones entre las clases utilizando líneas y puntas de flecha. Las puntas de flecha tienen significados específicos para diferenciar entre los tipos de relaciones. Estas relaciones incluyen herencia, así como relaciones bidireccionales y unidireccionales. Las clases pueden agruparse en paquetes de clases que están estrechamente relacionadas.
Notaciones del diagrama de clases UML
La notación básica en un diagrama de clases UML incluye las etiquetas en los miembros de la clase, su visibilidad (quién puede acceder a ellos) y los paquetes eventuales. Al crear un modelo de clase UML, usa la fuente aprobada por la aplicación web, Open Sans. En general, los diagramas de clases UML siguen convenciones de estilo como camel case, donde se capitalizan la segunda palabra en adelante y no hay espacios entre las palabras.
Clases
El nombre de una clase refleja un objeto o nombre de entidad. El nombre de la clase va en el centro de la sección superior, en negrita y en mayúsculas. En el modelo, la sección del nombre de la clase es la única sección obligatoria en una clase. Las otras dos son opcionales, dependiendo del objetivo y vista del diagrama.
Atributos
La sección media del modelo incluye los atributos que describen las características estáticas de una clase que se aplicarán a las instancias de objetos definidos por esa clase. Imagina que estamos construyendo un diagrama de clases para visualizar la operación de un cajero automático. Los atributos de la clase TarjetaDeDébito son el número de tarjeta y el propietario; cada instancia tiene su propio número y propietario.
Métodos (operaciones y comportamientos)
La tercera sección del modelo de clase es lo que hace la clase. ¿Cuáles son las acciones que la instancia del objeto podrá realizar? En la clase TarjetaDeDébito, la operación sería algo así como dar acceso.
Visibilidad
Los signos de más y menos representan si los atributos y operaciones de una clase son públicos (visibles desde cualquier lugar dentro del sistema) o privados (visibles solo dentro de la clase). El signo de almohadilla indica visibilidad protegida.
Paquete
Un grupo de clases o un grupo de otros paquetes se visualizan como cajas con una etiqueta. El nombre del paquete va en la etiqueta y está en mayúsculas. Al usar paquetes, las clases no necesitan tener las tres secciones visibles en todo momento.
Notaciones de relación del diagrama de clases UML
Los modelos de diagrama de clases UML se conectan visualmente utilizando líneas, notaciones textuales y números de multiplicidad. La siguiente lista cubre las notaciones de relación básicas necesarias para crear un diagrama de clases UML para su sistema.
Todas las notaciones de relación, excepto la Realización, involucran un nombre escrito junto a la línea y en el lado de la clase a la que pertenece. Mantenga todos los tamaños de texto equilibrados y las líneas ordenadas para lograr un diagrama fácil de leer.
Asociación
Una asociación conecta dos clases en cualquier conexión lógica, es la notación de relación más utilizada y se ve como una línea recta. Las asociaciones son inherentemente bilaterales, lo que significa que ambas clases asociadas saben que existe la otra clase. Cuando la asociación es unilateral, tiene una punta de flecha plana que se ve diferente de la herencia triangular y la punta de realización.
N-ary determina las asociaciones que conectan más de dos modelos de clases. La siguiente asociación N-ary a binaria es la asociación ternaria. Estas notaciones son líneas conectadas con un diamante vacío en la conjunción.
Agregación y composición
La agregación y la composición son subconjuntos de la relación de asociación.
La relación de agregación conecta clases usando una línea recta y una forma de diamante hueco junto a la clase principal. En la agregación, las clases secundarias existen independientemente de la principal. Si se elimina la clase principal, la clase secundaria continúa existiendo.
La composición es lo opuesto. Cuando dos clases se conectan con una notación de composición usando una línea recta y una forma de diamante llena, no existen de forma independiente. Cuando se elimina la clase principal, también lo es la secundaria.
Asociación reflexiva
La asociación reflexiva es la única asociación unilateral disponible en los diagramas de clases. Están compuestos por una línea recta que hace un bucle junto al modelo de clase. Su propósito es visualizar una relación entre una instancia de clase y otra instancia de la misma clase.
Herencia y generalización
La notación de herencia o generalización visualiza una relación entre clases que heredan propiedades. Una relación de herencia se visualiza con una línea recta y una forma de triángulo hueco apuntando a la clase independiente.
Dependencia
Las notaciones de dependencia se visualizan con una línea escalonada y una punta de flecha simple que identifica la dirección de la relación. Al igual que la notación de herencia, la flecha apunta desde la clase dependiente a su superclase. Los cambios que ocurran en la superclase provocarán cambios en la subclase.
Realización
Una relación de realización conecta una clase que realiza o implementa el comportamiento definido por otra. Los modelos en esta relación se llaman elementos proveedores y clientes o superclase y subclase. El proveedor es la fuente y el cliente es el elemento de especificación. La notación de realización se visualiza con una línea escalonada y una forma de triángulo hueco.
Multiplicidad
La notación de multiplicidad es un conjunto de números colocados en la intersección de una línea de relación y un modelo de clase. La multiplicidad de las instancias define cuántas instancias de un objeto participan en una relación. Los dígitos muestran el número de instancias de una clase que están vinculadas a una instancia de otra clase. Se denotan de la siguiente manera:
0..1 = Cero o uno
1 = Solo uno
0..* = Cero o más
1..* = Uno o más
3 = Solo tres
0..5 = De cero a cinco
5..15 = De cinco a quince
¿Cómo hacer un diagrama de clases UML?
Ahora es el momento de crear tu propio diagrama de clases UML. Por supuesto, siempre puedes diagramar desde cero. Si eres nuevo en la creación de diagramas UML, lo mejor es utilizar una plantilla pre-diseñada con todas las formas de modelo y opciones de notación. Miro tiene una plantilla de diagrama de clases UML que sirve como base para cualquier diagrama de clases UML que necesites hacer.
Usando Miro, u otra herramienta de diagrama, sigue este tutorial paso a paso para hacer un diagrama de clases personalizado para conceptualizar y modelar visualmente un sistema.
Define las clases
Para definir estos objetos/clases, escribe un escenario de uso para tu sistema y extrae los sustantivos de la declaración. Un Cliente inserta su TarjetaDeDébito en el Cajero y retira Efectivo. Los sustantivos en negrita son los objetos y, por lo tanto, también las clases.
Crea un modelo de tres partes para cada clase y agrega los nombres en la sección superior. Puedes acceder a formas de clases pre-diseñadas en Miro a través de la pestaña de diagramación a la izquierda. Crea los modelos pero no conectes nada todavía hasta que tengas todas las clases.
Describe los atributos de la clase
En el segundo compartimento de cada modelo de clase, añade los atributos. Los atributos del modelo de clase Cajero son la ubicación, el ID de la máquina y el banco que lo gestiona. Hasta ahora, la clase Cajero con la lista de atributos se ve así:
Cajero
+location : dirección
+machineId : entero
+managedBy : cadena
Añade los métodos de clase (operaciones)
En el tercer compartimento, añade las operaciones para cada clase en una lista, al igual que los atributos. Para la clase Cajero, una operación podría ser que lee la tarjeta, identifica una transacción y pide un PIN. Ahora el modelo de clase se ve así:
Cajero
+location : dirección
+machineId : entero
+managedBy : cadena
+readsCard
+identifiesTransaacción
#preguntaporcódigo
Visualiza las relaciones y la multiplicidad
Organiza los modelos de clase en tu tablero Miro para comenzar a asociarlos y visualizar las relaciones. Elige el tipo de línea que quieras del panel de objetos y selecciona el estilo de línea y el final de línea según la relación.
Añade los roles y los números de multiplicidad a lo largo de las líneas haciendo clic en el botón +T en el menú de objetos. Ajusta su posición y tamaño en consecuencia.
Manténlo vivo
Los diagramas de clases UML no son mapas fijos, son mecanismos vivos que te ayudan a visualizar un sistema en cualquier punto, desde su inicio hasta su implementación y más allá. Cuando creas un diagrama de clases UML con Miro, siempre puedes volver a él y revisar cualquier cambio antes de modificar cualquier código en el sistema.