| |
16 Angenommene Spezifikation UML Ocl 2,0 Der Wert des subexpression self.age ist der Wert des Alters Attribut auf dem bestimmten Fall der Person vorbei gekennzeichnet Selbst . Die Art dieses subexpression ist die Art des Attributes Alter , das die standardartig Ganzzahl ist. Mit Attributen und den Betrieben, die auf den grundlegenden Wertarten definiert werden, können wir Berechnungen etc. über dem Kategorienmodell ausdrücken. Z.B. konnte ein Geschäftsprinzip "das Alter einer Person sein ist immer grösser als null.", Dieses kann durch angegeben werden unveränderliches oben genanntes. Attribute können multiplicities in einem UML-Modell haben. Wheneven die Vielfältigkeit eines Attributes ist grösser als 1, das Resultat schreiben Sie ist Ansammlung Werte. Ansammlungen in OCL werden später in diesem Kapitel beschrieben. 7,5,2 Eigenschaften: Betriebe Betriebe können Parameter haben. Z.B., wie früh gezeigt, hat ein Persongegenstand ein Einkommen, das als Funktion ausgedrückt wird vom Datum. Dieser Betrieb würde wie folgt, für ein Person- aPerson erreicht und ein Datum- aDate aPerson.income(aDate) Das Resultat dieses Betriebsanrufs ist ein Wert der Rückholart des Betriebes, der Ganzzahl in diesem Beispiel ist. Wenn Betrieb hat heraus, oder in-/outparameter, das Resultat dieses Betriebes ist ein Tuple, der heraus alle enthält, in-/outparameter und Rückholwert. Z.B. wenn der Einkommenbetrieb eine Herausparameter- Prämie haben würde das Resultat des oben genannten Betriebes Anruf ist von der Prämie Art- Tuple(: Ganzzahl, Resultat: Ganzzahl). Sie können diese Werte zugänglich machen, die Namen des Heraus verwendend Parameter und das Schlüsselwort- Resultat z.B.: aPerson.income(aDate).bonus = 300 und aPerson.income(aDate).result = 5000 Merken Sie, daß die Herausparameter nicht, brauchen im Betriebsanruf umfaßt zu werden. Werte für alle innen oder in-/outparameter sind neccessary. Definieren von Betrieben Der Betrieb selbst konnte durch eine postconditionbegrenzung definiert werden. Dieses ist eine Begrenzung, die wie stereotyped "postcondition". Auf des Gegenstandes, der durch den Betrieb zurückgebracht wird, kann durch Resultat beziehen . Er nimmt die folgende Gestalt an: Kontext Person::income (d: Datum): Ganzzahl Pfosten : Resultat = Alter * 1000 Die Recht-Handseite dieser Definition kann auf den Betrieb sich beziehen, der definiert wird (d.h., kann die Definition rekursiv sein), wie lang als die Rekursion ist nicht endlos. Innerhalb vor oder des postcondition kann man die Parameter des Betriebes auch verwenden. Art des Resultats wenn der Betrieb kein heraus oder in-/outparameter hat, die Rückholart des Betriebes ist, der Ganzzahl innen ist das oben genannte Beispiel. Wenn der Betrieb heraus oder in-/outparameter hat, ist die Rückholart ein Tuple, wie oben erklärt. Das postcondition für den Einkommenbetrieb mit aus Parameterprämie kann die folgende Gestalt annehmen: Kontext Person::income (d: Datum, Prämie: Ganzzahl): Ganzzahl Pfosten : Resultat = Tuple { Prämie =..., Resultat =.... } Sich einen Betrieb oder auf eine Methode, die einen nicht Parameter, nimmt sollen Klammern mit einer leeren Argumentliste beziehen vorgeschrieben: Kontext Firmainv: self.stockPrice() > 0 |  |
|
| |
|
|