Tutorial de diagrama de clases UML con ejemplos

¿Qué es la clase?

Una clase es un plano que se utiliza para crear un objeto. La clase define qué puede hacer el objeto.

¿Qué es el diagrama de clases?

El DIAGRAMA DE CLASES UML brinda una descripción general de un sistema de software al mostrar clases, atributos, operaciones y sus relaciones. Este diagrama incluye el nombre de la clase, los atributos y la operación en compartimentos designados separados.

Class Diagram define los tipos de objetos en el sistema y los diferentes tipos de relaciones que existen entre ellos. Ofrece una vista de alto nivel de una aplicación. Este método de modelado se puede ejecutar con casi todos los métodos orientados a objetos. Una clase puede referirse a otra clase. Una clase puede tener sus objetos o puede heredar de otras clases.

Class Diagram ayuda a construir el código para el desarrollo de la aplicación de software.

En este tutorial, aprenderá:

  • ¿Qué es la clase?
  • ¿Qué es el diagrama de clases?
  • Beneficios del diagrama de clases
  • Elementos esenciales de un diagrama de clases UML
    • Nombre de la clase
    • Atributos:
    • Relaciones
  • Agregación frente a composición
  • Clases abstractas
  • Ejemplo de diagrama de clases UML:
  • Diagrama de clases en el ciclo de vida del desarrollo de software:
  • Mejores prácticas de diseño del diagrama de clases

Beneficios del diagrama de clases

  • Class Diagram Ilustra modelos de datos incluso para sistemas de información muy complejos
  • Proporciona una descripción general de cómo está estructurada la aplicación antes de estudiar el código real. Esto puede reducir fácilmente el tiempo de mantenimiento.
  • Ayuda a comprender mejor los esquemas generales de una aplicación.
  • Permite dibujar gráficos detallados que resaltan el código que se debe programar
  • Útil para desarrolladores y otras partes interesadas.

Elementos esenciales de un diagrama de clases UML

Los elementos esenciales del diagrama de clases UML son:

  1. Nombre de la clase
  2. Atributos
  3. Operaciones

Nombre de la clase

El nombre de la clase solo es necesario en la representación gráfica de la clase. Aparece en el compartimento superior. Una clase es el plano de un objeto que puede compartir las mismas relaciones, atributos, operaciones y semántica. La clase se representa como un rectángulo, incluido su nombre, atributos y operaciones en compartimentos separados.

Se deben tener en cuenta las siguientes reglas al representar una clase:

  1. El nombre de una clase siempre debe comenzar con una letra mayúscula.
  2. El nombre de una clase siempre debe estar en el centro del primer compartimento.
  3. El nombre de una clase siempre debe escribirse en negrita .
  4. El nombre de una clase abstracta debe escribirse en cursiva.

Atributos:

Un atributo se denomina propiedad de una clase que describe el objeto que se modela. En el diagrama de clases, este componente se coloca justo debajo del compartimento de nombres.

Un atributo derivado se calcula a partir de otros atributos. Por ejemplo, la edad del estudiante se puede calcular fácilmente a partir de su fecha de nacimiento.

Características de los atributos

  • Los atributos generalmente se escriben junto con el factor de visibilidad.
  • Público, privado, protegido y paquete son las cuatro visibilidades que se indican con los signos +, -, # o ~ respectivamente.
  • La visibilidad describe la accesibilidad de un atributo de una clase.
  • Los atributos deben tener un nombre significativo que describa su uso en una clase.

Relaciones

Hay principalmente tres tipos de relaciones en UML:

  1. Dependencias
  2. Generalizaciones
  3. Asociaciones

Dependencia

Una dependencia significa la relación entre dos o más clases en la que un cambio en una puede forzar cambios en la otra. Sin embargo, siempre creará una relación más débil. La dependencia indica que una clase depende de otra.

En el siguiente ejemplo, Student tiene una dependencia de College

Generalización:

Una generalización ayuda a conectar una subclase con su superclase. Una subclase se hereda de su superclase. La relación de generalización no se puede utilizar para modelar la implementación de la interfaz. El diagrama de clases permite heredar de múltiples superclases.

En este ejemplo, la clase Student se generaliza a partir de Person Class.

Asociación:

Este tipo de relación representa relaciones estáticas entre las clases A y B. Por ejemplo; un empleado trabaja para una organización.

Aquí hay algunas reglas para la Asociación:

  • La asociación es principalmente verbo o una frase verbal o sustantivo o frase nominal.
  • Debe nombrarse para indicar el papel que desempeña la clase adjunta al final de la ruta de asociación.
  • Obligatorio para asociaciones reflexivas

En este ejemplo, se muestra la relación entre el estudiante y la universidad, que son los estudios.

Multiplicidad

Una multiplicidad es un factor asociado con un atributo. Especifica cuántas instancias de atributos se crean cuando se inicializa una clase. Si no se especifica una multiplicidad, por defecto uno se considera como multiplicidad por defecto.

Digamos que hay 100 estudiantes en una universidad. La universidad puede tener varios estudiantes.

Agregación

La agregación es un tipo especial de asociación que modela una relación de partes enteras entre el agregado y sus partes.

Por ejemplo, la universidad de la clase se compone de uno o más estudiantes. En agregación, las clases contenidas nunca dependen totalmente del ciclo de vida del contenedor. Aquí, la clase universitaria permanecerá incluso si el estudiante no está disponible.

