Diagrama de
Seqüência
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.
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
Objetos Participantes (Atores)
• Pessoa ou outro sistema que interage com o
sistema enviando e recebendo dados e controles;
• Demostram os contratos com o sistema;
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
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;
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
Visão das categorias
Objetos de Interface
Objetos de Controle
Objetos de Entidade
Objetos de Domínio
Objetos participantes
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
Representação dos Objetos
frmX
executaX
X
numero : String Usuario
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
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;
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
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.
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
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
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
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
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
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:
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
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
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
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:
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
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:
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: