Diagrama de Clases (Elementos - Otros)
Además de clases, atributos, operaciones y relaciones, los diagramas de clases UML pueden incluir una variedad de elementos adicionales que enriquecen la semántica y flexibilidad del modelado. Estos elementos permiten representar conceptos avanzados, patrones de diseño, plantillas, restricciones y otros aspectos estructurales del sistema (OMG, 2017; (Rumbaugh et al., 2007)).
1. Interfaces
Una interfaz es un tipo de clase abstracta que define un conjunto de operaciones sin implementación. Se representa con el estereotipo <<interface>>
o como un círculo conectado a las clases que la implementan.
interface Imprimible {
+imprimir(): void
}
class Documento implements Imprimible
Figura
Ejemplo de Interface
Nota: Imprimible es la interface
2. Clases Abstractas
Clases que no pueden ser instanciadas directamente y que suelen contener operaciones abstractas (sin implementación). Se representan con el nombre en cursiva o el estereotipo <<abstract>>
.
abstract class Figura {
+dibujar(): void
}
class Circulo extends Figura
Figura
Ejemplo Clase Abstracta
3. Enumeraciones
Las enumeraciones (<<enumeration>>
) definen un tipo de dato con un conjunto finito de valores posibles.
enum EstadoPedido {
PENDIENTE
ENVIADO
ENTREGADO
}
Figura
Ejemplo de Enumeraciones
4. Estereotipos
- Los estereotipos extienden la semántica de UML, permitiendo clasificar elementos (ejemplo:
<<entity>>
,<<persistent>>
).
5. Notas y Restricciones
- Las notas (
note
) permiten añadir comentarios o aclaraciones en el diagrama. - Las restricciones se expresan entre llaves
{}
y pueden incluirse sobre atributos, operaciones o relaciones, (ejemplo:{not null}
,{visible}
, etc.)
Figura
Ejemplo de Notas y Restricciones
6. Compartimentos Adicionales
Además de atributos y operaciones, una clase puede mostrar compartimentos personalizados, como responsabilidades, reglas, historias de modificación, etc.
7. Otros Elementos y Relaciones Relevantes
- Paquetes: Agrupan clases y otros elementos para modularidad.
- Dependencias: Indican relaciones de uso o vinculación entre elementos.
- Clases anidadas: Clases definidas dentro de otras clases para encapsular lógica interna.
- Metaclases: Clases cuyos objetos son clases, usadas en metamodelado (
<<metaclass>>
).
8. Ejemplo
Figura
Ejemplo