| |
18 Angenommene Spezifikation UML Ocl 2,0 Der Vor-Ausdruck self.manager wird verwendet, wie eingestellt, weil der Pfeil benutzt wird, um das foo zugänglich zu machen Eigenschaft auf dem Satz. Dieses Ausdruck ist, weil foo falsch nicht ist eine definierte Eigenschaft des Satzes. Kontext- Firma inv : self.manager.age > 40 Der Vor-Ausdruck self.manager wird als Person verwendet, weil der Punkt benutzt wird, um das Alter zugänglich zu machen Eigenschaft der Person. Im Fall von einer wahlweise freigestellten Verbindung (mit 0,,1 Vielfältigkeit), ist dieses besonders nützlich, zu überprüfen, ob es einen Gegenstand oder nicht gibt wenn die Verbindung gesteuert wird. Im Beispiel können wir schreiben: Kontext Person inv : self.wife->notEmpty() deutet an self.wife.gender = Gender::female Kombinieren Der Eigenschaften Eigenschaften können kombiniert werden, um schwierigere Ausdrücke zu bilden. Eine wichtige Richtlinie ist daß ein OCL-Ausdruck immer wertet zu einem spezifischen Gegenstand einer spezifischen Art aus. Nachdem es ein Resultat erreicht hat, kann man eine andere Eigenschaft an immer anwenden Resultat zum Erhalten eines neuen Resultatswertes. Folglich kann jeder OCL-Ausdruck gelesen werden und wertete von links nach rechts verlaufendes aus. Das Folgen sind etwas invariants, daß Gebrauch Eigenschaften auf dem Beispielkategoriendiagramm kombinierte: [ 1 ] Verheiratete Leute sind vom Alter > = 18 Kontext Person inv : self.wife->notEmpty() deutet an self.wife.age > = 18 und self.husband->notEmpty() deutet an self.husband.age > = 18 [ 2 ] hat eine Firma höchstens 50 Angestellte Kontext Firma inv : self.employee->size() < = 50 7,5,4 Navigation zu den Verbindungskategorien , um Navigation zu den Verbindungskategorien zu spezifizieren (Job und Verbindung im Beispiel), verwendet OCL einen Punkt und den Namen von Verbindungskategorie beginnend mit einem Kleinbuchstaben: Kontext Person inv : self.job Der Vor-Ausdruck self.job wertet zu einem Satz aller Jobs aus, die eine Person mit den Firmen hat, die his/her Arbeitgeber sind. In der Fall von einer Verbindungskategorie, dort ist kein ausdrückliches rolename im Kategoriendiagramm. Der Namenß$+0 job verwendet in dieser Navigation ist der Name der Verbindungskategorie beginnend mit einem Kleinbuchstaben, ähnlich der Weise, die im Abschnitt beschrieben wird "fehlendes AssociationEnd nennt" oben. |  |
|
| |
|
|