Você está na página 1de 19

rr

UML-I550

-
~

oi
c
~
o
'-0:

o Que é o Diagrama de Atividades? -
~
-o:
o
=>
c
...ww • Descreve os aspectos dinâmicos do sistema.
Z
IL
~
a: • Mostra o fluxo entre as atividades, seus parale1ismos
o
o..
'"
o
e desvios condicionais.
c
;; • Pode ser usado para:

a:
w
'"
w
a: - Esclarecer graficamente casos de uso complexos.

'0
'-0:
'" - Descrever a interação do fluxo de trabalho entre vários

'"
g casos de uso.

w
a:
Õ - Especificar o funcionamento de métodos.

'"
O
'"
O
C
- Mostrar a navegação entre telas.

~
• É utilizado também para desenhar um fluxo de

trabalho em modelagem de negócios.

256

o diagrama de atividades é bastante versátil podendo ser usado em um grande número de


situações. Pode ser considerado uma evolução do fluxograma pois descreve atividades de maneira
semelhante mas possui elementos a mais do que este.
Descreve os aspectos dinâmicos do sistema, mostra o fluxo de uma atividade para outra num
sistema. É um tipo especial de diagrama de gráfico de estado, exibindo o fluxo de uma atividade
para outra, no sistema.Alguns autores colocam o conceito do diagrama de atividades próximo ao
da fluxogramação.
Um diagrama de atividades é desenhado normalmente a partir de um caso de uso. Outra I

forma de utilização é para todo o fluxo de trabalho (workf1ow) de um determinado processo.


Também pode ser utilizado para mostra a navegação das telas de um sistema e sua associação a
casos de uso.

INSTITUTO INFNET - 256



:1

:3
UML-1550

~
~

:=11 -
~

~
Componentes
J

=-
:I
~
.lJ.

:Li:
z

~

~:::
• Componentes de um Diagrama de Atividade
- Estado inicial (é obrigatório e só pode ter um) e final
(opcional e pode ter mais de um);

~'
<: - Transições (setas)

>
=
:I ,t;:;.

'"
~
o
• Separação (ou Bifurcação) e Junção (ou União) (forks e joins)
< • Desvios (ou decisões)
'"
::

:11 :::
j]
- Estados de Atividades e estados de ação
~

=-
- Objetos
3:n
o
o - Raias (Swirnlanes) - Demonstra o local onde são
~
executadas as ações (classe, parte da organização)
:11
257

::I

Diagramas de atividade são semelhantes aos de estado mas possuem os seguintes


:I
componentes:
Estado inicial e estados finais: idem ao diagrama de estados.
:I Transições: ligações entre as atividades.
Separação: indica o início de atividades paralelas.
~
União: vários fluxos chegando em uma barra preta e um saindo: todos os fluxos de
entrada devem ser executados antes do fluxo de saída executar.
::I Condição: idem ao diagrama de estados.
Decisão: um losango que indica uma condição simples.
;J
Junção: vários fluxos chegando em um losango e um saindo: um dos fluxos de entrada deve
ser executado antes do fluxo de saída executar.
~ Raias ou partições: indicação de quem (ou o que) é o responsável pela execução da


:I

atividade.

:I

:J
INSTITUTO INFNET - 257

:I
UML-1550

<i
Cl

--'
o
-o:
Componentes


«
o
=>
o
ur

W
Z
U.
~
a::
o
<l­
a>

>
a::
W
a>
W
a::
o
.<
a>
a>
of­
Ui
a::
ã
a>
E
O
a>
O
Cl
O
: ~.

258

Visualmente o diagrama de atividade se assemelha ao de estados, mas eles são utilizados


com intenções diferentes.
E~-­
. :

INSTITUTO INFNET - 258



:íI
UML-1550

oi.
o

:3 ~
a
«
Exemplo
'o­
«
o
:>

:3'
c
'"

