Estudo de caso: Boas práticas no uso de gateways em BPMN

BPMN é a melhor notação para representar a lógica da execução de um processo de negócio, mas um processo bem mapeado na notação passa pela escolha certa no uso dos elementos da notação. Muitas vezes, não há uma forma única de representar um processo, mas com certeza o contexto do processo poderá nos ajudar a definir a forma de criar o diagrama de forma mais clara.

As ferramentas de mapeamento aderentes à notação BPMN nos ajudam a nos certificar se o diagrama que criamos está correto, mas ele consegue apenas validar se os elementos estão conectados da forma correta.

Por exemplo, no processo abaixo, inspirado no caso de um leitor que recentemente nos encaminhou esta dúvida:

No processo, a lógica que estamos tentando mapear é de que, depois da tarefa "Verificar documentos", pode ou não necessitar "Digitalizar documentos" e pode ou não necessitar "Confirmar se documentos são válidos". Ou seja, há casos em que realiza só uma dessas tarefas, as duas, ou em algumas situações nenhuma, indo direto para "Analisar documentação".

Você identificou algum problema no uso da notação? Mas tem, e a ferramenta (no caso o Bizagi) avisou:

Mensagem de erro na validação de diagrama do Bizagi: "Um gateway deve ser usado para dividir em fluxos distintos ou unificá-los em um único; os dois comportamentos no mesmo gateway não é suportado."

Olhe novamente. O gateway exclusivo “Precisa verificar a autenticiade?” tem duas entradas e duas saídas. Pela notação BPMN, o gateway exclusivo pode ser de divisão (split) ou de unificação (merge) do fluxo. Usar um mesmo gateway para representar as duas coisas pode gerar confusão tanto na interpretação humana quanto se o processo for ser automatizado.

A solução para isso seria separá-lo em dois – um para unificar os fluxos que vêm do gateway anterior e outro para verificar a condição para dar seguimento ao fluxo, assim:

Desta forma, garantimos que a lógica do processo esteja íntegra na sua representação. Entretanto, isso faz com que o processo tenha três gateways encadeados, o que não é muito legal. Neste caso, o que podemos recomendar?

Se a lógica implica em uma combinação de execução de atividades “e-ou”, podemos usar o gateway inclusivo. Este tipo de gateway tem o propósito de gerenciar a divisão/unificação do fluxo de acordo com uma combinação de possibilidades. Como resultado, teríamos o processo modelado assim:

O gateway "Providências especiais" identifica se o processo precisa ser digitalizado, se precisa de verificação de autenticidade, de ambas as tarefas ou de nenhuma delas.

Veja que algumas boas práticas foram agregadas para dar ainda mais legibilidade ao processo:

  • Nomear os conectores que saem do gateway de acordo com a condição que leva àquela transição: Por exemplo, a seta de cima implica na necessidade de digitalização, e a de baixo na verificação de autenticidade. Evite usar verbos no infinitivo pois as setas não representam uma ação a ser realizada, e sim uma condição que deve existir para que o fluxo siga aquele caminho.
  • Transformar a transição do meio em “default” (ou padrão), que tem uma linha cruzada na origem do conector. Esta é a forma de se dizer em BPMN que, se o gateway não identificar nenhuma condição, então ele segue pela default.
Para entender mais sobre os diferentes tipos de gateways básicos da notação BPMN, confira também este artigo:
http://blog.iprocess.com.br/2012/11/um-guia-para-iniciar-estudos-em-bpmn-ii-gateways/

5 ideias sobre “Estudo de caso: Boas práticas no uso de gateways em BPMN

  1. Após a atualização do Bizagi (2.9) esta regra vem exigindo revisão de mapeamentos realizados. Tenho verificado, para facilitar inclusive a leitura pelas partes interessadas, a necessidade de incluir “marcador” (X) nos gateway de junção em razão da sequencia de elementos de decisão.

  2. Kelly, estou me iniciando no mundo da modelagem de processos e tenho uma dúvida. Qual a melhor forma de representar uma interface entre dois sistemas distintos? POr acaso já houve algum estudo de caso nesse sentido?

  3. Olá Fabrício,
    A UML é bastante focada na interação entre sistemas. Para isso o Diagrama de Sequência pode ser uma interessante ferramenta.
    Em BPMN, existe um tipo de diagrama específico para modelar a lógica do processo de interação entre participantes externos ao processo (sistemas podem ser vistos como participantes em BPMN). É o Diagrama de Coreografia. Temos dois artigos sobre esse tipo de diagrama (infezmente o Bizagi não modela esse tipo de diagrama, mas outras ferramentas como o Yaoqiang têm suporte a ela): http://blog.iprocess.com.br/2013/08/bpmn-2-0-novos-diagramas-e-elementos-introducao-a-coreografia/

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>