You are on page 1of 21

UML: Diagrama de Seqncia

Diagramas de Interao
Deseja-se representar o comportamento de vrios objetos
Dentro de um contexto A partir das mensagens que so trocadas entre eles Esse contexto pode ser um caso de uso

Objetivo
Estabelecer os objetos que interagem e seus relacionamentos dentro de um contexto (caso de uso)

Termo genrico que se aplica a dois tipos de diagramas que enfatizam interaes entre objetos
Diagrama de Seqncia Diagrama de Colaborao
LES/PUC-Rio 2

Duas formas de representao


Informaes bastante similares mas de maneira diferente
Diagrama de Seqncia
Interao enfatizando o tempo de seqncia Mostra objetos participando em interaes de acordo com suas linhas de vida e as mensagens que trocam

Diagrama de Colaborao
Interao enfatizando o relacionamento entre os objetos

LES/PUC-Rio

Diagrama de seqncia

Tempo (top-down)

condio de guarda ObjetoA [se novo] <<create>> mensagem mensagem (auto delegao) mensagem sncrona ObjetoB objeto

(caixa de)ativao valor de retorno <<destroy>> smbolo de destruio

linha de vida

LES/PUC-Rio

Termos e conceitos
Objetos Linhas de vida Mensagens Focos de controle

LES/PUC-Rio

Objetos
Apresentados na dimenso horizontal do diagrama Ordem dos objetos no considerada
Disp-los de forma a tornar o diagrama mais legvel

Objetos tem nomes


obj:Classe Ex.: joo:Dentista :Floricultor (um objeto floricultor no identificado) obj1: (um objeto obj1 sem classe definida)

LES/PUC-Rio

Objetos

jose Floricultor joao:Dentista 1: enviarFlores("Rosas","Maria","Petropolis","Rua x, 9"):boolean

central CentralFloricultura

floricultorPetropolis Floricultor

1.1: atendeCidade("Petropolis"):boolean 1.2:[se nao na cid...] getFloricultorNaCidade("Petropolis"):Floricultor

1.3: aceitaEncomenda("Rosas","Rua X,9"):boolean

LES/PUC-Rio

Linhas de Vida
Dimenso vertical do diagrama Apresentam o tempo de vida dos objetos Pode apresentar a ativao ou a desativao dos objetos
Indicam que os objetos esto executando algo
Foco de controle

Caixas de ativao podem ser empilhadas


Indica chamada de mtodo do prprio objeto Objeto jose no slide anterior

Podem representar a criao e a destruio de objetos

LES/PUC-Rio

Linhas de Vida
estoque

vendedor pedido

Linhas de vida

Criao

1:new()

2:*[*] //adicionarItem 2.1: verificarDisponibilidade 2.2: reservarItem 3: confirmarPedido 3.1: confirmarPedido

Destruio

4: kill()

(Caixas de) Ativao

LES/PUC-Rio

Mensagens
Objetos interagem atravs da troca de mensagens
Setas slidas que vo do objeto solicitante para o solicitado
Para o prprio objeto: auto-delegao

Rotulados com os nomes dos estmulos mais os argumentos (ou valores dos argumentos) do estmulo

Sintaxe
return := message(parameter:parameterType):returnType onde
return o nome do valor de retorno message o nome da mensagem parameter o nome de um parmetro da mensagem parameterType o nome do tipo desse parmetro returnType o tipo do valor de retorno

LES/PUC-Rio

10

Mensagens - Tipos
Tipos de ao que uma mensagem pode representar
call
Invoca uma operao sobre um objeto
Objeto pode mandar uma chamada para si prprio Resultando na execuo local de uma operao

return
Representa o retorno de um valor para o objeto que chamou a operao Opcional

create
Criao de um objeto

new() kill()

<<create>> <<destroy>>

destroy
Eliminao de um objeto

LES/PUC-Rio

11

Mensagens - Representaes

Smbolo Mensagem sncrona

Significado

Mensagem assncrona

Mensagem de retorno (opcional)

LES/PUC-Rio

12

Mensagens
Auto-delegao
jose Floricultor joao:Dentista 1: enviarFlores("Rosas","Maria","Petropolis","Rua x, 9"):boolean 1.1: atendeCidade("Petropolis"):boolean 1.2:[se nao na cid...] getFloricultorNaCidade("Petropolis"):Floricultor central CentralFloricultura floricultorPetropolis Floricultor

1.3: aceitaEncomenda("Rosas","Rua X,9"):boolean

mensagens

LES/PUC-Rio

13

Mensagens Condies de Guarda


Mensagens podem apresentar condies de guarda
condies em que a mensagem enviada [condio de guarda]

:Aluno

:Sistema login() sistemaOk

:Impressora

Matrcula

matricula() [sem vaga] turmaCheia [com vaga] imprimirRelatrio() matriculado

LES/PUC-Rio

14

Mensagens - Iterao
Uma mensagem pode ser enviada repetidas vezes
* mensagem(...)
vendedor pedido 1: estoque

vendedor

2:*[*] //adicionarItem
pedido

2.1: verificarDisponibilidade 2.2: reservarItem

* adicionarItem

3: confirmarPedido

3.1: confirmarPedido

4:

LES/PUC-Rio

15

Diagrama de Seqncia - Construo


Escolher um caso de uso Identificar os objetos que fazem parte da interao Identificar o objeto que comea a interao Identificar as mensagens trocadas entre os objetos Identificar a sequncia destas mensagens

LES/PUC-Rio

16

Esteretipos para Objetos Fronteira (boundary)


Classes de interface com o mundo externo (ex: GUI, sistemas externos)

Controle (control)
Coordenam o comportamento do caso de uso definindo uma interface entre classes fronteira e entidade

Entidade (entity)
Classes que armazenam informaes manipuladas pelo sistema

LES/PUC-Rio

17

Blog - Casos de uso


blogSystem Criar Blog <<include>> Criar Comentario

Ler Conteudo

Ler Nota

Usuario

Ler Comentario <<include>> Remover Comentario <<include>>

Remover Conteudo

Remover Nota

Dono do blog

Criar Nota

LES/PUC-Rio

18

Blog - Diagrama de Classes

LES/PUC-Rio

19

Blog - Diagrama de Seqncia: Criar blog

: UsuarioBlog

: GUIBlog

: ControladorBlog

: Blog

1: criarBlog(titulo, usuario) 2: criarBlog(t it ulo, usuario) 3: new Blog(titulo, usuario, dataCriacao)

LES/PUC-Rio

20

Blog - Diagrama de Seqncia: Criar Nota

: UsuarioBlog

: GUIBlog

: ControladorBlog

: Blog

: Nota

1: criarNota(usuario, idBlog, comentario) 2: criarNot a(usuario, idBlog, comentari o) 3: consultarBlog(idBlog) 4: getDono()

5: [se dono == usuario] new Nota(comentario, usuario)

LES/PUC-Rio

21

You might also like