""e,z • o processo de desenvolvimento simples:
~
~
OI:
oa,
O)
! .
oC
«

=­:3

>
OI:
J:lJ

'"
UJ
c:
Listar Requisitos
Funcionais
o

O)

O)

oI-
iii
OI:
a
O)
o
~
co
oc
o>­

~
259

~
A figura acima mostra um exemplo de um diagrama de atividades que representa o
::I
processo simples de desenvolvimento apresentado no capítulo 2.
O processo é iniciado com a descrição do problema em forma de documento de visão
::t seguida da lista de requisitos funcionais.
As atividades de listar casos de uso e desenhar a navegação das telas (usando um diagrama
de atividades) podem ser feitas simultaneamente pois uma complementa a outra.
:i São feitas as descrições de todos os casos de uso e o desenho do diagrama de casos de uso.
A partir das descrições as classes potenciais são identificadas.
:t O desenho das classes e dos diagramas de sequência (um ou mais para cada caso de uso) é
feito em paralelo já que muitos métodos das classes são criados no momento em que o processo
:I está sendo detalhado no diagrama de sequência.
Caso alguma classe possua estado (status, situação) que justifique sua modelagem, os
~ diagramas de estado correspondentes são criados.
O estado final é representado pelo projeto e construção do sistema que aparecem como uma
=t
única ativadade apenas para efeitos de simplificação.

-=a
---
==

~
INSTITUTO INFNET - 259

~
~!
UML-1550

:iI
oi.

~
C

...I
o
-o:
Decisão
C>
«
o
::>

~
c[1J

[1J
Z
U.
• A decisão ou desvio é utilizada para indicar os
;?;
a: caminhos que podem ser percorridos.
:iI o

'"
o
c • E" uma condição (booleana) para um fluxo.

=-
«
>
a:
[1J

'"a:w
o
• Uso do termo [else].
-o:
'"'"o
:31 f-
Ui
a:
Efetuar
Paqam.ento
[ cartão] Validar
Cartã.o
s
'"
O

~ '"Oc
O
[cheque]


Ve r i f i c a r

~
( CPF

261

:=I
~ Como o diagrama de atividade é baseado em um caso de uso, é através dos desvios que
demonstramos e validamos os cursos alternativos.
Observe que no diagrama de atividade todos os fluxos (principal e alternativos) do diagrama
::I de casos de uso serão mapeados.


:::I
:I
:::I
:=I

==
:=:

::t

INSTITUTO INFNET • 261


~

UML-155D
I t=

<i
-r
c
~
o
.<{
Fluxo de Objetos -
~
C>
<{
o

-~
::>
c
LU
t;j
Z
u,
• Fluxo de Objetos
;?;
a:
O
Q.
Cf)
O
C
- As ações podem alterar o estado de um objeto ou
mesmo criá-lo. -
~

-
<{
>
a:
LU
Cf) - Pode ser interessante exibir o estado em que o i2
LU
a:
'O objeto se encontra dentro de um Diagrama de
-
.<{
Cf)
Cf)
O Atividades. ~
l::
LU
a:
Õ

-
Cf)
O
Cf) I!!
O
C
O
....

262
-
r

Atividade e estados juntos podem trazer muita informação ao diagrama, cuidado com a
poluição visual, tenha sempre em mente o objetivo do diagrama que está sendo desenhado.

INSTITUTO INFNET - 262


=­ UML -1550

:31
<i.

:iI '"
:::;
o Exemplo

""o­
<l:

'"'
=>
:I '"
::.J

ur
Z
u,
~

:iI 6c,
O)
o
C
<l:
::>
o::
:I W
li>
W
o:

=-
0<
>C(
O)
li>
o

iij
o:
Õ
O)
o
:I o li>
C
oI­

=­ 263


