1
resposta

Mesangens Síncronas e Assíncronas

Durante a criação do diagrama criado na aula, eu vi que algumas mensagens recebem resposta e outras não, assumi que as mensagens que não recebem são assíncronas e as que recebem síncronas. Por exemplo a mensagem 3.2 Avalia Disponibilidade() / 3.2.1 Informa Disponibilidade() são mensagens síncronas. Tenho duas dúvidas, a primeira é se todas as mensagens síncronas precisam ter suas respostas expressas no diagrama, e a segunda tem relação com o tipo de seta criada para cada tipo de mensagem, pelo que vi no Astah aparece um tipo de seta para cada tipo de mensagem, gostaria de saber se isso é importante na criação do diagrama ou é facultativo.

Obrigado.

1 resposta

Caro Eduardo,

Obrigado pela sua postagem!

Seu entendimento sobre a "obrigatoriedade" de recebimento de uma resposta no caso de mensagens síncronas está correto, enquanto as respostas não cheguem ao objeto remetente não avança o processamento. Por outro lado, no caso das mensagens assíncronas não existe a obrigatoriedade de recebimento de resposta para o processamento avançar.

Sendo assim, é uma boa prática dentro da notação UML representarmos as respostas das mensagens síncronas dentro dos diagramas criados para representar algum modelo lógico de sistemas, como você bem observou.

Sobre a característica visual das setas para representar as mensagens, isto pode pode variar um pouco em cada ferramenta, as quais insistem em dar um "toque artístico" na representação de uma modelagem de sistemas, por isso esta questão de uso correto das setas para representar cada tipo de mensagem, infelizmente na prática não tem sigo seguido como deveria ultimamente.

No entanto, na essência quando você for representar o uso das setas de mensagens, tenha em mente que geralmente:

  • Ponta de flecha sólida preenchida: Representa uma mensagem síncrona. Um objeto se comunica com o outro os detalhes desta comunicação são conhecidos.

  • Ponta de flecha fina: Representa uma mensagem assíncrona, mostrando que a informação de um objeto é passado para o outro sem descrever detalhes da comunicação. No entanto, aqui o controle da mensagem é passado para o objeto destino.

  • Meia ponta de flecha fina: Representa uma mensagem assíncrona, já com a informação prévia do objeto remetente de seguir com o processamento dos objetos posteriores, assim que a mesma for disparada. No entanto, aqui o controle da mensagem não é passado para o objeto destino.

Para te ajudar a visualizar um pouco mais na prática a relevância do entendimento desta questão de mensagem, pense no caso de mensagens síncronas conhecemos em detalhes o ciclo de processamento que cada objeto do nosso sistema pode sofrer durante a execução do sistema.

Já no caso de mensagens assíncronas não conhecemos quase nenhum detalhe do que existe do outro lado do processamento em alguma informação que buscamos numa fonte externa ao nosso sistema.

Bons estudos!