• Nenhum resultado encontrado

Diagrama de Seqüência

N/A
N/A
Protected

Academic year: 2021

Share "Diagrama de Seqüência"

Copied!
31
0
0

Texto

(1)

Diagrama de

Seqüência

(2)

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.

(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

(4)

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;

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

(6)

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;

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

(8)

8

Visão das categorias

Objetos de Interface

Objetos de Controle

Objetos de Entidade

Objetos de Domínio

Objetos participantes

(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

(10)

10

Representação dos Objetos

frmX

executaX

X

numero : String Usuario

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

(12)

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;

(13)

Diagrama de Seqüência - Semântica

: Func ionario da S ec retaria

: frm Ins c ric ao : c trlIns c ric aoA luno

c urs o : Curs o 1. O ator inform a a m atríc ula do

aluno;

2. O ator inform a o c ódio do c urs o;

3. O s is tem a verific a as vagas dis poníveis (A -1);

4. O s is tem a m os tra:

4.1 a des c riç ão do c urs o; 4.2.as m atérias c om os profes s ores ;

4.3.O núm ero de vagas dis poníveis ;

5. O ator c onfirm a a ins c riç ão do aluno;

6. O s is tem a verific a s e o aluno já c urs ou as m atérias que s ão pré-requis ito para as m atérias do c urs o (A -2);

7. O s is tem a ins c reve o aluno no c urs o s elec ionado, dim inuindo um a vaga dis ponível;

8. O c as o de us o é enc errado

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

6: Dados do c urs o

2: getCurs o(S tring)

4: rec uperaP orId(int) 3:

S

e

q

u

ê

n

c

i

a

Foco de

Controle

Objetos

Mensagens

(14)

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.

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

(16)

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.

(17)

17

Diagrama de Seqüência - Análise

: F u n c io n a rio d a S e c re ta ria

: frm In s c ric a o : c tr lI ns c ric a o Alu n o : C u rs o : Alu 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 rific 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 riç ã o d o c u rs o ; 4 .2 .a s m a té ria 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 rific 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 o 3 : c ria e re c u pe ra 4 : D a d o s d o c u rs o 7 : c o n firm a in s c riç ã o 8 : In s c re ve a lu n o (M a tric u la , C o d ig o ) 9 : C ria e re c u p e ra 1 0 : C ria 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 ito s

1 3 : a va lia p re -re q u is ito s ( p re -re q u is ito s ) 1 4 : o b te m h is to ric o c o m p a ra o s p re -re q u is ito s c o m o h is tó ric 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 firm a a in s c riç ã o d o a lu n o ; 6 . O s is te m a ve rific a s e o a lu n o já c u rs o u a s m a té ria s q u e s ã o

p ré -re q u is ito p a ra a s m a té ria 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;

(18)

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

(19)

19

Diagrama de Seqüência - Projeto

: Fu ncion ario d a S ec retaria

: frm Ins c ric ao : c trlIns c ric aoA luno c urs o : Curs o aluno : A luno 1. O ator inform a a m atríc ula do

al uno;

2. O ator inform a o c ódio do c urs o;

3. O s is t em a verific a as vagas dis poníveis (A -1);

4. O s is tem a m os tra: 4.1 a des c riç ão do c urs o; 4.2.as m atérias c om os profes s ores ;

4.3.O núm ero de vagas di s pon íve is;

5. O ator c o nfirm a a ins c riçã o do al uno;

6. O s is tem a verific a s e o aluno já c urs ou as m atérias que s ão pré-requis ito para as m atérias do c urs o (A -2);

7. O s is tem a ins c reve o aluno no c urs o s elec ionado, dim inuindo um a vaga dis ponível;

8. O c as o de us o é enc errado

c om para os pre-requis itos c om o his tóric o 1: inform a m atríc ula e c ódigo

5: Dados do c urs o 6: c onfirma ins criç ão

2: getC urs o (S trin g)

7: ins c reveA luno(S tring, S tring)

3: Curs o( )

8: Curs o( )

12: ins c reverA luno(c urs o.A luno)

13: ge tP reReq uis it os( ) 10: A luno( )

4: r ec uperaP orId(int)

9: rec uperaP orId(int)

(20)

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:

(21)

Tipos de mensagem

: Func ionario da S ec retaria

: frm Ins c ric ao : c trlIns c ric aoA luno

c urs o : Curs o 1. O ator inform a a m atríc ula do

aluno;

2. O ator inform a o c ódio do c urs o;

3. O s is tem a verific a as vagas dis poníveis (A -1);

4. O s is tem a m os tra:

4.1 a des c riç ão do c urs o; 4.2.as m atérias c om os profes s ores ;

4.3.O núm ero de vagas dis poníveis ;

5. O ator c onfirm a a ins c riç ão do aluno;

6. O s is tem a verific a s e o aluno já c urs ou as m atérias que s ão pré-requis ito para as m atérias do c urs o (A -2);

7. O s is tem a ins c reve o aluno no c urs o s elec ionado, dim inuindo um a vaga dis ponível;

8. O c as o de us o é enc errado

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

6: Dados do c urs o

2: getCurs o(S tring)

4: rec uperaP orId(int) 3:

Chamada

Retorno

Destruição

(22)

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.

(23)

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 S ec retaria

: frm Ins c ric ao : c trlIns c ric aoA luno

c urs o : Curs o 1. O ator inform a a m atríc ula do

aluno;

2. O ator inform a o c ódio do c urs o;

3. O s is tem a verific a as vagas dis poníveis (A -1);

4. O s is tem a m os tra:

4.1 a des c riç ão do c urs o; 4.2.as m atérias c om os profes s ores ;

4.3.O núm ero de vagas dis poníveis ;

5. O ator c onfirm a a ins c riç ão do aluno;

6. O s is tem a verific a s e o aluno já c urs ou as m atérias que s ão pré-requis ito para as m atérias do c urs o (A -2);

7. O s is tem a ins c reve o aluno no c urs o s elec ionado, dim inuindo

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

6: Dados do c urs o

2: getCurs o(S tring)

4: rec uperaP orId(int) 3:

(24)

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 S ec retaria

: frm Ins c ric ao : c trlIns c ric aoA luno

c urs o : Curs o 1. O ator inform a a m atríc ula do

aluno;

2. O ator inform a o c ódio do c urs o;

3. O s is tem a verific a as vagas dis poníveis (A -1);

4. O s is tem a m os tra:

4.1 a des c riç ão do c urs o; 4.2.as m atérias c om os profes s ores ;

4.3.O núm ero de vagas dis poníveis ;

5. O ator c onfirm a a ins c riç ão do aluno;

6. O s is tem a verific a s e o aluno já c urs ou as m atérias que s ão pré-requis ito para as m atérias do c urs o (A -2);

7. O s is tem a ins c reve o aluno no c urs o s elec ionado, dim inuindo um a vaga dis ponível;

8. O c as o de us o é enc errado

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

6: Dados do c urs o

2: getCurs o(S tring)

4: rec uperaP orId(int) 3:

(25)

Mensagem self

cur so : C ur so aluno : Aluno r etor na T r ue se cum pr ir os pr é- r equisitos 12: i nsc rev erAl uno (cu r so .Al uno )

13: getPr eR equisitos( )

14: avaliaPr eR equisitos( M ater ia[])

16: getH istor ico( ) 11: r ecuperaPor Id( int)

17: inser eM at er ia( M ater ia)

F azer par a cada m atéria do cur so

(26)

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 S ec retaria

: frm Ins c ric ao : c trlIns c ric aoA luno

c urs o : Curs o 1. O ator inform a a m atríc ula do

aluno;

2. O ator inform a o c ódio do c urs o;

3. O s is tem a verific a as vagas dis poníveis (A -1);

4. O s is tem a m os tra:

4.1 a des c riç ão do c urs o; 4.2.as m atérias c om os profes s ores ;

4.3.O núm ero de vagas dis poníveis ;

5. O ator c onfirm a a ins c riç ão do aluno;

6. O s is tem a verific a s e o aluno já c urs ou as m atérias que s ão pré-requis ito para as m atérias do c urs o (A -2);

7. O s is tem a ins c reve o aluno no c urs o s elec ionado, dim inuindo um a vaga dis ponível;

8. O c as o de us o é enc errado

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

6: Dados do c urs o

2: getCurs o(S tring)

4: rec uperaP orId(int) 3:

(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 S ec retaria

: frm Ins c ric ao : c trlIns c ric aoA luno

c urs o : Curs o 1. O ator inform a a m atríc ula do

aluno;

2. O ator inform a o c ódio do c urs o;

3. O s is tem a verific a as vagas dis poníveis (A -1);

4. O s is tem a m os tra:

4.1 a des c riç ão do c urs o; 4.2.as m atérias c om os profes s ores ;

4.3.O núm ero de vagas dis poníveis ;

5. O ator c onfirm a a ins c riç ão do aluno;

6. O s is tem a verific a s e o aluno já c urs ou as m atérias que s ão pré-requis ito para as m atérias do c urs o (A -2);

7. O s is tem a ins c reve o aluno no c urs o s elec ionado, dim inuindo

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

6: Dados do c urs o

2: getCurs o(S tring)

4: rec uperaP orId(int) 3:

(28)

28

(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);

(30)

30

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

}

Referências

Documentos relacionados

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

No entanto, maiores lucros com publicidade e um crescimento no uso da plataforma em smartphones e tablets não serão suficientes para o mercado se a maior rede social do mundo

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Neste estudo foram estipulados os seguintes objec- tivos: (a) identifi car as dimensões do desenvolvimento vocacional (convicção vocacional, cooperação vocacio- nal,

5 “A Teoria Pura do Direito é uma teoria do Direito positivo – do Direito positivo em geral, não de uma ordem jurídica especial” (KELSEN, Teoria pura do direito, p..

Com o fomento de políticas voltadas o contexto da Língua de Sinais nos cursos de Ensino Superior tem como fator de observação a prática docente e o uso de

Podem treinar tropas (fornecidas pelo cliente) ou levá-las para combate. Geralmente, organizam-se de forma ad-hoc, que respondem a solicitações de Estados; 2)