2017-10-16 1 views
1

Wie UML 2.5 definiert, ist ObjectNode eine abstrakte Klasse. Zu meinem Verständnis kann eine abstrakte Klasse nicht instanziiert werden.Wie kann eine Notation für den ObjectNode existieren?

Warum gibt es eine grafische Notation für ObejctNode, da sie in einem Schema nicht instanziiert werden konnte? Siehe Abbildung 15.49 der UML-Spezifikation.

+0

toll, jemand hinzufügen 1 zu meiner Frage, gibt es eine Möglichkeit zu sehen, wer und warum? es ist ein bisschen seltsam, dass man abstimmen kann, ohne irgendeinen Kommentar zu posten, um seine Wahl zu vertreten, – granier

Antwort

2

Warum konnte es nicht?

Wenn eine abstrakte Klasse eine Notation definiert, bedeutet das einfach, dass dies die Notation ist, die von allen Unterklassen verwendet wird, außer sie definieren ihre eigene Notation und überschreiben die Notation der (abstrakten) Elternklasse.

Obwohl nicht explizit erwähnt, scheint es, dass dies der Notation eines Klassifikators sehr ähnlich ist. Aus den UML 2.5-Spezifikationen:

9.2.4.1 Sichter

Classifier ist eine abstrakte Metaklasse. Es ist jedoch praktisch, an einer Stelle eine Standardnotation zu definieren, die für irgendeine konkrete Unterklasse von Classifier verfügbar ist. Einige Spezialisierungen von Classifier haben ihre eigenen unterschiedlichen Notationen.

Ein weiteres ähnliches Konstrukt wurde für die abstrakte Meta-Klasse Aktion verwendet:

16.2.4.1 Aktionen

Aktionen werden als mit abgerundeten Ecken Rechtecke notiert, wie in Abbildung 16.2 gezeigt. Der Name der Aktion oder eine andere Beschreibung davon kann im Symbol erscheinen. (Specialized Notationen für bestimmte Arten von Aktionen sind in der nachfolgenden Unterabschnitten beschrieben.)

enter image description here

+0

ok, aber was könnte die Bedeutung sein, um eine abstrakte "Meta-Klasse" zu modellieren? Etwas wie "jetzt weiß ich nicht, welche konkrete Klasse zu verwenden und später oder woanders habe ich die konkrete Meta-Klasse definiert zu verwenden? – granier

+0

Und haben Sie eine Referenz von dem, was Sie vorgeschlagen? In der Spezifikation ist dies nicht geschrieben. Die grafische Die Darstellung einer Meta-Klasse scheint keine Eigenschaft der Meta-Klasse zu sein, weshalb sollten Metaklassen, die eine erweitern, standardmäßig die gleiche grafische Notation verwenden? – granier

+0

Sie können keine abstrakte Meta-Klasse modellieren, nur sie ist es konkrete Unterklassen, aber alle erben die Eigenschaften der abstrakten Meta-Klasse.Wenn Sie die Notation als eine Eigenschaft der Meta-Klasse sehen, die vererbt werden kann, dann ist das sinnvoll.Ich weiß nicht, ob oder wo das in beschrieben ist die specs. Sie müssen möglicherweise in den Meta-Spezifikationen suchen. –

-2

@granier, Sie sind das Richtige für mich ist es ein Tippfehler in der UML 2.5-Spezifikation. Objectode kann definitiv instanziiert werden.

+0

Ich bin mir ziemlich sicher, dass es kein Tippfehler ist. Wenn Sie die Erklärung lesen, wird sie oft erwähnt, einschließlich einer Liste konkreter Sub-Meta-Klassen. –

+0

Ich bin damit einverstanden, dass ObjectNode instanziiert werden kann. Aber Abbildung 15.49 zeigt die Metaklasse von ObjectNode in italique, was bedeutet, dass sie abstrakt ist und nicht instanziiert werden kann, was der Tippfehler ist. Gleiches gilt für Abbildung 1 mit Element, RelationShip und Kommentar. Element- und Relationship-Meta-Klassen sind in Italique, so dass sie nicht instanziiert werden können. Kommentar, eine Sub-Metaklasse von Element, ist nicht in italique, also ist es nicht abstrakt, so dass es instanziiert werden kann. –

+0

So basieren Sie diese Aussage auf der impliziten Argumentation, dass, wenn es eine Zahl in den Spezifikationen gibt, die einen ObjectNode zeigen, sie konkret sein müssen. Aber Sie ignorieren mehrere explizite Anweisungen, dass ObjectNode abstrakt ist? –

Verwandte Themen