Ben, rien de très compliqué à cela, quand tu as une flèche d'une classe A vers une classe B, cela signifique que la classe A possède dans son code au moins une référence vers la classe B. S'il n'y a pas de flèche cela signifique que les références peuvent aller dans les 2 sens et donc que B peut aussi posséder une référence vers A.
Quand tu as une cardinalité "1" du côté d'une classe A, alors cela signifie que la classe B peut référencer une et une seule instance de la classe A. Si tu as une cardinalité "*" du côté d'une classe B, cela signifie que la classe A peut référencer 0, 1, ou plusieurs instances de la classe B: typiquement ce sera une liste ou un tableau d'éléments de type B, liste ou tableau qui peut être vide.
Quand on a une cardinalité de type "0..1" du côté de la classe A, cela signifie que la classe B peut référencer 0 ou une seule instance de la classe A: dans le code c'est donc une référence simple qui peut éventuellement être null.
Dans tous ces derniers cas, je dis "peut" car souvent on se limite à mettre les références d'un seul côté (par exemple un contenant contient les références vers un ou plusieurs "contenus" et pas l'inverse). Après, tout dépend de l'interprétation et de ce que le code doit pouvoir faire.