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 umasolução lógica baseada em objetos.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 paraatender aos requisitos
• Esses diagramas ajudam a transformar o modelo dedomínio em diagrama de classes (modelo dedomínio em diagrama de classes (modelo deprojeto);
• 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 interagem (trocammensagens);
• Tipos de diagramas utilizados:
– Diagrama de colaboração (communication – UML 2.0);– 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 umainstância de um Registro (PDV). Mensagem essaenviada da interface;
• O objeto Registro envia a mensagem fazerPagamentopara uma instância de Venda;
• A instância de Venda cria uma instância dePagamento.
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)
• 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 algumaforma de navegabilidade e de visibilidade entre eles épossível (fluxo de mensagens);
Simbolizada por uma linha ligando os objetos.– 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 umnú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 paraele próprio
Notação Básica para os Diagramas
de Colaboração
• Criação de instâncias
– Pode ser representada de duas formas: mensagempadrão “criar” ou uma mensagem de qualquer nomecom 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 aoseguinte esquema:
• A primeira mensagem, vinda da interface, não énumerada;numerada;
• A ordem e o aninhamento das mensagens sãomostrados por um esquema de numeração formal, noqual as mensagens aninhadas têm um númeroagregado (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 é representadaadicionando uma condição entre colchetes após onú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 mesmamensagem
– É indicada com um asterisco após o número deseqüência, e opcionalmente uma cláusula indicando aseqüência, e opcionalmente uma cláusula indicando acondiçã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 sejanecessário iterar sobre uma coleção
– O termo mutiobjeto é utilizado para denotar umacoleção de instâncias de outra classecoleçã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 deuma classe, sem a necessidade de uma instância, seesse método for estático;
Representado com uma mensagem comum.– 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– Representada por uma expressão de mensagem sobreuma seta ligando a origem e o destino;
– Muitas ferramentas permitem que sejam ilustradosdois tipos de mensagens: síncronas ou assíncronas :
• Síncronas (seta cheia) – A origem espera a respostapara 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 odestino 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 umobjeto no diagrama
– Para ilustrar o descarte de um objeto usa-se amensagem estereotipada <<destroy>> e um Xmensagem estereotipada <<destroy>> e um Xinterrompendo a linha de vida do mesmo
Notação Básica para um Diagrama
de Seqüência
• Mensagens condicionais
– Mensagem que só acontece se uma determinadacondiçã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 deum mesmo ponto de origem
– Na impossibilidade pode-se se usar a notação abaixo(ilustrando um mesmo instante de tempo)(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 repetidasvezes, indica-se com um asterisco seguido da condiçãoda repetição
A condição pode ser uma expressão lógica ou a– A condição pode ser uma expressão lógica ou aespecificaçã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 repetemcom um retângulo e ilustra-se na base do retângulo acondiçã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 umacoleçã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.
Top Related