Um exemplo de restrição é uma condição como um atributo tendo um valor específico. Uma restrição deve ser aplicada no design de um sistema. A condição ou restrição é especificada no corpo da restrição.
Geralmente, as restrições não têm nomes; em vez disso, elas são identificadas pelo conteúdo de seus corpos. Entretanto, algumas restrições utilizadas com freqüência são identificadas por nomes, de modo que o conteúdo de seus corpos não precisam ser repetidos. A restrição XOR é aplicada quando mais de uma associação possui uma conexão comum a uma classe.
Para mais informações sobre OCL, leia a especificação Unified Modeling Language (UML) disponível no Web site Object Management Group (OMG).Em geral, a sintaxe para o corpo ou as propriedades da linguagem do corpo não são aplicadas.
Uma restrição é exibida como um texto incluído entre chaves ({}) e aparece em um retângulo com o canto superior direito dobrado.
É possível incluir restrições no modelo com os seguintes objetivos:
As restrições em um modelo podem aparecer em qualquer tipo de diagrama UML, bem como em diagramas de forma livre.
É possível validar uma restrição. O nível de validação que ocorre depende do tipo de restrição que está sendo validada. Há três tipos de restrições:
A sintaxe e a expressão de uma restrição serão validadas se a restrição possuir o estereótipo «metaConstraint» aplicado a ela ou se estiver definida em um perfil.
Apenas a sintaxe de uma restrição será validada se ela não tiver o estereótipo «metaConstraint» aplicado e ela não estiver definida em um perfil.