Visão Geral

Os diagramas de seqüência e os diagramas de colaboração – chamados de diagramas de interação – são dois dos cinco diagramas utilizados na UML (Unified Modeling Language) para a modelagem dos aspectos dinâmicos de sistema. Um diagrama de interação mostra uma interação, formada por um conjunto de objetos e seus relacionamentos, incluindo as mensagens que poderão ser enviadas entre eles.

Uso Comum

Diagramas de interação podem aparecer sozinhos para visualizar, especificar, construir e documentar a dinâmica de uma determinada sociedade de objetos ou podem ser utilizados para fazer a modelagem de um determinado fluxo de controle de um caso de uso. Isso envolve a modelagem de instâncias concretas ou prototípicas de classe, interfaces, componentes e nós, juntamente com as mensagens que são trocadas entre eles, tudo isso no contexto de um cenário que ilustra um comportamento.
Quando um diagrama de interação é utilizado para fazer a modelagem de algum aspecto dinâmico de um sistema, a modelagem é feita no contexto do sistema como um todo, um subsistema, uma operação ou uma classe. Pode-se, também, anexar os diagramas de interação aos casos de uso, para fazer a modelagem de um cenário, e às colaborações, para fazer a modelagem dos aspectos dinâmicos de uma sociedade de objetos.
Os aspectos dinâmicos de um sistema podem ser modelados, utilizando diagramas de interação, considerando duas perspectivas distintas:
  • Modelagem dos fluxos de controle por ordenação temporal (a partir do diagrama de seqüência).
  • Modelagem dos fluxos de controle por organização estrutural (a partir do diagrama de colaboração).
Como ambos são derivados das mesmas informações de um metamodelo da UML, o diagrama de seqüência e o diagrama de colaboração são semanticamente equivalentes. Em função disso, o diagrama de uma forma pode ser convertido no outro sem qualquer perda de informação. Entretanto, isso não significa que os dois diagramas fornecem a visualizarão explicita das mesmas informações, as perspectivas de modelagem e visualização são diferentes, produzindo, desta maneira, uma abstração distinta do contexto do problema.

Termos e Conceitos

Uma interação é um comportamento que compreende um conjunto de mensagens trocadas entre um conjunto de objetos em determinado contexto para a realização de um propósito.
Uma mensagem é a especificação de uma comunicação entre objetos, a qual contém informações relacionadas ao que se espera resultar dessa atividade.
Um diagrama de interação mostra uma interação formada por um conjunto de objetos e seus relacionamentos, incluindo as mensagens que poderão ser trocadas entre eles.
Os diagramas de seqüência e os diagramas de colaboração são chamados de diagramas de interação. Um diagrama de seqüência é um diagrama de interação que dá ênfase à ordenação temporal das mensagens. O diagrama de colaboração é um diagrama de interação com ênfase à organização estrutural dos objetos que enviam e recebem mensagens.

Diagramas de Seqüência

Um diagrama de seqüência é formado colocando-se primeiro os objetos que participam da interação no nível superior do diagrama, ao longo do eixo X. Tipicamente, o objeto que inicia a interação é colocado à esquerda e objetos mais subordinados vão crescendo à direita. As mensagens que esses objetos enviam e recebem são colocadas ao longo do eixo Y, em ordem crescente de tempo, de cima para baixo, indicando o fluxo de controle ao longo do tempo.
Alinha de vida do objeto é a linha tracejada vertical que representa a existência de um objeto em um período de tempo. Muitos objetos que aparecem em um diagrama de interação terão existência igual à duração da interação, sendo assim, esses objetos são alinhados na parte superior do diagrama, com suas linhas de vida desenhadas de cima para baixo no diagrama.
Objetos poderão ser criados durante a interação e suas linhas de vida se iniciam com o destinatário da mensagem que produzira a criação do objeto. Os objetos também poderão ser destruídos durante a interação e suas linha de vida terminam com o destinatário da mensagem responsável pela destruição do objeto.
O foco de controle é um retângulo alto e estreito, que mostra o período durante o qual um objeto está desempenhando uma ação, diretamente ou por meio de um procedimento subordinado. A parte superior do retângulo é alinhada com o início da ação e a parte inferior é alinhada com sua conclusão.
 
Diagrama de Seqüência (Caso de Uso: Emitir pedido)

Além da ordenação temporal, a visualização da troca de mensagem entre objetos é outro recurso importante indicado pelo diagrama de seqüência. Existem diversas maneiras de descrever e modelar a troca de mensagens entre objetos, considerando o tipo de “chamada” que envia uma mensagem.
 
Diagrama de Seqüências (conceitos básicos)
Rótulo da Seqüência Mensagem Tipo
1 Mensagem01 Chamada síncrona
2 Mensagem02 Chamada de Criação (instanciação do objeto)
3 Mensagem03 Chamada síncrona
4 Mensagem04 Chamada síncrona
5 Mensagem05 Chamada local
6 Mensagem06 Chamada assíncrona
7 Mensagem07 Chamada de retorno
8 Mensagem08 Chamada recursiva
9 Mensagem09 Chamada de destruição (destruição do objeto)

Diagramas de Colaboração

Ao contrário do diagrama de seqüência, o diagrama de colaboração não mostra, explicitamente, a linha de vida de um objeto, apesar de poder exibir as mensagens de criação e destruição de objetos. Além disso, o foco de controle não é mostrado explicitamente em um diagrama de colaboração, apesar do número de seqüência de cada mensagem indicar o aninhamento.
Deve-se preocupar com a organização estrutural dos elementos do diagrama de colaboração, colocando os objetos que participam da interação como vértices de um gráfico. A seguir, representar os vínculos que conectam esses objetos indicando os arcos do gráfico. Deve-se, também, incluir, associado aos vínculos, as mensagens que os objetos enviam e recebem (com a indicação numérica da seqüência na qual elas devem ocorrer).
 
Diagrama de Colaboração (Caso de Uso: Emitir pedido)

Organização Física dos Modelos de Interação

Ao especificar um modelo de interação é conveniente atentar para os seguintes itens:
  • Dê-lhe um nome capaz de comunicar seu propósito.
  • Distribua seus elementos para minimizar o cruzamento de linhas.
  • Organize seus elementos espacialmente, de maneira que os itens semanticamente afins apareçam fisicamente próximos.
  • Use notas explicativas e cores como indicações visuais e chamar atenção para características importantes do diagrama.
  • Use a ramificação com cautela, ramificações complexas podem ser melhor representadas utilizando o diagrama de atividades.