| |
52 Angenommene Spezifikation UML Ocl 2,0 inv: type.oclAsType (CollectionType).elementType = Teile->iterate (p; c: Klassifikator = OclVoid|c.commonSuperType (p.type)) CollectionLiteralPart Keine zusätzlichen Wohlgeformtheitrichtlinien. CollectionItem [ 1 ] Die Art von einem CollectionItem ist die Art des Einzelteilausdruckes. Kontext CollectionItem inv: Art = item.type CollectionRange [ 1 ] Die Art von einem CollectionRange ist das allgemeine supertype der Ausdrücke, die an der Strecke teilnehmen. Kontext CollectionRange inv: Art = first.type.commonSuperType (last.type) EnumLiteralExp [ 1 ] Die Art eines wörtlichen Ausdruckes des enum ist die Art des verwiesenen Druckfehlers. Kontext EnumLiteralExp inv: self.type = referredEnumLiteral.enumeration IfExp [ 1 ] Die Art des Zustandes von, wenn Ausdruck Boolesch sein muß. Kontext IfExp inv: self.condition.type.oclIsKindOf(Primitive) und self.condition.type.name = ' Boolesch ' [ 2 ] Die Art von, wenn Ausdruck das allgemeinste supertype vom sonst und dann von den Ausdrücken ist. Kontext IfExp inv: self.type = thenExpression.type.commonSuperType(elseExpression.type) IntegerLiteralExp [ 1 ] Die Art eines wörtlichen Ausdruckes der Ganzzahl ist die Artganzzahl. Kontext IntegerLiteralExp inv: self.type.name = ' Ganzzahl ' IteratorExp [ 1 ] Wenn das iterator ' forAll ', ' ist, isUnique ' oder ' bestand die Art des iterator muß Boolesch sein. Kontext IteratorExp inv: Name = ' bestand oder Name = ' forAll ' oder Name = ' isUnique ' deutet type.oclIsKindOf(Primitive) und type.name = ' Boolesch ' an [ 2 ] Die Resultatsart des sammelnbetriebes auf einer Reihenfolgenart ist eine Reihenfolge, die Resultatsart von ' sammeln ' auf jedem möglichem anderen collec- tionart ist ein Beutel. Die Art des Körpers ist immer die Art der Elemente in der Rückholansammlung. Kontext IteratorExp inv: Name = ' sammeln ' andeutet wenn source.type.oclIsKindOf(SequenceType) dann Art = expression.type.collectionType->select(oclIsTypeOf(SequenceType))->first() sonst Art = expression.type.collectionType->select(oclIsTypeOf(BagType))->first() |  |
|
| |
|
|