¿Qué es un diagrama de clases?

En ingeniería de software, unLenguaje Unificado de Modelado (UML) diagrama de clases es undiagrama estructural estático que describe la estructura de un sistema mostrando sus clases, sus atributos, operaciones (o métodos) y las relaciones entre objetos.

Class diagram in UML diagram hierarchy

Propósitos de los diagramas de clases

  1. Mostrar la estructura estática de los clasificadores en el sistema
  2. Proporciona una notación fundamental para otros diagramas estructurales de UML
  3. Muy útil para desarrolladores y otros miembros del equipo
  4. Los analistas de negocios pueden usar diagramas de clases para modelar sistemas desde una perspectiva de negocio

Los diagramas de clases de UML consisten en:

  • Un conjunto de clases
  • Un conjunto de relaciones entre clases

¿Qué es una clase?

Una descripción de un grupo de objetos con roles similares, incluyendo:

  • Características estructurales (atributos): define lo que los objetos de la clase “saben”
    • Representa el estado del objeto
    • Describe la estructura o características estáticas de la clase
  • Características comportamentales (operaciones): define lo que los objetos de la clase “pueden hacer”
    • Definen cómo interactúan los objetos
    • Describe el comportamiento o características dinámicas de la clase

Notación de clase

La notación de clase consta de tres partes:

  1. Nombre de clase
    • El nombre de clase aparece en el primer compartimento.
  2. Atributos de clase
    • Los atributos se muestran en el segundo compartimento.
    • El tipo se muestra después de dos puntos.
    • Los atributos se corresponden con variables miembro (miembros de datos) en el código.
  3. Operaciones de la clase (métodos)
    • Las operaciones se muestran en el tercer compartimento. Representan los servicios proporcionados por la clase.
    • El tipo de retorno aparece después de dos puntos al final de la firma del método.
    • Los tipos de parámetros aparecen después de dos puntos tras el nombre del parámetro.
    • Las operaciones se corresponden con métodos de clase en el código.

Simple class

Representación gráfica de la clase MiClase como se muestra arriba:

  • MiClase tiene 3 atributos y 3 operaciones
  • El parámetro p3 de op2 es de tipo int
  • op2 devuelve un float
  • op3 devuelve un puntero (indicado por *) a Clase6

Relaciones de clase

Una clase puede estar involucrada en una o más relaciones con otras clases. Las relaciones pueden ser de los siguientes tipos: (Consulte la imagen de la derecha para representaciones gráficas).

Tipo de relación Diagrama
Herencia (o generalización):

  • Representa una relación de “es-un”.
  • Los nombres de clases abstractas se muestran en cursiva.
  • SubClase1 y SubClase2 son especializaciones de SuperClase.
  • Línea sólida con una punta de flecha abierta que apunta desde la subclase hacia la superclase.
Inheritance
Asociación simple:

  • Un enlace estructural entre dos clases equivalentes.
  • Existe una asociación entre Clase1 y Clase2.
  • Línea sólida que conecta las dos clases.
Simple association
Agregación:

  • Un tipo especial de asociación que representa una relación de “parte-de”.
  • La clase2 es parte de la clase1.
  • Múltiples instancias de la clase2 (indicadas por *) pueden estar asociadas con la clase1.
  • Los objetos de la clase1 y la clase2 tienen ciclos de vida independientes.
  • Diamante abierto en el extremo de la clase compuesta.
Aggregation
Composición:

  • Un tipo especial de agregación en la que las partes se destruyen cuando se destruye el todo.
  • Los objetos de la clase2 viven y mueren con la clase1.
  • La clase2 no puede existir de forma independiente.
  • Diamante sólido en el extremo de la clase compuesta.
Composition
Dependencia:

  • Existe entre dos clases si un cambio en la definición de una clase puede causar un cambio en la otra (pero no al revés).
  • La clase1 depende de la clase2.
  • Línea punteada con una flecha abierta.
Dependency

Nombres de relación

  • Los nombres de relación se escriben en medio de la línea de asociación.
  • Los buenos nombres de relación tienen sentido al leerlos en voz alta:
      • “Cada hoja de cálculo contiene algunas celdas”

    <li>Expresión se evalúa a un valor”

  • A menudo tienen una pequeña flecha que indica la direcciónde lectura, por ejemplo, la expresión se evalúa a valor, pero el valor no se evalúa a expresión.

Relationship name

Relación – Roles

  • El rol define el propósito de la dirección en una asociación.
  • El rol se escribe al final de la línea de asociación y describe el papel que una clase desempeña en esa relación.
    • Por ejemplo, Cell está relacionado con Expression. La naturaleza de la relación es que Expression es la fórmulade la celda.

Visibilidad de los miembros de la clase

En el diseño orientado a objetos, se representa la visibilidad de atributos y operaciones. UML define cuatro tipos de visibilidad: pública, protegida, – indica atributo o operación privada, y paquete.

Los símbolos +, -, # y ~ antes de los nombres de atributos y operaciones indican visibilidad:

  • + indica atributo o operación pública
  • – indica atributo o operación privada
  • # indica atributo o operación protegida
  • ~ indica atributo o operación de paquete

Ejemplo de visibilidad de clase

Simple class

