Object Constraint Language: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
|||
Riga 1:
L'<b>Object Constraint Language</b> o '''OCL''' è un [[linguaggio formale|linguaggio di specifica formale]] inizialmente proposto come estensione per il linguaggio di modellazione [[Paradigma object-oriented|object-oriented]] [[Unified Modeling Language|UML]] e successivamente ([[2003]]) entrato a far parte del nuovo standard del linguaggio (UML 2.0). OCL può essere impiegato insieme a qualunque metamodello basato su [[Meta-Object Facility|MOF]]. Inoltre, OCL è un elemento chiave del nuovo standard per la trasformazione di modelli di OMG, [[QVT]], e fa parte della famiglia di standard che compongono la [[Model Driven Architecture]]. I principali ideatori di OCL sono [[Jos Warmer]] e [[Anneke Kleppe]].
OCL deriva da un linguaggio precedente noto come [[Syntropy]]. Il nucleo di OCL può essere descritto come un linguaggio mutuato dal [[calcolo dei predicati del primo ordine]] per l'espressione di condizioni logiche inerenti lo stato e le operazioni di oggetti in un contesto object-oriented. Con la potenza del calcolo dei predicati, OCL consente di descrivere [[invariante|invarianti]] che legano il valore degli attributi di una classe, [[asserzione|precondizioni e postcondizioni]] delle operazioni, e via dicendo. A partire dalla versione 2.0 (che è quella inclusa nello standard UML), il linguaggio è stato arricchito di elementi che consentono di descrivere la semantica di operazioni di tipo ''interrogazione'' (''query''), ovvero prive di [[effetto collaterale|effetti collaterali]].
Gran parte delle informazioni che si possono descrivere in OCL non sono esprimibili in nessun altro modo ''formale'' nel contesto di UML (ovvero non possono essere rappresentate dai [[diagramma|diagrammi]] UML).
|