Diretriz: Associação de Comunicação
Uma Associação de Comunicação modela como os casos de uso e os agentes interagem, enviando sinais um para o outro. Esta diretriz explica como utilizar esse relacionamento.
Relacionamentos
Descrição Principal

Explicação

Os casos de uso e os atores interagem por meio de sinais enviados entre si. Para indicar essas interações, utilizamos uma associação de comunicação entre o caso de uso e o agente. Um caso de uso tem no máximo uma associação de comunicação com um determinado agente e vice-versa, seja qual for o número de transmissões de sinais. A rede completa dessas associações é uma imagem estática da comunicação entre o sistema e seu ambiente.

As associações de comunicação não recebem nomes. Como só pode haver uma associação de comunicação entre um caso de uso e um agente, você só precisa especificar os pontos inicial e final para identificar uma determinada associação de comunicação.

Diagrama descrito no texto associado.

Uma linha ou uma seta entre um agente e um caso de uso indica que eles interagem enviando sinais entre si.

Funções

Cada extremidade de uma associação de comunicação é uma função que especifica a face que um caso de uso ou agente desempenha na associação. Os papéis são usados para especificar multiplicidades e direções da associação (veja abaixo).

Multiplicidade

Cada função de uma associação de comunicação indica a multiplicidade de seu tipo, ou seja, quantas instâncias desse agente ou caso de uso podem ser associadas a uma instância do outro caso de uso ou agente. A multiplicidade é indicada por uma expressão de texto no papel. A expressão é uma lista com intervalos de números inteiros separados por vírgula. Um intervalo é indicado por um inteiro (o valor inferior), dois pontos e um inteiro (o valor superior); um único inteiro é um intervalo válido e o símbolo '*' indica "muitos", ou seja, um número ilimitado de objetos. O símbolo '*' equivale a '0..*', ou seja, qualquer número, incluindo zero. Esse é o valor padrão (default). Um papel escalar opcional tem a multiplicidade 0..1.

A multiplicidade pode ser aumentada com uma restrição de unidade de tempo. Isso é feito para determinar quantas instâncias podem estar associadas, provavelmente por instâncias diferentes, durante a unidade de tempo. Essa informação é útil, pois indica se o caso de uso é executado com freqüência e também o quão freqüentemente é iniciado pela mesma instância de agente.

Exemplo:

Diagrama descrito no texto associado.

O caso de uso Realizar Transações é utilizado 400.000 vezes por dia pelos clientes. Cada cliente inicia o caso de uso duas vezes ao mês.

Navegabilidade

Cada função de uma associação de comunicação possui uma propriedade de navegabilidade, indicando quem inicia a comunicação na interação.  A navegabilidade é mostrada por uma ponta de seta.  Se a ponta de seta apontar para um caso de uso, o agente na outra extremidade da associação iniciará a interação com o sistema.  Se a ponta de seta apontar para um agente, o sistema iniciará a interação com o agente.  A navegabilidade bidirecional é mostrada por uma linha sem pontas de seta (duas pontas de seta tornam os diagramas confusos).

Diagrama descrito no texto associado.

A seta de comunicação define o agente que iniciou o caso de uso. Há uma mensagem de retorno para cada seta de comunicação. Uma linha sem seta pressupõe uma comunicação bidirecional.

Não confunda navegabilidade com fluxo de dados; ela é utilizada apenas para mostrar a iniciação da comunicação.  Por exemplo, um pedido de dados feito por um cliente é mostrado por uma seta em direção ao caso de uso que representa o sistema, embora a maioria dos dados fluam do sistema para o cliente.

Comunicação entre o Agente e o Caso de Uso Para o início da página

Os atores se comunicam com o sistema enviando sinais. Para entender completamente a função do agente, você deve saber em quais casos de uso o agente está envolvido. Isso é mostrado por associações de comunicação entre o agente e os casos de uso.

A multiplicidade da associação mostra o número de instâncias de caso de uso com as quais uma instância de agente pode se comunicar ao mesmo tempo.

Exemplo:

No Sistema de Máquina de Reciclagem, toda vez que uma instância do agente Cliente entrega um item de depósito, ele envia um sinal à respectiva instância do caso de uso Reciclar Itens. Quando o agente terminar, o caso de uso imprimirá um recibo. Um Cliente só pode se comunicar com uma instância de Reciclar Itens. Desse modo, a multiplicidade da associação é 1. O recibo enviado pelo sistema é considerado como uma resposta da instância de caso de uso. Portanto, a associação de comunicação não precisa de navegabilidade para a outra direção.

Diagrama descrito no texto associado.

Um Cliente que queira devolver itens de depósito para uma máquina de reciclagem irá se comunicar com o caso de uso Reciclar Itens.

Um agente se comunica com os casos de uso por vários motivos:

  • Para disparar um caso de uso. Uma instância de agente sempre dispara uma instância de caso de uso.
  • Para solicitar dados armazenados no sistema, que o caso de uso busca e apresenta ao agente.
  • Para alterar os dados armazenados no sistema por intermédio de um diálogo com o sistema.
  • Para relatar algo especial que tenha ocorrido no ambiente do sistema, em relação ao qual o sistema deva executar alguma ação.

Comunicação entre o Caso de Uso e o Agente

Quem inicia um caso de uso é um agente. Entretanto, depois de iniciado, o caso de uso pode se comunicar com vários atores. Você pode usar associações de comunicação entre o caso de uso e os atores para mostrar com quais atores o caso de uso se comunica. A multiplicidade da associação mostra o número de instâncias de um agente com as quais uma instância de caso de uso pode se comunicar ao mesmo tempo.

Os casos de uso se comunicam com os atores por vários motivos:

  • Se algo especial ocorrer no sistema, pode ser que o agente precise saber.
  • Um caso de uso pode precisar da ajuda de um agente para tomar uma decisão caso haja várias opções disponíveis.

É comum, mas nem sempre verdadeiro, que o caso de uso aguarde uma resposta após enviar um sinal a um agente. Isso deve ser descrito de forma explícita no caso de uso.

Convenções Opcionais

As convenções a seguir são comuns e opcionais. Seu objetivo é esclarecer qual agente inicia o caso de uso.

  • A ponta de seta do agente inicial para o caso de uso é sempre mostrada, mesmo que, posteriormente, o caso de uso inicie a comunicação com o agente inicial.  Essa também é a única ponta de seta do agente para o caso de uso mostrada.
  • As pontas de seta do caso de uso para atores podem ser omitidas ou, para clareza, podem ser incluídas.