Composición:

La composición es un tipo especial de agregación que denota una fuerte propiedad entre dos clases cuando una clase es parte de otra clase.

Por ejemplo, si la universidad está compuesta por clases de estudiantes. La universidad puede contener muchos estudiantes, mientras que cada estudiante pertenece a una sola universidad. Entonces, si la universidad no está funcionando, todos los estudiantes también se eliminan.

Agregación frente a composición

Agregación

Composición

La agregación indica una relación en la que el niño puede existir por separado de su clase principal. Ejemplo: automóvil (padre) y automóvil (hijo). Por lo tanto, si elimina el automóvil, el automóvil secundario seguirá existiendo.

Relación de visualización de composición en la que el hijo nunca existirá independientemente del padre. Ejemplo: casa (padre) y habitación (hijo). Las habitaciones nunca se separarán en una casa.

Clases abstractas

Es una clase con un prototipo de operación, pero no la implementación. También es posible tener una clase abstracta sin operaciones declaradas dentro de ella. Un resumen es útil para identificar las funcionalidades en las clases. Consideremos un ejemplo de una clase abstracta. Supongamos que tenemos una clase abstracta llamada como movimiento con un método o una operación declarada dentro de ella. El método declarado dentro de la clase abstracta se llama move () .

Este método de clase abstracta puede ser utilizado por cualquier objeto como un automóvil, un animal, un robot, etc. para cambiar la posición actual. Es eficaz utilizar este método de clase abstracta con un objeto porque no se proporciona ninguna implementación para la función dada. Podemos usarlo de cualquier manera para múltiples objetos.

En UML, la clase abstracta tiene la misma notación que la clase. La única diferencia entre una clase y una clase abstracta es que el nombre de la clase está escrito estrictamente en cursiva.

Una clase abstracta no se puede inicializar ni instanciar.

Notación de clase abstracta

En la notación de clase abstracta anterior, hay un único método abstracto que puede ser utilizado por múltiples objetos de clases.

Ejemplo de diagrama de clases UML

La creación de un diagrama de clases es un proceso sencillo. No implica muchos tecnicismos. Aquí hay un ejemplo:

El sistema de cajeros automáticos es muy simple ya que los clientes deben presionar algunos botones para recibir efectivo. Sin embargo, existen múltiples capas de seguridad que cualquier sistema de cajeros automáticos debe pasar. Esto ayuda a prevenir el fraude y proporciona dinero en efectivo o detalles necesarios a los clientes bancarios.

A continuación se muestra un ejemplo de diagrama de clases UML:

Diagrama de clases en el ciclo de vida del desarrollo de software

Los diagramas de clases se pueden utilizar en varias fases de desarrollo de software. Ayuda a modelar diagramas de clases en tres perspectivas diferentes.

1. Perspectiva conceptual: los diagramas conceptuales describen cosas en el mundo real. Debe dibujar un diagrama que represente los conceptos del dominio en estudio. Estos conceptos están relacionados con la clase y siempre son independientes del idioma.

2. Perspectiva de la especificación: La perspectiva de la especificación describe abstracciones o componentes de software con especificaciones e interfaces. Sin embargo, no se compromete a una implementación específica.

3. Perspectiva de implementación: este tipo de diagramas de clases se utiliza para implementaciones en un lenguaje o aplicación específicos. Perspectiva de implementación, uso para implementación de software.

Mejores prácticas de diseño del diagrama de clases

Los diagramas de clases son los diagramas UML más importantes que se utilizan para el desarrollo de aplicaciones de software. Hay muchas propiedades que deben tenerse en cuenta al dibujar un diagrama de clases. Representan varios aspectos de una aplicación de software.

A continuación, se muestran algunos puntos que deben tenerse en cuenta al dibujar un diagrama de clases:

  • El nombre dado al diagrama de clases debe ser significativo. Además, debe describir el aspecto real del sistema.
  • La relación entre cada elemento debe identificarse de antemano.
  • Es necesario identificar la responsabilidad de cada clase.
  • Para cada clase, se debe especificar un número mínimo de propiedades. Por lo tanto, las propiedades no deseadas pueden complicar fácilmente el diagrama.
  • Deben incluirse notas de usuario siempre que necesite definir algún aspecto del diagrama. Al final del dibujo, debe ser comprensible para el equipo de desarrollo de software.
  • Por último, antes de crear la versión final, el diagrama debe dibujarse en papel normal. Además, se debe volver a trabajar hasta que esté listo para la presentación final.

Conclusión

  • UML es el lenguaje estándar para especificar, diseñar y visualizar los artefactos de los sistemas de software.
  • Una clase es un plano para un objeto
  • Un diagrama de clases describe los tipos de objetos en el sistema y los diferentes tipos de relaciones que existen entre ellos.
  • Permite el análisis y diseño de la vista estática de una aplicación de software.
  • Los diagramas de clases son los diagramas UML más importantes que se utilizan para el desarrollo de aplicaciones de software.
  • Los elementos esenciales del diagrama de clases UML son 1) Clase 2) Atributos 3) Relaciones
  • Class Diagram proporciona una descripción general de cómo está estructurada la aplicación antes de estudiar el código real. Ciertamente reduce el tiempo de mantenimiento
  • El diagrama de clases es útil para mapear lenguajes de programación orientados a objetos como Java, C ++, Ruby, Python, etc.

Articulos interesantes...