Diagrama de Atividades É essencialmente um gráfico de fluxo onde apresenta o fluxo de controle de uma atividade para outra. Inicialmente era visto como um caso especial do Diagrama de Gráficos de Estados, mas a partir da UML 2.0 tornou-se um diagrama independente. Usado para visualizar, especificar, construir e documentar a dinâmica de um conjunto de objetos ou para fazer a modelagem do fluxo de controle de uma operação. Possui semelhanças com os antigos fluxogramas usados para desenvolver a lógica de programação. É comum encontrar esses diagramas usando pseudo-código ou alguma linguagem de programação. 1
Conceitos Básicos Uma atividade é uma execução em andamento. resulta em alguma ação alteração de algum estado do sistema ou o retorno de um valor. Principais Componentes Estados inicial e final Estado de ação e de atividade Fluxos de controle sequencial e paralelo Ramificação Pode conter notas e restrições (como outros diagramas) 2
Exemplo Início Requisitos Ação Análise Fluxo Desenho Implementação Ponto de Decisão Projeto Terminado Avaliação da Testes Iteração Término Ciclo de vida Praxis - Entrega Evolutiva 3
Estados Inicial e Final Inicial determina o início de um Diagrama de Atividades deve ter apenas um estado inicial representado por um círculo preenchido Final determina o término de um Diagrama de Atividades representado por um círculo preenchido envolto por um círculo não preenchido pode ter vários estados finais, ou não ter nenhum (cíclico) 4
Estado de Ação É a realização de uma computação atômica executável cálculo de uma expressão chamada de uma operação envio de sinal a um objeto criação e destruição de objetos Representada por um retângulo com cantos arredondados Não pode ser decomposta. É atômica eventos podem ocorrer, mas o comportamento interno não é visível. Não se executa parte de uma ação ou a executa completamente ou não a executa selecionar num 5
Estado de atividade É uma unidade organizacional dentro de uma atividade. São grupos de ações aninhados ou outros nós de atividades aninhados. uma ação é um estado de atividade que não pode ser decomposto. Ao observar os detalhes de um estado de atividade, encontra-se outro diagrama de atividades. Não existe uma distinção notacional entre ação e estado de atividade. a representação é a mesma processar conta(n) 6
Fluxo de Controle Quando a ação (ou nó de atividade) está completa, o fluxo de controle passa para a próxima ação (ou nó de atividade). Representado por uma seta simples para indicar o caminho de uma ação. não possui identificação (rótulo) 7
Ponto de Ramificação (Ponto de Decisão) Especifica caminhos alternativos, tomados como base em alguma expressão booleana. Representado por um losango. Possui uma única transição de entrada e duas (ou mais) de saída. para cada condição de saída existe uma condição de guarda, onde apenas uma condição é a verdadeira. pode-se usar a palavra reservada else para marcar uma transição de saída especifica que nenhuma outra condição foi avaliada como verdadeira. pode ser usado como ponto de união (dois caminhos fundem-se novamente) 8
Ponto de Ramificação (Ponto de Decisão) Ramificação 9
Ponto de Ramificação (Ponto de Decisão) Ramificação Mesclar 10
Barras de Sincronização Utilizada para especificar a bifurcação e a união de fluxos de controle paralelo Tipos quando dois ou mais fluxos de controle são executados simultaneamente. Barra de bifurcação (fork) recebe uma transição de entrada e cria dois ou mais fluxos de controle paralelos. Barra de junção/união (join) recebe duas ou mais transições de entrada e une os fluxos de controle em um único fluxo. 11
Barras de Sincronização Bifurcação Junção 12
Raias de natação Mostram que setores, departamentos ou mesmo atores interagem com um processo ou executam a mesma tarefa. Muito utilizada em processos de negócio de uma organização. As raias de natação dividem o Diagrama de Atividades em compartimentos (partition). cada compartimento contém atividades que serão realizadas por um agente específico. cada raia de natação contém um nome único em seu diagrama. cada atividade pertence exatamente a uma única raia, mas as transições podem cruzar as raias. 13
Raias de natação 14
Diagrama de Atividade no Processo de Desenvolvimento Iterativo Na prática, durante o desenvolvimento de um sistema, o diagrama de atividades pode ser utilizado para a: modelagem dos processos do negócio modelagem da lógica de um caso de uso modelagem da lógica de uma operação complexa 15
Modelagem dos Processos do negócio O processo de negócio é um processo de entendimento. construir modelos para entender melhor um determinado problema. Entender o comportamento do sistema no decorrer de diversos casos de uso. como determinados casos de uso se relacionam no decorrer do tempo. 16
Modelagem da Lógica de um caso de uso Na computação de um caso de uso pode haver necessidade de se indicar decisões, iterações e passos executados em paralelo, algo que o diagrama de Casos de Uso não consegue mostrar. É comum encontrar uma descrição assim: "O passo P ocorre até que a condição C seja verdadeira" ou "Se C ocorrer, então vá para o passo P". Nessas situações é interessante complementar a descrição do Caso de Uso com um Diagrama de Atividades. Os fluxos principal, alternativo e de exceção podem ser representados em um único diagrama. Deve-se apenas complementar a descrição de um caso de uso e não substituí-la. 17
Modelagem da Lógica de uma operação complexa Quando uma operação de uma classe de controle implementa uma regra de negócio, pode-se haver necessidade de descrever a lógica dessa operação ou da própria regra de negócio usando um Diagrama de Atividades. 18
Exercícios 1. Construa um diagrama de atividades para o seguinte processo do negócio: A autorização do pagamento tem início após um pedido ter sido feito pelo cliente. Ao mesmo tempo, a disponibilidade para cada um dos itens do pedido é verificada pelo depósito. Se a quantidade requisitada de um determinado item existe em estoque, tal quantidade é associada ao pedido. Caso contrário, somente a quantidade disponível no momento é associada ao pedido. O pedido é enviado pelo depósito ao cliente quando todos os itens estiverem associados e o pagamento estiver autorizado. O pedido será cancelado se a ordem de pagamento não tiver sido autorizada. 19
Exercícios 2. Desenvolva o Diagrama de Atividades para um sistema de vídeo locadora equivalente ao módulo de locação de DVDs de filmes. Utilize os fatos descritos no exercício de Casos de Uso, complementado com os apresentados a seguir: o sócio deve se dirigir ao atendente e apresentar seu código de registro ou seu nome. o atendente pesquisará o sócio para verificar se este realmente se encontra registrado, se a pessoa não estiver registrada, a locação deve ser recusada. caso o sócio esteja cadastrado, o sistema verifica se este possui alguma pendência (locação não devolvida, falta de pagamento etc). Caso exista, a locação deve ser recusada. se o sócio não possui pendências, então o atendente irá registrar a locação, bem como cada uma das cópias locadas. 20
Bibliografia Booch, Rumbaugh e Jacobson. UML Guia do Usuário. Ed. Campus Bezerra. Princípios de Análise e Projeto de Sistemas com UML. Ed. Campus Guedes. UML Uma abordagem Prática. Novatec editora 21