Baixe o app para aproveitar ainda mais
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
Compartilhar