| |
22 Angenommene Spezifikation UML Ocl 2,0 Im Beispielstatemachine oben, Werte für s kann eingeschaltet sein weg Off::Standby Off::NoPower . Wenn der Klassifikator des Gegenstandes hat die oben dazugehörigen gültigen OCL-Ausdrücke des statemachine sind: object.oclInState(On) object.oclInState(Off) object.oclInstate(Off::Standby) object.oclInState(Off::NoPower) Wenn es die mehrfachen statemachines gibt, die zum Klassifikator des Gegenstandes angebracht werden, dann kann das statename mit dem Namen von vorgesetzt werden das statemachine, das enthält den Zustand und den doppelten Doppelpunkt '::', wie mit genisteten Zuständen. Das Betriebs- oclIsNew wertet aus, um auszurichten, wenn, verwendet in einem postcondition, der Gegenstand während des Durchführens des Betriebes verursacht wird. d.h. er bestand nicht zur Vorbedingungzeit. 7,5,10 Eigenschaften auf Kategorien selbst Alle Eigenschaften, die bis jetzt in OCL besprochen werden, sind Eigenschaften auf Fällen der Kategorien. Die Arten sind irgendeine vorbestimmt in OCL oder definiert im Kategorienmodell. In OCL ist es auch möglich, die Eigenschaften zu benutzen, die auf dem types/classes selbst definiert werden. Diese z.B. sind die Kategorie - scoped die Eigenschaften, die im Kategorienmodell definiert wurden. Ausserdem werden einige Eigenschaften an vorbestimmt jede Art. Eine vorbestimmte Eigenschaft auf Kategorien, Schnittstellen und Aufzählungen ist allInstances das den Satz aller Fälle von ergibt tippen Sie Bestehen zum spezifischen Zeitpunkt ein, als der Ausdruck ausgewertet wird. Wenn wir überprüfen möchten ob alle Fälle von Person haben einzigartige Namen, wir kann schreiben: Kontext Person inv : Person.allInstances()->forAll(p1, p2| p1 < > p2 deutet an p1.name < > p2.name) Das Person.allInstances() ist der Satz aller Personen und ist von der Art Set(Person). Es ist der Satz aller Personen, die in bestehen System zu der Zeit, daß der Ausdruck ausgewertet wird. 7,5,11 Ansammlungen Einzelne Navigation einer Verbindung ergibt einen Satz, kombinierte Navigationen in einem Beutel und Navigationsüberverbindungen geschmückt mit { bestellt } ergibt ein OrderedSet. Folglich definieren die Ansammlungsarten im OCL-Standardbibliothekspiel eine wichtige Rolle in den OCL-Ausdrücken. Die Artansammlung wird in OCL vorbestimmt. Die Ansammlungsart definiert viele vorbestimmte Betriebe, um zu ermöglichen der OCL-Ausdrucksautor (das modeler) zum Manipulieren der Ansammlungen. Gleichbleibend mit der Definition von OCL als Ausdruckssprache, Ansammlungsbetriebe ändern nie Ansammlungen; isQuery ist immer zutreffend. Sie können a ergeben Ansammlung, aber anstatt, die ursprüngliche Ansammlung ändernd, projizieren sie das Resultat in ein Neues. Ansammlung ist eine abstrakte Art, mit den konkreten Ansammlungsarten als seine Formationsglieder. Ocl unterscheidet drei unterschiedlich Ansammlungsarten: Satz, Reihenfolge und Beutel. Ein Satz ist der mathematische Satz. Er enthält nicht doppelte Elemente. Ein Beutel ist wie ein Satz der Duplikate (d.h., kann das gleiche Element in einem Beutel oder in mehr zweimal sein) enthalten kann. Eine Reihenfolge ist wie ein Beutel in, welchem die Elemente bestellt werden. Beide Beutel und Sätze haben keinen Auftrag, der auf ihnen definiert wird. AnsammlungscDruckfehler Sätze, Reihenfolgen und Beutel können durch einen Druckfehler in den lockigen Haltewinkeln OCL. spezifiziert werden umgeben die Elemente der Ansammlung, Elemente in der Ansammlung werden innen geschrieben, getrennt durch Kommas. Die Art der Ansammlung wird vor dem lockigen geschrieben Haltewinkel: |  |
|
| |
|
|