Un esempio di vincolo è la condizione come l'attributo con un valore specifico. Un vincolo va applicato nella progettazione di un sistema. Si specifica la condizione o limitazione nel corpo del vincolo.
Generalmente, i vincoli non hanno nomi. Vengono identificati invece dal contenuto del corpo. Alcuni vincoli utilizzati comunemente sono identificati dai nomi, per evitare di ripetere il contenuto del relativo corpo. Il vincolo XOR viene applicato quando più associazioni hanno un collegamento comune a una classe.
Per ulteriori informazioni relative a OCL, consultare la specifica UML (Unified Modeling Language) disponibile sul sito Web OMG (Object Management Group). In generale, la sintassi per le proprietà del linguaggio del corpo o per il corpo stesso non viene applicata.
Un vincolo viene visualizzato come testo racchiuso tra parentesi graffe ({}) e viene indicato con un rettangolo con l'angolo superiore destro piegato.
È possibile aggiungere dei vincoli al modello per i seguenti scopi:
Nei modelli che illustrano i sistemi software, i vincoli rappresentano condizioni o limitazioni che non è possibile modellare in altro modo.
In modelli che descrivono sistemi software in cui è importante il tempo, i vincoli forniscono un'istruzione sul valore relativo o assoluto del tempo durante un'interazione.
I vincoli in un modello possono comparire in qualsiasi tipo di diagramma UML e nei diagrammi con formato libero.
È possibile convalidare un vincolo. Il livello di convalida che si verifica dipende dal tipo di vincolo convalidato. Sono disponibili tre tipi di vincoli:
La sintassi e l'espressione di un vincolo vengono convalidate se al vincolo è applicato lo stereotipo «metaConstraint» o se è definito in un profilo.
Se al vincolo non è applicato lo stereotipo «metaConstraint» e tale vincolo non è definito in un profilo, viene convalidata solo la sintassi del vincolo.