CBSI Curso de Bacharelado em Sistemas de Informação UML Diagrama de Atividades Prof. Dr. Sandro Ronaldo Bezerra Oliveira srbo@ufpa.br www.ufpa.br/srbo Análise e Projeto de Sistemas Faculdade de Computação Instituto de Ciências e Exatas e Naturais Universidade Federal de Pará
Objetivos Definição Notação Dicas
Modelagem Comportamental Mostra as interações existentes entre os objetos do sistema Captura o sequenciamento e temporização relativa das invocações das operações
Máquinas de Estado É um comportamento que especifica as seqüências de estados de um objeto em resposta aos eventos. Estado Transição Evento Ação e Atividade
Estado É uma condição ou situação durante a vida de um objeto a qual ele satisfaz alguma condição, executa alguma atividade, ou espera por algum evento. Exemplos: Ocioso Recebendo Pagamento Entregando Item
Digramas de Atividades Um Digramas de Atividades decompõe uma Atividade em sub-atividades (Atividades de mais baixo nível), podendo chegar a ações atômicas, com fluxo de controle sequencial ou concorrente entre sub-atividades. Os Diagramas de Atividades mostram o fluxo entre atividades (ações não-atômicas) São um caso especial dos Digramas de Estados, com a maioria das transições resultantes do término das atividades.
Digramas de Atividades A atividade que está a ser decomposta pode ser: um csao de uso uma operação de uma classe um grupo de casos de uso relacionados entre si uma parte de uma atividade de mais alto nível. São semelhantes aos antigos fluxogramas. São muito usados para modelar atividades concorrentes.
Transições e condições Transições sem condições são disparadas assim que as atividades terminam Colocar Café na Xícara Beber Transições com condições só disparam quando a atividade termina e as condições são satisfeitas. Preparar bebida [Sem café] [Sem Coca] [achou café] [Achou Coca]
Tipos de estados Estado de espera: a saída é causada por eventos Pode ter atividade e ações associadas Transições de saída têm eventos e possivelmente condições e ações Estado de ação: estado de execução de uma ação, cuja conclusão determina a saída do estado Ação: operação atômica, instantânea, que não pode ser interrompida Transições de saída não têm eventos, mas podem ter condições e ações
Concorrência, Forks e Joins Barras de Sincronização são usadas para especificar forks e joins. Servem para sincronizar a execução de atividades concorrentes em uma única, ou vice-versa Um fork representa um único fluxo de controle em vários fluxos de controle concorrentes. Um join representa a sincronização de dois ou mais fluxos de controle concorrentes.
Concorrência, Forks e Joins Atividades depois de um fork podem ser realizadas em qualquer ordem, ou ao mesmo tempo. Para que as atividades depois de join possam ser realizadas, todas as atividades antes do join devem ser concluídas.
Procurar Bebida [não há café] [não há cola] barra de sincronização (separação - fork) [há café] [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 (fusão - join) estado de espera (cantos arredondados) Ligar Máquina /ligar cafeteira Esperar que aqueça transição disparada por recepção de sinal luz desliga-se envio de sinal subactividade (lados arredondados) Deitar café Beber
Swimlanes (Pistas de Reponsabilidades) Um diagrama de atividades pode ser dividido em pistas de responsabilidade (swimlanes), separadas por linhas contínuas. Swimlanes (raias) são usadas para definir quais são as classes (ou conjuntos de classes) responsáveis pela realização de cada atividade. Swimlanes são especialmente úteis para a modelagem de processos empresariais. Em muitos casos, os swimlanes implicam concorrência, ou pelo menos independência, das atividades.
Cliente Vendas Estoque Solicitar Produto Processar Pedido Coletar Materiais Enviar Pedido Receber Pedido Cobrar do Cliente Pagar Conta Encerrar Pedido
Modelando WorkFlow Estabeleça o foco do workflow. Para sistema não-triviais, é impossível mostrar todos os workflows interessantes em um diagrama. Selecione os objetos de negócio que têm as resonsabilidades de mais alto nível (swimlanes). Identifique as pré-condições dos estados inicial e final do workflow. A partir do estado inicial, especifique as atividades e ações que ocorrem com o passar do tempo (estados).
Modelando Workflow No caso de ações complicadas, ou ações que acontecem múltiplas vezes, colapse-as em estados de atividades, que serão expandidos separadamente. Transições entre estados de atividades Fluxo seqüencial Branching Fork e Join Use bifurcações para identificar caminhos condicionais e iteração Use fork e join para modelar fluxos paralelos de controle
requisitante : Leitor a biblioteca : Biblioteca Vem requisitar Verifica disponibilidade [ indisponível ] [ disponível ] [ desiste ] [ espera ] Coloca em lis ta de espera Aguarda disponibilidade Vem levantar disponível Avisa o requisitante Recebe a publicação Empresta a publicação Consulta a publicação Devolve a publicação Recolhe a public ação