40
C C E PUC-Rio Tópico 6: Diagrama de Sequência Parte 2 Luiz Antônio M. Pereira [email protected] [email protected]

UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

  • Upload
    lethuan

  • View
    226

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

C C

E

PUC-Rio

Tópico 6: Diagrama de Sequência – Parte 2

Luiz Antônio M. Pereira [email protected]

[email protected]

Page 2: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Mensagens Vimos que um objeto interage com outro

objeto trocando mensagens:

Que delegam a ele a execução de alguma operação de seu rol de operações públicas;

Que informam que a operação terminou de ser executada e que, portanto, o controle está sendo passado de volta;

De criação e destruição de objetos.

2

Page 3: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E

3

Mensagens

sd Exibir os campos para autenticação do cliente

controleEntradaPedidoformulário de

especificação do

pedido

exibirTelaAutenticacao()

sd Autenticar Cliente

colecaoClientes umCliente

:Cliente

formulário de

especificação do

pedido

controleEntradaPedido

loop

[para todos os clientes, até ser validado]

login/senha()

verificarLoginSenha(login:string, senha:string)

verificarLoginSenha(login:string, senha:string)

verificarLoginSenha(login:string, senha:string)

sd Informar que login/senha não constam do cadastro

formulário de

especificação do

pedido

controleEntradaPedido

"login/senha inexistente"()

sd Obter nome do cliente e endereço e os exibir no topo do formulário

controleEntradaPedido umClienteformulário de

especificação do

pedido

oNovoPedido:Pedido

getNome(nomeCliente:string)

getEndereco(enderecoClienre:string)

exibeDados(nomeCliente:string, enderecoCliente:string)

«create»

sd Adicionar Produtos

Cliente

formulário de

especificação do

pedido

controleEntradaPedido

oNovoItem:ItemDePedido

oCatalogoDeProdutos oProduto:Produto

loop

[para todos os itens de pedido do pedido]

exibirCamposEntradaItensPedido()

codigo e quantidade()

criarItemPedido(codigo:int, quantidade:int, descr:string, prUnitario:value)

«create»

getPuDescricao(codigo:item, descricao:string)

localizarProduto(codigo:int)

getPuDescricao(pU:value, descricao:string)

calcularPrTotal(pU:value, qtd:int) :value

:descricao, preco item, valor pedido

[cliente autenticado] [cliente não autenticado]

Mensagens

Page 4: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E

4

Mensagens Mensagens são representadas por setas

Que partem da linha de vida do objeto que envia para a linha de vida do objeto que recebe e trata a mensagem;

As setas podem ser rotuladas com o nome do estímulo e com os valores ou expressões de seus argumentos ou retornos;

O objeto que recebe pode ser o mesmo que envia auto-chamada ou auto-delegação, resultando numa invocação local de uma operação.

Page 5: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E

5

Mensagens

O envio da mensagem só é possível se o objeto possuir a referência do objeto para o qual deseja enviá-la.

Por isso é importante que os endereços sejam bem guardados.

Page 6: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E

6

Mensagens

Mensagens na UML 2.X podem corresponder a quatro tipos de ações:

Chamada;

Retorno;

Criação;

Destruição.

Page 7: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E

7

Mensagens

Chamada:

Invoca uma operação de um objeto (alvo).

Notação:

Retorno:

Retorna um valor e o controle para o chamador. Notação:

Page 8: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Mensagens

Retornos são opcionalmente representados, segundo a UML. Em determinadas situações não há perda de expressividade.

8

A B C

m1

m2

m3

m4

A B C

m1

m2

m3

m4

A B C

m1

m2

m3

m4

vs

vs

Page 9: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E

9

Mensagens

Chamada de Criação

Cria um objeto.

Notações:

A caixa do identificador do objeto fica alinhada com a mensagem de criação.

Chamada de Destruição

Destrói um objeto. Um objeto pode cometer suicídio, se auto-destruindo.

Notações:

A “morte” de um objeto é denotada por um “X”

new() <<create>>

kill()/delete() <<destroy>>

Page 10: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E

10

Mensagens

Mensagens podem ser ainda:

Síncronas: objeto que chama “espera” pelo término do processamento da mensagem pelo objeto chamado. Notação: vide exemplos anteriores.

Assíncronas: quando não síncronas.

Notação:

Page 11: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E

11

Mensagens

O rótulo de uma mensagem também pode conter*:

A expressão de condição de envio: representada entre “[” e “]”, que indica a condição para a mensagem ser enviada.

O símbolo de iteração: “*” no início da mensagem indica que a mesma é enviada repetidas vezes.

(*) Notação anterior à UML 2.0, porém ainda usada.

Page 12: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Mensagens

Chamada, retorno, criação e destruição de objetos