En el ejemplo anterior:

  • attribute1 y op1 de MyClassName son públicos
  • attribute3 y op3 son protegidos
  • attribute2 y op2 son privados

Los permisos de acceso para diferentes miembros de la clase se muestran a continuación:

Nivel de acceso Público (+) Privado (-) Protegido (#) Paquete (~)
Miembros de la misma clase
Miembros de las clases derivadas No
Miembros de cualquier otra clase No No Solo mismo paquete

Multiplicidad

La multiplicidad indica cuántos objetos de una clase participan en una relación. Puede expresarse como:

  • Exactamente 1 – 1
  • Cero o uno – 0..1
  • Muchos – 0..* o *
  • Uno o más – 1..*
  • Número exacto – por ejemplo, 3..4 o 6
  • Relación compleja – por ejemplo, 0..1, 3..4, 6* significa cualquier número excepto 2 o 5

Ejemplo de multiplicidad

  • Requisito: Un estudiante puede inscribirse en muchos cursos, y muchos estudiantes pueden inscribirse en un curso.
  • En el ejemplo siguiente, eldiagrama de clases (izquierda) describe el modelo estático del requisito anterior, mientras que el diagrama de objetos (derecha) muestra una instantánea del registro de cursos (instancia del diagrama de clases) para cursos de ingeniería de software y gestión de bases de datos.

Object diagram

Ejemplo de agregación – Computadora y componentes

  • La agregación es un caso especial de asociación que representa una jerarquía de “contiene”.
  • La agregación es la clase padre, y componente es la clase hija.

Aggregation example

Ejemplo de herencia – Clasificación celular

  • La herencia es otro caso especial de asociación que representa una jerarquía de “tipo de”.
  • La herencia simplifica el modelo de análisis al introducir una taxonomía.
  • Las subclases heredan atributos y operaciones de la superclase.

Inheritance example

Diagrama de clases – Ejemplo de herramienta de diagramas

Los diagramas de clases pueden incluir notas adjuntas a clases o relaciones. Las notas se muestran en gris.

Class diagram example

A partir del ejemplo anterior, podemos interpretar el diagrama de la siguiente manera:

  1. Shape es una clase abstracta. Se muestra en cursiva.
  2. Shape es una superclase. Círculo, Rectángulo y Polígono heredan de Shape. En otras palabras, un Círculo es una Shape. Esta es una relación de generalización/herencia.
  3. Existe una asociación entre DialogBox y DataController.
  4. Shape es parte de Window. Esta es una relación de agregación. Shape puede existir sin Window.
  5. Point es parte de Circle. Esta es una relación de composición. Point no puede existir sin Circle.
  6. Window depende de Event. Pero Event no depende de Window.
  7. Los atributos de Circle son radio y centro. Es una clase concreta.
  8. Los métodos de Circle son area(), circum(), setCenter() y setRadius().
  9. El parámetro radius en Circle es de tipo float.
  10. El método area() en Circle devuelve un valor de tipo double.
  11. Los atributos y métodos de Rectangle están ocultos. Algunas otras clases en el diagrama también ocultan sus atributos y métodos.

Manejo de sistemas complejos – ¿Múltiples o un solo diagrama de clases?

Al modelar sistemas grandes o grandes dominios empresariales, deben considerarse muchas entidades. ¿Debemos usar múltiples diagramas de clases o uno solo? La respuesta es:

  • Es mejor utilizar múltiples diagramas de clases en lugar de modelar cada entidad y sus relaciones en un solo diagrama.
  • Dividir el sistema en múltiples diagramas de clases facilita su comprensión, especialmente cuando cada diagrama es una representación visual de una parte específica del sistema.

Perspectiva de los diagramas de clases en el ciclo de vida del desarrollo de software

Los diagramas de clases pueden utilizarse en diferentes etapas del Ciclo de vida del desarrollo de software (SDLC), y normalmente se modelan progresivamente tres niveles diferentes de detalle (perspectivas):

Perspectiva conceptual: El diagrama se interpreta como una descripción de cosas en el mundo real. Por lo tanto, si comienzas desde una perspectiva conceptual, dibujas un diagrama que representa conceptos en el dominio que se está estudiando. Estos conceptos se relacionan naturalmente con las clases que los implementan. Esta perspectiva es considerada como independiente del lenguaje.
Perspectiva de especificación: El diagrama se interpreta como una descripción de abstracciones de software o componentes con especificaciones e interfaces, sin comprometerse con una implementación específica. Por lo tanto, si abordas desde una perspectiva de especificación, estás estudiando interfaces de software en lugar de la implementación.
Perspectiva de implementación: El diagrama se interpreta como una descripción de una tecnología específica y lenguajeimplementación de software. Por lo tanto, si abordas desde una perspectiva de implementación, estás estudiando la implementación de software.

Prueba dibujar un diagrama de clases UML ahora

Has aprendido qué es un diagrama de clases y cómo dibujarlo. Es momento de dibujar el tuyo. Obtén la edición Comunidad de Visual Paradigm, una herramienta UML gratuita, y crea tu diagrama de clases utilizando la herramienta gratuita de diagramas de clases. Es fácil de usar e intuitivo.
Descarga gratis

 

Dejar una contestacion