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
Antwort
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:
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
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? –
@ 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. –
- 1. Rekursionschemata Generalisierung von `tails`
- 2. C# OOP Zusammensetzung und Generalisierung zur gleichen Zeit
- 3. Wie kann man beim Entwerfen von Objekten und ihren Beziehungen zwischen Komposition und Generalisierung entscheiden?
- 4. Unterschied zwischen Klasse und Klasse <?>
- 5. Die Generalisierung des Bentley-Ottmann-Algorithmus
- 6. UML2 Klassendiagramm - eingebettete Notation für Generalisierung?
- 7. Wie gruppiert man die Generalisierung in UML?
- 8. Python ist der Unterschied zwischen Klasse (dict) und Klasse (str)
- 9. AngularJS, Unterschied zwischen ng-Klasse und Klasse mit Winkelausdruck?
- 10. Unterschied zwischen osv.osv Klasse und models.Model Klasse odoo 8
- 11. Was ist der Unterschied zwischen aufgeblähter Klasse und markierter Klasse?
- 12. Unterschied zwischen $ ("# id .class") und $ ("Klasse.", $ ("# Id"))
- 13. Unterschied zwischen abstrakten Klasse und Trait
- 14. Javafx Verknüpfung zwischen Klasse und Combobox
- 15. Unterschied zwischen Typ und Klasse in C++?
- 16. Unterschiede zwischen ItemizedOverlay und Overlay-Klasse
- 17. Konvertieren zwischen Scala-Klasse und Dynamic
- 18. Verbindung zwischen Klasse und primitiven Typen?
- 19. Kommunikation zwischen Service und eine Klasse
- 20. Unterschied zwischen einer Klasse und einem Modul
- 21. Querverweise zwischen Eltern und Kind Klasse
- 22. Unterschied zwischen Private Sub, Funktion und Klasse
- 23. Referenz Konvertierung zwischen Klasse und ihrer Schnittstelle
- 24. Der Unterschied zwischen Enum und Enum-Klasse?
- 25. Python: Übergeben von Werten zwischen Klasse und Instanz und Methoden
- 26. Was ist der Unterschied zwischen toggleClass ("Klasse"), attr ("Klasse", Klasse) und addClass in jQuery?
- 27. Beziehung zwischen Bytecodebefehle und Prozessoroperationen
- 28. Freigeben von Klasse/Methoden zwischen Windows Forms-Anwendung und Konsolenanwendung
- 29. Unterschied zwischen dem Laden einer Klasse und deren Instanziierung
- 30. Was ist der Unterschied zwischen Entity und Klasse?
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. –