BPMN. Business Process Modeling Notation - PDF
Download "BPMN. Business Process Modeling Notation"
Fátima Mota Mendonça
2 Montar viagem UML (diagrama de atividades)
3 Montar viagem BPMN
4 Tipos de diagrama 1) Private Business Process ou Diagramas de processos privados: usado quando não importa a interação entre fluxos diferentes, ou seja, quando se importa apenas o fluxo em si.
5 Tipos de diagrama 2) Abstract process (Processos abstratos): não importa o fluxo em si, mas sim como ele interage com outros fluxos
6 Tipos de diagrama 3) Colaboration process (Processos colaborativos): maior grau de detalhamento, apresentando como 2 ou mais fluxos se comunicam
7 Pools e lanes Em um mundo real e colaborativo, as atividades são atribuídas a pessoas ou perfis diferentes, ao longo de sua execução. Documentos necessitam ser aprovados por gerentes ou coordenadores, e vendedores necessitam inserir pedidos no sistema. Cada um destes perfis são identificados dentro do BPMN em elementos chamados pools ou lanes. A pool seria a piscina onde os competidores nadam. As lanes são as raias, onde cada nadador irá se apresentar. O resultado do processamento, neste caso, será o conjunto de processamentos das várias lanes (o nadador que chegar em primeiro lugar do outro lado). Quando o fluxo é modelado já se considerando os pools e lanes, fica mais fácil no futuro organizarmos os vários perfis que irão executar cada uma das atividades. Exemplo: o vendedor pode inserir um pedido, mas apenas um coordenador pode aprovar uma compra através de cartão de crédito Diferença entre pool e lane: uma pool define um processo, enquanto que a lane define os participantes que irão concretizar este processo.
8 Instâncias de processos Uma instância é uma execução isolada de um processo. Exemplos: Um programa instalado em um computador é como se fosse um processo. Já as várias instâncias em execução seriam os programas executando em dado momento em um computador. Cada vendedor dentro de uma loja, atuando em seu processo de vendas é uma instância de processo isolada. Todos seguemos mesmos passos, mas cada um de forma independente. Algo deve acontecer para que o processo inicie uma instância, e o mesmo para que ele seja finalizado. Processos são iniciados e terminados através de eventos. Uma vez iniciado, deve acontecer um evento que o finalize.
9 Eventos De acordo com a especificação BPMN, os eventos aparecem durante a execução de um fluxo ou são gerados durante sua execução. Somente os eventos têm a capacidade de iniciar ou terminar um processo, mas os eventos não executam tarefas no processo. Eventos iniciais forçam a criação de uma nova instância de execução para o fluxo Eventos intermediários acontecem ou são gerados ao longo da realização de um fluxo já em execução Quando são criados dentro do próprio fluxo (geradores) provavelmente irão gerar alguma notificação a alguma outra instância de fluxo em execução. Quando são gerados externamente ao fluxo de processo em execução (receptores), irão influenciar de alguma forma a execução de outro fluxo. Eventos finais terminam a instância do processo Após um evento final, nenhuma outra atividade pode ser executada, embora o próprio evento possa gerar informações que afetem outros fluxos em execução
10 Fatos geradores de eventos Eventos de Timer Os timers permitem controlar o tempo ou definir datas para execução de atividades. Exemplos: Um início de timer pode demarcar uma data específica, como todo último dia do mês (para processamento de uma folha de pagamento); Pode indicar uma hora específica, como às dez horas (para iniciar um backup, por exemplo) Como também pode ser um evento relativo à data atual (cinco horas contando a partir deste momento).
11 Eventos de timer: exemplo Atraso inserido entre 2 atividades Isso indica que após a atividade Aguarda cadastro o fluxo ficará congelado pelo tempo definido pelo relógio antes de continuar a próxima execução, que é Continua processamento.
12 Eventos de timer: exemplo Neste exemplo, uma atividade solicita o recadastramento, mas pode levar um tempo até que seja executada pelo usuário, assim como pode ficar para sempre no aguardo, já que o usuário pode nunca se cadastrar. Nesse caso, o evento de timer significa dizer que, se o usuário não realizar a atividade em até cinco dias, a atividade Remove usuário será executada. Caso ela seja realizada dentro desse prazo, Remove usuário nunca será executada e o processamento continua por Cadastra dados no sistema. Em qualquer dos dois casos, o processamento continua por Próximas atividades.
13 Eventos de timer: exemplo Basicamente, executa-se um evento timer atachado à borda de uma atividade quando se atingiu o período limite ou a data configurada antes do final da execução da atividade. Perceba que pode ser também um sub-processo, com diversas atividades em seu interior. Não faz sentido ter um evento de timer como finalizador.
14 Eventos de mensagem Uma mensagem é um mecanismo de envio de informações entre instâncias de processos. A notação BPMN não define o que se utilizará como tecnologia para envio, como SMTP ou qualquer outro mecanismo, como também não define o formato das informações a serem enviadas. Os eventos de início de mensagem criam uma nova instância de processo, baseado no recebimento de uma mensagem.
15 Eventos de mensagem: exemplo
16 Eventos de mensagem: exemplo O evento de mensagem na borda da atividade Retirada de produto na loja indica um fluxo de exceção de mensagem. Após a operação de débito, existe um OR, o qual indica que se tomará um dos dois caminhos. Caso se tome o caminho de erro no processamento (aquele que gera a mensagem), quando a mensagem chega até Retirada do produto na loja, gera-se um desvio, com base no recebimento dessa mensagem. Nesse caso, a operação é cancelada, visto que o fluxo de exceção foi acionado.
17 Eventos de mensagem: uso Existem dois comportamentos para atividades de mensagem conectadas à borda: Quando o fluxo sai do evento, indica exceção e somente pode ser utilizado posicionada na borda de uma atividade. Quando a mensagem chega até uma atividade, indica que esta atividade estava no aguardo do recebimento para continuar o processamento.
18 Eventos de dados Podem-se utilizar eventos de dados como início e intermediário. Quando usados no início indicam que se criará uma instância do processo, quando um valor atingir determinado patamar.
19 Eventos de dados: exemplo Quando colocado na borda de uma atividade, sempre indica um fluxo de exceção. Ou seja, quando estiver dentro da atividade, se o patamar for atingido, o fluxo seguirá pelo caminho de exceção. Nesse caso, o sub-processo Cadastro de alunos fica em execução coletando novos alunos para um novo curso. Ele somente sai desse loop quando uma de duas coisas acontecer. Ou o tempo para inscrição se encerrou, o que se denota com um timer, ou o número máximo de alunos por sala foi atingido, o que se indica pelo evento de dados. Como não existe continuação do fluxo depois de Cadastramento de alunos, será necessário que uma das duas exceções aconteça, para que o fluxo continue por meio de Finaliza processo de cadastramento.
20 Eventos de dados: exemplo Este tipo de evento pode também ser utilizado como início para um processo ou sub-processo. Por exemplo, quando o limite do estoque está baixo, automaticamente o processo de compras se inicia.
21 Controle de exceção ou compensação Nesse caso, coletam-se os dados do cliente e efetua-se a compra de passagem. Duas atividades precisam ser executadas: efetuar a reserva no vôo e a cobrança do valor. Caso falhe algum desses serviços, acontecerá um desvio para a compensação, que irá garantir que o valor nunca será cobrado ou que o avião não decolará com o assento reservado, porém vazio. Se por outro lado, os dois serviços forem executados com sucesso, o processamento continuará em Avisa cliente da operação.
22 Controle de exceção e compensação E se ocorrer uma falha ao estornar o valor ao cliente? Podemos capturar esse erro e direcioná-lo a uma atividade que irá efetuar o tratamento. Nesse caso, o erro é mais grave e o chamamos de exceção, que precisa de atenção especial.
23 Controle de exceção e compensação Podemos unir a compensação e a exceção em apenas uma atividade. Nesse caso, a sub-atividade compra de passagem pode-se formar por pela cobrança da passagem e pela alocação. Caso ocorra algum erro no processamento de um serviço, este se desviará para a compensação, que por sua vez tentará desfazer o processo. Se ainda dentro de compra de passagem ocorrer um erro grave, será gerada a exceção que enviará uma mensagem ao operador do sistema, o qual fará uma intervenção manual.
24 Conexão entre diagramas Algumas vezes o diagrama se torna tão extenso que não conseguimos conectar certas partes, sem que as linhas fiquem cruzadas. Existe um mecanismo simples de link, que permite conectar elementos dentro de um diagrama, ou mesmo elementos entre dois diagramas distintos. Informamos que dois links estão conectados através de seu nome.
25 Terminadores do processo Três representações: Término incondicional: o processo deve terminar neste momento sem compensação, sem tratamento de erros. Se for um subprocesso, encerra imediatamente e retorna ao fluxo-pai. Cancelamento da transação: pode haver tratamento de erros. Final de fluxo
26 Terminadores do processo: exemplo Processo com tratamento de exceção Interpreta-se assim: se houve um cancelamento no processo, trata o cancelamento chamando a atividade Tratamento de cancelamento. O processo ao lado detalha a chamada do cancelamento dentro do fluxo.
27 Gateways Mecanismos para a realização de desvios. São representados por losangos AND (E), OR (OU), XOR (OU exclusivo)
28 Gateway XOR (OU exclusivo) Apenas um dos caminhos será seguido, ou seja, ou um ou outro.
29 Token Observe que o token T1 se divide em T1A e T1B após passar pelo gateway AND, que indica que os dois fluxos deverão ser executados. Uma vez criados mais de um token a partir de uma bifurcação, o processamento somente continua após todos os tokens chegarem até a junção
30 Gateway AND Todos os caminhos são seguidos em paralelo. O objetivo de utilização do AND pode ser tentar otimizar o tempo de processamento, permitindo interações em paralelo pelos vários perfis de execução.
31 Gateway OR Ao contrário do OU exclusivo, pode-se seguir um ou mais caminhos. É necessário que ao menos um dos caminhos seja seguido.
32 Gateway baseado em evento: desvio complexo Útil para o caso em que a continuação de um processamento depende da existência de um evento entre vários. O primeiro evento que ocorrer continuará o processamento, e as outras opções serão canceladas. Nesse caso, o médico solicita um exame e duas são as possibilidades: o cliente pode fazer o exame solicitado e retornar ao médico, ou o cliente pode ignorar a solicitação e dirigir-se a outro médico. Caso o cliente faça o exame, o médico emitirá uma receita com base nos resultados. Caso não haja retorno, a ficha do cliente será arquivada. Nos dois casos, o processamento continua pela notificação do plano de assistência médica.
33 Eventos complexos Algumas vezes nenhum dos três tipos de gateways (OR, AND e XOR) é suficiente para representar uma situação. Os gateways testam uma única condição, mas algumas vezes necessitamos testar mais de um dado para tomada da decisão. Outra necessidade é a mistura de um comparador comum (AND, OR ou XOR) com um comparador baseado em eventos. Neste caso, foi criado um coringa chamado evento complexo, onde cada uma de suas saídas pode efetuar testes distintos, e decisões podem ser tomadas de forma mais completa. Outra utilização para este tipo de elemento existe quando precisamos saber se uma determinada saída foi escolhida, em função de outras escolhas.
34 Eventos complexos: exemplo Neste caso, podemos ter compras à vista, em dinheiro ou a prazo. Caso a compra seja à vista ou em dinheiro, o caminho seleção de brinde também é executado. Caso a compra seja a prazo, seleção de brinde não é executado. Desta forma, uma saída pode tomar decisões em função de outras saídas. Os outros tipos de gateway não permitem este tipo de comportamento.
35 Gateways diretamente em fluxos Quando a saída de um fluxo contém um losango, significa que uma decisão deve ser aplicada. Quando a seta contém um corte diagonal, significa que é a saída default. Se a seta não contiver nenhum destes dois elementos, significa que o caminho deve ser seguido. Se houver mais de um caminho, todos eles devem ser seguidos.
36 Gateway AND diretamente em fluxos
37 Gateway XOR diretamente em fluxos
38 Atividades, tarefas e subprocessos Atividade: é uma unidade de trabalho em um processo Tarefa: é uma atividade que não pode mais ser subdividida. Subprocesso: é um tipo de atividade em que existe pelo menos um grau de detalhamento em seu interior
39 Loop Algumas vezes necessitamos executar repetidas vezes uma atividade, como por exemplo calcular o imposto para cada um dos produtos de uma lista de compra.
40 Loop Para este caso, poderíamos representar através de uma atividade do tipo loop, de forma mais sintética. Em muitas situações o loop irá executar uma seqüência de tarefas, portanto podemos utilizar um loop associado ao elemento de sub-rotina, que é representado por um sinal de soma na representação.
41 Múltiplas instâncias Outra forma de representação para o loop é a execução de múltiplas instâncias. Neste caso, a representação é de duas barras verticais dentro da atividade. A diferença básica entre as duas representações é a forma como cada um dos elementos é tratado. No loop, os elementos são tratados um a um, mantendo sempre um único token ativo. No caso do processamento paralelo, para cada um dos elementos a ser tratado é gerado um novo token, fazendo com que cada um dos elementos tenha um tratamento independente, causando o processamento em paralelo nas implementações que suportem multi-thread.
42 Atividade Ad-hoc Usada quando as subatividades não possuem uma ordem específica, mas importa que todas estejam concluídas para continuar o processamento. Exemplo: a escrita de um livro não tem ordem, desde que todos os capítulos estejam prontos para a publicação.
43 Atividade Ad-hoc: exemplo
44 Dados Observações que podem tornar o diagrama mais claro
45 Grupos Grupos não afetam o fluxo de processos nem adicionam restrições. Da mesma forma que os elementos de dados, eles agrupam atividades e outros elementos de forma a tornar visíveis blocos importantes de operação. São meramente posicionais, e portanto é permitido que um grupo atravesse duas pools.