Diagramas de Seqüência Projeto de Sistemas de Software.

24
Diagramas de Seqüência Projeto de Sistemas de Software

Transcript of Diagramas de Seqüência Projeto de Sistemas de Software.

Page 1: Diagramas de Seqüência Projeto de Sistemas de Software.

Diagramas de Seqüência

Projeto de Sistemas de Software

Page 2: Diagramas de Seqüência Projeto de Sistemas de Software.

2 © LES/PUC-Rio

Interações

• Comportamento que

– Envolve conjunto de mensagens trocadas entre objetos dentro de um determinado contexto

– Objetiva atingir resultado específico

• Acontecem em função da troca de mensagens entre objetos

• Usadas para a modelagem dos aspectos dinâmicos de um sistema

Page 3: Diagramas de Seqüência Projeto de Sistemas de Software.

3 © LES/PUC-Rio

Comunicação entre Objetos

• Mensagem

– Recepção de mensagem por um objeto

• Considerado instância de evento

– Decorrência da passagem de uma mensagem

• Repercute ação representada por um comando executável

• Comando Executável: abstração de procedimento computacional

Ident. OperaçãoIdent. Objeto ParâmetrosMensagem =

mensagem

o:Ob1 :Ob2

Page 4: Diagramas de Seqüência Projeto de Sistemas de Software.

4 © LES/PUC-Rio

Diagramas de Interação

• Deseja-se representar o comportamento de vários objetos– Dentro de um único caso de uso

– A partir das mensagens que são passadas entre eles

• Objetivo– Definir um contexto de caso de uso

– Estabelecer os objetos que interagem e seus relacionamentos

• Termo genérico que se aplica a dois tipos de diagramas que enfatizam interações entre objetos– Diagrama de Seqüência

– Diagrama de Colaboração

Page 5: Diagramas de Seqüência Projeto de Sistemas de Software.

5 © LES/PUC-Rio

Duas formas de representação

• Informações bastante similares mas de maneira diferente

– Diagrama de Seqüência

• Interação enfatizando o tempo de seqüência

• Mostra objetos participando em interações de acordo com suas linhas de vida e as mensagens que trocam

– Diagrama de Colaboração

• Interação enfatizando o relacionamento entre os objetos

Page 6: Diagramas de Seqüência Projeto de Sistemas de Software.

6 © LES/PUC-Rio

Diagrama de seqüência

Tempo(top-down) ObjetoA

ObjetoB

[se novo]<<create>>

mensagem

mensagem (auto delegação)

valor de retorno

<<destroy>>

(caixa de)ativação

condição de guarda

mensagem síncrona

objeto

símbolo de destruição

linha de vida

Page 7: Diagramas de Seqüência Projeto de Sistemas de Software.

7 © LES/PUC-Rio

Termos e conceitos

• Objetos

• Linhas de vida

• Mensagens

• Focos de controle

Page 8: Diagramas de Seqüência Projeto de Sistemas de Software.

8 © LES/PUC-Rio

Objetos

• Apresentados na dimensão horizontal do diagrama

• Ordem dos objetos não é considerada

– Dispô-los de forma a tornar o diagrama “mais legível”

• Objetos tem nomes

– obj:Classe

Ex.: joão:Dentista

:Floricultor (um objeto floricultor não identificado)

obj1: (um objeto obj1 sem classe definida)

Page 9: Diagramas de Seqüência Projeto de Sistemas de Software.

9 © LES/PUC-Rio

joseFloricultor

centralCentralFloricultura

joao:Dentista

floricultorPetropolisFloricultor

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

Objetos

Page 10: Diagramas de Seqüência Projeto de Sistemas de Software.

10 © LES/PUC-Rio

Linhas de Vida

• Dimensão vertical do diagrama

• Apresentam o tempo de vida dos objetos

• Pode apresentar a ativação ou a desativação dos objetos

– Indicam que os objetos estão executando algo

• Foco de controle

– Caixas de ativação podem ser empilhadas

• Indica chamada de método do próprio objeto

• Objeto jose no slide anterior

• Podem representar a criação e a destruição de objetos

Page 11: Diagramas de Seqüência Projeto de Sistemas de Software.

11 © LES/PUC-Rio

pedidovendedor

estoque

2.2: reservarItem

3.1: confirmarPedido

2.1: verificarDisponibilidade

4:

3: confirmarPedido

2:*[*] //adicionarItem

1:

Linhas de Vida

Linhas de vidanew()

(Caixas de) Ativaçãokill()

Criação

Destruição

Page 12: Diagramas de Seqüência Projeto de Sistemas de Software.

12 © LES/PUC-Rio

Mensagens

• Objetos interagem através da troca de mensagens

