Prof. Marcello Thiry <marcello.thiry@gmail.com>
PROGRAMAÇÃO ORIENTADA
A OBJETOS
Unidade 2 (parte 3)
3º período
marcello.thiry@gmail.com
2
marcello.thiry@gmail.com
3
Visão estática
Visão dinâmica
marcello.thiry@gmail.com
4
Visão estática
Visão dinâmica
marcello.thiry@gmail.com
Diagrama de Sequência
 Diagrama Comportamental
 Diagrama de Interação
 Mostra a interação de o...
marcello.thiry@gmail.com
6
Operações e mensagens
 Uma mensagem é uma solicitação feita por um objeto
cliente a um objeto ...
marcello.thiry@gmail.com
7
Representação de uma mensagem...
marcello.thiry@gmail.com
8
Representação de uma mensagem...
Objetos
que estão
interagindo
marcello.thiry@gmail.com
9
Representação de uma mensagem...
Mensagem do objeto “cliente”
para o objeto “fornecedor”
marcello.thiry@gmail.com
10
Representação de uma mensagem...
Mensagem do objeto “cliente”
para o objeto “fornecedor” Senti...
marcello.thiry@gmail.com
11
Representação de uma mensagem...
fornecedor.getSalarioBruto()
getSalarioBruto() é uma operação...
marcello.thiry@gmail.com
12
Representação de uma mensagem...
cliente está invocando o método da operação
getSalarioBruto()...
marcello.thiry@gmail.com
Variável em cliente
que recebe o
resultado da execução
marcello.thiry@gmail.com
Notação para representar o
retorno do controle da execução
(retorno da chamada)
marcello.thiry@gmail.com
controle da
execução
Como funciona...
marcello.thiry@gmail.com
envio da
mensagem
controle da
execução
marcello.thiry@gmail.com
Executa
Acabou:
retornar o
controle
marcello.thiry@gmail.com
Retorno do controle da execução
marcello.thiry@gmail.com
O controle da execução retornou
para o objeto que mandou a mensagem
marcello.thiry@gmail.com
Chamada de procedimento
(mensagem síncrona)
marcello.thiry@gmail.com
Mensagens síncronas
 Representa um fluxo de controle aninhado
 Chamada a uma operação
 Mensage...
marcello.thiry@gmail.com
Mensagens síncronas
 Por ser uma mensagem bloqueante, utilizamos uma
notação para indicar o reto...
marcello.thiry@gmail.com
23
Um exemplo...
marcello.thiry@gmail.com
24
Um exemplo...
objetos
marcello.thiry@gmail.com
25
Um exemplo...
tempo
marcello.thiry@gmail.com
26
Um exemplo...
Não interessa
modelar quem
chamou ou
para quem vai
marcello.thiry@gmail.com
27
Um exemplo...
marcello.thiry@gmail.com
28
Um exemplo...
marcello.thiry@gmail.com
29
Um exemplo...
Este diagrama mostra a
implementação da
operação (método)
consultarSaldo(int) da...
marcello.thiry@gmail.com
30
marcello.thiry@gmail.com
31
marcello.thiry@gmail.com
32
marcello.thiry@gmail.com
33
marcello.thiry@gmail.com
Por convenção, objetos são colocados da esquerda para a
direita, conforme a participação deles na...
marcello.thiry@gmail.com
Linha de vida (Lifeline)
 Representa um objeto que participa da
interação
 Não faz sentido defi...
marcello.thiry@gmail.com
Foco de controle / Ativação
 Indica os períodos em que o objeto
participa ativamente da interaçã...
marcello.thiry@gmail.com
Os dois
estão ativos!
Foco de controle / Ativação
marcello.thiry@gmail.com
Os dois
estão ativos!
Foco de controle / Ativação
marcello.thiry@gmail.com
Auto-mensagem (self-message)
A mensagem é enviada
para o próprio objeto
marcello.thiry@gmail.com
Auto-mensagem (self-message)
marcello.thiry@gmail.com
Auto-mensagem (self-message)
Duas auto-mensagens
chamadas em sequência
marcello.thiry@gmail.com
Auto-mensagem (self-message)
Mostrando a
implementação da
auto-mensagem 1
Múltiplas camadas
de at...
marcello.thiry@gmail.com
Guarda (Guard)
Representa uma
condição: a mensagem
é enviada somente se
a condição for atendida
marcello.thiry@gmail.com
Fragmento “alt” (alternativas)
marcello.thiry@gmail.com
Fragmento “alt” (alternativas)
Área executada
se e somente se
a condição for
verdadeira
marcello.thiry@gmail.com
Fragmento “alt” (alternativas)
marcello.thiry@gmail.com
Fragmento “alt” (alternativas)
SE
SENÃO, SE
SENÃO, SE
marcello.thiry@gmail.com
Fragmento “loop” (laços)
marcello.thiry@gmail.com
Fragmento “loop” (laços)
marcello.thiry@gmail.com
Fragmento “loop” (laços)
No mínimo, X vezes
No máximo, Y vezes
marcello.thiry@gmail.com
Criação de objetos
Construtor
O objeto “conta”
pode receber e
enviar mensagens
marcello.thiry@gmail.com
Referências
52
 Grady Booch, James Rumbaugh, and Ivar Jacobson. The Unified
