1. Engenharia de Software
Aula 8 – Diagrama de Sequência
Profa. Dra. Judith Pavón
Universidade Salvador – UNIFACS
2012
2. Objetivo da aula
O objetivo desta aula é apresentar os
conceitos de diagrama de sequência.
2
3. Primeira parte.
Conceitos básicos
Exemplos
Segunda parte.
Arquitetura em 3
camadas
3
4. Definição
Interação: Ação que se exerce
mutuamente entre dois ou mais
elementos, ou duas ou mais pessoas;
ação recíproca.
Iteração: Ato de iterar; repetição.
4
5. Diagrama de Interação
Interação corresponde a um conjunto de
mensagens trocadas entre objetos, com o
objetivo de alcançar um determinado
propósito, respeitando-se o contexto do
sistema. O diagrama também apresenta a
interação do usuário com os objetos de
fronteira.
Um diagrama de Interação mostra as
interações por meio de uma visão dinâmica
do sistema.
5
7. Diagrama de Interação
Um diagrama de Interação pode representar:
Um sistema
Subsistema
Operação
Classe
Cenário de um caso de uso.
Diagrama de Interação é formado,
basicamente, por objetos, relacionamentos e
mensagens.
7
8. Tipos de Diagrama de
Interação
Um diagrama de Interação pode
ser representado de duas formas:
Diagrama de seqüência
Enfatiza a seqüência de mensagens
dentro de uma linha de tempo.
8
10. Tipos de Diagrama de
Interação
Diagrama de Comunicação
Enfatiza o relacionamento
estrutural entre objetos, sem se
preocupar com o tempo
determinado para cada interação.
10
12. Diagrama de seqüência
A representação gráfica de um diagrama de
seqüência é baseada em duas dimensões.
A primeira dimensão é vertical e representa
as mensagens trocadas no decorrer de um
tempo de vida (eixo Y).
A segunda dimensão é horizontal e
representa os objetos participantes das
interações (eixo X).
As mensagens correspondem a chamadas
de serviços dos objetos, ou seja, a chamadas
de suas operações.
12
13. Diagrama de seqüência -
Mensagens
Uma mensagem é uma comunicação entre objetos (emissor e
receptor) na expectativa de provocar uma resposta (ação ou
atividade).
Uma mensagem é representada por uma seta horizontal, do
emissor para o receptor, com o nome e possíveis argumentos.
Tipos de mensagens
Síncrona – o emissor espera a resposta do objeto receptor
Retorno de mensagem síncrona
Assíncrona – o emissor não espera a resposta para
prosseguir com o seu processamento
13
14. o
Um Diagrama de Seqüência tem por base
dois eixos fundamentais:
Objetos
Dispostos em qualquer ordem.
Tempo
Representado
de cima para Exemplo:
baixo
14
15. Objetos e linhas de vida
Cada objeto participante é representado por
uma caixa, cujo interior possui o nome do
objeto instanciado.
Associado a este objeto existe uma linha
pontilhada, conhecida como linha de vida do
objeto.
Podem aparecer atores que normalmente
iniciam as interações entre os objetos.
15
16. Exemplo:
Objetos
:obj-A :obj-B :obj-C
Tempo
As linhas pontilhadas expressam
a linha do tempo de vida de cada objeto
16
17. Criação e destruição de objetos
A criação de objetos é representada por
mensagem dirigida à própria caixa que
representa o objeto (ao invés de ser dirigida
à linha de vida).
Pode apresentar o estereótipo <<create>>
Destruição de objeto é representada por um “X” no fim
da linha de vida do objeto.
pode apresentar o estereótipo <<destroy>>
o objeto pode auto destruir-se
pode ocorrer na recepção de mensagem ou no
retorno de chamada
17
18. Exemplo
:obj-A :obj-B
Msg1()
Msg2()
Criar()
:obj-C
Msg4()
Excluir()
A mensagem de criação de um objeto
é dirigida ao objeto e não à linha da vida
18
19. Exemplo
:obj-A :obj-B :obj-C
Msg1()
Msg2()
Msg3()
Msg4()
Excluir()
Duas linhas cruzadas em forma
De “X” indica a exclusão do objeto da memória.
(destruição)
19
20. Barra de ativação
Uma barra de ativação mostra o
período de tempo durante o qual um
objeto está executando uma ação.
O retorno de chamada é implícito no fim
da barra de ativação.
Chamadas recursivas provocam barras
empilhadas
20
21. Exemplo A ativação é o momento em que
o objeto começa a trabalhar.
:obj-A :obj-B :obj-C
Ativação
A altura do retângulo expressa uma
dimensão de tempo que o objeto permanece ativo
executando um método ou operação.
21
22. Exemplo
Durante seu tempo de vida um objeto
pode alternar do estado ativo para inativo
ou vice-versa.
:obj-A :obj-B :obj-C
Período Ativo
Período Inativo
Período Ativo
22
23. Exemplo
cursoCCO:curso disc1:Disciplina
coord.
[Se disciplina.temPreReq]
ObterGrade obterPreRerquisito(disc1)
*[Para cada disciplina]
obterInfDisc(cursoX)
auto-chamada ou
chamada recursiva
Grade()
Chamada recursiva
O objeto envia mensagem para si próprio.
(Um método chama outro método do próprio objeto)
23
25. Objetivo
O objetivo desta segunda parte é mostrar
um exemplo de diagrama de sequência dentro do
contexto de arquitetura em três camadas.
25
26. Diagrama de
Seqüência
A seguir é apresentado um caso de uso relativo a compra de um produto e sua respectiva nota fiscal.
<<form>> <<control>> <<entity>> <<entity>> <<entity>>
vendedor
:interface :controle :produto :NotaFiscal :Detalhe_NF
Confirmar
Compra 1.Verificar dados
de entrada()
2:ObterDados( ) 3:selecionar
dados de prod
( )
4:dados
5:GerarNotaFiscal ( ) 6:*[paracadaite
m]
gravarDados( )
7:
9: 8:
10:
Representa uma composição no
Legenda dos símbolos utilizados : D_Classe
O Todo é resp. por enviar
Representa um objeto persistente mensagens para a parte pois fazem
parte de uma unidade.
Representa um objeto de interface
Obs: A classe Cliente deveria fazer parte
deste diagrama, da mesma forma que
Representa um objeto de controle
produto faz.
26