Buscar

Diagrama de Interação

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
*
Modelagem de Sistemas
Prof. Valentino D´Ambrosi Jr.
Seção 7
*
*
Nossas aulas
Seção 1 - 29/01/2015
Seção 2 - 05/02/2015 	
Seção 3 - 12/02/2015 – ED1
Seção 4 - 19/02/2015 - N1
Seção 5 - 26/02/2015
Seção 6 - 05/03/2015 – ED2
Seção 7 - 10/03/2015 
Seção 8 – 12/03/2015 – N2
Seção 9 - 17/03/2015 – ED3
Seção 10 - 26/03/2015 – U2
*
*
DIAGRAMA DE INTERAÇÃO
*
*
Introdução
O diagrama de casos de uso descreve quais as funcionalidades que o sistema deve possuir.
Com o modelo de casos de uso podemos responder questões como: o que o sistema deve fazer e para quem ele deve fazer.
O diagrama de casos de uso não deixa claro o funcionamento interno do sistema.
*
*
Introdução
O modelo de casos de uso não responde as seguintes perguntas:
Quais são as operações que devem ser executadas internamente ao sistema?
A que classes essas operações pertencem?
Quais objetos participam da realização desse caso de uso?
O diagrama de classes mostra uma outra visão do sistema, uma visão estática dos elementos internos e como eles se relacionam.
*
*
Introdução
Porém o diagrama de classes também não responde algumas questões:
De que forma os objetos colaboram para que determinado caso de uso seja realizado?
Em que ordem as mensagens são enviadas durante essa realização?
Que informações precisam ser enviadas em uma mensagem de um objeto a outro?
Será que há responsabilidades ou mesmo classes que ainda não foram identificadas?
*
*
Introdução
O modelo de casos de uso e de classes são representações incompletas.
Para fechar a modelagem de um sistema precisamos criar modelos de interações.
Modelos de interação mostram as mensagens trocadas entre os objetos para execução de cenários dos casos de uso.
Através do modelo de interações podemos validar o diagrama de classes.
*
*
Diagramas de Interação
Realização de um caso de uso é a representação interna do caso de uso.
Modelos de interação representam a realização interna de um caso de uso.
Na UML são os diagramas de interação que modelam aspectos de interação do sistema.
*
*
Diagramas de Interação
São diagramas de interação da UML 2.0: diagrama de sequência, diagrama de comunicação (ou colaboração), diagrama de visão geral de interação e diagrama de tempo.
O diagrama de sequência da destaque para a ordem temporal que as mensagens são trocadas entre os objetos.
O diagrama de comunicação da ênfase para os relacionamentos existentes entre os objetos de um mesmo cenário.
*
*
Diagramas de Interação
Diagramas de sequência são largamente utilizados em projetos.
Exemplo:
*
*
Diagramas de Interação
Exemplo:
*
*
Diagramas de Interação
O diagrama de visão geral de interação é utilizado para apresentar uma visão geral de diversas interações entre objetos.
Cada interação é representada por um diagrama de interação.
 Diagramas de interação descrevem o funcionamento interno de um caso de uso.
Diagramas de interação descrevem a sequência de troca de mensagens entre objetos.
*
*
Diagramas de Sequência e Comunicação
Diagramas de sequência e comunicação possuem notação bem comum:
Mensagens
Atores
Objetos
Classes
*
*
Diagramas de Sequência e Comunicação - Mensagens
O princípio mais importante entre objetos é o conceito de troca de mensagens.
Um envio de mensagem é a solicitação de uma operação ou serviço.
Um software pode ser visto como uma rede de objetos que trocam mensagens.
As funcionalidades do software são realizadas pelos objetos.
*
*
Diagramas de Sequência e Comunicação - Mensagens
“Uma mensagem representa a requisição de um objeto remetente a um objeto receptor para que este último execute alguma operação definida em sua classe.”
Uma mensagem é a chamada de um método implementado dentro de uma classe.
 Em um diagrama a representação de uma mensagem requer sempre um objeto remetente e um objeto receptor.
