2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...
2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...
2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Es ist offensichtlich, dass eine Vererbungshierarchie im Navigationsmodell nur dann sinnvoll<br />
ist, wenn sie, wie im gerade vorgestellten Fall, von einer 'strukturgleichen'<br />
Vererbungshierarchie im Inhaltsmodell gestützt wird, wobei die Klassen der Inhaltshierarchie<br />
die Datengrundlage der Navigationshierarchie stellen. Präziser formuliert: Ist eine<br />
Navigationsklasse n2 Subklasse einer Navigationsklasse n1, so muss auch die mit n2<br />
verknüpfte Inhaltsklasse c2 eine Subklasse derjenigen Inhaltsklasse c1 sein, mit der n1<br />
verknüpft ist. Erfüllt n2 diese Bedingung nicht, so läuft man Gefahr, bei<br />
Navigationseigenschaften, die n2 von n1 erbt, auf Defnitionslücken der Art zu stoßen, wie sie<br />
weiter oben schon beschrieben wurden.<br />
Wird eine Navigationsklasse, die durch eine oder mehrere Subklassen spezialisiert ist, über<br />
einen Link erreicht, so muss in Abhängigkeit des Eingabeobjekts (welches der Link liefert)<br />
bestimmt werden, auf welche der Subklassen die Superklasse spezialisiert werden soll. Mit<br />
obiger Feststellung bzgl. der Grundvoraussetzung für eine Vererbungshierarchie im<br />
Navigationsmodell im Hinterkopf, lässt sich die Semantik einer solchen Konstruktion<br />
folgendermaßen definieren:<br />
Definition:<br />
Sei n0 eine Navigationsklasse mit Sub(navigations-)klassen n1,..,nm (ni paarweise verschieden<br />
für i = 0,...,m); sei c0 eine Klasse des Inhaltsmodells mit Sub(inhalts-)klassen c1,...,cm (ci<br />
paarweise verschieden für i = 0,...,m); für i = 0,...,m sei ci die mit ni verknüpfte Inhaltsklasse.<br />
Wird n0 über einen Link im Navigationsmodell aktiviert, und erhält sie über diesen Link ein<br />
Objekt o als aktuelle Eingabe, so wird die Spezialisierung von n0 folgendermaßen bestimmt:<br />
Sei cspec die speziellste Inhaltsklasse der ci, so dass der (dynamische) Typ von o gleich cspec<br />
oder eine Subklasse von cspec ist. Dann ist nspec die gesuchte Spezialisierung von n0.<br />
Bemerkungen zur Definition:<br />
• Die n1,..,nm bzw. c1,...,cm dürfen natürlich, wie z.B. im PVS-Inhalts- und<br />
Navigationsmodell, auf verschiedene Ebenen der Vererbungshierarchie verteilt sein, d.h.<br />
sie müssen nicht alle direkte Nachfahren von n0 bzw. c0 sein.<br />
• Die Definition verbietet nicht, dass nspec gleich n0 ist, d.h. dass eine triviale<br />
Spezialisierung auf die Superklasse selbst vorzunehmen ist. Dies ist dann der Fall, wenn<br />
der dynamische Typ von o gleich c0 ist.<br />
• Wie in den Voraussetzungen der Definition gefordert, müssen die ci paarweise<br />
verschieden sein. Ansonsten besteht die Gefahr, dass nspec nicht wohldefiniert ist, da der<br />
spec-Index in einem solchen Fall möglicherweise nicht eindeutig ist.<br />
• Bei Vererbungshierarchien, die Mehrfachvererbungsbeziehungen beinhalten, liefert diese<br />
Definition unter Umständen kein eindeutiges Resultat. Allerdings besteht diese Gefahr<br />
nur dann, wenn die Vererbungshierarchie im Inhaltsmodell nicht vollständig im<br />
Navigationsmodell abgebildet ist 28 .<br />
28 Dieser Fall ist eher technischer Natur und tritt im PVS nicht auf, weil die zweite der genannten Bedingungen<br />
nicht erfüllt ist. Deshalb wird hier darauf verzichtet, ihn im Detail darzulegen.<br />
31