Escrito originalmente em francês. Traduzido por IA — o sentido foi preservado, não a prosa.
Definição curta
Regra de negócio verdadeira em todos os estados de um objeto, quaisquer que sejam as operações pelas quais ele passa.
Definição detalhada
Em computação, um invariante é uma condição que um programa mantém verdadeira em pontos determinados da sua execução. Nos artigos deste blog, o termo designa uma regra do negócio enunciada em uma frase sobre um objeto do domínio — uma fatura, uma nota de crédito, um pedido de venda — e registrada na ontologia, independentemente do código que faz com que ela seja respeitada.
Uso no domínio
Escrita de uma ontologia de negócio, derivação de testes automatizados a partir de regras, verificação da coerência do código produzido por um agente.
Sinônimos e variantes
Regra sempre verdadeira, restrição de negócio.
Não confundir com
- Regra de negócio condicional — regra que só vale em certos casos ou em certos estados; o invariante vale em todos.
- Teste — verificação executável de um comportamento; um invariante pode gerar um teste, mas existe sem ele.
Exemplos
Uma fatura validada não pode mais ser alterada. Uma fatura tem pelo menos um item. Uma nota de crédito referencia a fatura que ela corrige. Um pedido cancelado não pode ser enviado.
Ambiguidades / debates
A fronteira entre invariante e regra condicional depende de como os estados são recortados: "uma fatura validada não pode mais ser alterada" é condicional em relação à fatura, mas invariante em relação ao estado "validada".