Exemplos:

12

A B

op1(p1, p2)

op2(p3, p4)

A

B

C

«create»

«create»

A B

«destroy»

A B

op1(p1, p2)

Page 13: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Mensagens

Iterações e condições

Exemplos:

13

:Pedido

:ItemPedido * <<create>>

:ItemPedido :ItemEstoque

[tem em estoque] retirarItem (qtd)

Page 14: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Mensagens

14

Restrições temporais podem ser representadas. Exemplo:

Page 15: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Mensagens

Parâmetros da chamadas e tipos de retorno:

Precisam ser representados, ou seja, a assinatura completa da operação precisa constar do DS;

Tornam o DS visualmente ainda mais complexo;

Uma longa lista de parâmetros pode significar que o objeto do qual estamos solicitando a colaboração não seja o mais adequado.

15

Page 16: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E

16

Exercício

5.3 - Secos e Molhados do Seu Manoel

Page 17: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Interfaces

As interfaces usualmente proveem meios de comunicação entre ambientes distintos

entre dois (sub)sistemas,

entre duas tecnologias diferentes,

entre os usuários e os sistemas.

17

Page 18: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Interfaces

Atores não interagem diretamente com objetos do sistema. Os formulários cumprem essa missão. Eles são:

Telas das aplicações web (os navegadores ou browsers), ou

Telas das aplicações desktop (formulários Visual Basic, Delphi etc.).

18

Page 19: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Interfaces

Objetos instanciados dessas classes armazenam os dados fornecidos pelos usuários e os repassam aos objetos do sistema.

Esses objetos também recebem os eventos gerados pelos usuários e os repassam aos objetos do sistema em um DS.

19

Page 20: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E

20

Interfaces

sd Exibir os campos para autenticação do cliente

controleEntradaPedidoformulário de

especificação do

pedido

exibirTelaAutenticacao()

sd Autenticar Cliente

colecaoClientes umCliente

:Cliente

formulário de

especificação do

pedido

controleEntradaPedido

loop

[para todos os clientes, até ser validado]

login/senha()

verificarLoginSenha(login:string, senha:string)

verificarLoginSenha(login:string, senha:string)

verificarLoginSenha(login:string, senha:string)

sd Informar que login/senha não constam do cadastro

formulário de

especificação do

pedido

controleEntradaPedido

"login/senha inexistente"()

sd Obter nome do cliente e endereço e os exibir no topo do formulário

controleEntradaPedido umClienteformulário de

especificação do

pedido

oNovoPedido:Pedido

getNome(nomeCliente:string)

getEndereco(enderecoClienre:string)

exibeDados(nomeCliente:string, enderecoCliente:string)

«create»

sd Adicionar Produtos

Cliente

formulário de

especificação do

pedido

controleEntradaPedido

oNovoItem:ItemDePedido

oCatalogoDeProdutos oProduto:Produto

loop

[para todos os itens de pedido do pedido]

exibirCamposEntradaItensPedido()

codigo e quantidade()

criarItemPedido(codigo:int, quantidade:int, descr:string, prUnitario:value)

«create»

getPuDescricao(codigo:item, descricao:string)

localizarProduto(codigo:int)

getPuDescricao(pU:value, descricao:string)

calcularPrTotal(pU:value, qtd:int) :value

:descricao, preco item, valor pedido

[cliente autenticado] [cliente não autenticado]

Interface

Page 21: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Interfaces

Também podem ser representadas na forma:

21

Formulário de

Especificação do

Pedido

Page 22: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Interfaces

A boa prática recomenda: formulários não devem ter muita “inteligência”

Não devem implementar regras de negócio;

Não devem coordenar interações com os objetos do sistema;

Não devem verificar consistências de dados;

Podem implementar críticas simples (verificação de dígitos verificadores e de preenchimento de campos obrigatórios, etc.)

22

Page 23: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Controladores

São objetos que têm a responsabilidade de controlar o fluxo de mensagens e/ou de zelar pela obediência às regras de negócio e pelas demais questões de consistência;

Alguns projetistas retiram quase todas as responsabilidades das classes conceituais, que passam a ser atribuídas às classes controladoras.

23

Page 24: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Controladores

Usualmente é concebida uma classe controladora por caso de uso;

Podem ser concebidas mais classes no caso de UCs complexos.

24

Page 25: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E

25

Controladores

sd Exibir os campos para autenticação do cliente

controleEntradaPedidoformulário de

especificação do

pedido

exibirTelaAutenticacao()

sd Autenticar Cliente

colecaoClientes umCliente

:Cliente

formulário de

especificação do

pedido

controleEntradaPedido

loop

[para todos os clientes, até ser validado]

login/senha()

verificarLoginSenha(login:string, senha:string)

