Object Constraint Language: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Riga 1:
{{WIP|Moongateclimber}}
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 [[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]].
Riga 52:
* Anche [[Java (linguaggio)|Java]] ha un proprio sottolinguaggio per le [[asserzione (Java)|asserzioni]]
* [[Syntropy]], [[Catalysis]] e [[BON]] sono altri linguaggi che consentono di esprimere vincoli su sistemi a oggetti
 
==Bibliografia==
 
* [[Jos B. Warmer]], [[Anneke G. Kleppe]]. ''[[The Object Constraint Language: Precise Modeling with UML]]'' ([[Addison-Wesley]] [[Object Technology Series]] [[1998]], ISBN 0201379406
 
==Collegamenti esterni==