*
*
Diagramas de Sequência e Comunicação - Mensagens
“Em uma mensagem podemos passar informações que serão utilizadas no objeto receptor (parâmetros).
• Tipos de Mensagens:
• Mensagem Síncrona 
O remetente fica bloqueado até que o receptor termine de
atender a requisição. Método definido na classe do objeto receptor.
•Mensagem Assíncrona 
O objeto remetente não aguarda a resposta do receptor para prosseguir com o seu processamento.
*
*
Diagramas de Sequência e Comunicação - Mensagens
Tipos de Mensagens:
Mensagem de Sinal 
Mensagem utilizada para enviar um sinal. Um sinal pode ser o envio de uma requisição entre dois módulos em um sistema distribuído.
Mensagem de Retorno 
É aquela mensagem utilizada para enviar o retorno de uma mensagem enviada anteriormente.
Mensagem Reflexiva 
É aquela enviada para um método da própria classe.
*
*
Diagramas de Sequência e Comunicação - Mensagens
Sintaxe de uma Mensagem:
Uma mensagem e representada por uma seta, cujo sentido e do objeto remetente para o objeto receptor.
As setas possuem rotulos que especificam a mensagem que esta sendo trocada (uma mesma classe pode possuir mais de um metodo).
O rotulo pode ser apenas o nome do metodo do objeto receptor.
*
*
Diagramas de Sequência e Comunicação - Mensagens
Sintaxe de uma Mensagem:
O rotulo também pode ser a assinatura completa do método.
Sintaxe completa:
[[expressão-sequencia] controle:] [v:=]
nome [(argumentos)]
A parte dentro dos colchetes e opcional.
*
*
Diagramas de Sequência e Comunicação - Mensagens
Sintaxe de uma Mensagem:
Obrigatória e somente o nome do método.
Expressão-sequência:
Utilizada para remover ambiguidades sobre quando uma determinada mensagem foi enviada em relação as outras.
No diagrama de sequência do exemplo as mensagens foram numeradas com 1, 1.1 e 1.1.1.
*
*
Diagramas de Sequência e Comunicação - Mensagens
Expressão-sequência:
A mensagem 1.1 foi enviada antes da mensagem 1.1.1.
Podemos utilizar a numeração em níveis ou sem níveis.
A numeração em níveis proporciona a indicação que uma determinada mensagem foi enviada por causa de outra mensagem.
*
*
Diagramas de Sequência e Comunicação - Mensagens
Expressão-sequência:
O formato em níveis pode ser sufixado com letras para indicar que duas mensagens estão sendo enviadas em paralelo.
Exemplo: 1.2a e 1.2b
Controle:
Campo utilizado quando precisamos mostrar que o envio de uma mensagem esta condicionado ao valor de uma expressão lógica (clausula-condição).
*
*
Diagramas de Sequência e Comunicação - Mensagens
Controle:
Este campo também pode ser utilizado para indicar quantas vezes uma mensagem deve ser enviada (clausula-iteração).
Se aparecer uma clausula-condição esta mensagem só e enviada se a condição for verdadeira.
A clausula-iteração e representada por um asterisco e indica que a mensagem e enviada diversas vezes.
*
*
Diagramas de Sequência e Comunicação - Mensagens
Controle:
Podemos também em uma clausula iteração definir o limite inferior e o limite superior de vezes que uma mesma mensagem será enviada.
Exemplo: *[i:=1…10]
Variável:
E o elemento v da sintaxe apresentada.
*
*
Diagramas de Sequência e Comunicação - Mensagens
Variável:
Representa o valor a ser retornado pelo método a ser executado.
Nome e argumentos:
O elemento nome representa • o nome do método do objeto receptor.
 Um método pode conter uma lista de argumentos, que podem ser especificados dentro dos parênteses.
*
*
Diagramas de Sequência e Comunicação - Mensagens
Exemplos:
1: adicionarItem(item)
3: [a > b]: trocar(a,b)
1.2: *:desenhar()
1.1.3: *[i:=1…10]: figura[i].desenhar()
4: x:= selecionar(e)
*
*
Diagramas de Sequência e Comunicação - Atores
Atores de um DCU podem participar de um diagrama
de interação.
A notação de um ator em um diagrama de interação é igual de um DCU.
*
*
Diagramas de Sequência e Comunicação - Objetos
Objetos em um diagrama de interação possuem a mesma notação de um objeto em um diagrama de objetos.
A UML 2.0 define o formato da expressão interna de um objeto da seguinte forma:
nome_do_objeto [seletor] : nome_classe ref ocorrência_interação
*
*
Diagramas de Sequência e Comunicação - Objetos
Componentes da Expressão:
nome_objeto 
É o nome de uma instância de uma determinada classe. Elemento opcional da expressão.
Normalmente nomeamos objetos quando precisamos referenciar o mesmo objeto em mais de um lugar no diagrama.
Exemplo:
*
*
Diagramas de Sequência e Comunicação - Objetos
Componentes da Expressão:
nome_classe
corresponde ao nome da classe da instância.
seletor 
elemento opcional. Serve para indicar que uma instância de uma classe pertence a uma coleção de objetos.
 
