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.

Propósitos de los diagramas de clases
- Mostrar la estructura estática de los clasificadores en el sistema
- Proporciona una notación fundamental para otros diagramas estructurales de UML
- Muy útil para desarrolladores y otros miembros del equipo
- 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:
- Nombre de clase
- El nombre de clase aparece en el primer compartimento.
- 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.
- 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.

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):
|
![]() |
Asociación simple:
|
![]() |
Agregación:
|
![]() |
Composición:
|
![]() |
Dependencia:
|
![]() |
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.

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

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 | Sí | Sí | Sí | Sí |
| Miembros de las clases derivadas | Sí | No | Sí | Sí |
| Miembros de cualquier otra clase | Sí | 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.

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.

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.

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.

A partir del ejemplo anterior, podemos interpretar el diagrama de la siguiente manera:
- Shape es una clase abstracta. Se muestra en cursiva.
- 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.
- Existe una asociación entre DialogBox y DataController.
- Shape es parte de Window. Esta es una relación de agregación. Shape puede existir sin Window.
- Point es parte de Circle. Esta es una relación de composición. Point no puede existir sin Circle.
- Window depende de Event. Pero Event no depende de Window.
- Los atributos de Circle son radio y centro. Es una clase concreta.
- Los métodos de Circle son area(), circum(), setCenter() y setRadius().
- El parámetro radius en Circle es de tipo float.
- El método area() en Circle devuelve un valor de tipo double.
- 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
Descarga gratis




