Post on 17-Oct-2015
5/27/2018 Aula07 Diagrama de Sequencia
1/28
Projeto de Sistemas de Software
Diagramas de Seqncia
5/27/2018 Aula07 Diagrama de Sequencia
2/28
Interaes2
Comportamento que
Envolve conjunto de mensagens trocadas entreobjetos dentro de um determinado contexto
Objetiva atingir resultado especfico
Acontecem em funo da troca de mensagensentre objetos
Usadas para a modelagem dos aspectosdinmicos de um sistema
5/27/2018 Aula07 Diagrama de Sequencia
3/28
Comunicao entre Objetos3
Mensagem
Recepo de mensagem por um objeto
Considerado instncia de evento
Decorrncia da passagem de uma mensagem
Repercute ao representada por um comando executvel
Comando Executvel: abstrao de procedimento
computacional
Ident. OperaoIdent. Objeto ParmetrosMensagem =
mensagem
o:Ob1 :Ob2
5/27/2018 Aula07 Diagrama de Sequencia
4/28
Diagramas de Interao4
Deseja-se representar o comportamentode vrios objetos
Dentro de um nico caso de uso
A partir das mensagensque so passadas entre eles
Objetivo
Definir um contextode caso de uso
Estabelecer os objetosque interagem e seus relacionamentos
Termo genrico que se aplica a quatro tipos de diagramas que enfatizaminteraes entre objetos
Diagrama de Seqncia
Diagrama de Colaborao/Comunicao
Vista Geral de Interao
Temporal ou Timing
5/27/2018 Aula07 Diagrama de Sequencia
5/28
Duas formas de representao5
Informaes bastante similares mas demaneira diferente
Diagrama de Seqncia Interao enfatizando o tempo de seqncia
Mostra objetos participando em interaes de acordocom suas linhas de vida e as mensagens que trocam
Diagrama de Comunio Interao enfatizando o relacionamentoentre os
objetos
5/27/2018 Aula07 Diagrama de Sequencia
6/28
Diagrama de seqncia6
Tempo
(top-down) ObjetoA
ObjetoB
[se novo]
mensagem
mensagem (auto delegao)
valor de retorno
(caixa de)ativao
condio de guarda
mensagem sncrona
objeto
smbolo de destruio
linha de vida
5/27/2018 Aula07 Diagrama de Sequencia
7/28
Termos e conceitos7
Objetos
Linhas de vida
Mensagens
Focos de controle
5/27/2018 Aula07 Diagrama de Sequencia
8/28
Objetos8
Apresentados na dimenso horizontaldo diagrama
Ordemdos 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)
5/27/2018 Aula07 Diagrama de Sequencia
9/28
Objetos9
joseFloricultor
centralCentralFloricultur
joao entista
floricultorPetropolisFloricultor
1.1: atendeCidade("Petropoli s"):boolean
1.3: aceitaEncomenda("Rosas","Rua X,9"):boolean
1: enviarFlores("Rosas","Maria","Petropolis","Rua x, 9"):boolean
1.2:[se nao na cid.. .] getFloricultorNaCidade("Petropolis"):Floricultor
5/27/2018 Aula07 Diagrama de Sequencia
10/28
Linhas de Vida10
Dimenso verticaldo diagrama
Apresentam o tempo de vidados objetos
Pode apresentar a ativaoou a desativaodosobjetos 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 criaoe a destruiode
objetos
5/27/2018 Aula07 Diagrama de Sequencia
11/28
pedidovendedor
estoque
2.2: reservarItem
3.1: confirmarPedido
2.1: verificarDisponibilidade
4:
3: confirmarPedido
2:*[*] //adicionarItem
1:
Linhas de Vida11
Linhas de vidanew()
(Caixas de) Ativao
kill()
Criao
Destruio
5/27/2018 Aula07 Diagrama de Sequencia
12/28
Mensagens12
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 osargumentos (ou valores dos argumentos) do estmulo
Sintaxe
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
return := message(parameter:parameterType):returnType
5/27/2018 Aula07 Diagrama de Sequencia
13/28
Mensagens - Tipos13
Tipos de ao que uma mensagem poderepresentar 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
destroy Eliminao de um objeto
new()
kill()
5/27/2018 Aula07 Diagrama de Sequencia
14/28
Mensagens - Representaes14
Smbolo Significado
Mensagem sncrona
Mensagem assncrona
Mensagem de retorno (opcional)
5/27/2018 Aula07 Diagrama de Sequencia
15/28
Mensagens15
joseFloricultor
centralCentralFloricultur
joao entista
floricultorPetropolFloricultor
1.1: atendeCidade("Petropolis"):boolean
1.3: aceitaEncomenda("Rosas","Rua X,9"):boolean
1: enviarFlores("Rosas","Maria","Petropolis","Rua x, 9"):boolean
1.2:[se nao na cid...] getFloricultorNaCidade("Petropolis"):Floricultor
mensagens
Auto-delegao
5/27/2018 Aula07 Diagrama de Sequencia
16/28
MensagensCondies de
Guarda16
Mensagens podem apresentar condies de guarda
condies em que a mensagem enviada
[condio de guarda]
:Aluno :Sistema :Impressora
login()
sistemaOk
matricula()
turmaCheia
[sem vaga]
matriculado
imprimirRelatrio()
[com vaga]
Matrcula
5/27/2018 Aula07 Diagrama de Sequencia
17/28
Mensagens - Iterao17
Uma mensagem pode ser enviada repetidas
vezes
* mensagem(...)
5/27/2018 Aula07 Diagrama de Sequencia
18/28
18
pedidovendedor
estoque
2.2: reservarItem
3.1: confirmarPedido
2.1: verificarDisponibilidade
4:
3: confirmarPedido
2:*[*] //adicionarItem
1:
* adicionarItem
pedidovendedor
5/27/2018 Aula07 Diagrama de Sequencia
19/28
Foco de Controle19
Perodo de tempo que o objeto executa uma
ao
Relao de controle entre ativao e o
responsvel pela sua invocao
5/27/2018 Aula07 Diagrama de Sequencia
20/28
Diagrama de Seqncia
Construo20
Escolher um caso de uso
Identificar os objetosque fazem parte dainterao
Identificar o objeto que comeaa interao
Identificar as mensagenstrocadas entre osobjetos
Identificar a sequnciadestas mensagens
5/27/2018 Aula07 Diagrama de Sequencia
21/28
Anlise OO do RUP21
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 pelosistema
Objetivo
Modelar o comportamento de cada caso de uso com o objetivo
de detalhar os servios de negcios oferecidos pelo sistema
Uso de apenas 3 tipos de classes
5/27/2018 Aula07 Diagrama de Sequencia
22/28
Blog - Casos de uso22
blogSystem
Criar Comentari
Ler Conteud
Remover Conteud Remover Not
Remover Comentari
Criar Blog
Ler Comentari
Ler Nota
Criar Nota
Usuario
Dono do blog
5/27/2018 Aula07 Diagrama de Sequencia
23/28
Blog - Diagrama de Seqncia:
Criar blog23
: UsuarioBlog: UsuarioBlog: GUIBlog: GUIBlog : ControladorBlog: ControladorBlog : Blog: Blog
1: criarBlog(titulo, usuario)
2: criarBlog(titulo, usuario)
3: new Blog(titulo, usuario, dataCriacao)
5/27/2018 Aula07 Diagrama de Sequencia
24/28
Blog - Diagrama de Seqncia:
Criar Nota24
: UsuarioBlog: UsuarioBlog : GUIBlog: GUIBlog : ControladorBlog: ControladorBlog : Blog: Blog : Nota: Nota
1: criarNota(usuario, idBlog, comentario)
2: criarNota(usuario, idBlog, comentario)
3: consultarBlog(idBlog)
4: getDono()
5: [se dono == usuario] new Nota(comentario, usuario)
5/27/2018 Aula07 Diagrama de Sequencia
25/28
5/27/2018 Aula07 Diagrama de Sequencia
26/28
26
5/27/2018 Aula07 Diagrama de Sequencia
27/28
2004 by Pearson Education
5/27/2018 Aula07 Diagrama de Sequencia
28/28