Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o...
Transcript of Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o...
![Page 1: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/1.jpg)
Diagramas de Interação
Prof. Anderson Cavalcanti
UFRN-CT-DCA
![Page 2: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/2.jpg)
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.
![Page 3: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/3.jpg)
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.
![Page 4: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/4.jpg)
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.
![Page 5: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/5.jpg)
Diagrama de Colaboração
• Forma de grafo ou rede
![Page 6: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/6.jpg)
Diagrama de Seqüência
• Ilustra o transcorrer do tempo
• Objetos colocados lado a lado
![Page 7: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/7.jpg)
Pontos Fortes e Pontos Fracos
![Page 8: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/8.jpg)
Exemplo de Diagrama de
Colaboração: fazerPagamento
![Page 9: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/9.jpg)
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.
![Page 10: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/10.jpg)
Exemplo de Diagrama de
Seqüência: fazerPagamento
• A leitura é semelhante ao diagrama de colaboração.
![Page 11: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/11.jpg)
Criando Diagramas de Interação
• Dicas:
– Crie os diagramas de interação em duplas
– Invista tempo – um dia inteiro, se for preciso
![Page 12: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/12.jpg)
Notação Comum para Diagramas
de Interação
• Ilustração de classes e instâncias
![Page 13: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/13.jpg)
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
![Page 14: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/14.jpg)
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.
![Page 15: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/15.jpg)
Notação Básica para os Diagramas
de Colaboração
• Mensagens
– Representada por uma expressão, uma seta e umnúmero de seqüência
![Page 16: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/16.jpg)
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
![Page 17: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/17.jpg)
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”
![Page 18: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/18.jpg)
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).
![Page 19: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/19.jpg)
Notação Básica para os Diagramas
de Colaboração
• Numeração da seqüência das mensagens
![Page 20: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/20.jpg)
Notação Básica para os Diagramas
de Colaboração
• Numeração da seqüência das mensagens
![Page 21: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/21.jpg)
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
![Page 22: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/22.jpg)
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
![Page 23: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/23.jpg)
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
![Page 24: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/24.jpg)
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
![Page 25: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/25.jpg)
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.
![Page 26: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/26.jpg)
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.
![Page 27: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/27.jpg)
Notação Básica para um Diagrama
de Seqüência
• Mensagens
![Page 28: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/28.jpg)
Notação Básica para um Diagrama
de Seqüência
• Mensagens
![Page 29: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/29.jpg)
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
![Page 30: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/30.jpg)
Notação Básica para um Diagrama
de Seqüência
![Page 31: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/31.jpg)
Notação Básica para um Diagrama
de Seqüência
• Mensagens para “self” ou “this”
– Mensagem enviada do objeto para ele próprio
![Page 32: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/32.jpg)
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
![Page 33: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/33.jpg)
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
![Page 34: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/34.jpg)
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)
![Page 35: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/35.jpg)
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)
![Page 36: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/36.jpg)
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)
![Page 37: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/37.jpg)
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
![Page 38: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/38.jpg)
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
![Page 39: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/39.jpg)
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)
![Page 40: Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o destino; – Muitas ferramentas permitem que sejam ilustrados ... • Linhas de vida](https://reader034.fdocumentos.tips/reader034/viewer/2022042316/5f05531b7e708231d4126721/html5/thumbnails/40.jpg)
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.