– Setas sólidas que vão do objeto solicitante para o solicitado

• Para o próprio objeto: auto-delegação

– Rotulados com os nomes dos estímulos mais os argumentos (ou valores dos argumentos) do estímulo

• Sintaxe

– onde

• return é o nome do valor de retorno

• message é o nome da mensagem

• parameter é o nome de um parâmetro da mensagem

• parameterType é o nome do tipo desse parâmetro

• returnType é o tipo do valor de retorno

return := message(parameter:parameterType):returnType

Page 13: Diagramas de Seqüência Projeto de Sistemas de Software.

13 © LES/PUC-Rio

Mensagens - Tipos

• Tipos de ação que uma mensagem pode representar

– call

• Invoca uma operação sobre um objeto

– Objeto pode mandar uma chamada para si próprio

» Resultando na execução local de uma operação

– return

• Representa o retorno de um valor para o objeto que chamou a operação

• Opcional

– create

• Criação de um objeto

– destroy

• Eliminação de um objeto

new() <<create>>

kill() <<destroy>>

Page 14: Diagramas de Seqüência Projeto de Sistemas de Software.

14 © LES/PUC-Rio

Mensagens - Representações

Símbolo Significado

                 Mensagem síncrona

                 Mensagem assíncrona

                 Mensagem de retorno (opcional)

Page 15: Diagramas de Seqüência Projeto de Sistemas de Software.

15 © LES/PUC-Rio

Mensagens

mensagens

Auto-delegação

joseFloricultor

centralCentralFloricultura

joao:Dentista

floricultorPetropolisFloricultor

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

Page 16: Diagramas de Seqüência Projeto de Sistemas de Software.

16 © LES/PUC-Rio

Mensagens – Condições de Guarda

• Mensagens podem apresentar condições de guarda

– condições em que a mensagem é enviada

– [condição de guarda]

:Aluno :Sistema :Impressora

login()

sistemaOk

matricula()

turmaCheia[sem vaga]

matriculadoimprimirRelatório()[com vaga]

Matrícula

Page 17: Diagramas de Seqüência Projeto de Sistemas de Software.

17 © LES/PUC-Rio

Mensagens - Iteração

• Uma mensagem pode ser enviada repetidas vezes

– * mensagem(...)

pedidovendedor

estoque

2.2: reservarItem

3.1: confirmarPedido

2.1: verificarDisponibilidade

4:

3: confirmarPedido

2:*[*] //adicionarItem

1:

* adicionarItem

pedidovendedor

Page 18: Diagramas de Seqüência Projeto de Sistemas de Software.

18 © LES/PUC-Rio

Foco de Controle

• Período de tempo que o objeto executa uma ação

• Relação de controle entre ativação e o responsável pela sua invocação

Page 19: Diagramas de Seqüência Projeto de Sistemas de Software.

19 © LES/PUC-Rio

Diagrama de Seqüência - Construção

• Escolher um caso de uso

• Identificar os objetos que fazem parte da interação

• Identificar o objeto que começa a interação

• Identificar as mensagens trocadas entre os objetos

• Identificar a sequência destas mensagens

Page 20: Diagramas de Seqüência Projeto de Sistemas de Software.

20 © LES/PUC-Rio

Análise OO do RUP

• Objetivo– Modelar o comportamento de cada caso de uso com o objetivo de

detalhar os serviços de negócios oferecidos pelo sistema

• Uso de apenas 3 tipos de classes

– 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 informações manipuladas pelo sistema

Page 21: Diagramas de Seqüência Projeto de Sistemas de Software.

21 © LES/PUC-Rio

Blog - Casos de uso

blogSystem

Criar Comentario

Ler Conteudo

Remover Conteudo Remover Nota

Remover Comentario

Criar Blog

Ler Comentario

Ler Nota

Criar Nota

Usuario

Dono do blog

<<include>> <<include>>

<<include>>

Page 22: Diagramas de Seqüência Projeto de Sistemas de Software.

22 © LES/PUC-Rio

Blog - Diagrama de Classes

Page 23: Diagramas de Seqüência Projeto de Sistemas de Software.

23 © LES/PUC-Rio

Blog - Diagrama de Seqüência: Criar blog

: UsuarioBlog : UsuarioBlog : GUIBlog : GUIBlog : ControladorBlog : ControladorBlog : Blog : Blog

1: criarBlog(titulo, usuario)

2: criarBlog(titulo, usuario)

3: new Blog(titulo, usuario, dataCriacao)

Page 24: Diagramas de Seqüência Projeto de Sistemas de Software.

24 © LES/PUC-Rio

Blog - Diagrama de Seqüência: Criar Nota

: 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)