| |
Angenommene Spezifikation UML Ocl 2,0 37 Kontext CollectionType inv: CollectionType.allInstances()->forAll (c| (nicht self.elementType.conformsTo (c.elementType)) deutet (nicht self.conformsTo (c))) an OrderedSetType [ 1 ] Unterschiedliche bestellte gesetzte Arten passen sich miteinander an, wenn ihre Elementarten sich miteinander anpassen. Kontext OrderedSetType inv: OrderedSetType.allInstances()->forAll(s| self.elementType.conformsTo(s.elementType) deutet self.conformsTo(s)) an Ursprünglich [ 1 ] Ganzzahl paßt sich an reales an. Kontextprimitives inv: (self.name = ' Ganzzahl ') deutet an Primitive.allInstances()->forAll (p|(p.name = ' real ') deutet an (self.conformsTo(p)))) SequenceType [ 1 ] Unterschiedliche Reihenfolgenarten passen sich miteinander an, wenn ihre Elementarten sich miteinander anpassen. Kontext SequenceType inv: SequenceType.allInstances()->forAll(s| self.elementType.conformsTo(s.elementType) deutet self.conformsTo(s)) an SetType [ 1 ] Unterschiedliche Satzarten passen sich miteinander an, wenn ihre Elementarten sich miteinander anpassen. Kontext SetType inv: SetType.allInstances()->forAll(s| self.elementType.conformsTo(s.elementType) deutet self.conformsTo(s)) an TupleType [ 1 ] Tuplearten passen sich miteinander an, wenn ihre Namen und Arten sich miteinander anpassen. Merken Sie daß allAttributes ist ein addi- tionalbetrieb im UML 1,4. Kontext TupleType inv: TupleType.allInstances()->forAll (t| (t.allAttributes()->forAll (tp| -- überprüfen Sie, daß mindestens ein tuplepart den gleichen Namen hat -- (Einzigartigkeit der tuplepartnamen stellt daß nicht zwei sicher -- tupleparts haben den gleichen Namen innerhalb eines Tuple) self.allAttributes()->exists(stp|stp.name = tp.name) und -- überprüfen Sie, ob alle tupleparts mit dem gleichen Namen sich anpaßt. self.allAttributes()->forAll(stp|(stp.name = tp.name) und stp.type.conformsTo(tp.type)) ) deutet an self.conformsTo(t) )) VoidType [ 1 ] Lücke paßt sich an alle weiteren Arten an. |  |
|
| |
|
|