verificarLoginSenha(login:string, senha:string)

verificarLoginSenha(login:string, senha:string)

sd Informar que login/senha não constam do cadastro

formulário de

especificação do

pedido

controleEntradaPedido

"login/senha inexistente"()

sd Obter nome do cliente e endereço e os exibir no topo do formulário

controleEntradaPedido umClienteformulário de

especificação do

pedido

oNovoPedido:Pedido

getNome(nomeCliente:string)

getEndereco(enderecoClienre:string)

exibeDados(nomeCliente:string, enderecoCliente:string)

«create»

sd Adicionar Produtos

Cliente

formulário de

especificação do

pedido

controleEntradaPedido

oNovoItem:ItemDePedido

oCatalogoDeProdutos oProduto:Produto

loop

[para todos os itens de pedido do pedido]

exibirCamposEntradaItensPedido()

codigo e quantidade()

criarItemPedido(codigo:int, quantidade:int, descr:string, prUnitario:value)

«create»

getPuDescricao(codigo:item, descricao:string)

localizarProduto(codigo:int)

getPuDescricao(pU:value, descricao:string)

calcularPrTotal(pU:value, qtd:int) :value

:descricao, preco item, valor pedido

[cliente autenticado] [cliente não autenticado]

Controlador

Page 26: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Controladores

Também podem ser representados na forma:

26

Controle UCSXXX

Page 27: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Interfaces e Controladores

Suas classes devem ser integradas ao modelo de classes;

A partir desse momento, os diagramas de classes deixam de ser diagramas de nível conceitual.

27

Page 28: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E

28

Exercício

5.4 – Caixa Eletrônico do Banco Baú

5.5 – Cadastrando Pedidos

Page 29: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Quadros de Interação

DSs são complexos visualmente, especialmente quando modelamos colaborações contendo iterações, condicionalidades (múltiplos cenários) e processamento paralelo, utilizando os elementos de notação das versões anteriores à 2.0.

29

Page 30: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Quadros de Interação

A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam a especificação de colaborações com essas características.

30

Page 31: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Quadros de Interação

Quadros de interação definem uma ou mais regiões onde representamos

Iterações,

Trechos concorrentes,

Trechos opcionais,

Trechos alternativos de colaborações,

Trechos de interação comuns, fatorados de duas ou mais colaborações,

Etc.

31

Page 32: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Quadros de Interação

Quadros de interação tornaram os DS mais expressivos, mais completos (mais de um cenário representado no mesmo diagrama), ao mesmo tempo que mais simples visualmente.

32

Page 33: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Quadros de Interação

Os quadros são rotulados com nomes de operadores;

Rótulos dos operadores são colocados no canto superior esquerdo;

As regiões que compõem os quadros, quando existe mais de uma, chamam-se fragmentos;

Fragmentos são separados por linhas tracejadas.

33

Page 34: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Quadros de Interação

Operadores mais comuns:

sd: (“sequence diagram”), opcionalmente rotula um quadro que contém totalmente um diagrama de sequência.

34

sd LucroLiquido - aula8

João:Presidente Paulo:DiretorFinanceiroMaria:GerenteFaturamento Pedro:GerenteOperacoes

lucroLiquido()

receitas()

despesas()

lucroLiquido()

Page 35: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Quadros de Interação

Operadores mais comuns:

alt: especifica múltiplos fragmentos alternativos em um quadro. A condição em que um fragmento é executado é colocada no topo do fragmento entre colchetes.

35

A B

alt

[c1]

[else]

m1()

m2()

Page 36: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Quadros de Interação

Operadores mais comuns:

opt: especifica um quadro executado opcionalmente. A condição em que o fragmento é executado é colocada no topo do quadro, entre colchetes.

36

A B

opt

[c1]m1()

Page 37: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Quadros de Interação

Operadores mais comuns:

par: especifica múltiplos fragmentos executados concorrentemente.

37

A B

par

m1()

m2()

Page 38: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Quadros de Interação

Operadores mais comuns:

loop: especifica um quadro (um único fragmento) executado repetidas vezes.

38

A B

loop

[tantas vezes/para todos/etc]

m1()

m2()

Page 39: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Quadros de Interação

Operadores mais comuns:

ref: especifica a chamada a uma colaboração definida em outro lugar ou em outro diagrama.

39

sd Frame Ref Def

A B

m1()

A B

ref

Frame Ref Def

m2()

Define Chama

Page 40: UML - Diagramas 6 - UML... · Mensagens são representadas por setas ... A UML 2.0 incorporou o conceito de quadros de interação (frames), adicionando recursos importantes que facilitam

PUC-Rio

C C

E Exercícios

5.6 – Cadastrando Pedidos Revisitado

Aglomeratto Classe A

40