Diagramasde Interação Prof. Anderson Cavalcanti UFRN-CT-DCA
Diagramasde 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.
Diagramasde 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 interagem (trocam mensagens); Tipos de diagramas utilizados: Diagrama de colaboração(communication UML 2.0); Diagrama de seqüência; Cada tipo possui pontos fortes e fracos.
Diagramade Colaboração Forma de grafo ou rede
Diagramade Seqüência Ilustra o transcorrer do tempo Objetos colocados lado a lado
Pontos Fortes e Pontos Fracos
Exemplo de Diagrama de Colaboração: fazerpagamento
Leiturado 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.
CriandoDiagramasde 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
Ligação Notação Básica para os Diagramas de Colaboraçã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.
Mensagens Notação Básica para os Diagramas de Colaboração 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 oenviodeuma mensagemdoobjetopara 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 obedecemao 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
Iteração Notação Básica para os Diagramas de Colaboraçã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.
Ligações Notação Básica para um Diagrama de Seqüência Não são mostradas diretamente Mensagens Representada por uma expressão de mensagem sobre umasetaligandoaorigemeodestino; 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.
Mensagens Notação Básica para um Diagrama de Seqüência
Mensagens Notação Básica para um Diagrama de Seqüência
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 Aslinhastracejadasindicamaextensãodavidadeum 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 ummesmopontodeorigem 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 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.