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

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

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

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

Projeto de Sistemas de Software

Diagramas de Seqüência

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

2

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: Projeto de Sistemas de Software Diagramas de Seqüência.

3

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: Projeto de Sistemas de Software Diagramas de Seqüência.

4

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 quatro tipos de diagramas que enfatizam interações entre objetos Diagrama de Seqüência Diagrama de Colaboração/Comunicação Vista Geral de Interação Temporal ou Timing

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

5

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 Comunição Interação enfatizando o relacionamento entre os

objetos

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

6

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: Projeto de Sistemas de Software Diagramas de Seqüência.

7

Termos e conceitos

Objetos

Linhas de vida

Mensagens

Focos de controle

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

8

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: Projeto de Sistemas de Software Diagramas de Seqüência.

9

Objetos

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 10: Projeto de Sistemas de Software Diagramas de Seqüência.

10

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: Projeto de Sistemas de Software Diagramas de Seqüência.

11

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: Projeto de Sistemas de Software Diagramas de Seqüência.

12

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: Projeto de Sistemas de Software Diagramas de Seqüência.

13

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: Projeto de Sistemas de Software Diagramas de Seqüência.

14

Mensagens - Representações

Símbolo Significado

                 Mensagem síncrona

                 Mensagem assíncrona

                 Mensagem de retorno (opcional)

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

15

Mensagens

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

mensagens

Auto-delegação

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

16

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: Projeto de Sistemas de Software Diagramas de Seqüência.

17

Mensagens - Iteração

Uma mensagem pode ser enviada repetidas vezes * mensagem(...)

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

18

pedidovendedor

estoque

2.2: reservarItem

3.1: confirmarPedido

2.1: verificarDisponibilidade

4:

3: confirmarPedido

2:*[*] //adicionarItem

1:

* adicionarItem

pedidovendedor

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

19

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 20: Projeto de Sistemas de Software Diagramas de Seqüência.

20

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 21: Projeto de Sistemas de Software Diagramas de Seqüência.

21

Análise OO do RUP

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

ObjetivoModelar 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

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

22

Blog - Casos de usoblogSystem

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 23: Projeto de Sistemas de Software Diagramas de Seqüência.

23

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: Projeto de Sistemas de Software Diagramas de Seqüência.

24

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)

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

26

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

© 2004 by Pearson Education

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