APS Aula09 10 AnaliseRequisitos DiagramaAtividades
APS Aula09 10 AnaliseRequisitos DiagramaAtividades
APS Aula09 10 AnaliseRequisitos DiagramaAtividades
Engenharia de Requisitos
Diagrama de Atividades
Activities may describe procedural computation, forming hierarchies of Activities invoking other Activities, or, in an object-
oriented model, they may be invoked indirectly as methods bound to Operations that are directly invoked.
Activities may be applied to organizational modeling for business process engineering and workflow. In this context, events
often originate from inside the system, such as the finishing of a task, but also from outside the system, such as a customer
call. Activities can also be used for information system modeling to specify system level processes.
Escrever
Criar conta
carta
Calcular Gerar
total documento
Conceitos Fundamentais
Estados de Atividade
● Podem ser decompostos; onde se usa uma atividade
pode usar-se outro diagrama de atividades
● Não sendo atômicos, podem ser interrompidas (tem
tempo (significativo) de execução)
Conceitos Fundamentais
Estados de Atividade
● A notação é semelhante a do estado de ação
usando-se uma notação especial para indicar a
existência do respectivo diagrama de atividades
Gerar
documento
Conceitos Fundamentais
Estados de Atividade
Escrever Endereçar carta: Enviar
carta Enderaçar carta carta
Endereçar carta
Escrever Escrever Escrever
nome endereço CEP
Conceitos Fundamentais
Transições e Decisões
● Transições: quando a ação ou atividade de um estado se
completa, o fluxo de controle passa imediatamente para
o próximo estado de ação ou atividade
● Decisões (branching): expressões booleanas que
especificam passos alternativos
○ Uma decisão consiste em uma transição de entrada e duas ou
mais saídas
Conceitos Fundamentais
Transições e Decisões
● Condições: Nas transições de saída, as condições
não se devem sobrepor, mas devem cobrir todas as
possibilidades
Conceitos Fundamentais
Transições e Decisões
Receber e-
mail
else [lixo]
Apagar e-
Ler e-mail
mail
Conceitos Fundamentais
Transições e Decisões
Decisão
Transições (branching)
Receber e-
mail
Palavra Condição
else [lixo]
reservada de guarda
Apagar e-
Ler e-mail
mail
Fusão
(merge)
Exercício
Diagrama de Atividades
Exercícios (sem entrega)
● Faça um diagrama de atividades para compra online
na internet
Diagrama de Atividades
Exercícios (sem entrega)
Compra online
carrinho pode ser checado
a qualquer momento
Procurar [achou] Checar
item carrinho
[não achou] Adicionar
Ver item
ao carrinho
Ver itens
da loja
Ver Atualizar
carrinho carrinho
Finalizar
compra
Conceitos Fundamentais
Nós de Objeto
Todas as encomendas
<<selection>>
encomenda: Encomenda encomenda.mes = “Março”
Apenas encomendas
de março
Conceitos Fundamentais
Objetos como Parâmetros
Output
Input
Pre/pos conditions
Conceitos Fundamentais
Disjunção (fork) e Junção (join)
● Uma disjunção/difusão representa a separação de um fluxo de
controle em dois ou mais fluxos
○ Pode ter uma transição de entrada e duas ou mais transições de saída
● Uma junção representa a sincronização de dois ou mais fluxos
de controle
○ Pode ter 2 ou + 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
Conceitos Fundamentais
Exemplo fork e join
Conceitos Fundamentais
Exemplo fork e join
Conceitos Fundamentais
Concorrência Independente
Final do
fluxo
[falha no pagamento]
Final da
atividade
Conceitos Fundamentais
Final de Fluxo (Exemplo)
● Neste exemplo, uma empresa pode construir e instalar muitos componentes. A
atividade Construir componente é executada iterativamente para cada componente.
Quando o último componente é construído, finaliza-se a iteração de construção,
indicado com um nó Final Flow. No entanto, mesmo que toda a construção de
componentes tenha chegado ao fim, outros nós ainda estão em execução (como
Instalar componente).
Conceitos Fundamentais
Final de Fluxo e Atividade (Exemplo 2)
● O exemplo 2 ilustra os dois tipos de Nó de fim: Final Flow e Final Activity.
Este exemplo continua o anterior. No modelo estendido, quando o último
componente for instalado, a aplicação é entregue. Quando a entrega da
aplicação é concluída, o controle é passado para um Final Activity -
indicando que todos o processos da Atividade acabaram.
Conceitos Fundamentais
Resumo
● Inicio
● Atividades
● Fork
● Join
● Decisão
● Fusão
● Fim
Conceitos Fundamentais
Resumo
● Nó inicial
○ Começo de fluxo
● Nó final
○ Fim de atividade
● Nó final de fluxo
○ Fim de fluxo sem afetar os fluxos restantes da atividade
● Nó de decisão
○ O fluxo de saída cuja condição verdadeira é atravessada
○ Pode ter, opcionalmente um <<decisionInput>> que permita escolher o
fluxo de saída adequado
● Nó de fusão
○ Copia os tokens de input para o fluxo de output
● Nó de disjunção (fork)
○ Separa o fluxo de entrada em vários fluxos de saída concorrentes
● Nó de junção (join)
○ Sincroniza vários fluxos concorrentes
○ Pode opcionalmente ter uma especificação de junção para modificar a sua
semântica
4. Organização do Diagrama
de Atividades
Organização do Diagrama de Atividades
Pistas (swimlanes)
● Utilizadas para particionar os estados de atividade em
grupos, quando se modela workflows, business process e
processos de software
● Cada swimlane pode ser implementada por uma ou mais
classes
● Transições podem partir de uma swimlane para outra,
mas uma atividade pertence apenas a uma swimlane
Exemplo: Pistas (swimlanes)
Exemplo: Pistas (swimlanes)
Exemplo: Pistas (swimlanes)
Notações de Partições de Atividades
5. Troca de Informação entre
Atividades
Troca de Informação entre Atividades
Fluxo de Objeto (Object Flow)
● Objetos podem estar envolvidos no fluxo de controle associado com um
diagrama de atividade
○ Os fluxos de objeto são dependências que criam, removem ou alteram um objeto
○ Pode-se mostrar o estado ou valores dos atributos do objeto
6. Sinais
● Envio de Sinais
● Aceitação de Eventos
● Aceitação de Eventos
Temporais
Sinais
Envio de Sinais
● send signal: ação de invocação que cria um sinal e o envia
ao objeto destino, onde pode originar a execução de uma
atividade ou a transição de um estado
<<inherits>> <<inherits>>
Caso de uso: Encontrar produto
Pré-condições: Nenhuma
Pós-condições: Nenhuma
Pré-condições: Nenhuma
1. (o1.) O caso de uso começa quando o comprador seleciona a opção encontrar livro
2. (o2.) O sistema pede ao comprador para indicar um critério de pesquisa do livro, dentre autor, título, ISBN ou
tópico
3. O comprador introduz os critérios de pesquisa
4. (o4.) O sistema procura livros que satisfazem os critérios de pesquisa do comprador.
5. (o5.) Se o sistema encontra livros que satisfazem os critérios:
1. O sistema mostra o best seller
Fluxo principal:
2. (o5.1.) O sistema apresenta uma lista com até 5 livros que satisfazem os critérios
3. Para cada livro, o sistema mostra o título, autor, preço e ISBN
4. Enquanto houver mais livros para mostrar, o sistema oferece ao comprador a opção de pedir a próxima
página com mais livros
6. Caso contrário:
1. O sistema mostra o best seller
2. (6.1) O sistema indica ao comprador que nenhum produto foi encontrado
Pós-condições: Nenhuma