Diagrama De Sequencia

  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Diagrama De Sequencia as PDF for free.

More details

  • Words: 3,259
  • Pages: 17
::i

UML-1550

=:i

-=- ::I




....l

o

-c

o

~

'""" l­

cJ Z

e,

~

::J

::i

::i

::I

~

'" o '"-c >

5.2 - Diagrama de Sequência

:l:

"" '" X .:.J

o

<

., '" o

Bloco de Construção do Aprendizado



:;j

x :5

.,

...o

o

'"O,

:i ~

::I



~

:I

:3

=­ =­

:I ~ ~



INSTITUTO INFNET - 209

r

UML-I550


I

Tipos de Diagramas

o .« o­

« o

:J

ow

• Interação é o conjunto de mensagens trocadas entre objetos



w Z u.

:i: o:

oQ. (fJ

o

• Uma interação pode ser representada enl UML de quatro maneiras:

o > o:

« w w

(fJ

,o:

o .« (fJ

- Diagrama de Visão Geral

- Diagrama Temporal

- Diagrama de Comunicação

(fJ

o

!::: w

o: i5 (fJ

o (fJ oo

- Diagrama de Sequência

o f­

I

210

Diagramas de interação representam a troca de mensagens entre objetos e são usados para modelar o comportamento de vários objetos dentro de um caso de uso. A UML 2.0 define quatro maneiras de se representar a comunicação existente entre objetos de um caso de uso:

I

Diagrama de Visão Geral: variante do diagrama de atividades que representa o fluxo de um processo. Cada nó deste diagrama pode ser outro diagrama de interação. É um diagrama de alto-nível que mostra conjuntos de interações combinadas em uma sequência lógica, incluindo lógica de controle de fluxo e de navegação.



Diagrama de Comunicação: tem o foco na organização estrutural dos objetos que enviam e recebem mensagens. Baseia-se no diagrama de colaboração das versões anteriores da UML. Diagrama Temporal: mostra as restrições de tempo na mensagens enviadas e recebidas durante uma interação. Diagrama de Sequência: apresenta a sequência de troca de mensagens entre os objetos.

i

I



-i

!

i



I I

I INSTITUTO INFNET - 210

I



::I

UML-155D

::I

:I

:I

::I

ci.

Diagrama de Sequência

;:

-'

o « o <

~

Li

• Mostra interações (trocas de mensagens) entre objetos em uma sequência temporal. • É utilizado para descrever casos de uso, métodos e serviços. • Facilita a visualização da dinâmica do sistema, pois mostra quais os métodos e as situações em que eles serão chamados. • Enfatiza o ordenamento temporal das operaçoes.

L

Z

L

~

~:: c

:::: < >

:I '".. ..s ~ ~

L!

:J

:z:::

o

<

i:

I:

:;:

s ~

::I

211

::I

~

~

~



~

:11

=­ :I

=­ =­

=ti

Os diagramas de seqüência são utilizados para descrever o fluxo de execução de casos de uso, métodos e serviços (transações complexas e web services). Neles são representados atores, objetos e métodos ordenados por tempo. Possibilitam que o fluxo de execução seja, ao mesmo tempo, documentado e validado. Oferecem um excelente nível de detalhamento e facilitam a visualização da dinâmica do sistema. Por isso é considerado um dos mais importantes diagramas da.UML, sendo a técnica preferida de modelagem da dinâmica de um sistema. Os diagramas estudados até aqui não possuem qualquer significado com relação a posição relativa de seus elementos. Nos diagramas de sequência esta posição é importante pois eles podem ser conssão gráficos 2D, nos quais o eixo horizontal representa a execução de um determinado método e o eixo vertical mostra quais métodos são chamados. Ferramentas case possuem muitas facilidades para o relacionamento entre diagramas de classes e de sequência, como por exemplo: escolha de um método existente em uma classe, criação de novo método, uso e criação de classe dinamicamente, entre outras.

INSTITUTO INFNET - 211

UML-I55D


f

Componentes Principais

~

o o­ c

.
-f

w

li:; z u..

jObjetol

~

jObjeto2

-

E

ti:

o Q. CIl

o c ti:

j: Ator 1 : mensagem 1()

W CIl W

-

r

2 : mensagem2()

. ti:

o

.
CIl

-

r

3 : resposta 1

...

o u:;

4 : m nsagem3()

ti:

5 : menseqerns

C CIl o CIl o c o

~-----------

:

-

r

---------- --­

6 : resposta2

...

~

-

I 212

f

Diagramas de sequência são construídos de acordo com as seguintes convenções: • Linhas verticais representam os objetos; • Setas horizontais representam as mensagens passadas entre os objetos; • Rótulos das setas são as mensagens, na maioria das vezes operações; • A posição na vertical mostra o ordenamento relativo das mensagens, o decorrer das ações no tempo;

-

r

..r

f

• Retângulos situados nas linhas verticais para indicar o tempo de vida dos objetos (caixas

de ativação).

• A caixa de ativação indica o tempo que o objeto ficará ativo em memória. Esta figura

representa que o objeto l irá acionar um método de outro objeto e ficará ativo aguardando

sua resposta (método síncrono) para posteriormente acionar um método próprio.

• A mensagem4 representa um método assíncrono, ou seja, um método que é invocado

sem que o chamador precise ficar aguardando a resposta.

• A representação da seta de retomo é facultativa.

'E

E

-E INSTITUTO INFNET - 212



UML-1550

3

=~

=~

=~



~

Componentes

~

< :> ~

il

• A representação de uma classe pode aparecer no lugar de um objeto, mas sempre respeitando a regra de nomenclatura:

ii: z Lo ~

~ ~

<:

> :c: JJ.

'"

.LI.

l:

c1ientel:Cliente

< D li

:::

Objeto:Classe

il ~

.. ~ f?

:Ciiente

213

:3





=­ =­ =­

Existe a possibilidade da representação de classes em um diagrama de sequência, o que é comumente utilizado quando não se tem necessidade de um elemento específico de uma classe, por exemplo uma listagem de clientes. Outra situação para a utilização de classes é a chamada a métodos de classe (métodos que não precisam de objetos para serem chamados). Se for necessário o acesso a uma instância específica da classe é utilizada a notação nome do objeto ":" e o nome da classe. A representação dos objetos no diagrama de sequência sempre é seguida do nome da classe ao qual eles pertencem. A posição dos objetos também tem significado: um objeto que esteja posicionado acima da primeira chamada do diagrama já existia (já havia sido instanciado) antes do início da operação descrita.

:I

:I



=­ :li :I

INSTITUTO INFNET - 213

UML-~


Exemplo: Agenda

~

o ,« C> « o ~ o w

...w Z u. ~

a:

~

I: Usuário

CIl

o o «

1 : dados do contata0

iC

w

Nome válido

CIl

3 : valídarNo_fY)~O-

~.

~

, _-- ­ - - --­ ~ - -. -. possui duas palavras

o ,«

CIl

CIl

4 : nomeválido

...o

jjj

a:

Õ CIl

o CIl o

f«--------------------­ 6 : contato cadastrado

o

~

214

o diagrama acima mostra a representação do caso de uso "Inserir Contato" em uma

agenda. Como este diagrama é uma descrição de casos de uso, não é necessário ( e nem desejável) especificar exatamente quais são as classes de interface e de controle. Para indicar a existência deste tipo de classe sem a necessidade de detalhamento é comum a utilização de uma classe denominada "Fronteira" (Boundary no original). A condição de guarda (texto entre colchetes) mostra alternativas possíveis durante a execução de uma função. O estereótipo "create" é utilizado para indicar uma mensagem de criação. Anotações são utilizadas para inserir informações adicionais, normalmente referentes a forma como certos trechos do diagrama devem ser implementados. A ativação determina uma janela no tempo em que o objeto está executando uma ação, que pode ser seu próprio código ou aguardando o retorno de alguma mensagem enviada. Ocorre quando o objeto recebe uma mensagem. A linha da vida representa a existência do objeto em um dado momento. As mensagens são mostradas como setas (síncronas, assíncronas ou simples) entre as linhas de vida. Diagramas de seqüência podem ser das formas genéricas ou instância. Na forma de instância, mostra as interações necessárias em um cenário específico em detalhes. Na forma genérica mostra todas as possíveis alternativas de um cenário.

INSTITUTO INFNET - 214

~

UML-1550

:I

::3

~

Criação e Destruição de Objetos

--'

o < <

.,.

:I ~;:

iZ

z

/Fronteira



::I

~

~

~

5 :ê>

i: Usuário 1 : dados do contato()

i5

'":o::

.u

::J

<

:t

'"'"o

3 : exclusão()

Li

<<destroy>> 4

E

:::

:I

5

::

~

Õ

:J

215

:I

::J

::I

::I

::I

:J

Criação e exclusão de objetos também são representados em um diagrama de sequência. Quando uma mensagem de criação é enviada (geralmente síncrona), o símbolo do objeto é mostrado no local onde foi criado. No diagrama pode-se observar que a instância de Contato é criada a partir da Fronteira. Note que a instância da Fronteira aparece um pouco abaixo da instância da janela, indicando que ela foi criada depois. A figura mostra um 'X' na linha de vida da instância de Contato indicando a sua exclusão. Note que a linha de vida do objeto não segue adiante, ou seja, ele não pode mais ser acessado. Como em muitas linguagens modernas não existe a possibilidade do programador solicitar a exclusão de um objeto, este símbolo não aparece muito nos diagramas atuais.

::I

~

:J

:i :I ~

INSTITUTO INFNET - 215

UML-I550


Exemplo: Banco Money

~

o

'
:> o w

IFronteira.



I

Conta.Corrente

w

I1

Cliente I

Z

u,

~ 11:

I

o o..

'"oo

pessoa ; 1 : Informar Agêr.ciarIConta(

2 : validarCoota()


> 11:

K---- -- - - - ---- - - - - - - --- - -

w w

----- - - - - - - - - - - - - - - ­

4 : Solicitar Valor e Tipo

'"

3 : conta válida

o. ]

:

11:.

o

'
:

'" o '"

S: Valor e Tipo Depósito(). :

W

l---------

Õ

:

8 : nome parcial

:

9 : Confirmação()



_h

11:

:

'"o '"oo

6 : busca;f\Iome()

rt_-----------i~~;i~~i;;; is L~~ lr : d~-~~~~- --------- --~Q: '

!

«(reate» 10

o f­

216

'~

o diagrama acima mostra a sequência de mensagens do caso de uso efetuar depósito do Banco Money. A fronteira representa a interface entre o usuano e o sistema. É usada para esconder os detalhes da interação, facilitando o foco na modelagem do processo. O ator "pessoa" fornece dados para o sistema em três situações diferentes, recebendo a resposta em cada uma delas. Nem sempre a resposta é mostrada, pois em muitas situações ela é bastante óbvia. Omitir a resposta toma o diagrama mais legível.

INSTITUTO INFNET - Z16

r

I UML-I550

I:

E



Descrevendo um Caso de Uso

o

!:i

o .« o­ « o ::l

o w

• Os diagramas de seqüência são orientados para exprimir o desenrolar temporal de seqüências de ações. E" difícil representar lógicas de seleção e repetição sem prejudicar a legibilidade do diagrama, • Os roteiros representam desdobramentos da lógica do caso de uso. E" preferível usar diagramas separados para representar roteiros resultantes de diferentes caminhos lógicos.

tuz u,

;t;

a: o

!1. CIl

o o

«

ir

w CIl w a: o



CIl

CIl

o m l­

a: C

CIl

o CIl oo o I-

I:

E

!:

I: ~

~

E

218

I:

E

.~

INSTITUTO INFNET - 218

:3

UML-1550

:I

:3

~

Caso de Uso: Registrar Venda

--'

o «

:.Jo

< o

~

::? i3

• Partindo de um Caso de Uso ...

.Li..:

Z

.....

:?;

::I

- O Caixeiro registra itens de mercadoria.

'" ~ ~

- O Sistema totaliza venda. - O Caixeiro registra modo de venda.

<:

:>

~

I::

J...:

:: :o >::

~ ::

:JI

I::

- Se venda a prazo, o Caixeiro insere venda em contas a receber.

5

- Senão, o Caixeiro registra pagamento.

::

o

:ti

:;::;

:I

õ

:l

=

:I

219

:I

~

:=I

~

:I

:I

~

o diagrama de sequência pode ser feito a partir da descrição do caso de uso e da definição das classes. Ele é um descobridor de métodos das classes pois normalmente quando desenhamos o diagrama de classes não temos uma idéia muito clara a respeito das interações, métodos e objetos. Desenhar um diagrama de classes sem o auxílio do diagrama sequência é uma tarefa difícil, principalmente quando o desenvolvedor não conhecer a fundo o processo ou quando ele for inexperiente. A descrição acima se refere a um processo de registro da venda em um supermercado. Na descrição existem duas condições que podem ser identificadas em diagramas separados ou no mesmo diagrama. As operações descritas devem ser traduzidas em chamadas a métodos e, portanto, este é o momento para decidir qual classe conterá o método se por acaso ele ainda não existir no diagrama de classes.

~

:I



~

=s

INSTITUTO INFNET - 219

UML -1550

c(

Registrar Venda a Vista

(J

~

o .«



«

o

::l (J

w f­

w

Z u,

~

a: o O-

Ul

o

(J

«

> a: w

ffi

a: o .«

• Cria-se o Diagrama de

*

Seqüência Principal • O fluxo alternativo é ignorado pois será desenhado em outro diagrama de sequência.

:Venda I I

:Caixeiro I I I 1: totalizar(

:Caixa

I

I

I I I I I I I I

I I I I I I

i, :

"U /0

Ul

Ul

I

I~

2: registrarM2.do( )

o

t:

w

a: E

I

Ul

3: reqistrarPaqamento() ,

O

Ul

O

I I

(J

O

I

'-

f-

I I

I I

/0 I I

220

o primeiro diagrama desenhado refere-se ao fluxo típico. Neste caso como não há indicação clara de qual é o fluxo típico, escolhe-se um deles como principal. Observe que a sequência de passos da figura é a mesma da descrição do caso de uso. A novidade aqui é a identificação das classes "donas" dos métodos.

"

/,

\

\yJjJ'-- .~. [)/W . 'xJ

./~,

'~íY

!E:

'~ INSTITUTO INFNET - 220

:3

UML-1550

~

:ti ~

~

Registrar Venda a Prazo

.<::>

~

ü

ii zLo

• Diagramas de

:]I

~ ~

<:

~

:11 ~

.. .<.. .. > z::

..,;

/U

2: registrarModo( )

:;

~O

u ~

..

I

~

13: inserir(Venda)

:2 "3

I

~ 221

:I

I I I I I I

I

I I 1: totalizar( )" :

foi desenhado o fluxo alternativo

JJ.

z::

I

:Caixeiro I

• Neste diagrama

I :Contas a I

:Venda

*

Seqüência Alternativos

~

"

I I I I I

I,

receber I I I I I I I I I I

I I I I

I I I

I I

/0 I

I I

\

~

~ ~

=t ~ ~ ~

=t :=I :=J

::li

INSTITUTO INFNET - 221

r

I

-

;: '­

UML-1550


-

Condição de Guarda

~

o

f

'<1:

ow

• Um fluxo pode ser executado dependendo de uma determinada condição:

tuz u,

~ lI:

o

c, Ul

oo

- [condição] - lógica de seleção


• Exemplo: I IFronteira I

'o '<1:

Ul

Ul

o

E

I I : Ag,enda I

E

l:: w

lI:

Õ Ul

o Ul oo

1 [nome válido] : inserirContatoO

~

... '

D

~

­

E

-

>

lI: W Ul W lI:

-E

..

r

222

-

~

Uma determinada mensagem pode estar sujeita a condições para a sua ativação. Estas condições são mostradas no diagrama como textos entre colchetes acima ou à frente do nome do método invocado.

-

~

Na figura acima o método inserirContato da classe Agenda só será chamado se o nome do contato for válido. É comum o retomo de um método chamado previamente ser usado como a condição de execução da mensagem.

-2

-

c:

~

-

E

-

~

-

E

-f INSTITUTO INFNET - 222

-

E

3

UML-155D

3

~

~

Condição de Guarda

-

.:<:.;. C(

~

;,:

3

i1 Z '" Lo

~

3

~

::I



:I:

[

:Venda I

I

:Caixeiro I I

I 1: totalizar( ) ,

~

Ê <: ....

.. :> :I:

I

I

I

I

I

I

I

I

.~

....

2

2: registrarMod~( )

/0 I

Li

[Venda a Pra:zo] 3: inserir(Venda)

~

.. o

I

I

o

g

.Caixa

I

I

I

I

I



o <

:Contas a I

receber I

I

I

I

I

I

I

I

I

I

I

I

I

I

I

I

>0

[Venda a Vista] 4: registrarJDagamento( ) I

I

I

::11

I

223

3

=­ ~

o exemplo acima mostra o caso de uso descrito por apenas um diagrama. Isto foi possível graças ao uso das condições de guarda. Se a venda for a prazo, o método inserir da classe Contas a Receber é chamado. Se a venda for a vista, o método registrarPagamento da classe Caixa é chamado.

~

:íI ~ ~ ~

~

:I

:!I

~

INSTITUTO INFNET - 223

UML-I550


Iteração

o ~

o

'

• Um fluxo pode ser repetido diversas vezes de acordo com alguma condição de guarda:

::l

o

W

ti; Z

u,

;;

a:

- *[condição] -lógica de iteração (loop).

oo.. CIJ

o

o a:

l/Fronteira

I

w w

CIJ

a: /: Usuário

O'

:

'
CIJ CIJ

1: palavra chevef)

2 : buscarContatosO

~

o

!:: w a:

3: montarRespostaO ,---------,

< > 4 "[pera cada contato]

Õ CIJ

o

II:Contato I I I

1

CIJ

o o

1'::- ------- ---- ---- ---­

~

5 : contatos encontrados

~------------------: 6: lista de contatos ';

224

Iterações (repetições) são especificadas como condições de guarda precedidas de um asterisco. O diagrama de sequência acima é a descrição do caso de uso "Buscar Contatos" de um sistema de agenda eletrônica. O usuário informa a palavra chave e a fronteira invoca o método "buscarContatos" da classe Agenda. Este método por sua vez, chama o método montarResposta que cria um objeto do tipo Contato para cada contato encontrado de acordo com o critério de busca.

INSTITUTO INFNET - 224

I~



UML -1550

:a

~

:a :a

:=J

::I ~

~

Anotações

-

-<:;;; <

:;;:

• Diagramas de seqüência também podem ser complementados por meio de anotações.

:;;: Z JL.

~

2 ~

• Os detalhes de processamento que não correspondem a interações entre classes são lançados como anotações.

<'

.. :>

:z: .11 LI.

:z:

..

.:< ~

:;;: ~

• Essas anotações podem servir como especificações das operações das classes envolvidas.

~

~

~ 225

~ ~

No caso de diagramas de sequência, anotações podem ser usadas para descrever o conteúdo de métodos.

~

=­:r.

:I

:J

=t

:J

::I

:=I

:I

INSTITUTO INFNET - 225

UML- L55G


Anotações

o ~ o

.« o­ « o ::::>

o

w t­ w

Z

u,

~

, G;::.f:d9t dA

a:

~

oQ.

:km

: Ccclrõh" &e. GêSeC_.,z-e

FemBrAdmeS

f,:;n-.g:~
rJl

o o «

> a:

1rmro-rnece.-.iores

eXlbê ê

habilita o ~13rnP3' Código­

li:

da Nove Mi'fcaJ.::tiEt e c besêc OK.

w rJl w

a: d ,« rJl rJl

o



m a: Õ

"~.,,~".,~,.c:~'

rJl

o rJl o o o



I

) Gf{:=m-;;;l":=of:::-n;~::-:-::-.d~Qf:="-=-':=,::-g.:-::-'c.:=OO;=d,,"--,,"--,,+:e,"--$a-:CbJ:""-1itac:-:-"-=-c.s=m:=.pô-=-.-----... Cbd ,god di Nü'!o1El fi! €f;;:;.sdórl a ~ 6 00 §O Oi<.

I 226

Exemplo de anotações com detalhes de implementação.

INSTITUTO INFNET - 225

Related Documents

Diagrama De Sequencia
June 2020 1
Sequencia
May 2020 6
Sequencia Victor
April 2020 7
Sequencia Victor
April 2020 11
Diagrama
May 2020 41
Diagrama
June 2020 28