~
No exemplo acima os objetos Pedido e Cobrança tem seus estados alterados por
determinadas atividades durante o fluxo de trabalho.
O processamento do pedido altera o status do pedido para processando. Após o envio do
pedido, este tem seu estado alterado para entregando enquanto o título a receber é criado com o
status de aberto.
~ Na recepção do pedido este tem seu status alterado para entregue. Após o pagamento o título
a receber é considerado pago. No fechamento do pedido, ele tem seu status alterado para fechado.
~

:=I
:I
:=li
::I
INSTITUTO INFNET - 263
:I
UML- /5.50
I:
~
oi.
Ações e Atividades ~
o
~
~

<t
u

'I:
::l
o
w
li;
""~
u,

ti:
oC­
Ul
o
'I::
o
<t
>
ti:
w
Ul
w
ti:
t=
o
'<t
Ul

CIl

o
!::
w
I::
ti:
Õ
- podem ser decompostos,
Ul
o
Ul
oo - podem ser interrompidos, ~
~
- tomam tempo até completar.
~
264

Um estado de ação é a menor porção do código, se houver divisão no "validar DV do CPF", t::
este não é um estado de ação.

INSTITUTO INFNET • 264


-

~
UML-1550

<i.

:iI "
...l
o
<
Uso do Diagrama de Atividades
:..>
-c
~II
:ti z"'" • o diagrama de atividades pode ser usado em
...

~
várias situações:
'"
o
Q 1. Descrição de processos
-c
>

~
:l!:

""""
D
2. Descrição de um caso de uso
:li::
o
<: 3. Descrição de um método
'"

;11
'"
;:
n
%
:i
D
.,o
o
4. Navegação de telas

=­ 265

=­ o diagrama de atividades serve para descrever uma vasta gama de operações, como por
=­ exemplo:
1. Descrição de processos, fluxos de trabalho e sequenciamento de casos de uso.
:ti 2. Detalhamento de um caso de uso mais extensos. Normalmente nestes casos é mais
fácil entender o diagrama de atividades do que um texto descritivo.
51 3. Descrição de métodos com lógica complexa.
4. Navegação de telas. Embora não seja o diagrama ideal para esta tarefa, é uma boa
~I opção pois faz parte da especificação da UML. Além disso, como os desenvolvedores
usam ferramentas UML, o diagrama de atividades sempre estará a mão para auxiliar

=­ nesta tarefa.

:I

:I

:!

:s

§li
INSTITUTO INFNET - 265
~

UML-1550

..:o
~
o

Descrição de Processo E
~
o

~
:>
o
UJ
li;
a:
• Fluxo de trabalho - Desenho em partes
~
a:
o
11.
- Considere a construção de uma casa: deve haver a I:
(J)
o
o seleção do terreno, em seguida a contratação de
«
>
a:
UJ
(J)'
um arquiteto será necessária para desenhar o E
UJ
a:
o

projeto da casa, para então analisar o projeto e
(J)
(J)

...
o caso ele seja aprovado, serão feitos os acertos e E
m
a:
Õ
definições de construção e então é dado o início da
(J)
o
(J)
oc
obra. E
o
...
'~

266
I:
Para o exemplo apresentado teremos que desenhar um diagrama de atividades. ~
I
II
C

INSTITUTO INFNET • 25='


:li UML-1550

:li

=-
<i.
c
:i
o

Descrição de Processo

<
u
::>

:31 o
ar
ij
Z
1a. Parte - Identificar os fluxos, as atividades
L
~
5
Selecionar o terreno

:31 ~

'"
o Contratar arquiteto

c
<

:li ,.,.
>
a::
LI Desenhar o projeto

a::
o
.,.,
o« Analisar o proj eto

:íI o
!:::
'"Õ
OI:
Iniciar a obra

al
o
:!li al
o
o
o
...

:3
267

~
Com os fluxos identificados fica mais fácil iniciar o desenho do diagrama, nesta parte
=:iI devemos pensar nas atividades que o sistema deverá desenvolver. Ao final desta etapa devemos

~
descobrir se existe alguma atividade que pode ficar em paralelo com alguma outra.

b.
I~
b
6
~
..-.

INSTITUTO INFNET • 267


Cf

UML-1550

I:::::

Descrição de Processo
2a. Parte - Identificar atividades paralelas

- Selecionar o terreno
- Contratar arquiteto

268

Este é o estudo de threading ou de processos que são executados simultaneamente,


identificamos no meio de todos os fluxos levantados se existem atividades que podem ser
desenvolvidas simultaneamente.
Após este passo devemos descobrir qual a ordem de execução das atividades.
t-:
.JSi.

It:=
.R:=.

INSTITUTO INFNET - 268


11
UML-1550

-• ~
-'
-<o­
~:i!
Ü
z....
Descrição de Processo
3a. Parte - Identificar ordem de execução das


11 ..
~
:E:
o
e,

~
<i
>
:E:
. ti
.ti
:E:
1.
atividades
Selecionar o terreno
Contratar arquiteto

;< 2. Desenhar o projeto


'"~
iI E 3. Analisar o projeto
ª
11 .
~
:::
::l
4. Iniciar a obra
O,

11
269

11

- A ordenação da execução das atividades se toma fácil quando se conhece o negócio em


questão, ainda neste momento podem surgir dúvidas de negócio que devem ser resolvidas

-• juntamente com o usuário/gestor da informação.


Depois devemos descobrir se no nosso esquema há alguma decisão, se a execução de uma
atividade depende de alguma condição.

-
,.
11

-;­
-

-
INSTITUTO INFNET - 269
11
UML-I550

-•
<i.
Cl
~
o
'00:
Descrição de Processo
o.
00:
o
::>
Cl
w

W

4a. Parte - Identificar desvios e condições


u.
~
a:
oD..
cn
oCl Para iniciar a obra o projeto precisa ser

00:
>
a:
w aprovado.

g]
a:
O· A aprovação do projeto é a condição para o

'00:
cn
cn
o início da obra.


m
a:
Õ
cn
o
cn
oCl
oI­

270

Os desvios são as opções de caminhos que podem ser trilhadas no decorrer da execução das I::
atividades.
Ao término desta identificação dá-se o início do desenho do diagrama. ~

INSTITUTO INFNET - 270


3
UML-1550

31

<i.

~
::>
:3
o
<
Descrição de Processo
t>
-c
u
::>

~
o
'-'
jj
zu,
5a. Parte - Desenho do Diagrama
~
o::
~ o
<>.
'"
o
c
-c
>

=­ ...'"
'"
:.J

'"
o
<
'"
:11
'"
o
....
~
'"
13
""o
~ '"
o
::>
e

=­ 271
[ rejeitado pela terceira vez]

=­ Não há mistério no desenho do diagrama, a princípio devemos identificar as atividades,


depois as atividades que podem ser colocadas em paralelo e a ordem que devem ser executadas,
em seguida descobrir se há desvios e suas condições. Pronto o desenho está pronto.

=­ Porque usar a junção e bifurcação?

:­ A bifurcação do exemplo indica que o 'Contratar Arquiteto' e o 'Adquirir Local' são


atividades que podem ser simultâneas, inclusive podem ser feitas por recursos diferentes
(processadores ou profissionais).
:­ A junção do exemplo, indica que para que o 'Desenho do Projeto' seja iniciado ele deve
esperar que o 'Contratar Arquiteto' e o 'Adquirir Local' estejam finalizados.
~


:I

:s

=I
;;a

:I

INSTITUTO INFNET - 271


11

UML-I550

<i
c
~
o
'c00
o:
Descrição de Caso d.e Uso
co:
O
::l
O
W Nome: Comprar Pacote de Viagem Cursos Alternativos
....
W
Z

Descrição: Este caso de uso trata a escolha do Passo 7: Caso login ou senha inválidos
LL
pacote de viagem por parte do cliente.
~ 1. Sistema informa que login e senha estão
o:: Ator: Cliente
O inválidos.
11­
Ul
O Curso Normal: 2. Retornar ao passo 6.
c
co: 1. Cliente solicita Modulo de Pacotes
>
o:: 2. Sistema lista pacotes existentes
w Passo 9: Caso Número de vagas
[fl 3. Cliente seleciona pacote desejado insuficiente
o::
O 4. Sistema exibe as informações do pacote 1. Sistema informa que não é possível
'cUl

o: selecionado
Ul

vender tantas vagas.


O 5. Sistema solicita identificação do cliente
!:: 2. Sistema pergunta se cliente deseja outro
w 6. Cliente informa login e senha
ee pacote ou novo número de vagas para este
Õ 7. Sistema exibe nome do cliente e solicita pacote
Ul número de vagas
O
Ul 8. Cliente informa número de vagas Caso selecionado novo número de vagas:
O
c 9. Sistema calcula pacote do cliente a. Retornar ao passo 8
O
.... 10. Cliente confirma compra Caso selecionado outro pacote:
11. Sistema registra a compra
a. Retornar ao passo 2

272

Um dos usos de um diagrama de atividades é a descrição de casos de uso complexos. Na


figura acima é mostrado um caso de uso que descreve uma operação de compra de pacote de
viagem.
A descrição é complexa pois envolve vários fluxos alternativos, incluindo opções diferentes
dentro de um mesmo fluxo. Neste caso o desenho de um diagrama de atividade pode facilitar o
entendimento do processo e validação do caso de uso.

INSTITUTO INFNET - 272


11
UML-1550

li
:!
~

o
o<
Descrição de Caso de Uso


<
~
li i::
Lt
Z
J...
~ )<E-----\ Buscar dados do pacote "'_;:-_ _--\

:li ;:.
J!:

~ [ login err ado ]


<i
>

~ ..
:I:
..u
..u
r
[ outro pacote ]

o
-=:
'"
iI '"
O
:;:;:
15
.,
:::l [ número de vagas err ado ]

11 .g
c

[ número d vagas ok]


\

:P­
273


:li No desenho do diagrama fica fácil visualisar todas as exceções do caso de uso além de não
haver ambiguidades que possam comprometer o entendimento do processo.


~

:I
:11
::I

.
~


I

INSTITUTO INFNET • 273


I

UML-I550

<i
o
~
o

Descrição de Método
~
o
:::>
o
w
tu
z
u,

~
o::
o
e,
(Jl
oo [,air 1 .1.presentar
« \. Mensagem. Final
>
o::
w
(Jl
w
o::
o

(Jl
(Jl
o
!iio::
c
(Jl
o
(Jl
oo
o

274

A figura acima mostra a descrição do método "main" do Banco Money. Repare que os
estados Sacar e Consultar Saldo não estão detalhados neste diagrama. Ambos incluem outro
diagrama de atividades que deve ser desenhado para detalhar estas operações (sacar e consultar
respecti vamente).

INSTITUTO INFNET - 274


I
UML-1550

iI
~
iI -
;;;(
Navegação de Telas

<t
o
:::l

iI e.... • Banco Monev: Telas x Casos de Uso


~
z
~

iI ~
:l
o
::l
'"
>

11 .,......
OI:

o::
o
.,.,
-o:

11 2
ii
%
:5
'"o
iI :l
o
::>
;:

iI
275

li

-
o diagrama acima mostra um uso bem interessante de um diagrama de atividades: mostrar
a navegação completa das telas de um sistema. Repare que algumas telas se referem a casos de
uso do sistema:

-;.
Tela de Depósito - Efetuar Depósito

Tela de Login - Acessar Conta

Tela de Saque - Efetuar Saque

Tela de Consulta ao Saldo - Consultar Saldo

--
--
-

;I
.­ INSTITUTO INFNET - 275

11