Object Constraint Language: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 66:
Nelle espressioni per le postcondizioni si possono usare alcuni simboli speciali dedicati. La parola chiave <code>result</code> indica il valore tornato dall'operazione. Il simbolo <code>@pre</code>, applicato al nome di un attributo, si riferisce al valore che l'attributo aveva ''prima'' che fosse eseguita l'operazione.
 
===Regole di derivazione e query===
Un'espressione OCL può essere usata anche per descrivere il valore di un attributo derivato di una classe. Per esempio, le seguenti regole specificano chi sono rispettivamente i ''suoceri'' e i ''consuoceri'' di una persona:
 
Riga 74:
:<code><b>context</b> Persona::consuoceri:Set(Persona) <b>derive:</b><br></code>
:<code>figli.coniuge->asSet().genitori->asSet()</code>
 
Estremamente simile a un attributo derivato è una ''query'', ovvero una operazione senza effetti collaterali che fornisce un'informazione sull'oggetto a cui viene applicata. (Da un punto di vista implementativo potrebbe non esistere ''alcuna'' distinzione). La sintassi OCL per descrivere la semantica di un'operazione ''query'' è dunque molto simile a quella per le regole di derivazione. Se <code>suoceri</code> fosse stata espressa come query, la si sarebbe specificata in OCL come segue:
 
:<code><b>context</b> Persona::suoceri():Set(Persona) <b>body:</b><br></code>
:<code>coniuge.genitori</code>
 
===Valori iniziali di attributi===