Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um...

31
Diagrama de Seqüência

Transcript of Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um...

Page 1: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

Diagrama de Seqüência

Page 2: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

2

Características Básicas

• É um diagrama de interação e considera aspectos dinâmicos;

• Define como os objetos colaboram;• Ênfase na ordenação temporal;• Captura o comportamento de um cenário único;• Mostra objetos e as mensagens trocadas entre

eles, em um caso de uso;• São usados durante a análise do problema (alto

nível, com mensagens de negócio) e/ou durante o desenho da solução (foco na implementação, com mensagens descritas na forma de métodos que são implementados pelas classes.

Page 3: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

3

Categorias de Objetos

• Objetos participantes (atores);• Objetos de interface com os atores (telas, etc);• Objetos de controle e eventos (controladores);• Objetos de entidades e de domínio (negócio e

integração).

Page 4: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

4

Objetos Participantes (Atores)

• Pessoa ou outro sistema que interage com o sistema enviando e recebendo dados e controles;

• Demostram os contratos com o sistema;• As interações são capturadas nos Casos de Uso;

Page 5: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

5

Objetos de Interface

• Objetos que fazem a comunicação entre o sistema e os objetos participantes (atores), para exibição ou coleta de dados;

• Em um sistema típico, é a interface gráfica com o usuário – GUI;

• Para aplicações Web baseadas em JEE, podem ser páginas JSP (usando ou não um framework) ;

• Para aplicações desktop em Java, podem ser instâncias de classes que usam Swing;

• São classes com estereotipo <<boundary>>.

Page 6: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

6

Objetos de Controle

• Coordenam as solicitações dos usuários, vindas da camada de apresentação, e as operações de responsabilidade dos objetos de entidade e de domínio;

• São classes com estereótipo <<control>>.

Page 7: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

7

Objetos de Entidades e de Domínio

• Armazenam e manipulam dados dos objetos do negócio e simulam o seu comportamento;

• São as classes de negócio da aplicação, levantadas de acordo com o domínio e vocabulário do problema;

• Definem os valores que um atributo pode assumir e as operações válidas para estes valores;

• Classes da arquitetura de persistência em banco de dados;

• Integram as bibliotecas das linguagens ou frameworks de persistência;

• Podem ser tipos de atributos ou classes de comunicação com o mecanismo de persistência (em uma aplicação Java típica, podem ser os Data Access Object – DAO).

• Classes com estereótipo <<entity>>

Page 8: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

8

Visão das categorias

Objetos de Interface

Objetos de Controle

Objetos de Entidade Objetos de Domínio

Objetos participantes

BD

Page 9: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

9

Grau de reutilização

Objetos de Interface

Objetos de Eventos (Controle)

Objetos de Entidade

Objetos de Domínio

Baixa reutilização

Alta reutilização

Page 10: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

10

Representação dos Objetos

frmX

executaX

Xnumero : String

Usuario

Page 11: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

11

Realização de Casos de Uso

• Os Casos de Uso capturam “o que” deve ser feito, as realizações agrupam o “como” será feito;

• São instâncias do caso de uso que podem ser representadas por diagramas que mostram a realização;

• Os diagramas usados para representar a realização de um caso de uso são os diagramas de interação.

Page 12: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

12

Diagrama de Seqüência

• Descreve o que ocorre nos objetos participantes, em termos de chamadas, e como os objetos se comunicam através de mensagens;

• As mensagens representam as interações entre as instâncias de objetos e entre estas e os atores;

• Normalmente utilizado para modelar a realização dos casos de uso;

• Contém atores, objetos e mensagens;• As notas oferecem uma extensão semântica.

Page 13: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

13

Diagrama de Seqüência - Semântica

: Func ionario da Secretaria

: frm Inscricao : c trlInscricaoA luno

curso : Curso

1. O ator inform a a m atrícula do aluno;2. O ator inform a o códio do curso;3. O s is tem a verifica as vagas disponíveis (A -1);4. O s is tem a m ostra: 4.1 a descrição do curso; 4.2.as m atérias com os professores ; 4.3.O núm ero de vagas disponíveis ;5. O ator confirm a a inscrição do aluno;6. O s is tem a verifica se o aluno já cursou as m atérias que são pré-requis ito para as matérias do curso (A -2);7. O s is tem a inscreve o aluno no curso selec ionado, dim inuindo um a vaga disponível;8. O caso de uso é encerrado

1: inform a m atrícula e código

6: Dados do curso

2: getCurso(S tring)

4: recuperaPorId(int)

3:

Sequência

Foco deControle

Objetos

Mensagens

Page 14: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

14

Diagrama de Seqüência e Realização de Casos de Uso

• Organização:• Um diagrama para o fluxo básico;• Um diagrama para cada fluxo alternativo.

• Para os analistas e usuários, provê uma visão de alto nível sobre como se dará a interação dentro de um cenário de caso de uso;

• Para os projetista, provê as entradas básicas que auxiliarão na determinação das classes (e nestas quais os métodos), responsabilidade e interfaces.

Page 15: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

15

Diagrama de Seqüência - Tipos de Diagrama

• O diagrama de seqüência poderá ser feito em vários momentos do sistema, onde o formalismo dos objetos e mensagens poderá variar.

• Momentos:• Análise;• Projeto.

Page 16: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

16

Diagrama de Seqüência - Análise

• Captura a visão do analista sobre como o caso de uso vai ser realizado;

• Direciona a solução do projetista.• Contém:

• boundary, controler, entity;• Mensagens informais.

Page 17: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

17

Diagrama de Seqüência - Análise

: F u n c io n a r io d a S e c re ta r ia

: frm In s c r ic a o : c tr lI ns c r ic a o Alu n o : C u rs o : A lu n o

1 . O a to r in fo rm a a m a tr íc u la d o a lu n o ;2 . O a to r in fo rm a o c ó d io d o c u rs o ;3 . O s is te m a ve r i fic a a s va g a s d is p o n íve is (A-1 ) ;4 . O s is te m a m o s tra : 4 .1 a d e s c r iç ã o d o c u rs o ; 4 .2 .a s m a té r ia s c o m o s p ro fe s s o re s ; 4 .3 .O n ú m e ro d e va g a s d is p o n íve is ;

1 : in f orm a m a tr ícu la e c ó d ig o

5 : ve r i fic a va g a s (c o d ig o )

6 : o b te m a s va g a s d is p o n ive is

2 : o b te m d a d o s d o c u rs o3 : c r ia e re c u pe ra

4 : D a d o s d o c u rs o

7 : c o n fi rm a in s c r iç ã o

8 : In s c re ve a lu n o (M a tr ic u la , C o d ig o )

9 : C r ia e re c u p e ra

1 0 : C r ia e re c u p e ra

1 1 : In s c re ve (Alu n o )1 2 : o b te m p re - re q u is i to s

1 3 : a va l ia p re -re q u is i to s ( p re - re q u is i to s )1 4 : o b te m h is to r ic o

c o m p a ra o s p re -re q u is i to s c o m o h is tó r ic o

1 6 : c o n fi rm a in s c r iç ã o

1 5 : Ad ic io n a a lu n o a o c u rs o

5 . O a to r c o n fi rm a a in s c r iç ã o d o a lu n o ;6 . O s is te m a ve r i fic a s e o a lu n o já c u rs o u a s m a té r ia s q u e s ã o p ré - re q u is i to p a ra a s m a té r ia s d o c u rs o (A-2 ) ;7 . O s is te m a in s c re ve o a lu n o n o c u rs o s e le c io n a d o , d im in u in d o u m a va g a d is p o n íve l ;8 . O c a s o d e u s o é e n c e rra d o

Page 18: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

18

Diagrama de Seqüência - Projeto

• É a visão final da realização do caso de uso;• Incorpora elementos da linguagem e da

arquitetura;• É o roteiro para a escrita do programa.• Contém:

• Atores, estereótipos de camadas (interface, servlet), objetos de domínio (além dos demais);

• Nomes e mensagens formais (métodos existentes nas classes).

Page 19: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

19

Diagrama de Seqüência - Projeto

: Fu ncion ario d a Secretaria

: frm Inscricao : c trlInsc ricaoA lunocurso : Curso aluno : A luno

1. O ator informa a matrícula do aluno;2. O ator informa o códio do curso;3. O s is t ema verifica as vagas disponíveis (A-1);4. O s is tema mostra: 4.1 a descrição do curso; 4.2.as matérias com os professores; 4.3.O número de vagas dispon íve is;5. O ator co nfirm a a inscriçã o do aluno;6. O s is tema verifica se o aluno já cursou as matérias que são pré-requis ito para as matérias do curso (A-2);7. O s is tema inscreve o aluno no curso selec ionado, dim inuindo um a vaga disponível;8. O caso de uso é encerrado

compara os pre-requis itos com o his tórico

1: informa matrícula e código

5: Dados do curso

6: c onfirma ins crição

15: confirma inscrição

2: getC urso (S trin g)

7: inscreveA luno(String, S tring)

3: Curso( )

8: Curso( )

12: inscreverA luno(curso.A luno)13: ge tPreReq uis it os( )

10: A luno( )

14: avalia pre-requis itos ( pre-requis itos)

16: getHist orico( )

4: recuperaP orId(int)

9: recuperaPorId(int)

11: recuperaPorId(int)

Page 20: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

20

Tipos de mensagem

• Chamada:• Um objeto invoca uma operação em outro objeto.

• Auto-chamada:• Um objeto invoca uma operação nele mesmo.

• Envio:• Um objeto envia um sinal a outro.

• Retorno:• Retorna um valor para o objeto solicitante.

• Criação:• Cria um objeto.

• Destruição:• Destrói um objeto.

Page 21: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

21

Tipos de mensagem

: Func ionario da Secretaria

: frm Inscricao : c trlInscricaoA luno

curso : Curso

1. O ator inform a a m atrícula do aluno;2. O ator inform a o códio do curso;3. O s is tem a verifica as vagas disponíveis (A -1);4. O s is tem a m ostra: 4.1 a descrição do curso; 4.2.as m atérias com os professores ; 4.3.O núm ero de vagas disponíveis ;5. O ator confirm a a inscrição do aluno;6. O s is tem a verifica se o aluno já cursou as m atérias que são pré-requis ito para as matérias do curso (A -2);7. O s is tem a inscreve o aluno no curso selec ionado, dim inuindo um a vaga disponível;8. O caso de uso é encerrado

1: inform a m atrícula e código

6: Dados do curso

2: getCurso(S tring)

4: recuperaPorId(int)

3:

Chamada

RetornoDestruição

Envio Criação

Page 22: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

22

Representando os objetos

• Nos diagramas de seqüência, geralmente os objetos representados são instâncias reais da classe;

• Os nomes serão os mesmos a serem escritos nos programas.

cu rso : C urs o

Page 23: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

23

Mensagens de Chamada

• Mensagens normais que invocam métodos em outros objetos;

• Os parâmetros devem ser representados pelos nomes e os tipos reais.

: Func ionario da Secretaria

: frm Inscricao : c trlInscricaoA luno

curso : Curso

1. O ator inform a a matrícula do aluno;2. O ator inform a o códio do curso;3. O s is tem a verifica as vagas disponíveis (A -1);4. O s is tem a m ostra: 4.1 a descrição do curso; 4.2.as m atérias com os professores ; 4.3.O núm ero de vagas disponíveis ;5. O ator confirma a inscrição do aluno;6. O s is tem a verifica se o aluno já cursou as m atérias que são pré-requis ito para as m atérias do curso (A -2);7. O s is tem a inscreve o aluno no curso selec ionado, dim inuindo um a vaga disponível;8. O caso de uso é encerrado

1: inform a m atrícula e código

6: Dados do curso

2: getCurso(S tring)

4: recuperaPorId(int)

3:

Page 24: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

24

Mensagens de Retorno

• Mensagens de retorno devem ser representadas apenas quando não forem óbvias para não poluir o diagrama.

: Func ionario da Secretaria

: frm Insc ricao : c trlInscricaoA luno

curso : Curso

1. O ator informa a m atrícula do aluno;2. O ator informa o códio do curso;3. O s is tem a verifica as vagas disponíveis (A -1);4. O s is tem a mos tra: 4.1 a descrição do curso; 4.2.as m atérias com os professores ; 4.3.O núm ero de vagas disponíveis ;5. O ator confirma a inscrição do aluno;6. O s is tem a verifica se o aluno já cursou as matérias que são pré-requis ito para as m atérias do curso (A -2);7. O s is tem a insc reve o aluno no curso selec ionado, dim inuindo um a vaga disponível;8. O caso de uso é encerrado

1: informa m atrícula e código

6: Dados do curso

2: getCurso(S tring)

4: recuperaPorId(int)

3:

Page 25: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

25

Mensagem self

curso : C urso

aluno : Aluno

retorna True se

cum prir os pré-requisitos

12: i nsc rev erAl uno (cu rso .Al uno )

13: getPreR equisitos( )

14: avaliaPreR equisitos(M ater ia[])

16: getH istor ico( )

11: recuperaPorId( int)

17: insereM at er ia(M ater ia)

Fazer para cada m atér ia do curso

Mensagens de que o objeto envia para ele próprio.

Page 26: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

26

Mensagens de Criação

• Representam o momento em que o objeto será criado;

• Se o construtor default for utilizado, não é preciso representá-lo.

: Func ionario da Secretaria

: frm Inscricao : c trlInscricaoA luno

curso : Curso

1. O ator inform a a m atrícula do aluno;2. O ator inform a o códio do curso;3. O s is tem a verifica as vagas disponíveis (A -1);4. O s is tem a m ostra: 4.1 a descrição do curso; 4.2.as m atérias com os professores ; 4.3.O núm ero de vagas disponíveis ;5. O ator confirm a a inscrição do aluno;6. O s is tem a verifica se o aluno já cursou as m atérias que são pré-requis ito para as matérias do curso (A -2);7. O s is tem a inscreve o aluno no curso selec ionado, dim inuindo um a vaga disponível;8. O caso de uso é encerrado

1: inform a m atrícula e código

6: Dados do curso

2: getCurso(S tring)

4: recuperaPorId(int)

3:

Page 27: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

27

Mensagens de Destruição

Indica a mensagem de destruição do objeto. Não é necessária a representação para a maioria

das linguagens de programação. : Func ionario da

Secretaria : frm Inscricao : c trlInscricaoA luno

curso : Curso

1. O ator inform a a m atrícula do aluno;2. O ator inform a o códio do curso;3. O s is tem a verifica as vagas disponíveis (A -1);4. O s is tem a m ostra: 4.1 a descrição do curso; 4.2.as m atérias com os professores ; 4.3.O núm ero de vagas disponíveis ;5. O ator confirm a a inscrição do aluno;6. O s is tem a verifica se o aluno já cursou as m atérias que são pré-requis ito para as matérias do curso (A -2);7. O s is tem a inscreve o aluno no curso selec ionado, dim inuindo um a vaga disponível;8. O caso de uso é encerrado

1: inform a m atrícula e código

6: Dados do curso

2: getCurso(S tring)

4: recuperaPorId(int)

3:

Page 28: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

28

Exemplos

Page 29: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

29

Exemplos

public class Pedido {

private ItemDoPedido[] itensDoPedido;

private Cliente cliente;

public double calculaPrecoFinalItem() {

int qtd = ItemDoPedido[0].retornaQuantidade();

Produto produto = ItemDoPedido[0].retornaProduto();

double precoProduto = produto.retornaPrecoUnitario();

double precoBaseItem = this.calculaPreco(precoProduto, qtd);

double taxaDesconto = Cliente.recuperaTaxaDesconto();

double precoFinalItem = this.calculaPrecoFinal(precoBaseItem, taxaDesconto);

return precoFinalItem;

}

public double calculaPreco(double precoProduto, int qtd) {

return precoProduto * qtd;

}

public double calculaPrecoFinal(double precoBaseItem, double taxaDesconto) {

return precoBaseItem * (1 - taxaDesconto);

}

}

Page 30: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

30

Exemplos

Page 31: Diagrama de Seqüência - Prof. José Eduardo Teixeira ... · 2 Características Básicas • É um diagrama de interação e considera aspectos dinâmicos; • Define como os objetos

31

Exemplos

public class Pedido {

private ItemDoPedido[] itensDoPedido;

private Cliente cliente;

public double calculaPrecoFinalItem() {

double precoBaseItem = ItemDoPedido[0].obtemPreco();

double precoFinalItem = Cliente.obtemValorComDesconto(precoBaseItem);

return precoFinalItem;

}

}