2016-11-21 5 views
0

Ich muss ein UML-Diagramm machen, aber ich bin mir nicht sicher, wie ich ein bestimmtes Ding darin verwirklichen kann. Sagen wir, ich habe ein license als Objekt, das entweder ein terminal oder ein anywhere license sein kann. Es muss einer von ihnen sein und kann nichts davon sein. Ich dachte, das license Objekt, das mit anywhere license und terminal mit den Kardinalitäten 0..1 zu beiden verbunden ist. Ist das richtig? Sollte ich andere Kardinalitäten oder eine ganz andere Struktur haben?UML - wie man es zum richtigen Modell macht?

Antwort

1

Was Sie beschreiben, klingt eher wie eine Verallgemeinerung, wobei license eine abstrakte Klasse ist und terminal und anywhere license seine Spezialisierungen sind.

aber Sie könnten wollten haben gerade in der license ein location Attribut mit Werten terminal und anywhere license als mögliche Werte. Erstellen Sie dann die Enumeration LocationEnum mit den verfügbaren Werten terminal und anywhere license. Dann fügen Sie auf 'Lizenz‘Attribut:

location:LocationEnum 

dann Ihre location wird man von Werten in LocationEnum zur Verfügung haben müssen.

Ihre Frage kann auch auf andere Arten verstanden werden, aber das sind die wahrscheinlichsten Methoden, die eine geeignete Lösung sein werden. Welche zu wählen ist, hängt von mehr Modelldetails ab.

+0

gibt es eine Möglichkeit, es ohne Attribute auf 'Lizenz' zu tun? – XtremeBaumer

+0

Die erste Lösung (mit Generalisierung) verwendet keine Attribute. Da die Anforderungen nicht 100% ig klar sind, habe ich versucht, die vernünftigsten Lösungen anzubieten. Aber wie ich geschrieben habe, hängt die beste Lösung vom Rest des Modells ab. – Ister

Verwandte Themen