54
Prof. Marcello Thiry <[email protected]> PROGRAMAÇÃO ORIENTADA A OBJETOS Unidade 2 (parte 3) 3º período

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

Embed Size (px)

DESCRIPTION

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.

Citation preview

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

Prof. Marcello Thiry <[email protected]>

PROGRAMAÇÃO ORIENTADA A OBJETOS

Unidade 2 (parte 3)

3º período

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

[email protected]

3

Visão estática

Visão dinâmica

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

[email protected]

4

Visão estática

Visão dinâmica

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

[email protected]

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

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

[email protected]

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

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

[email protected]

7

Representação de uma mensagem...

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

[email protected]

8

Representação de uma mensagem...

Objetos que estão interagindo

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

[email protected]

9

Representação de uma mensagem...

Mensagem do objeto “cliente” para o objeto “fornecedor”

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

[email protected]

10

Representação de uma mensagem...

Mensagem do objeto “cliente” para o objeto “fornecedor” Sentido da mensagem

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

[email protected]

11

Representação de uma mensagem...

fornecedor.getSalarioBruto()

getSalarioBruto() é uma operação da classe “Funcionario”

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

[email protected]

12

Representação de uma mensagem...

cliente está invocando o método da operaçãogetSalarioBruto() que será executado pelo objeto fornecedor

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

[email protected]

Variável em cliente que recebe o resultado da execução

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

[email protected]

Notação para representar o retorno do controle da execução

(retorno da chamada)

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

[email protected]

controle da execução

Como funciona...

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

[email protected]

envio da mensagem

controle da execução

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

[email protected]

Executa

Acabou: retornar ocontrole

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

[email protected]

Retorno do controle da execução

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

[email protected]

O controle da execução retornou para o objeto que mandou a mensagem

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

[email protected]

Chamada de procedimento (mensagem síncrona)

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

[email protected]

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

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

[email protected]

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

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

[email protected]

23

Um exemplo...

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

[email protected]

24

Um exemplo...

objetos

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

[email protected]

25

Um exemplo...

tempo

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

[email protected]

26

Um exemplo...

Não interessamodelar quem chamou ou

para quem vai

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

[email protected]

27

Um exemplo...

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

[email protected]

28

Um exemplo...

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

[email protected]

29

Um exemplo...

Este diagrama mostra a implementação da operação (método)

consultarSaldo(int) da classe TerminalBancario

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

[email protected]

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

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

[email protected]

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

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

[email protected]

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?

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

[email protected]

Os dois estão ativos!

Foco de controle / Ativação

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

[email protected]

Os dois estão ativos!

Foco de controle / Ativação

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

[email protected]

Auto-mensagem (self-message)

A mensagem é enviada para o próprio objeto

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

[email protected]

Auto-mensagem (self-message)

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

[email protected]

Auto-mensagem (self-message)

Duas auto-mensagenschamadas em sequência

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

[email protected]

Auto-mensagem (self-message)

Mostrando a implementação da auto-mensagem 1

Múltiplas camadasde ativação

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

[email protected]

Guarda (Guard)Representa uma

condição: a mensagem é enviada somente se a condição for atendida

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

[email protected]

Fragmento “alt” (alternativas)

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

[email protected]

Fragmento “alt” (alternativas)

Área executada se e somente se a condição for

verdadeira

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

[email protected]

Fragmento “alt” (alternativas)

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

[email protected]

Fragmento “alt” (alternativas)

SE

SENÃO, SE

SENÃO, SE

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

[email protected]

Fragmento “loop” (laços)

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

[email protected]

Fragmento “loop” (laços)

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

[email protected]

Fragmento “loop” (laços)

No mínimo, X vezes

No máximo, Y vezes

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

[email protected]

Criação de objetos

Construtor

O objeto “conta”pode receber e enviar mensagens

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

[email protected]

Referências52

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 ModelingLanguage v2.5, 2012. http://www.omg.org/spec/UML/2.5/Beta1/PDF/

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

[email protected]

Referências53

Martin Fowler. UML Distilled: A Brief Guide to the Standard Object Modeling Language. 3th ed. Addison-Wesley, 2003.