Diagramas de Interação
Prof. Anderson Cavalcanti
UFRN-CT-DCA
Diagramas de Interação
• Foco até o momento levantamento de requisitos;
• Foco neste momento projeto de objetos;
• Durante o projeto de objetos, é desenvolvida uma
solução lógica baseada em objetos.
Diagramas de Interação
• O cerne dessa solução diagramas de interação
– Ilustram como os objetos colaboram entre si para
atender aos requisitos
• Esses diagramas ajudam a transformar o modelo de
domínio em diagrama de classes (modelo de
projeto);
• Para a criação dos diagramas de interação é
necessário levar em consideração:
– Padrões de atribuição de responsabilidades;
– Padrões de projeto.
Notação de um Diagrama de
Interação
• Ilustra como os objetos
mensagens);
• Tipos de diagramas utilizados:
interagem
(trocam
– Diagrama de colaboração (communication – UML 2.0);
– Diagrama de seqüência;
• Cada tipo possui pontos fortes e fracos.
Diagrama de Colaboração
• Forma de grafo ou rede
Diagrama de Seqüência
• Ilustra o transcorrer do tempo
• Objetos colocados lado a lado
Pontos Fortes e Pontos Fracos
Exemplo de Diagrama de
Colaboração: fazerPagamento
Leitura do Diagrama
• A mensagem fazerPagamento é enviada para uma
instância de um Registro (PDV). Mensagem essa
enviada da interface;
• O objeto Registro envia a mensagem fazerPagamento
para uma instância de Venda;
• A instância de Venda cria uma instância de
Pagamento.
Exemplo de Diagrama de
Seqüência: fazerPagamento
• A leitura é semelhante ao diagrama de colaboração.
Criando Diagramas de Interação
• Dicas:
– Crie os diagramas de interação em duplas
– Invista tempo – um dia inteiro, se for preciso
Notação Comum para Diagramas
de Interação
• Ilustração de classes e instâncias
Notação Comum para Diagramas
de Interação
• Sintaxe básica das expressões de mensagens
– retorno := mensagem(param1 : tipo) : tipoRetorno
– exemplos:
• espec:=obterEspecProduto(id)
• espec:=obterEspecProduto(id:ItemID)
• espec:=obterEspecProduto(id:ItemID):EspecProduto
Notação Básica para os Diagramas
de Colaboração
• Ligação
– Uma conexão entre dois objetos – indica que alguma
forma de navegabilidade e de visibilidade entre eles é
possível (fluxo de mensagens);
– Simbolizada por uma linha ligando os objetos.
Notação Básica para os Diagramas
de Colaboração
• Mensagens
– Representada por uma expressão, uma seta e um
número de seqüência
Notação Básica para os Diagramas
de Colaboração
• Mensagens para “self” ou “this”
– Representa o envio de uma mensagem do objeto para
ele próprio
Notação Básica para os Diagramas
de Colaboração
• Criação de instâncias
– Pode ser representada de duas formas: mensagem
padrão “criar” ou uma mensagem de qualquer nome
com o esteriótipo “create”
Notação Básica para os Diagramas
de Colaboração
• Numeração da seqüência das mensagens
– Os números de ordem das mensagens obedecem ao
seguinte esquema:
• A primeira mensagem, vinda da interface, não é
numerada;
• A ordem e o aninhamento das mensagens são
mostrados por um esquema de numeração formal, no
qual as mensagens aninhadas têm um número
agregado (mensagem pai).
Notação Básica para os Diagramas
de Colaboração
• Numeração da seqüência das mensagens
Notação Básica para os Diagramas
de Colaboração
• Numeração da seqüência das mensagens
Notação Básica para os Diagramas
de Colaboração
• Mensagens condicionais
– Uma mensagem condicional é representada
adicionando uma condição entre colchetes após o
número de seqüência
Notação Básica para os Diagramas
de Colaboração
• Caminhos condicionais mutuamente exclusivos
– Mostra caminhos alternativos para a execução
– Altera a numeração de ordem das mensagens
Notação Básica para os Diagramas
de Colaboração
• Iteração
– Representa a execução repetida de uma mesma
mensagem
– É indicada com um asterisco após o número de
seqüência, e opcionalmente uma cláusula indicando a
condição de repetição
Notação Básica para os Diagramas
de Colaboração
• Iteração sobre uma coleção (multiobjeto)
– É muito comum em várias situações que seja
necessário iterar sobre uma coleção
– O termo mutiobjeto é utilizado para denotar uma
coleção de instâncias de outra classe
Notação Básica para os Diagramas
de Colaboração
• Mensagem para uma classe
– Um objeto pode executar diretamente um método de
uma classe, sem a necessidade de uma instância, se
esse método for estático;
– Representado com uma mensagem comum.
Notação Básica para um Diagrama
de Seqüência
• Ligações
– Não são mostradas diretamente
• Mensagens
– Representada por uma expressão de mensagem sobre
uma seta ligando a origem e o destino;
– Muitas ferramentas permitem que sejam ilustrados
dois tipos de mensagens: síncronas ou assíncronas :
• Síncronas (seta cheia) – A origem espera a resposta
para continuar o seu trabalho;
• Assíncronas (seta aberta) – A origem continua.
Notação Básica para um Diagrama
de Seqüência
• Mensagens
Notação Básica para um Diagrama
de Seqüência
• Mensagens
Notação Básica para um Diagrama
de Seqüência
• Ilustração de retornos
– É opcional a ilustração dos retornos das mensagens,
pode ser utilizado para ilustrar o conteúdo do retorno
Notação Básica para um Diagrama
de Seqüência
Notação Básica para um Diagrama
de Seqüência
• Mensagens para “self” ou “this”
– Mensagem enviada do objeto para ele próprio
Notação Básica para um Diagrama
de Seqüência
• Criação de instâncias
– Um novo objeto é inserido no diagrama como o
destino de uma mensagem criar
Notação Básica para um Diagrama
de Seqüência
• Linhas de vida e destruição de objetos
– As linhas tracejadas indicam a extensão da vida de um
objeto no diagrama
– Para ilustrar o descarte de um objeto usa-se a
mensagem estereotipada <<destroy>> e um X
interrompendo a linha de vida do mesmo
Notação Básica para um Diagrama
de Seqüência
• Mensagens condicionais
– Mensagem que só acontece se uma determinada
condição for satisfeita (condição entre colchetes)
Notação Básica para um Diagrama
de Seqüência
• Caminhos condicionais mutuamente exclusivos
– A notação normal ilustra duas mensagens saindo de
um mesmo ponto de origem
– Na impossibilidade pode-se se usar a notação abaixo
(ilustrando um mesmo instante de tempo)
Notação Básica para um Diagrama
de Seqüência
• Iteração para uma mensagem única
– Quando uma única mensagem é enviada repetidas
vezes, indica-se com um asterisco seguido da condição
da repetição
– A condição pode ser uma expressão lógica ou a
especificação de um laço controlado (intervalo)
Notação Básica para um Diagrama
de Seqüência
• Iteração de uma série de mensagens
– Cerca-se o conjunto de mensagens que se repetem
com um retângulo e ilustra-se na base do retângulo a
condição da repetição
Notação Básica para um Diagrama
de Seqüência
• Iteração sobre uma coleção
– Uma mensagem enviada para cada elemento de uma
coleção de objetos
Notação Básica para um Diagrama
de Seqüência
• Mensagens diretamente para classes
– Mensagens enviadas diretamente para classes (como
é o caso dos métodos estáticos)
Referências
• ALLEIXO, F. Notas de aula da disciplina de Análise e
Projeto Orientado a Objeto, CEFET/RN, 2007.
• SCOTT, K. O Processo Unificado Explicado. Ed.
Bookman, 2003.
Download

Aula 6 - DCA