Engenharia de Software
Aula 8 – Diagrama de SequênciaProfa. Dra. Judith Pavón
Universidade Salvador – UNIFACS2012
Objetivo da aula
2
O objetivo desta aula é apresentar os conceitos de diagrama de sequência.
3
Primeira parte.
Conceitos básicos
Exemplos
Segunda parte.
Arquitetura em 3 camadas
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.
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.
6
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.
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.
objeto
ativação
mensagem
linha de vida
Diagrama de Seqüência
10
Diagrama de Comunicação
Enfatiza o relacionamento estrutural entre objetos, sem se preocupar com o tempo determinado para cada interação.
Tipos de Diagrama de Interação
Diagrama de Comunicação
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.
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 paraprosseguir com o seu processamento
14
Um Diagrama de Seqüência tem por basedois eixos fundamentais:
Tempo
Objetos
Dispostos em qualquer ordem.
Representadode cima para
baixoExemplo:
Exemplo
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.
16
:obj-A :obj-B :obj-C
Tempo
Objetos
As linhas pontilhadas expressama linha do tempo de vida de cada objeto
Exemplo:
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
18
:obj-A :obj-B
:obj-C
Msg1()Msg2()
Criar()
Msg4()
Excluir()
A mensagem de criação de um objetoé dirigida ao objeto e não à linha da vida
Exemplo
19
:obj-A :obj-B :obj-C
Msg1()Msg2()
Msg3()
Msg4()
Excluir()
Duas linhas cruzadas em formaDe “X” indica a exclusão do objeto da memória.
(destruição)
Exemplo
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
21
:obj-A :obj-B :obj-C
Ativação
A ativação é o momento em queo objeto começa a trabalhar.
A altura do retângulo expressa umadimensão de tempo que o objeto permanece ativo
executando um método ou operação.
Exemplo
22
:obj-A :obj-B :obj-C
Período Ativo
Durante seu tempo de vida um objetopode alternar do estado ativo para inativo
ou vice-versa.
Período Ativo
Período Inativo
Exemplo
23
Exemplo
[Se disciplina.temPreReq]obterPreRerquisito(disc1)
auto-chamada ouchamada recursiva.
Chamada recursivaO objeto envia mensagem para si próprio.
(Um método chama outro método do próprio objeto)
cursoCCO:curso disc1:Disciplina
ObterGrade*[Para cada disciplina]
obterInfDisc(cursoX)
Grade()
coord.
24
25
ObjetivoO objetivo desta segunda parte é
mostrar um exemplo de diagrama de sequência dentro do contexto de arquitetura em três camadas.
26
Diagrama de Seqüência
A seguir é apresentado um caso de uso relativo a compra de um produto e sua respectiva nota
fiscal.
Obs: A classe Cliente deveria fazer parte deste diagrama, da mesma forma que produto faz.
3:selecionar dados de prod ( )
<<form>>
:interface
<<control>>
:controle
<<entity>>
:produto
<<entity>>
:NotaFiscal
<<entity>>
:Detalhe_NF
Confirmar Compra 1.Verificar dados de entrada()
2:ObterDados( )
5:GerarNotaFiscal ( )
6:*[paracadaitem] gravarDados( )
4:dados
7:8:9:10:
vendedor
Representa uma composição no D_ClasseO Todo é resp. por enviar mensagens para a parte pois fazem parte de uma unidade.
Legenda dos símbolos utilizados:
Representa um objeto persistente
Representa um objeto de interface
Representa um objeto de controle
27
Diagrama de Seqüência
Dúvidas
28