Diagramas de Clase UML
1. Estructura de un diagrama de Clase #
Una clase UML se representa mediante un rectángulo dividido en tres secciones:
- Nombre de la clase (en negrita)
- Atributos
- Métodos
Por convención, los atributos y métodos llevan antes un símbolo de visibilidad:
+público (public)-privado (private)#protegido (protected)~de paquete (package/internal)
Ejemplo UML: #
2. Tipos de Visibilidad #
| Símbolo | Visibilidad | Acceso desde: |
|---|---|---|
+ | public | cualquier parte del programa |
- | private | solo desde dentro de la clase |
# | protected | clase y subclases |
~ | package | clases del mismo paquete (Java) |
3. Tipos de Relaciones #
Asociación #
- Representa una relación genérica entre dos clases.
- Ejemplo: una persona tiene un perro.
Agregación #
- Representa una relación "todo-parte" donde las partes pueden existir por separado.
- Ejemplo: un equipo está formado por jugadores, pero estos existen fuera del equipo.
Composición #
- Relación fuerte de "todo-parte". Las partes no pueden vivir sin el todo.
- Ejemplo: una casa tiene habitaciones que desaparecen con ella.
Herencia (Generalización) #
- Una clase hija hereda atributos y comportamientos de una clase padre.
Implementación (Interfaces) #
- Una clase se compromete a implementar métodos definidos por una interfaz.
Dependencia #
- Indica que una clase usa otra de forma temporal o puntual (parámetros, variables locales, etc.).
4. Clases Abstractas #
Una clase abstracta no se puede instanciar directamente. Sirve como plantilla para otras clases.
5. Métodos y Atributos Estáticos #
Un atributo estático pertenece a la clase, no a sus instancias. Lo mismo con los métodos estáticos. Se representa subrayado el elemento.
6. Enumeraciones #
Las enumeraciones definen un conjunto fijo de valores posibles.
7. Multiplicidad y Navegabilidad #
La multiplicidad indica cuántas instancias de una clase pueden estar asociadas a otra.
| Notación UML | Significado |
|---|---|
1 | uno |
0..1 | cero o uno |
0..* | cero o muchos |
1..* | uno o muchos |
Resumen del tema
Conceptos clave #
- Estructura y visibilidad: representación de clases en 3 bloques (Nombre, Atributos, Métodos) con modificadores
+(público),-(privado),#(protegido) y~(paquete). - Relaciones estructurales básicas:
- Asociación (
-->): relación estructural genérica de uso entre clases. - Dependencia (
..>): relación temporal o puntual donde una clase requiere de otra como parámetro o variable local.
- Asociación (
- Agregación vs Composición:
- Agregación (
o--): relación débil "todo-parte" donde las partes pueden existir independientemente del todo. - Composición (
*--): relación fuerte "todo-parte" con ciclo de vida vinculado (la destrucción del todo destruye las partes).
- Agregación (
- Herencia e Implementación: generalización (
<|--) para extender clases y realización (<|..) para implementar contratos de interfaces. - Multiplicidad y miembros estáticos: definición de cardinalidad (
1,0..1,1..*,0..*), elementos estáticos subrayados y clases abstractas no instanciables.
Qué debes recordar #
El diagrama de clases es el núcleo del diseño estático orientado a objetos; distingue con precisión entre agregación (rombo vacío) y composición (rombo relleno), y refleja con exactitud la visibilidad y multiplicidad.