1. UML - Diagramas de Actividades
(activity diagrams)
Edgar Gemo errgemo@ustm.ac.mz
Zeferino Saugene zsaugene@ustm.ac.mz
2. Objectivo
Um diagrama de actividades 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
• Opcionalmente, podem-se definir as unidades organizacionais, entidades ou
objectos responsáveis pela execução de acções ou actividades
• Opcionalmente, podem-se indicar fluxos de objectos - objectos que são
entrada ou saída de sub-actividades
• Pode-se usar toda a notação dos diagramas de estados
Um diagrama de actividades é essencialmente um fluxograma
com concorrência
A actividade que está a ser decomposta pode ser:
• Um caso de utilização
• Uma operação de uma classe
• Um grupo de casos de utilização relacionados entre si
• Uma parte de uma actividade de mais alto nível
3. Tipos de estados
Estado de espera: a saída é causada por eventos
• Pode ter actividade e acções associadas
Estado • Transições de saída têm eventos e possivelmente condições e acções
Estado de acção: estado de execução de uma acção, cuja conclusão
determina a saída do estado
• Acção: operação atómica, instantânea, que não pode ser interrompida
acção • Transições de saída não têm eventos, mas podem ter condições e acções
Estado de (sub)actividade: estado de execução de uma
(sub)actividade, cuja conclusão determina a saída do estado
• (Sub)Actividade: operação não atómica, possivelmente detalhada noutro diagrama (com
ícone), potencialmente demorada, que pode ser interrompida
activ. • Transições de saída não têm eventos, mas podem ter condições e acções
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
4. Exemplo: Preparar bebida
[não há café] [não há cola]
Procurar Bebida
barra de sincronização [há café]
(separação) [há cola] decisão e
ramificação
Pôr Café no Filtro Pôr Água no Reservatório Pôr Chávenas
Pôr Filtro na Maquina Buscar latas de cola
barra de sincronização envio de sinal
Ligar Máquina
(fusão)
/send ligar
cafeteira
estado de espera Esperar que aqueça
(cantos arredondados) luz desliga-se
transição disparada por Deitar café
recepção de sinal subactividade Beber
(lados arredondados)
5. Notação alternativa para envio e
recepção de sinais
Ligar Máquina
Transição com acção de ligar cafeteira
envio de sinal cafeteira
Esperar que aqueça opcional
Transição causada por luz desliga-se
evento de recepção de
sinal
Deitar café
6. Pistas de responsabilidade
(swimlanes)
Um diagrama de actividades pode ser dividido em pistas de
responsabilidade (swimlanes), separadas por linhas
contínuas
Cada pista é encabeçada pelo nome da unidade
organizacional, entidade ou objecto responsável pelas
acções e actividades aí localizadas
Cada acção ou actividade é localizada numa única pista,
mas uma transição pode atravessar várias pistas
Útil para modelar fluxos de trabalho relativos a processos
de negócio
7. Fluxos de objectos
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
cria, modifica consulta
obj1:C1
ou destrói
acção 1 acção 2
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
8. Exemplo: Processo de encomenda
Cliente Vendas Armazém
e: Encomenda
Faz encomenda Regista encomenda [pendente]
Despacha encomenda
e: Encomenda
Emite factura [despachada]
Paga factura f: Factura
Estado de objecto
[pendente]
f: Factura
[paga]
9. Modelação de processos de negócio
Processo de negócio é actividade estereotipada
Processo pode ter sub-diagrama encaixado
Requisitar Publicação
Levantar Devolver
Dependências com estereótipos "supply", "controls", ..., entre
processos
Processos transformam objectos de entrada, produzem
objectos de saída, usam recursos e pretendem atingir "goals"
Ver "Business Modeling with UML: Business Patterns at Work",
de Hans-Erik Eriksson e Magnus Penker, Wiley & Sons, 2000
11. Diagrama de actividades relativo ao caso de
utilização de negócio "Requisitar publicação"
requisitante : Leitor a biblioteca : Biblioteca
Vem requisitar Verifica
disponibilidade
[ indisponível ] [ disponível ]
[ espera ] Coloca em lis ta de : requisição
[ desiste ] espera [espera disponibilidade]
Aguarda
disponibilidade
disponível
Avisa o : requisição
Vem levantar requisitante [espera levantamento]
Empresta a
publicação
Recebe a
publicação : requisição
[espera devolução]
Consulta a
publicação
Devolve a
publicação
Recolhe a : requisição
public ação [finalizada]
12. Exercício 1
Refinar caso de estudo com:
• refinar diagrama anterior com controlo de prazos de levantamento e
devolução, e desistência do leitor
- Sugestão: usar fluxo de controlo concorrente (com envio/recepção de
sinais) em vez de sequencial
• elaborar diagramas de actividades relativas a outros casos de
utilização do negócio
14. Exercício 2: Visionamento de
cassete de video
Suponha que, para visionar num televisor o conteúdo completo
de uma cassete de video de 8mm gravada com uma máquina
de filmar, uma pessoa deve proceder da seguinte forma:
• Para preparar a reprodução, realizar as seguintes operações por qualquer
ordem:
- conectar a máquina de filmar ao televisor
- ligar o televisor no canal “AV”
- ligar a máquina de filmar na posição “player”, inserir a cassete, carregar no botão
“rewind” para rebobinar a cassete e esperar pela conclusão da rebobinagem
• Carregar então no botão “play” da máquina de filmar para iniciar a
reprodução (visionar o conteúdo da cassete no televisor)
• Chegando ao fim da gravação ou ao fim da fita, realizar as seguintes
operações, por qualquer ordem:
- rebobinar a cassete (se tiver chegado ao fim da fita, a máquina rebobina-a
automaticamente, e basta esperar pela conclusão da rebobinagem; senão, é
carregar em “stop” para parar a reprodução, e carregar em “rewind”), ejectar a
cassete e desligar a máquina
- desligar o televisor
- retirar os cabos que conectam a máquina ao televisor
Modelize este procedimento num diagrama de actividade
15. Exercício 3: Procedimento em
empresa de software
(ES, 9/1/98) Uma empresa de software segue o seguinte procedimento
na fase inicial (análise e especificação de requisitos) dos projectos de
desenvolvimento de novos produtos:
• A direcção da empresa começa por contratar com o cliente um caderno de encargos para
a 1ª fase do projecto (análise e especificação de requisitos), e nomeia de seguida um
analista responsável pela condução dessa fase.
• O analista começa por analisar o caderno de encargos. Seguidamente, entrevista o
cliente e, em paralelo, recolhe documentação relevante (nomeadamente legislação).
Com base nesses elementos, elabora o relatório de especificação de requisitos, que
submete à apreciação da direcção da empresa. A direcção da empresa pode aprovar o
relatório ou propor alterações. No 2º caso, o analista elabora uma nova versão com as
alterações propostas, que submete de novo à apreciação da direcção. Uma vez obtida a
aprovação da direcção, o relatório é submetido à apreciação do cliente, que o pode
aprovar ou recusar. No 2º caso, o analista elabora uma nova versão, que volta a
apresentar à apreciação da direcção e assim sucessivamente.
• Uma vez obtida a aprovação do cliente, considera-se terminada a fase de análise e
especificação de requisitos.
Modelize este procedimento através de um diagrama de actividades