11.07.2015 Aufrufe

ODL-Sprachkonstrukte und interaktive Benutzerschnittstelle - TUM

ODL-Sprachkonstrukte und interaktive Benutzerschnittstelle - TUM

ODL-Sprachkonstrukte und interaktive Benutzerschnittstelle - TUM

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

20 KAPITEL 3: GRUNDLAGEN VON <strong>ODL</strong>– result has SomeRelation( entity, object )für die Erstellung oder Veränderung einer Relation– result not has SomeRelation( entity, object )für das Löschen einer RelationDie Veränderung bzw. das Löschen einer Relation hat, abhängig von der Art der Relation, folgendeAuswirkungen:– Für eine einwertige Assoziationen, d.h., eine Assoziation zu höchstens einer anderen Entität,wird die Entität object zu der Entität entity assoziiert bzw. wird die Assoziationgelöscht.– Für eine mehrwertige Assoziation wird die Entität object in die Kollektion der zuentity assoziierten Entitäten eingetragen bzw. aus dieser Kollektion entfernt.– Wenn SomeRelation ein Attribut ist, so wird der Wert object als Attributwert fürSomeRelation gespeichert. Das Löschen eines Attributs hat keine Auswirkung – derAttributwert bleibt unverändert.Zur Veranschaulichung wollen wir wir folgende Beispiele für Relationsmodifikationen betrachten:– Attributtest <strong>und</strong> Attributzuweisung:exists p:Port.( is Name( p, ”out” ) andresult has Name( p, ”outPort” ) )Hier werden alle Ports mit dem Namen ”out” zu ”outPort” umbenannt.– Test, Erstellen <strong>und</strong> Löschen einer Assoziation:Mit der Abfragecontext c1:Component. context c2:Component.(exists c:Component.( is SubComponents( c1, c ) andresult not has SubComponents( c1, c ) andresult has SubComponents( c2, c ) ) )werden für zwei vom Benutzer ausgewählte Komponenten alle Unterkomponenten aus derersten Komponente in die zweite verschoben.– Einfügen einer neuen Entität ins Modell:Um eine Entität ins Modell einzufügen, muss sie mit dem new-Quantor erstellt <strong>und</strong> anschließendeiner Eigentümer-Komponente zugewiesen werden. Betrachten wir als Beispieldas Einfügen einer neuen Komponente:context ownerComp:Component. context name:String.new comp:Component.(result has Name( comp, name ) andresult has SubComponents( ownerComp, comp ) )Der Benutzer wählt eine Komponente, in welche die neue Komponente als Unterkomponenteeingefügt werden soll, <strong>und</strong> gibt den Namen für die neue Komponente ein. Anschließendwird eine neue Komponente erstellt, ihr wird der vom Benutzer eingegebeneName zugewiesen <strong>und</strong> schließlich wird sie in die Kollektion der Unterkomponenten derspezifizierten Eigentümer-Komponente eingefügt.Weitere Details zur ersten Implementierung des <strong>ODL</strong>-Interpreters finden sich in [Pasch].

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!