08.12.2012 Aufrufe

2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...

2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...

2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!