Anda di halaman 1dari 28

Diagramas de Seqncia

Projeto de Sistemas de Software

Interaes
2

Comportamento que
Envolve

conjunto de mensagens trocadas entre objetos dentro de um determinado contexto Objetiva atingir resultado especfico

Acontecem em funo da troca de mensagens entre objetos Usadas para a modelagem dos aspectos dinmicos de um sistema

Comunicao entre Objetos


3

mensagem

o:Ob1

:Ob2

Mensagem =

Ident. Objeto

Ident. Operao

Parmetros

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

Diagramas de Interao
4

Deseja-se representar o comportamento de vrios objetos


Dentro de um nico caso de uso A partir das mensagens que so passadas entre eles

Objetivo

Definir um contexto de caso de uso Estabelecer os objetos que interagem e seus relacionamentos

Termo genrico que se aplica a quatro tipos de diagramas que enfatizam interaes entre objetos

Diagrama de Seqncia Diagrama de Colaborao/Comunicao Vista Geral de Interao Temporal ou Timing

Duas formas de representao


5

Informaes bastante similares mas de maneira diferente


Diagrama
Interao

de Seqncia

enfatizando o tempo de seqncia Mostra objetos participando em interaes de acordo com suas linhas de vida e as mensagens que trocam
Diagrama
Interao

de Comunio
enfatizando o relacionamento entre os

objetos

Diagrama de seqncia
6

Tempo (top-down)

condio de guarda

ObjetoA
[se novo] <<create>> mensagem

mensagem sncrona
ObjetoB objeto

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

linha de vida

Termos e conceitos
7

Objetos Linhas de vida Mensagens

Focos de controle

Objetos
8

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)

Objetos
9

j ose Floricultor j oao:Denti sta

central CentralFloricultura

fl ori cul torPetropol i s Floricultor

1: enviarFlores("Rosas","Maria","Petropolis","Rua x, 9"):boolean 1.1: atendeCidade("Petropolis"):boolean 1.2:[se nao na cid...] getFloricultorNaCidade("Petropolis"):Floricultor 1.3: aceitaEncomenda("Rosas","Rua X,9"):boolean

Linhas de Vida
10

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 Indica chamada de mtodo do prprio objeto Objeto jose no slide anterior

Caixas de ativao podem ser empilhadas

Podem representar a criao e a destruio de objetos

Linhas de Vida
11

es toque vended or

Criao

1: new()

pedi do

Linhas de vida

2:*[*] //adicionarItem2.1: verificarDisponibilidade 2.2: reservarItem 3: confirmarPedido 3.1: confirmarPedido

Destruio

4: kill()

(Caixas de) Ativao

Mensagens
12

Objetos interagem atravs da troca de mensagens

Setas slidas que vo do objeto solicitante para o solicitado

Para o prprio objeto: auto-delegao


message(parameter:parameterType):returnType

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

return := 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

Mensagens - Tipos
13

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 new() <<create>> Opcional

create

Criao de um objeto Eliminao de um objeto

kill()

<<destroy>>

destroy

Mensagens - Representaes
14

Smbolo Mensagem sncrona

Significado

Mensagem assncrona

Mensagem de retorno (opcional)

Mensagens
15

Auto-delegao
j ose Floricultor j oao:Denti sta 1: enviarFlores("Rosas","Maria","Petropolis","Rua x, 9"):boolean 1.1: atendeCidade("Petropolis"):boolean 1.2:[se nao na cid...] getFloricultorNaCidade("Petropolis"):Floricultor 1.3: aceitaEncomenda("Rosas","Rua X,9"):boolean central CentralFloricultura

fl ori cul torPetropol i Floricultor

mensagens

Mensagens Condies de Guarda


16

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

Mensagens - Iterao
17

Uma mensagem pode ser enviada repetidas vezes


*

mensagem(...)

es toque vended or 1:

pedi do

vendedor

pedido

2:*[*] //adicionarItem2.1: verificarDisponibilidade 2.2: reservarItem 3: confirmarPedido 3.1: confirmarPedido

* adicionarItem

4:

18

Foco de Controle
19

Perodo de tempo que o objeto executa uma ao Relao de controle entre ativao e o responsvel pela sua invocao

Diagrama de Seqncia Construo


20

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

Anlise OO do RUP
21

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

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
Classes que armazenam informaes manipuladas pelo sistema

Entidade (entity)

Blog - Casos de uso


22

blogSystem Criar Blog <<include>>

Criar Comentario Ler Conteudo Usuario

Ler Nota

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

Remover Conteudo Criar Nota

Remover Nota

Dono do blog

Blog - Diagrama de Seqncia: Criar blog


23

: UsuarioBlog

: GUIBlog

: ControladorBlog

: Blog

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

Blog - Diagrama de Seqncia: Criar Nota


24
: UsuarioBlog : GUIBlog : ControladorBlog : Blog : Nota

1: criarNota(usuario, idBlog, comentario) 2: criarNota(usuario, idBlog, comentario) 3: consultarBlog(idBlog) 4: getDono()

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

26

2004 by Pearson Education

Anda mungkin juga menyukai