In Klassendiagrammen können Mehrwertigkeiten bei Attributen und bei „structure types“ ausgedrückt werden, ohne eine neue Klasse anzulegen.
Beispiel:
Das Attribut PS (Programmiersprache) in einer Klasse ANGESTELLTE hat – wie Sie ja wissen – u.U. mehrere Ausprägungen. Z.B. wenn jemand, C, Java und PHP beherrscht. Dann kann dies ausgedrückt werden, indem bei diesem Attribut in der Klasse folgendes angegeben wird:
PS: string [1..*]
Mit dem Ausdruck [1..*] wird also ausgedrückt, dass ein Angestellter mindestens eine, evtl. aber auch mehrere Programmiersprachen beherrscht. Entsprechend würde
PS: string [*]
bedeuten, dass es auch Angestellte gibt, die keine PS beherrschen.
Genauso für „structure types“. Hier können wir angeben, dass u.U. mehrere dieser Informationen möglich sind.
Beispiel:
adresse: AdressenT [1..*]
Dies bedeutet, dass die Objekte der Klasse mindestens eine aber u.U. auch mehrere Adressen haben.
Mit dieser Ausdrucksform von Mehrwertigkeit werden die Klassendiagramme deutlich kleiner.