40
Diagramas de Interação Prof. Anderson Cavalcanti UFRN-CT-DCA

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

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.