2016-05-02 13 views
1

Ist es in Übereinstimmung mit UML-Spezifikation für UML in Version 2.5 korrekt, Generalisierungsbeziehung zwischen UML-Enumeration und UML-Klasse zu modellieren? Auf Seite 166 gibt die Spezifikation an, dass "als eine Spezifikation von Classifier Enumerations an Generalisierungsbeziehungen teilnehmen können". Ist es jedoch richtig, eine Generalisierungsbeziehung zwischen Klasse und Aufzählung zu setzen? Wenn ja, wie sollte eine solche Aufzählung dann interpretiert werden?Generalisierung zwischen UML-Enumeration und Klasse

+0

Sie scheinen den Karren vor das Pferd zu setzen. Was ist der Grund dafür, diese Generalisierung zu versuchen? Das ist wichtiger als seltsame Konstrukte zu machen und nach ihrer Bedeutung zu fragen. –

Antwort

1

Nein, Sie können eine Aufzählung aus einer Klasse nicht verallgemeinern. Eine Enumeration ist ein Datentyp, der von Classifier erbt.

Ein Klassifizierer repräsentiert eine Klassifizierung von Objekten nach ihren Merkmalen. Klassifizierer werden durch Generalisierungen verknüpft.

Eine Klasse ist ein EncapsulatedClassifier.

Ein EncapsulatedClassifier kann Ports besitzen, um typisierte Interaktionspunkte anzugeben.

Eine Klasse kann nur eine Anzahl von Klassifizierern bilden.

Eine Klasse klassifiziert eine Gruppe von Objekten und legt die Merkmale fest, die die Struktur und das Verhalten dieser Objekte kennzeichnen. Eine Klasse kann eine interne Struktur und Ports haben.

Aus dem Meta-Modell:

enter image description here

+0

Vielen Dank für Ihre Antwort. Nur um das Problem vollständig zu erklären, bedeutet dies, dass die Gegenrichtung (Verallgemeinerung der Klasse aus der Aufzählung) ebenfalls verboten ist. Ist es richtig? – Annabelle

+1

Thomas, keines der Zitate liefert irgendwelche Beweise. Enumerationen, Datentypen und Klassen sind letztendlich alle Klassifikatoren, die, wie Sie angeben, durch Generalisierungen in Beziehung gesetzt werden können. Ich habe gerade die Spezifikation überprüft und war überrascht, keine Einschränkung feststellen zu können. Gibt es einen noch? –

+1

@ JimL. Classifier und EncapsulatedClassifier sind tatsächlich unterschiedliche Metatypen. Die Darstellung im Meta-Modell macht mir klar, dass eine Verallgemeinerung nicht sinnvoll ist. Class erstellt Classifier. –

Verwandte Themen