Exemplo: Lista
*
*
Diagramas de Sequência e Comunicação - Objetos
Componentes da Expressão:
ocorrência_interação 
este elemento é opcional. Serve para referênciar outro diagrama de interação.
Quando este elemento for utilizado a palavra “ref” precisa ser posicionada a sua esquerda.
*
*
Diagramas de Sequência e Comunicação - Classes
Existem situações que enviamos mensagens para classes e não para objetos.
Se uma classe participar de um caso de uso precisamos representar esta classe no diagrama de interação.
Mensagens são chamadas de métodos (como já visto anteriormentente).
Mensagens para classes são chamadas de métodos estáticos.
*
*
Diagramas de Sequência e Comunicação - Classes
A notação de classe e objeto em um diagrama de interação são iguais.
A diferença está no fato de que na representação de classe, o nome da classe não é sublinhado.
Exemplo:
*
*
Diagramas de Sequência e Comunicação - Coleções de Objetos
Diagrama de interação permitem a representação de objetos, classes e multiobjetos.
Multiobjetos são coleções de objetos de uma mesma classe.
Podemos utilizar um multiobjeto da UML para representar a implementação de uma lista de objetos em Java.
*
*
Diagramas de Sequência e Comunicação - Coleções de Objetos
Notação de multiobjetos: 2 retângulos sobrepostos.
Exemplo:
Em um código Java implementamos coleções de objetos através de estruturas de dados como ArrayList, List, Vector, ect.
*
*
Diagramas de Sequência e Comunicação - Coleções de Objetos
São algumas das operações possíveis com coleções de objetos:
adicionar um objeto a lista.
remover um objeto da lista.
procurar um objeto na lista.
*
*
DIAGRAMA DE SEQUÊNCIA
*
*
Diagramas de Sequência
OBJETIVO = mostrar a ordem temporal que as interações entre objetos acontecem.
Notações já estudadas de um diagrama de sequência:
• Mensagem
• Classe e objetos
• Coleção de objetos
• Atores
*
*
Diagramas de Sequência
Notações não estudadas (ainda):
Linha da Vida
Envio de mensagens
Ocorrência de execução
Criação e destruição de objetos
*
*
Diagramas de Sequência 
Linha da Vida
O primeiro passo da criação de um diagrama de sequência é identificar os objetos que estão relacionados com o caso de uso que será modelado.
O segundo passo é posicionar os objetos no diagrama.
Linha de vida são elementos compostos por duas partes: cabeça e cauda.
*
*
Diagramas de Sequência 
Linha da Vida
A cabeça é a representação do objeto ou da classe.
A cauda é uma linha vertical tracejada.
Podemos ter caudas em • objetos e atores.
O ator e sua cauda devem ser posicionados no extremo da esquerda de um diagrama de sequência.
*
*
Diagramas de Sequência 
Linha da Vida
Ordem de Posicionamento dos Elementos em um Diagrama de Sequência:
Da esquerda para a direita -> ator, objetos com os quais o ator interage, objetos de controle, objetos de entidade.
*
*
Diagramas de Sequência 
Envio de Mensagens
Mensagens em um diagrama de sequência são representadas por flechas na horizontal ligando uma linha de vida a outra.
O objeto de onde parte a flecha é o remetente.
O objeto para o qual aponta a flecha é o receptor.
*
*
Diagramas de Sequência 
Envio de Mensagens
Para cada tipo de mensagem existe um tipo de flecha:
*
*
Diagramas de Sequência 
Envio de Mensagens
O rótulo de uma mensagem deve ser posicionado acima da flecha.
Um diagrama de sequência deve ser lido da esquerda para a direita e de cima para baixo.
Quanto mais abaixo uma mensagem está no diagrama de sequência mais recentemente esta mensagem foi enviada.
*
*
Diagramas de Sequência 
Envio de Mensagens
Podemos ainda ter mensagens reflexivas.
Mensagens reflexivas são aquelas que partem e chegam no mesmo objeto.
*
*
Diagramas de Sequência 
Ocorrência de Execução
Representa o tempo que o objeto realiza alguma operação.
São representados por blocos retangulares posicionados sobre a linha da vida.
O inicio de uma ocorrência de execução é quando o receptor recebe uma mensagem.
O término de uma ocorrência de execução é quando o objeto terminou de realizar a operação.
*
*
Diagramas de Sequência 
Ocorrência de Execução
O uso dos blocos de execução não é obrigatório.
Se for utilizado torna desnecessário o uso de mensagem de retorno.
*
*
Diagramas de Sequência 
Criação e Destruição de Objetos
No momento que instanciamos um objeto no código estamos criando este objeto.
Java possui mecanismos de destruição automática de objetos.
Em diagramas de sequência temos notações para representar a criação e a destruição de objetos.
*
*
Diagramas de Sequência 
Criação e Destruição de Objetos
Primeiro precisamos identificar se um objeto é criado antes do caso de uso começar ou durante o caso de uso.
Se o objeto já existir antes do inicio das interações do caso de uso, posicionamos este objeto no topo do diagrama.
Caso contrário posicionamos o objeto na vertical
no momento que ele é criado.
*
*
Diagramas de Sequência 
Criação e Destruição de Objetos
A instanciação de um objeto sempre é feita por outro objeto.
Mensagens de criação de objetos podem ser rotuladas de duas maneiras:
 <<create>>
 Com o nome do método construtor.
 Mensagens de criação de objetos são representadas por uma flecha pontilhada.
