I objektorienteret programmering betyder en association et forhold mellem klasser af objekter, der tillader en instans af et objekt at kalde en anden til at udføre en handling på dets vegne. Det er et strukturelt forhold, fordi det definerer et forhold mellem objekter af en art og objekter af en anden art og ikke modellerer adfærd .
Kausalitet omtales normalt med de generiske termer "afsende en besked", "kalder en metode" eller "kalder en medlemsfunktion" på det kontrollerede objekt. Typisk kræver en bestemt implementering, at det anmodende objekt påkalder en medlemsmetode eller -funktion ved at bruge en reference eller pointer til en hukommelsesplacering for det kontrollerede objekt.
Objekter, der er relateret gennem en tilknytning, anses for at spille roller med hensyn til tilknytningen, hvis objektets aktuelle tilstand i den aktive indstilling tillader andre tilknyttede objekter at bruge objektet på den måde, som er angivet af rollen. En rolle kan bruges til at skelne mellem to objekter af samme klasse, når de beskriver deres brug i sammenhæng med en tilknytning. En rolle beskriver de offentlige aspekter af et objekt i forhold til en forening [1] .