Termo

Invariante

Info

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".