Gestrichelte Linien deuten Abhängigkeiten, durchgezogene Linien Assoziationen an. Ein Dreieck als Pfeilspitze steht üblicherweise für eine Generalisierung. In dem gezeigten Bild handelt es sich jedoch nicht um Vererbung sondern um Implementierung, erkennbar an den gestrichelten Linien. Eine normale Pfeilspitze deutet die Richtung an.
Eine Abhängigkeit ist nicht automatisch eine Instanz- oder Klassenvariable, sondern kann z. B. auch in Form eines Methodenparameters, eines Rückgabewerts oder aber auch durch lokale Verwendung eines Typs entstehen.
Konnkret würde ich das Bild wie folgt interpretieren:
a) Effizienzvergleicher hängt ab von Naiv, Zahlensack, Auswahl und Permutation
b) Naiv, Auswahl und Permutation implementieren das Interface Zahlensack
c) Lotto hängt ab von Zahlensack und Auswahl
Eigentlich würde ich davon ausgehen, dass die Abhängigkeiten zwischen Effizienzvergleicher und den Klassen Naiv, Auswahl und Permutation über das Interface Zahlensack entkoppelt werden. Das kann jetzt verschiedene Gründe haben, warum diese trotzdem gezeigt werden: entweder gibt es sie tatsächlich oder das Diagramm dient einem anderen Zweck als dem Entwurf.