Dans les diagrammes de séquence UML (Unified Modeling Language), une condition de garde (également appelée contrainte d'interaction), est une expression conditionnelle booléenne qui garde une opérande d'interaction dans un fragment regroupé. Une condition de garde contient deux expressions qui désignent le nombre maximal et minimal d'exécutions du fragment regroupé en boucle.
Dans les diagrammes de séquence, une condition de garde est une condition ou une restriction sémantique définie entre crochets dans une opérande d'interaction, à l'intérieur d'un fragment regroupé. Lorsque vous créez un fragment regroupé, une condition de garde est automatiquement créée. Vous pouvez également créer manuellement une condition de garde dans une opérande d'interaction qui ne possède pas déjà de condition de garde.
La condition de garde apparaît au début de l'interaction et contient toutes les informations nécessaires pour décider de l'exécution des traces dans l'opérande d'interaction. Si les essais de la condition de garde sont positifs, les traces sont exécutées. Compte tenu du caractère facultatif de la condition de garde, l'interaction s'exécute quand même si aucune condition de garde n'est spécifiée dans l'opérande d'interaction.
La figure ci-dessous illustre la manière dont les conditions de garde sont représentées dans une interaction.