| |
Angenommene Spezifikation UML Ocl 2,0 25 7,5,15 Tuples Es ist möglich, einige Werte in einen Tuple zu bestehen . Ein Tuple besteht aus genannten Teilen, von denen jedes ein eindeutiges haben kann Art. Einige Beispiele von Tuples sind: Tuple { Name: Zeichenkette = ' John ', Alter: Ganzzahl = 10} Tuple { a: Collection(Integer) = Set{1, 3, 4}, b: Zeichenkette = ' foo ', c: Zeichenkette = ' Stab ' } Dieses ist auch die Weise, Tupledruckfehler in OCL zu schreiben; sie werden in den lockigen Haltewinkeln umgeben, und die Teile werden vorbei getrennt Kommas. Die Artnamen sind wahlweise freigestellt, und der Auftrag der Teile ist unbedeutend. So: Tuple { Name: Zeichenkette = ' John ', Alter: Ganzzahl = 10} ist mit gleichwertig Tuple { Name = ' John ', Alter = 10 } und zu Tuple { Alter = 10, Name = ' John ' } Auch merken Sie, daß die Werte der Teile durch willkürliche OCL-Ausdrücke gegeben werden können, also zum Beispiel können wir schreiben: Kontext Person def : attr Statistiken: Set(TupleType(company: Firma, numEmployees: Ganzzahl, wellpaidEmployees: Set(Person), totalSalary: Ganzzahl)) = managedCompanies->collect(c| Tuple { Firma: Firma = c, numEmployees: Ganzzahl = c.employee->size(), wellpaidEmployees: Set(Person) = c.job->select(salary>10000).employee->asSet(), totalSalary: Ganzzahl = c.job.salary->sum() } ) Dieses ergibt einen Beutel der Tuples, welche die Firma, Zahl der Angestellter, die besten zahlenden Angestellten und Gesamtgehalt zusammenfassen Kosten jeder Firma, die eine Person handhat. Die Teile eines Tuple werden durch ihre Namen mit der gleichen Punktdarstellung erreicht, die für zugänglich machende Attribute benutzt wird. So: Tuple { x: Ganzzahl = 5, y: Zeichenkette = ' hi'}.x = 5 ist zutreffender, wenn ein wenig sinnloser, Ausdruck. Mit der Definition von Statistiken oben, können wir schreiben: Kontext Person inv : Statistiken->sortedBy(totalSalary)->last().wellpaidEmployees->includes(self) Dieses erklärt, daß eine Person einer der gut-zahlenden Angestellten der Firma mit dem höchsten Gesamtgehalt ist, das er handhat. In diesem Ausdruck, ' totalSalary ' und ' in den wellpaidEmployees' machen Tupleteile zugänglich. 7,6 AnsammlungscBetriebe Ocl definiert viele Betriebe auf den Ansammlungsarten. Diese Betriebe werden spezifisch bedeutet, um ein flexibles zu ermöglichen und leistungsfähige Weise des Projizierens der neuen Ansammlungen von das Bestehen. Das unterschiedliche Konstruieren wird im folgenden beschrieben Abschnitte. 7,6,1 Wählen Sie vor und weisen Sie Betriebe zurück Manchmal ein Ausdruck mit Betrieben und Navigationsresultaten in einer Ansammlung, während wir nur für ein spezielles interessiert sind Teilmenge der Ansammlung. Ocl hat das spezielle Konstruieren zum Spezifizieren einer Vorwähler von einer spezifischen Ansammlung. Diese sind das auserwählte und Ausschuß Betriebe. Das auserwählte spezifiziert eine Teilmenge einer Ansammlung. Ein auserwähltes ist ein Betrieb auf einer Ansammlung und wird spezifiziert Verwenden der Pfeil-Syntax: |  |
|
| |
|
|