| |
56 Angenommene Spezifikation UML Ocl 2,0 Kontext VariableExp inv: Art = referredVariable.type 8,3,8 Zusätzliche Betriebe auf UML-metaclasses In den Kapiteln "abstract syntax," "konkrete Syntax," "der Gebrauch von Ocl-Ausdrücken in den UML-Modellen," und Anhang "die Semantik, die mit UML" viele zusätzliche Betriebe auf UML-metaclasses beschrieben wird, werden verwendet. Sie werden diesbezüglich definiert Abschnitt. Der folgende Abschnitt definiert zusätzliche Betriebe für die OCL-metaclasses Klassifikator Das BetriebscommonSuperType ergibt das spezifischste allgemeine supertype von zwei Klassifikatoren. Kontextklassifikator def: commonSuperType (c: Klassifikator): Klassifikator = Classifier.allInstances()->select (cst| c.conformsTo (cst) und self.conformsTo (cst) und nicht Classifier.allInstances()->exists (clst| c.conformsTo (clst) und self.conformsTo (clst) und clst.conformsTo (cst) und clst < > cst ) )->any (zutreffend) Die folgenden Betriebe sind Klassifikator zu den Nachschlagenattributen, -associationEnds und -betrieben hinzugefügt worden. Kontextklassifikator def: lookupAttribute(attName: Zeichenkette): Attribut = self.allAttributes->any(me|me.name = attName) def: lookupAssociationEnd(name: Zeichenkette): AssociationEnd = self.allAssociationEnds->any (ae|ae.name = Name) def: lookupAssociationClass(name: Zeichenkette): AssociationClass = self.allAssociationClasses->any (ae|ae.name = Name) def: lookupOperation (Name: Zeichenkette, paramTypes: Sequence(Classifier)): Betrieb = self.allOperations->any (OP|op.name = Name und op.hasMatchingSignature(paramTypes)) def: lookupSignal (sigName: Zeichenkette, paramTypes: Sequence(Classifier)): Betrieb = self.allReceptions.signal->any (Sig|sig.name = sigName und sig.hasMatchingSignature(paramTypes)) BetriebsallAttributes, allOperations, etc. werden in der UML-Semantik definiert. Die BetriebsallReceptions fehlt und hier definiert. Die BetriebsallReceptions ergibt einen Satz, der alle Signale enthält, daß der Klassifikator als Aufnahmen hat selbst und alle seine übernommenen Attribute. Kontextklassifikator def: allReceptions: set(Reception) = self.allFeatures->select(f|f.oclIsKindOf(Reception)) Betrieb Ein zusätzlicher Betrieb wird Betrieb hinzugefügt, der überprüft, ob seine Unterschrift mit einer Reihenfolge von Clasifiers zusammenpaßt. Merken Sie, daß, wenn man die Parameter des Gleichen nur mit Richtungsart ' in ' bildet, betrachtet werden. |  |
|
| |
|
|