Buscar

8 UML DiagramasActividades

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Unified Modeling Language
Diagramas de Actividades
José Correia, Junho 2006
(http://paginas.ispgaya.pt/~jcorreia/)
José Correia UML - Diagramas de Actividades 2
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 3
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
Processar débito Emitir factura
José Correia UML - Diagramas de Actividades 4
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 estados-
acção e estados-actividade
Calcular total index := index * 5 + 1
José Correia UML - Diagramas de Actividades 5
Estado
Outros tipos de estados
? Estado de espera (estado normal)
• 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 6
Exemplo: Preparar bebida
Procurar Bebida [não há café] [não há cola]
[há cola]
[há café]
Pôr Água no ReservatórioPôr Café no Filtro Pôr Chávenas
Pôr Filtro na Maquina
Ligar Máquina
Esperar que aqueça
/ligar cafeteira
Deitar café
Beber
Buscar latas de cola
luz desliga-se
estado de espera
(cantos arredondados)
decisão e 
ramificação
subactividade
(lados arredondados)
envio de sinal 
transição disparada 
por recepção de sinal
barra de sincronização
(separação)
barra de sincronização
(fusão)
José Correia UML - Diagramas de Actividades 7
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 sub-
actividade, 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 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 UML - Diagramas de Actividades 9
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 10
Pistas: exemplo
? Cada acção ou actividade é localizada numa única pista
• mas uma transição pode atravessar várias pistas
Register
Bug
Evaluate
Impact
Fix
Bug
Revise
Plan
Release
Fix
Test
Fix
[ priority = 1]
Management
Support
Engineering
José Correia UML - Diagramas de Actividades 11
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 12
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 13
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 14
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 15
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
? 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
acção 1
obj1:C1
acção 2
consultacria, modifica 
ou destroi
José Correia UML - Diagramas de Actividades 16
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)
? 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
acção 1 obj1:C1 acção 2
José Correia UML - Diagramas de Actividades 17
Exemplo: Processo de Encomenda
Faz encomenda
Cliente
Regista 
encomenda
Dep. Vendas Armazém
Emite 
factura
Despacha 
encomenda
Paga factura
e: Encomenda
[pendente]
e: Encomenda
[despachada]f: Factura
[pendente]
f: Factura
[paga]
Estado de objecto
José Correia UML - Diagramas de Actividades 18
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 19
: requisição
[finalizada]
: requisição
[espera disponibilidade]
: requisição
[espera levantamento]
: requisição
[espera devolução]
Exemplo:
caso de utilização 
“Requisitar publicação”
Solicita
publicação
Devolve a 
publicação
Recebe a 
publicação
Consulta a 
publicação
Desloca-se à
Biblioteca
Verifica 
disponibilidade
Recolhe a 
publicação
Empresta a 
publicação
Coloca em lista
de espera
Aguarda 
disponibilidade
Avisa o 
requisitante
Publicação disponível
[ desiste ]
[ espera ]
[ disponível ][ indisponível ]
a biblioteca : Bibliotecarequisitante : Leitor
José Correia UML - Diagramas de Actividades 20
Exemplo
José Correia UML - Diagramas de Actividades 21
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 22
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 23
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 24
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 25
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

Continue navegando