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

Post on 13-Dec-2014

227 views 3 download

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.

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

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 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

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

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” Sentido da mensagem

marcello.thiry@gmail.com

11

Representação de uma mensagem...

fornecedor.getSalarioBruto()

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

marcello.thiry@gmail.com

12

Representação de uma mensagem...

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

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 ocontrole

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

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

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

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 interessamodelar 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 classe TerminalBancario

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 interação

Mas os objetos podem ser colocados em qualquer ordem

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

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?

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-mensagenschamadas em sequência

marcello.thiry@gmail.com

Auto-mensagem (self-message)

Mostrando a implementação da auto-mensagem 1

Múltiplas camadasde ativação

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ê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/

marcello.thiry@gmail.com

Referências53

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

marcello.thiry@gmail.com

marcello.thiry@gmail.com