2
respostas

Meu entendimento de sincrono e assincrono é oposto ao explicado

No curso uma mensagem síncrona é explicada como se não interrompesse o processo para continuar as atividades, já a assíncrona interrompe o processo. Porém, pelo meu conhecimento técnico e pesquisa realizada sobre diagramas de UML ficou claro que o síncrono interrompe suas atividades até existir a resposta da mensagem, já o assíncrono não interrompe. Segue exemplo: https://www.google.com.br/search?q=mensagem+sincrona+e+assincrono&source=lnms&tbm=isch&sa=X&ved=0ahUKEwik1vi6mvrdAhXGIJAKHcBuAqkQ_AUIDigB&biw=1280&bih=913#imgrc=zAMBQMzmRGhEzM:

Afinal, qual o conceito correto?

2 respostas

Oi Luana,

Deixa eu tentar ajudar. ")

Pelo que entendi, concordo com as suas definições:

  • mensagem assíncrono: o objeto de origem envia a mensagem e continua imediatamente com a próxima etapa.

  • mensagem síncrona: remetente aguarda uma resposta a uma mensagem síncrona antes de continuar.

Vou encaminhar a sua dúvida para a revisão.

Obrigada pelo feedback e bons estudos.

Cara Luana,

Obrigado pelo envio deste comentário e parabéns pela sua dedicação nos estudos. De fato, o tema de "mensagens em UML" é tão abrangente e relevante que daria para termos um curso só dele.

Aqui farei um breve comentário sobre sua dúvida que é bastante pertinente. Talvez, não tenha ficado claro e até mesmo um pouco confuso, nos exemplos dados que as definições de mensagem síncrona e assíncrona estão na ótica do que o objeto destinatário deve fazer ao receber a mensagem, e não do objeto remetente, cuja a definição que você pesquisou está correta.

Assim, em suma temos na ótica do objeto remetente quando a mensagem é síncrona ela interrompe e quando ela é assíncrona ela não interrompe o processamento.

Por outro lado, na ótica do objeto destinatário quando a mensagem é síncrona ela não interrompe e quando ele é assíncrona ela interrompe o processamento.

Apesar de parecer pegadinha estes conceitos, pense numa analogia quando dizemos que um objeto está a esquerda ou a direita de nós, se nos virarmos vamos inverter a ótica de localização deles.

Aí você deve estar se perguntando, mas porquê não seguimos o que os livros e bibliografias acadêmicas de notação UML apresentam em sua grande maioria de apresentar a definição somente pela ótica da mensagem na ótica do objeto remetente mencionando muito pouco a ótica do objeto destinatário, correto!?

Pois bem, então pense que nosso curso visa a mostrar ao aluno a aplicação da UML na prática.

Com isto, tomamos como base um cenário que atualmente quando vamos desenvolver um sistema ou aplicativo, numa era digital onde tudo está conectado, geralmente reutilizamos e temos interfaces com outros em sistemas que não conseguimos controlar a origem das mensagens do objeto remetente embutido em códigos que não programamos, não acessamos sua fonte de dados e nem tão pouco controlamos o ambiente externo de processamento dele.

Neste caso, considerando nossa restrição de controlar ambientes externos onde o objeto remetente está, você concorda que em nosso sistema que se comunica com o ambiente externo estaremos representando mensagem na ótica de nosso sistema como objeto destinatário?

Assim, não seria recomendável em nossa modelagem tratarmos a mensagem já numa ótica de recebimento da mesma (objeto destino)? E assim, darmos continuidade ao tratamento dela dentro do que se espera de solução e atendimento a requisitos de nosso sistema!?

Não quero aqui gerar confusão no seu entendimento, mas só além de reforçar o agradecimento por sua dúvida incentivá-la a analisar as definições de mensagem síncrona e assíncrona na ótica do objeto remetente e também do objeto destinatário, ok!?

Vou adicionar algumas explicações lá no curso, para que possamos compartilhar esta visão de análise de mensagens com os outros alunos.

Obrigado pelo seu comentário.

Bons Estudos!