| |
Angenommene Spezifikation UML Ocl 2,0 17 7,5,3 Eigenschaften: AssociationEnds und Navigation Abfahrend von einem spezifischen Gegenstand, können wir eine Verbindung auf dem Kategoriendiagramm steuern, um uns auf andere Gegenstände zu beziehen und ihr Eigenschaften. um so zu tun, steuern wir die Verbindung, indem wir das gegenüberliegende Verbindung-Ende verwenden: object.associationEndName Der Wert dieses Ausdruckes ist der Satz der Gegenstände auf der anderen Seite des associationEndName Verbindung. Wenn Vielfältigkeit des Verbindung-Endes hat ein Maximum von einem ("0,,1 "oder" 1"), dann ist der Wert dieses Ausdruckes ein Gegenstand. In das Beispielkategoriendiagramm, wenn wir im Kontext einer Firma beginnen (d.h., Selbst ist ein Fall der Firma), wir kann schreiben Sie: Kontext Firma inv : self.manager.isUnemployed = falsch inv : self.employee->notEmpty() Im ersten unveränderlichen self.manager ist eine Person, weil die Vielfältigkeit der Verbindung eine ist. Im zweiten unveränderlichen self.employee wertet in einen Satz Personen aus. Durch Rückstellung ergibt Navigation einen Satz. Wenn die Verbindung auf Kategoriendiagramm wird mit { bestellt }, die Navigationsresultate in einem OrderedSet geschmückt. Ansammlungen, wie Sätze, OrderedSets, Beutel und Reihenfolgen werden eintippt OCL vorbestimmt. Sie haben viel vorbestimmte Betriebe auf ihnen. Eine Eigenschaft der Ansammlung selbst wird erreicht, indem man einen Pfeil ' - > ' gefolgt vom Namen verwendet von der Eigenschaft. Das folgende Beispiel ist im Kontext einer Person: Kontext Person inv : self.employer->size() < 3 Dieses wendet die Größe an Eigenschaft auf dem Satz self.employer das die Zahl Arbeitgebern des Person- Selbst ergibt . Kontext Person inv : self.employer->isEmpty() Dieses wendet das isEmpty an Eigenschaft auf dem Satz self.employer . Dieses wertet aus, um auszurichten, wenn der Satz der Arbeitgeber leer ist und falsch anders. Fehlende Namen AssociationEnd Wenn der Name eines Verbindung-Endes bei einem der Enden einer Verbindung fehlt, der Name der Art an das Verbindungsende, das mit einem Kleinbuchstaben tarting ist, wird als das rolename benutzt. Wenn dieses eine Mehrdeutigkeit ergibt, ist das rolename vorgeschrieben. Dieses ist z.B. der Fall mit namenlosen rolenames in den Reflexivverbindungen. Wenn das rolename vieldeutig ist, dann es kann nicht in OCL verwendet werden. Navigationsüberverbindungen mit Vielfältigkeit null oder eine Weil die Vielfältigkeit des Rollenmanagers einer ist, self.manager ist ein Gegenstand der Artperson. Solch ein einzelner Gegenstand kann sein außerdem verwendet als Satz. Er benimmt dann, sich als ob es ein Satz ist, der den einzelnen Gegenstand enthält. Der Verbrauch als Satz ist durch erfolgt Pfeil folgte von einer Eigenschaft des Satzes. Dieses wird im folgenden Beispiel gezeigt: Kontext Firma inv : self.manager->size() = 1 Der Vor-Ausdruck self.manager wird als Satz verwendet, weil der Pfeil benutzt wird, um die Größe zugänglich zu machen Eigenschaft auf Satz. Dieses Ausdruck wertet aus, um auszurichten. Kontext- Firma inv : self.manager->foo |  |
|
| |
|
|