| |
6 Angenommene Spezifikation UML Ocl 2,0 BagType [ 1 ] Unterschiedliche Beutelarten passen sich miteinander an, wenn ihre Elementarten sich miteinander anpassen. Kontext BagType inv: BagType.allInstances()->forAll(b| self.elementType.conformsTo(b.elementType) deutet self.conformsTo(b)) an Klassifikator [ 1 ] Übereinstimmung ist ein transitives Verhältnis. Kontextklassifikator invtransitivität: Classifier.allInstances()->forAll(x|Classifier.allInstances() ->forAll(y| (self.conformsTo(x) und x.conformsTo(y)) deutet self.conformsTo(y))) an [ 2 ] Alle Klassifikatoren ausgenommen Ansammlungen passen sich an OclAny an. Kontextklassifikator inv: (nicht self.oclIsKindOf (CollectionType)) deutet an Primitive.allInstances()->forAll(p|(p.name = ' OclAny ') deutet self.conformsTo(p)) an [ 3 ] Kategorien passen sich an superclasses und Schnittstellen an, die sie verwirklichen. Kontextkategorie inv: self.generalization.parent->forAll (p| (p.oclIsKindOf(Class) oder p.oclIsKindOf(Interface)) deutet an self.conformsTo(p.oclAsType(Classifier))) [ 4 ] Schnittstellen paßt sich an Superschnittstellen an. Kontextschnittstelle inv: self.generalization.parent->forAll (p| p.oclIsKindOf(Interface) deutet self.conformsTo(p.oclAsType(Interface))) an [ 5 ] Paßt sich Betrieb zwischen Arten ist reflexiv, ein Klassifikator sich anpassen immer an sich an. Kontextklassifikator inv: self.conformsTo(self) [ 6 ] Paßt sich Betrieb zwischen Arten ist anti-symmetric an. Kontextklassifikator inv: Classifier.allInstances()->forAll(t1, T2| (t1.conformsTo(t2) und t2.conformsTo(t1)) deutet T1 = T2) an CollectionType [ 1 ] Spezifische Ansammlungsarten passen sich an Ansammlungsart an. Kontext CollectionType inv: -- alle Fälle von SetType, SequenceType, BagType passen sich an a an -- CollectionType, wenn die elementTypes sich anpassen CollectionType.allInstances()->forAll (c| c.oclIsTypeOf(CollectionType) und self.elementType.conformsTo(c.elementType) deutet an self.conformsTo(c)) [ 2 ] Ansammlungen passen nicht sich an irgendeine ursprüngliche Art an. Kontext CollectionType inv: Primitive.allInstances()->forAll (p|nicht self.conformsTo(p)) [ 3 ] Ansammlungen der nicht übereinstimmenden Arten passen sich nicht an. |  |
|
| |
|
|