3.5. Modelando uma condição de guarda

Normalmente, um evento é recebido e respondido de forma incondicional. Às vezes, porém, o recebimento do evento é condicional. Por exemplo, quando uma ordem de compra de bilhete é inserida no sistema de cinema, ela é considerada provisória até que o pagamento tenha sido recebido.

O problema é que não é qualquer pagamento que resolve a questão, é necessário testar para ter certeza de que o pagamento realmente cobre o custo bilhete. Este teste é chamado de uma condição de guarda.

Muitos sistemas incluem esse tipo de teste para permitir que o cliente pague com mais de um tipo de forma de pagamento, por exemplo, que ele pague metade em dinheiro e metade no cartão de crédito.

A condição de guarda é modelada colocando a expressão lógica dentro de colchetes logo após o nome do evento. Veja, por exemplo, o diagrama abaixo onde a compra só é considerada concluída quando o total pago for igual ao valor total da compra:

Exemplo de diagrama com condição de guarda
Copyright © 2014 AIEC.