Modeling Language Us...
marcello.thiry@gmail.com
Referências
53
 Martin Fowler. UML Distilled: A Brief Guide to the Standard Object Modeling
Lang...
marcello.thiry@gmail.com
marcello.thiry@gmail.com
of 54

POO - Unidade 2 (parte 3) - Diagrama de Sequência (versão 1)

Material utilizado na disciplina de Programação Orientada a Objetos (animações e outros efeitos foram perdidos no carregamento). Ciência da Computação (3o período). Universidade do Vale do Itajaí - Campus Kobrasol.
Published on: Mar 4, 2016
Published in: Education      
Source: www.slideshare.net


Transcripts - POO - Unidade 2 (parte 3) - Diagrama de Sequência (versão 1)

  • 1. Prof. Marcello Thiry <marcello.thiry@gmail.com> PROGRAMAÇÃO ORIENTADA A OBJETOS Unidade 2 (parte 3) 3º período
  • 2. marcello.thiry@gmail.com 2
  • 3. marcello.thiry@gmail.com 3 Visão estática Visão dinâmica
  • 4. marcello.thiry@gmail.com 4 Visão estática Visão dinâmica
  • 5. marcello.thiry@gmail.com Diagrama de Sequência  Diagrama Comportamental  Diagrama de Interação  Mostra a interação de objetos organizada no tempo  Permite visualizar a troca de mensagens entre os objetos  Mostra a implementação de uma ou mais “operações”  Mostra os “métodos” destas operações 5
  • 6. marcello.thiry@gmail.com 6 Operações e mensagens  Uma mensagem é uma solicitação feita por um objeto cliente a um objeto fornecedor  Como resultado desta solicitação, o objeto fornecedor irá modificar seu estado ou irá retornar algum valor  Para invocar uma operação de um objeto, deve-se enviar uma mensagem para este objeto 6
  • 7. marcello.thiry@gmail.com 7 Representação de uma mensagem...
  • 8. marcello.thiry@gmail.com 8 Representação de uma mensagem... Objetos que estão interagindo
  • 9. marcello.thiry@gmail.com 9 Representação de uma mensagem... Mensagem do objeto “cliente” para o objeto “fornecedor”
  • 10. marcello.thiry@gmail.com 10 Representação de uma mensagem... Mensagem do objeto “cliente” para o objeto “fornecedor” Sentido da mensagem
  • 11. marcello.thiry@gmail.com 11 Representação de uma mensagem... fornecedor.getSalarioBruto() getSalarioBruto() é uma operação da classe “Funcionario”
  • 12. marcello.thiry@gmail.com 12 Representação de uma mensagem... cliente está invocando o método da operação getSalarioBruto() que será executado pelo objeto fornecedor
  • 13. marcello.thiry@gmail.com Variável em cliente que recebe o resultado da execução
  • 14. marcello.thiry@gmail.com Notação para representar o retorno do controle da execução (retorno da chamada)
  • 15. marcello.thiry@gmail.com controle da execução Como funciona...
  • 16. marcello.thiry@gmail.com envio da mensagem controle da execução
  • 17. marcello.thiry@gmail.com Executa Acabou: retornar o controle
  • 18. marcello.thiry@gmail.com Retorno do controle da execução
  • 19. marcello.thiry@gmail.com O controle da execução retornou para o objeto que mandou a mensagem
  • 20. marcello.thiry@gmail.com Chamada de procedimento (mensagem síncrona)
  • 21. marcello.thiry@gmail.com Mensagens síncronas  Representa um fluxo de controle aninhado  Chamada a uma operação  Mensagem bloqueante  O objeto “cliente” fica esperando (bloqueado) pela execução da operação no objeto “fornecedor”  O objeto “cliente” só poderá fazer uma nova ação quando receber o controle de volta 21
  • 22. marcello.thiry@gmail.com Mensagens síncronas  Por ser uma mensagem bloqueante, utilizamos uma notação para indicar o retorno do controle ao objeto que originou a mensagem 22
  • 23. marcello.thiry@gmail.com 23 Um exemplo...
  • 24. marcello.thiry@gmail.com 24 Um exemplo... objetos
  • 25. marcello.thiry@gmail.com 25 Um exemplo... tempo
  • 26. marcello.thiry@gmail.com 26 Um exemplo... Não interessa modelar quem chamou ou para quem vai
  • 27. marcello.thiry@gmail.com 27 Um exemplo...
  • 28. marcello.thiry@gmail.com 28 Um exemplo...
  • 29. marcello.thiry@gmail.com 29 Um exemplo... Este diagrama mostra a implementação da operação (método) consultarSaldo(int) da classe TerminalBancario
  • 30. marcello.thiry@gmail.com 30
  • 31. marcello.thiry@gmail.com 31
  • 32. marcello.thiry@gmail.com 32
  • 33. marcello.thiry@gmail.com 33
  • 34. marcello.thiry@gmail.com Por convenção, objetos são colocados da esquerda para a direita, conforme a participação deles na interação Mas os objetos podem ser colocados em qualquer ordem
  • 35. marcello.thiry@gmail.com Linha de vida (Lifeline)  Representa um objeto que participa da interação  Não faz sentido definir multiplicidade  A linha de vida (linha tracejada) representa o tempo de vida do objeto  Somente objetos ainda vivos podem enviar e receber mensagens - Notação para indicar que o objeto não existe mais - O objeto foi destruído
  • 36. marcello.thiry@gmail.com Foco de controle / Ativação  Indica os períodos em que o objeto participa ativamente da interação  Quando o objeto está executando um método É possível ter dois objetos ativos ao mesmo tempo?
  • 37. marcello.thiry@gmail.com Os dois estão ativos! Foco de controle / Ativação
  • 38. marcello.thiry@gmail.com Os dois estão ativos! Foco de controle / Ativação
  • 39. marcello.thiry@gmail.com Auto-mensagem (self-message) A mensagem é enviada para o próprio objeto
  • 40. marcello.thiry@gmail.com Auto-mensagem (self-message)
  • 41. marcello.thiry@gmail.com Auto-mensagem (self-message) Duas auto-mensagens chamadas em sequência
  • 42. marcello.thiry@gmail.com Auto-mensagem (self-message) Mostrando a implementação da auto-mensagem 1 Múltiplas camadas de ativação
  • 43. marcello.thiry@gmail.com Guarda (Guard) Representa uma condição: a mensagem é enviada somente se a condição for atendida
  • 44. marcello.thiry@gmail.com Fragmento “alt” (alternativas)
  • 45. marcello.thiry@gmail.com Fragmento “alt” (alternativas) Área executada se e somente se a condição for verdadeira
  • 46. marcello.thiry@gmail.com Fragmento “alt” (alternativas)
  • 47. marcello.thiry@gmail.com Fragmento “alt” (alternativas) SE SENÃO, SE SENÃO, SE
  • 48. marcello.thiry@gmail.com Fragmento “loop” (laços)
  • 49. marcello.thiry@gmail.com Fragmento “loop” (laços)
  • 50. marcello.thiry@gmail.com Fragmento “loop” (laços) No mínimo, X vezes No máximo, Y vezes
  • 51. marcello.thiry@gmail.com Criação de objetos Construtor O objeto “conta” pode receber e enviar mensagens
  • 52. marcello.thiry@gmail.com Referências 52  Grady Booch, James Rumbaugh, and Ivar Jacobson. The Unified Modeling Language User Guide. 2nd ed. Addison-Wesley, 2005.  Ricardo Pereira e Silva. UML 2 em Modelagem Orientada a Objetos. Visual Books, 2007.  OMG (Object Management Group), OMG Unified Modeling Language v2.5, 2012.  http://www.omg.org/spec/UML/2.5/Beta1/PDF/
  • 53. marcello.thiry@gmail.com Referências 53  Martin Fowler. UML Distilled: A Brief Guide to the Standard Object Modeling Language. 3th ed. Addison-Wesley, 2003.
  • 54. marcello.thiry@gmail.com marcello.thiry@gmail.com