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.
Das Diagramm dient in erster Linie dazu, einen groben Überblick über die<br />
Navigationsmöglichkeiten im PVS zu liefern. Es erhebt nicht den Anspruch auf<br />
Vollständigkeit, insbesondere fehlt die Angabe von Navigationseigenschaften,<br />
Selektionsausdrücken, Guards etc. . Wenn im Folgenden einzelne Aspekte der<br />
Systemmodellierung detailliert diskutiert werden, wird jeweils ein geeigneter Ausschnitt des<br />
Diagramms näher beleuchtet und mit zusätzlichen Informationen versehen. Das Diagramm<br />
fungiert also als Referenzpunkt, um nachfolgende Diskussionen in den<br />
Gesamtzusammenhang einordnen zu können.<br />
Navigationsknoten in oranger Farbe können von beliebigen Benutzern angesteuert werden,<br />
weiß-gelbliche Knoten sind nur Nutzern zugänglich, die im System eingeloggt sind. Knoten<br />
in brauner Farbe schließlich können nur von anonymen Usern erreicht werden. Die<br />
besonderen Privilegien dieser Benutzergruppe beschränken sich ausschließlich auf die Login-<br />
Funktionalität des Systems – sinnvollerweise wird bereits eingeloggten Benutzern diese<br />
Möglichkeit nicht geboten.<br />
4.3 Vererbung im Navigationsmodell<br />
Navigationsklassen sind Knoten in der Navigationsstruktur eines <strong>Web</strong>systems, an denen<br />
Informationen für die spätere Darstellung auf der <strong>Web</strong>oberfläche bereitgestellt werden. Ist<br />
eine Navigationsklasse (über den Tagged Value contentClass) mit einer Klasse des<br />
Inhaltsmodells verbunden, so dient die Navigationsklasse zur Repräsentation der Daten dieser<br />
Klasse. In der Navigationsklasse werden üblicherweise mehrere Navigationseigenschaften<br />
definiert, um zu spezifizieren, welche Daten für die spätere Darstellung im<br />
Präsentationsmodell relevant sind. Als Datengrundlage für eine «navigationProperty»<br />
dient wiederum die jeweilige Instanz der Inhaltsklasse, mit der die Navigationsklasse<br />
verbunden ist. Entweder ist eine «navigationProperty» direkt mit einem Attribut der<br />
Inhaltsklasse verbunden, oder ihr Wert wird über eine selectionExpression<br />
festgelegt, d.h. über einen Selektionsausdruck, mit dem durch Bezugnahme auf die aktuelle<br />
Inhaltsklassen-Instanz ein Wert bestimmt wird 24 .<br />
Im PVS z.B. dient die Navigationsklasse Publication zur Bereitstellung von<br />
Detailinformationen über eine einzelne Publikation. Dementsprechend ist sie über den Tagged<br />
Value contentClass mit der gleichnamigen Klasse Publication des Inhaltsmodells<br />
verknüpft und bietet Navigationseigenschaften an, um alle Attribute der Inhaltsklasse für das<br />
Präsentationsmodell verfügbar zu machen.<br />
Bei dieser Konstruktion ist prima facie nicht klar, wie mit Vererbungshierarchien im<br />
Inhaltsmodell umgegangen wird, deren Subklassen jeweils unterschiedliche Attribut-<br />
Strukturen aufweisen. Denn die Inhaltsklassen-Instanzen, die als Eingabe der<br />
Navigationsklasse Publication dienen, können im konkreten Fall - in Übereinstimmung<br />
mit dem Substitutionsprinzip der objektorientierten Modellierung - Instanzen einer Subklasse<br />
von (content::)Publication sein. Und soll navigation::Publication zur<br />
Repräsentation aller dieser Subklassen dienen, so muss sie für alle Attribute aller Subklassen<br />
von content::Publication Navigationseigenschaften bereitstellen. Dies führt jedoch<br />
offensichtlich zu Definitionslücken: Ist z.B. die aktuelle Eingabe von<br />
navigation::Publication vom (dynamischen) Typ content::TechReport, so<br />
wird sich für die Navigationseigenschaft series kein geeigneter Wert finden lassen. Denn<br />
24 Siehe [23], S.8f oder [22], S.27 für detailliertere Ausführungen<br />
29