Définition courte
Règle métier vraie dans tous les états d'un objet, quelles que soient les opérations qu'il subit.
Définition détaillée
En informatique, un invariant est une condition qu'un programme maintient vraie à des points donnés de son exécution. Dans les articles de ce blog, le terme désigne une règle du métier énoncée en une phrase sur un objet du domaine — une facture, un avoir, une commande — et consignée dans l'ontologie, indépendamment du code qui la fait respecter.
Usage dans le domaine
Écriture d'une ontologie métier, dérivation de tests automatisés à partir de règles, contrôle de cohérence du code produit par un agent.
Synonymes et variantes
Règle toujours vraie, contrainte métier.
À ne pas confondre avec
- Règle de gestion conditionnelle — règle qui ne vaut que dans certains cas ou certains états ; l'invariant vaut dans tous.
- Test — vérification exécutable d'un comportement ; un invariant peut en produire un, mais existe sans lui.
Exemples
Une facture validée ne peut plus être modifiée. Une facture possède au moins une ligne. Un avoir référence la facture qu'il corrige. Une commande annulée ne peut pas être expédiée.
Ambiguïtés / débats
La frontière entre invariant et règle conditionnelle dépend du découpage des états : « une facture validée ne peut plus être modifiée » est conditionnelle sur la facture, mais invariante sur l'état « validée ».