Diagramas de Interação - DCAanderson/FTP/dca0120/P2_Aula6.pdf · uma seta ligando a origem e o...

Preview:

Citation preview

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.