*
*
Diagramas de Sequência 
Criação e Destruição de Objetos
A flecha pontilhada deve apontar para a cabeça e não para a cauda de uma linha de vida.
Exemplo:
*
*
Diagramas de Sequência 
Criação e Destruição de Objetos
A destruição de um objeto é representada por um X no final da linha de vida de um objeto.
Mensagens de destruição são rotuladas por <<destroy>>.
A flecha de destruição não é pontilhada.
*
*
DIAGRAMA DE COMUNICAÇÃO
*
*
Diagramas de Comunicação
Diagrama de comunicação exibe os objetos relevantes de um caso de uso e as ligações entre esses objetos.
Mostra as mensagens sendo trocadas entre os objetos.
*
*
Diagramas de Comunicação
Como em um diagrama de sequência podemos ter:
Objetos e classes
Multiobjetos
Referências para um elemento de uma coleção
Objetos em um diagrama de comunicação são ligados através de linhas.
As linhas correspondem a relacionamentos entre objetos: associação, agregação, composição e dependência.
*
*
Diagramas de Comunicação
A leitura do diagrama de comunicação é diferente de um diagrama de sequência.
Em um diagrama de sequência a posição vertical indica a ordem que as mensagens foram enviadas.
Em um diagrama de comunicação só sabemos a ordem de envio das mensagens através das expressões de sequência.
*
*
Diagramas de Comunicação
Isso torna expressões de sequência obrigatórias em um diagrama de comunicação.
O sentido da mensagem é indicado por uma seta posicionada próxima ao rótulo da mensagem.
A seta aponta para o objeto
receptor da mensagem.
*
*
Diagramas de Comunicação
Em um diagrama de comunicação também podemos representar a criação e destruição de um objeto.
A criação de objetos são rotuladas com {new}.
A destruição de objetos são rotuladas com {destroyed}.
Os rótulos de criação e destruição podem ser posicionados dentro do objeto ou próximos a linha.
*
*
Diagramas de Sequência
Exemplo Completo
Caso de Uso
*
*
Diagramas de Sequência
Exemplo Completo
Diagrama de Classes
*
*
Diagramas de Sequência
Exemplo Completo
Diagrama de Sequência
*
*
Diagramas de Comunicação
Exemplo Completo
Diagrama de Comunicação
*
*
Modelagem
Identifique as classes que participam em cada caso de uso. Essas são as entidades do mundo real que estariam envolvidas na tarefa do caso de uso se este fosse executado manualmente.
Exemplo: Disciplina, Pagamento, Venda, Pedido, etc.
Identifique as classes que ajudam a organizar as tarefas a serem executadas pelo caso de uso.
Exemplo: classes de controle.
*
*
Modelagem
Identificar quais objetos são criados durante a execução do caso de uso.
Identificar quais objetos criam outros objetos.
Durante a modelagem • de um diagrama de interação pode surgir a necessidade de um objeto que não exista no diagrama de classes.
Também podem surgir novos métodos, atributos e associações.
*
*
Modelagem
Utilize notas explicativas no seu modelo de interação para explicar partes mais complicadas.
Nas notas explicativas podemos utilizar texto livre ou pseudocódigo.
*
*
Exercício
A partir do diagrama de comunicação abaixo construa o diagrama de classes. Especifique classes, relacionamentos
e métodos que são possíveis de serem extraídos a partir
do diagrama de comunicação.
*
*
Contato
valentino.junior@bilac.com.br	
Obrigado pela 
atenção de todos(as).
@
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais