Unified Modeling Language
Diagramas de Actividades
José Correia, Junho 2006
(http://paginas.ispgaya.pt/~jcorreia/)
Diagramas de Estados e de Actividades
„
„
Um diagrama de actividades é um caso particular de um diagrama
de estados
Os diagramas de actividade estendem diagramas de estados, com
notação para distinguir vários tipos de estados:
• estados de (sub)actividade (execução de subactividade)
• estados de acção (representam a execução de uma acção)
• estados de espera (estados normais, de espera por eventos)
• estados de decisão (com várias saídas condicionais)
„
O que é um “estado de actividade”?
José Correia
UML - Diagramas de Actividades
2
Estados de actividade
„
Os estados de (sub)actividade...
... podem ser decompostos
- onde se usa actividade pode usar-se outro diagrama de actividades
... têm tempo de execução
... não sendo atómicos, podem ser interrompidos
„
As transições de saída destes estados não têm eventos, mas podem
ter condições e acções
• a conclusão da (sub)actividade determina a saída do estado
Emitir factura
Processar débito
José Correia
UML - Diagramas de Actividades
3
Estados de acção
„
Os estados de acção representam a execução de uma acção
• não podem ser decompostos
„
Acção
• operação atómica, instantânea (tempo de execução irrelevante), que não
pode ser interrompida
• exemplo: criar ou destruir um objecto
„
Não existe uma distinção na representação gráfica entre estadosacção e estados-actividade
Calcular total
José Correia
index := index * 5 + 1
UML - Diagramas de Actividades
4
Outros tipos de estados
„
Estado de espera (estado normal)
Estado
• a saída deste estado é causada por eventos
• pode ter actividade e acções associadas
• as transições de saída têm eventos e, possivelmente, condições e acções
• (ver exemplos em ‘diagramas de estados’)
„
Estado de decisão
• estado de passagem em que são testadas condições
• as condições aparecem nas transições de saída
• não é um estado verdadeiro, mas uma ramificação numa transição
José Correia
UML - Diagramas de Actividades
5
Exemplo: Preparar bebida
Procurar Bebida
barra de sincronização
(separação)
[não há café]
[há café]
[há cola]
Pôr Água no Reservatório
Pôr Café no Filtro
decisão e
ramificação
Pôr Chávenas
Buscar latas de cola
Pôr Filtro na Maquina
barra de sincronização
(fusão)
[não há cola]
envio de sinal
Ligar Máquina
/ligar cafeteira
estado de espera
(cantos arredondados)
Esperar que aqueça
luz desliga-se
transição disparada
por recepção de sinal
José Correia
Deitar café
subactividade
(lados arredondados)
UML - Diagramas de Actividades
Beber
6
Diagramas de actividades vs. estados
„
„
Ambos os tipos de diagramas são utilizados para modelar o tempo de
vida de um objecto ou sistema
Usar diagramas de actividade em vez de diagramas de estados
quando:
• todos, ou quase todos, os estados são estados de acção ou subactividade, e não estados de espera por eventos
• todas, ou quase todas, as transições são automáticas
- disparadas pela conclusão do processamento no estado fonte e não
disparadas por eventos
José Correia
UML - Diagramas de Actividades
7
UML - Diagramas de Actividades
8
Exemplo
„
„
Processo de
‘Retirar dinheiro
de uma conta
bancária’, através
de uma máquina
ATM
As três classes
envolvidas na
actividade são:
• Cliente
(Customer)
• Máquina ATM
• Banco (Bank)
José Correia
Pistas (swimlanes)
„
„
Na modelação de fluxos de trabalho relativos a processos de negócio
é comum a realização de actividades por várias entidades
participantes no processo
Um diagrama de actividades pode ser dividido em pistas de
responsabilidade (swimlanes)
• separadas por linhas contínuas verticais
„
Cada pista...
... é encabeçada pelo nome da unidade organizacional, entidade ou objecto,
responsável pelas acções e actividades aí localizadas
... agrupa as várias actividades da responsabilidade de cada entidade
participante
José Correia
UML - Diagramas de Actividades
9
Pistas: exemplo
Management
Evaluate
Impact
Revise
Plan
[ priority = 1]
Support
Register
Bug
Release
Fix
Engineering
Fix
Bug
„
Test
Fix
Cada acção ou actividade é localizada numa única pista
• mas uma transição pode atravessar várias pistas
José Correia
UML - Diagramas de Actividades
10
Transições
„
„
„
Transições: quando a acção ou actividade de um estado se
completa, o fluxo de controlo passa imediatamente para o próximo
estado de acção ou actividade
Uma única transição sai de cada actividade, ligando-a à próxima
actividade
Uma transição pode ramificar em duas, ou mais, transições
mutuamente exclusivas
José Correia
UML - Diagramas de Actividades
11
Decisões
„
A tomada de decisão consiste em especificar que actividade deve ser
realizada após a execução da actividade corrente
• uma decisão consiste em uma transição de entrada e duas ou mais de
saída
„
A representação das decisões envolve a utilização de:
• losangos, marcando o início e o fim de ramificações
• condições de guarda (dentro de [ ] ), colocadas de forma adjacente às
transições correspondentes
„
Nas transições de saída as condições não se devem sobrepor, mas
devem cobrir todas as possibilidades
• exemplos (levantamento de dinheiro):
- [valid PIN] e [invalid PIN]
- [balance >= amount] e [balance < amount]
José Correia
UML - Diagramas de Actividades
12
Disjunção (fork) e junção (join)
„
„
Um processo pode implicar a execução independente e concorrente
de um conjunto de actividades
Uma transição pode bifurcar (fork) em duas, ou mais, actividades
paralelas, dando origem a várias sequências (threads)
• não é relevante a ordem da execução das actividades paralelas
„
Uma disjunção (fork) representa a separação de um fluxo de controlo
em dois ou mais fluxos de controlo
• pode ter uma transição de entrada e duas ou mais transições de saída
José Correia
UML - Diagramas de Actividades
13
Disjunção (fork) e junção (join)
„
Uma junção representa a sincronização de dois ou mais fluxos de
controlo
• pode ter duas ou mais transições de entrada e uma de saída
• os fluxos concorrentes sincronizam-se assim: espera-se que todos os
fluxos de entrada cheguem ao ponto de junção prosseguindo com apenas
um fluxo depois da junção
„
As actividades paralelas são representadas entre barras de
sincronização
• exemplos (levantamento de dinheiro):
- ‘Take money from slot’ e ‘Debit account’
José Correia
UML - Diagramas de Actividades
14
Actividades e Objectos
„
Os diagramas de actividades podem explicitar relações de
dependência entre actividades e objectos
• permitem ilustrar o fluxo de um objecto ao longo de um conjunto de
actividades
cria, modifica
ou destroi
consulta
obj1:C1
acção 1
„
acção 2
Um objecto pode ser entrada (para consulta), ou saída (para criação,
modificação ou destruição) de uma acção
• indica-se por uma seta a traço interrompido (seta de dependência) entre
a acção e o objecto, no sentido do fluxo
José Correia
UML - Diagramas de Actividades
15
Fluxos de objectos
„
Quando uma acção tem como saída um objecto que é entrada para a
acção seguinte, é desnecessário indicar o fluxo de controlo (a
transição), basta o fluxo de/para objectos (tipo DFD)
acção 1
„
obj1:C1
acção 2
Para além de se ilustrar o fluxo de um objecto num diagrama de
actividades, podem ainda ilustrar-se os seus papéis, atributos e
estado
José Correia
UML - Diagramas de Actividades
16
Exemplo: Processo de Encomenda
Cliente
Dep. Vendas
Faz encomenda
Regista
encomenda
Armazém
e: Encomenda
[pendente]
Despacha
encomenda
Paga factura
Emite
factura
e: Encomenda
[despachada]
f: Factura
[pendente]
Estado de objecto
f: Factura
[paga]
José Correia
UML - Diagramas de Actividades
17
Pistas e fluxo de objectos
„
Pistas (swimlanes):
• utilizado para particionar os estados de actividade em grupos quando se
modela workflows, business process, processos de software
• cada swimlane pode ser implementada por uma ou mais classes
• transições podem partir de um swimlane para outro mas uma actividade
pertence a um só swimlane
„
Objectos podem estar envolvidos no fluxo de controlo associado com
uma diagrama de actividade
• os fluxos de objecto são dependências que criam, destruem ou alteram
um objecto
• pode-se mostrar o estado ou os valores dos atributos do objecto
José Correia
UML - Diagramas de Actividades
18
requisitante : Leitor
Solicita
publicação
a biblioteca : Biblioteca
Verifica
disponibilidade
[ indisponível ]
[ espera ]
[ desiste ]
Exemplo:
caso de utilização
“Requisitar publicação”
[ disponível ]
Coloca em lista
de espera
: requisição
[espera disponibilidade]
Aguarda
disponibilidade
Publicação disponível
Desloca-se à
Biblioteca
Recebe a
publicação
Avisa o
requisitante
: requisição
[espera levantamento]
Empresta a
publicação
: requisição
[espera devolução]
Consulta a
publicação
Devolve a
publicação
José Correia
Recolhe a
publicação
: requisição
[finalizada]
UML - Diagramas de Actividades
19
UML - Diagramas de Actividades
20
Exemplo
José Correia
Em que situações são usados diagramas de
actividades?
„
Embora possam ter outro tipo de utilização, os diagramas de
actividades são usados, principalmente, nas seguintes situações:
• especificar operações
- os diagramas de actividades são usados como fluxogramas para especificar
detalhadamente um algoritmo
- p. ex., são usados os conceitos de tomada de decisão, de bifurcação e de junção
• especificar processos de negócio (workflows)
- o foco dos diagramas de actividades reside na identificação dos actores
intervenientes e a correspondente colaboração com o sistema
- p. ex., são usados os conceitos das pistas e da modelação do fluxo de objectos
• especificar o comportamento de casos de uso
- modelizar as actividades que ocorrem num caso de uso
José Correia
UML - Diagramas de Actividades
21
Quando devemos usar um diagrama de
actividades?
„
Os diagramas de actividades devem ser usados quando o
comportamento que está a ser modelizado…
• depende pouco de eventos externos
• na sua maior parte é composto por passos/etapas que decorrem até ao
fim, em vez de serem interrompidas por eventos
• requer fluxo de dados entre etapas
„
Usar diagramas de actividades para aplicações que são,
essencialmente, de controlo e data-driven, como business modeling…
… em vez de aplicações event-driven, como os embedded systems
José Correia
UML - Diagramas de Actividades
22
Resumo
„
Um diagrama de actividades é, essencialmente, um fluxograma com
concorrência
• é diferente de um fluxograma no aspecto em que mostra processos que
decorrem em paralelo, e não apenas processos sequenciais
• para as actividades que decorrem em paralelo, não é importante a ordem
pela qual são desempenhadas
- elas poderão ser executadas ao mesmo tempo ou uma a seguir à outra
„
Os diagramas de actividades descrevem um processo consistindo em:
• acções e actividades
• fluxo de controlo
• objectos de entrada e saída
• decisões
• concorrência
José Correia
UML - Diagramas de Actividades
23
Resumo (cont.)
„
Um diagrama de actividades...
... modela o fluxo de controlo de uma operação, classe, sistema, subsistema
... mostra como as actividades de um processo dependem umas das outras
... decompõe uma actividade em sub-actividades
- actividades de mais baixo nível
- podendo chegar a acções atómicas, com fluxo de controlo sequencial ou
concorrente entre sub-actividades
... pode ser utilizado para descrever cenários de use cases
José Correia
UML - Diagramas de Actividades
24
Referências
Estes apontamentos foram baseados em:
„
„
„
„
“UML – Unified Modeling Language”, Curso em Tecnologia de
Objectos, FEUP, Novembro 2000
Ademar Aguiar, Gabriel David, João Pascoal Faria
“Practical UML: A Hands-On Introduction for Developers”,
TogetherSoft Corporation
“UML, Metodologias e Ferramentas CASE”, Alberto Rodrigues da
Silva, Carlos Videira, Maio 2001
Behavioral Modeling, Gunnar Övergaard, Bran Selic, Conrad Bock,
UML Revision Task Force, November 2000
José Correia
UML - Diagramas de Actividades
25
Download

Diagramas de Actividades