# data[].attributes.body
Una realización es la relación entre una clase y una interfaz.

Una interfaz define las capacidades o habilidades de un objeto.

Ejemplo. El teclado de la computadora está basada en la presión de las teclas de igual forma que el teclado una máquina de escribir. La operación básica (teclazo) es común para ambos tipos de teclado, sin embargo el teclado de computadora tiene otras operaciones como ctrl, alt, etc. Podríamos decir que el teclado de la máquina de escribir es una interfaz del teclado de computadora pues define al habilidad de teclazo. Esto en UML ser representaría así:

# data[].attributes.body
Una generalización muestra que una clase hereda de otra clase. La clase que hereda se denomina descendiente. La clase heredada se denomina predecesor. La herencia significa que la definición del predecesor, incluidas todas las propiedades como, por ejemplo, atributos, relaciones u operaciones en sus objetos, también es válida para objetos del descendiente. La generalización se extrae de la clase descendiente a la clase predecesora.

# data[].attributes.body
En el sistema de máquina de reciclaje, todas las clases - Lata, Botella y Caja - describen tipos diferentes de elementos del depósito. Tiene dos propiedades comunes, a parte de ser del mismo tipo: cada una tiene una altura y un peso. Puede modelar las propiedades por medio de atributos y operaciones en una clase separada, Elemento de depósito. Lata, botella y caja heredan las propiedades de esta clase.

# data[].attributes.body
La dependencia es un atributo que se puede definir en la stanza Package del archivo SPD. Permite definir los requisitos previos de hardware y de software y las restricciones que han de evaluarse al ejecutar en el paquete los comandos install, commit, remove y undo.

# data[].attributes.body
Las expresiones de dependencia se evalúan al instalarse o validarse un paquete, al deshacerse una instalación y al eliminarse un paquete. En la instalación, la comprobación de dependencia evalúa la expresión de dependencia que se ha definido en el atributo de dependencia del paquete que está instalándose.

# data[].attributes.body
Las asociaciones se representan gráficamente por una línea continua que une ambas clases.

# data[].attributes.body
Las asociaciones representan relaciones estructurales entre objetos de diferentes clases; representan conexiones entre instancias de dos o más clases que existen para una cierta duración.

# data[].attributes.body
Los objetos deben mantener las referencias entre ellos para poder interactuar, por ejemplo, para enviarse mensajes; por lo tanto, en algunos casos las asociaciones pueden seguir los patrones de interacción de diagramas de secuencia o diagramas de comunicación.