Rolf B: UIML Class Diagram Property Attribute

Beitrag lesen

Hallo MB,

ich habe auch mal gegoogelt. Demnach bezieht sich subsets auf Relationen und ist schon eine relativ spezielle Angelegenheit. Du solltest dich fragen, ob Du das wirklich brauchst. Subset bedeutet Teilmenge, du brauchst also Mengen (=Relationen). Ob es Ähnliches auch für enum-Attribute gibt, könnte ich mir vorstellen, habe es aber nicht gefunden. Bei Relationen spielen folgende Komponenten mit:

  • eine Beziehung zwischen Klasse A und Klasse B (1:1, 1:N, N:1 oder M:N dürfte egal sein)
  • eine von A abgeleitete Klasse C
  • eine von B abgeleitete Klasse D
  • eine 1:N Beziehung zwischen Klasse C und D

Unklar ist mir hier noch, ob es hierbei um eine zusätzliche Beziehung geht, die in C und D modelliert ist, oder um die von C und D geerbte Beziehung.

Jedenfalls habe ich daraus das Folgende verstanden, was aber auch völlig falsch sein kann:

Mit subsets soll ausgedrückt werden, dass die Einträge in der Beziehungsrelation C-D eine Teilmenge der Einträge in der Beziehungsrelation A-B darstellen. Dieser Satz ergibt am meisten Sinn dann, wenn C-D die geerbte Relation A-B ist, denn nur dann ist eine solche Zusatzangabe überhaupt nötig. Eine explizte Angabe in C (hat Relation zu D) bedeutet ja, dass ich da nur Objekte vom Typ D hineinbekomme. Wenn C dagegen von A die Angabe (hat Relation zu B) erbt, dann kann ich einem C auch eine Relation zu B anhängen, womit es vielleicht nichts anfangen kann.

Ob dein Herbstmonat dafür ein gutes Beispiel ist, weiß ich nicht. Wenn Du eine Klasse "Monat" hast und davon den "Herbstmonat" ableitest, dann müsste man zum einen überlegen, was mit September und Dezember ist - das sind ja nicht nur Herbstmonate. Aber nehmen wir einfach den größeren Anteil, dann wären das Okt, Nov und Dez.

Nun nehmen wir noch eine Klasse Ferien. Ferien finden in bestimmten Monaten statt. Wir könnten also eine M:N Beziehung Ferien zu Monate vorsehen. Diese Beziehung wird von Herbstferien und Herbstmonat geerbt, rein technisch könnte ich also den Herbstferien den März zuordnen. Fachlich ist das aber falsch, darum modelliere ich ein Subset und sage: Herbstferien passen zur zu Herbstmonaten.

Ich stelle hier nicht die Frage nach der Sinnhaftigkeit einer solchen Detaillierung von Ferien und Monaten, sondern setze einfach voraus, dass es einen Usecase gibt, der das benötigt. Sonst hätte ich mich von deinem Beispiel komplett entfernen müssen. Statt Ferien und Monaten könnte man auch Fahrzeuge (PKW und LKW) und Bremsen (PKWBremsen und LKWBremsen) nehmen - ich kann in einen PKW keine LKW-Bremse einbauen und mutmaßlich haben diese Bremsentypen auch unterschiedliche Attribute.

Rolf

--
sumpsi - posui - clusi