Análise e Projeto Orientados a Objetos -...

29
Análise e Projeto Orientados a Objetos Diagramas de interação Diretoria Acadêmica de Gestão e Tecnologia da Informação Curso de Tecnologia em Análise e Desenvolvimento de Sistemas

Transcript of Análise e Projeto Orientados a Objetos -...

Análise e Projeto Orientados a Objetos

Diagramas de interação

Diretoria Acadêmica de Gestão e Tecnologia da Informação

Curso de Tecnologia em Análise e Desenvolvimento de Sistemas

Introdução

• Os diagramas de interação ilustram como os objetos interagem (trocam mensagens).

– Aspecto dinâmico.

• Veremos:

– Diagrama de colaboração (de comunicação na UML 2).

– Diagrama de sequência.

2

Diagrama de colaboração

3

Diagrama de sequência

4

Exemplo: fazer pagamento

5

Exemplo: fazer pagamento

6

Exemplo: fazer pagamento

7

class Registro{public void fazerPagamento(double quantia){venda.fazerPagamento(quantia);

}}

class Venda{public void fazerPagamento(double quantia){Pagamento p = new Pagamento(quantia);

}}

venda é uma instância da classe Venda disponível na

classe Registro.

Notação comum para diagramas de interação

• Ilustração de classes e instâncias:

8

Notação comum para diagramas de interação

• Sintaxe básica das expressões das mensagens:

– retorno := mensagem(param : tipo): tipoRetorno

– Exemplos:

• espec := obterEspecProduto(id)

• espec := obterEspecProduto(id : ItemID)

• espec := obterEspecProduto(id : ItemID):EspecProduto

9

Notação básica para diagramas de colaboração

• Uma linha entre dois objetos indica que de alguma forma a navegabilidade entre eles é possível.

• Mensagens são representadas por uma expressão, uma seta e um número de sequência.

– Atente para o aninhamento de mensagens indicada pela numeração de nível.

10

Notação básica para diagramas de colaboração

11

class Registro{public void msg1(){venda.msg2();venda.msg3();venda.msg4();

}}

class Venda{public void msg4(){registro.msg5();

}}

Notação básica para diagramas de colaboração

• Mensagens reflexivas (para self ou this): um objeto envia uma mensagem para ele próprio.

12

class Registro{public void msg1(){this.limpar();

}}

Notação básica para diagramas de colaboração

• Criação de instâncias: mensagem com o identificador criar ou com qualquer identificador acompanhado do estereótipo «create».

13

Notação básica para diagramas de colaboração

• Mensagem condicional: é representada por uma condição entre colchetes.

14

class ClasseA{public void msg1(){if(cor == Color.RED){ b.calcular(); }

}}

Notação básica para diagramas de colaboração

• Caminhos condicionais mutuamente exclusivos.

15

Notação básica para diagramas de colaboração

16

class A{public void msg1(){if (teste1) b.msg2();else d.msg4();e.msg6();

}}

class B{public void msg2(){c.msg3();

}}

class D{public void msg4(){c.msg5();

}}

Notação básica para diagramas de colaboração

• Iteração: representa a execução repetida de uma mesma mensagem. O asterisco indica a iteração. A condição de repetição pode ser indicada.

17

Notação básica para diagramas de colaboração

18

class Simulador{public void executarSimulacao(){for (int i = 0; i < N; i++){num = random.proxInt();...

}}

}

Notação básica para diagramas de sequência

• Foco de controle ou ativação: indica o contexto de execução de uma operação.

• Retorno das operações: pode ser representado por uma mensagem de retorno (linhas tracejadas) ou ser indicado na própria expressão da mensagem.

19

Notação básica para diagramas de sequência

20

Notação básica para diagramas de sequência

• Mensagem reflexiva

21

Notação básica para diagramas de sequência

• Criação de instância.

22

Notação básica para diagramas de sequência

• Mensagem condicional (UML 1.x).

23

Notação básica para diagramas de sequência

• Mensagem condicional (UML 2.x).

24

Notação básica para diagramas de sequência

• Mensagens condicionais mutuamente exclusivas (UML 2.x).

25

Notação básica para diagramas de sequência

• Iteração (UML 1.x).

26

Notação básica para diagramas de sequência

• Iteração (UML 2.x).

27

Exemplo

28

Referências

• BEZERRA, Eduardo. Princípios de análise e projeto de sistemas com UML. Rio de Janeiro: Elsevier, 2002

• LARMAN, Craig. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objeto e ao desenvolvimento iterativo. Porto Alegre: Bookman, 2007, 3. ed.

29