Nessa aula, vamos examinar com mais detalhes o diagrama de sequência da UML.
Ao final da aula, entenderemos como construir um diagrama UML de sequência representando as interações entre os objetos de um programa.
Um diagrama de sequência UML pode ser composto pelos seguintes elementos:
Objeto
Representa uma instância de uma classe (objeto) do sistema.
É desenhada como um retângulo com o nome da variável representando o objeto, seguido de dois pontos (:) seguido do nome da classe, tudo sublinhado.
Pode também conter um segundo segmento, mostrando o nome e valor dos atributos do objeto.
Ator
Representa uma entidade externa ao sistema: um usuário ou outro sistema, que interage com o sistema.
É desenhado como um boneco palito (stick figure) com o nome da entidade escrito abaixo, opcionalmente com um tipo.
É tipicamente um ator que inicia uma interação entre objetos.
Linha de vida (Lifeline)
Representa o intervalo de atuação (escopo) de uma certa entidade no sistema.
É desenhada como uma linha pontilhada partindo do objeto para baixo.
O fim da linha de vida de uma entidade é indicado com um X na ponta inferior da linha.
A dimensão de tempo é relativa à ordem das interações entre as entidades e corre de cima para baixo.
Porta (Gate)
Indica um ponto na linha de vida de uma entidade, em que uma interação pode ocorrer.
É desenhada como um retângulo vazio ao longo da linha de vida.
O fim de uma porta tipicamente indica o fim de uma interação.
Mensagem
Indica uma interação entre duas entidades, o sentido em que a interação ocorre e a ordem em que ocorre relativa às outras interações.
É desenhada como uma linha apontando de uma porta em uma linha de vida para outra porta.
Acima da linha é escrito um número representando a ordem daquela interação, seguido do nome da mensagem (tipicamente um método ou ação), separados por dois pontos (:).
Mensagens de retorno são desenhadas com uma linha pontilhada, percorrendo o caminho de volta até a porta que iniciou a interação, concluindo uma interação.
Mensagens podem ser síncronas ou assíncronas.
As mensagens síncronas fazem a entidade que originou a mensagem esperar até o fim da interação para poder iniciar a próxima. São terminadas com uma seta preenchida e fechada.
As mensagens assíncronas não fazem a entidade originante esperar para iniciar a próxima interação, e são terminadas com uma seta aberta e vazia.
Guarda (Guard)
Indica uma condição que deve ser satisfeita para uma determinada interação ocorrer.
É escrita como uma expressão booleana entre colchetes, antes do nome da mensagem.
Fragmento
Representa um bloco de interações que devem ser efetuadas em um contexto comum.
O contexto pode ser uma condição (Alt), opcional (Opt), parada (Break), repetição (Loop), entre outras.
É desenhado como um retângulo envolvando todo o conjunto de interações de bloco com uma etiqueta no topo esquerdo informando o tipo de contexto,
com as condições do contexto escritas como expressões booleanas entre colchetes, acima das mensagens em seu escopo de ação.
Um diagrama completo
Agora já podemos desenhar diagramas de sequência UML.
Além disso, podemos também visualizar as interações entre objetos de um sistema e entender como ocorrem as cadeias de ações que manipulam o estado dos objetos.
Perguntas:
Exercício:
Até a próxima aula!