SUMÁRIO 1 Introdução 27
2. M ODELAGEM DE P ROCESSO DE N EGÓCIO
2.2 B USINESS P ROCESS M ODELING N OTATION (BPMN)
2.2.1 O BJETOS DE F LUXO
Os objetos de fluxo são divididos em três tipos: atividades, desvios (gateways) e eventos. Atividade
Uma atividade descreve um trabalho realizado dentro da organização por alguma pessoa ou setor. A atividade pode ser atômica ou complexa.
Tarefa
Uma atividade atômica é chamada de tarefa. Uma atividade atômica, ou tarefa, representa uma ação realizada que não pode (ou não é interessante) dividi-la em outras. A BPMN apresenta diferentes tipos de tarefas, dentre as quais se destacam: tarefas manuais; tarefas de usuário e tarefas de serviço. Uma tarefa de usuário representa uma ação realizada por um participante que não necessita o uso de uma aplicação, como atender um telefonema. Uma tarefa de usuário representa uma ação realizada com o auxílio de uma aplicação (sistema). A tarefa de serviço representa a execução de um serviço automatizado, como um WebService. [WHI09]
Subprocesso
Uma atividade não atômica representa um subprocesso. Um subprocesso é uma atividade composta por uma série de outras atividades. O subprocesso pode ser visto no diagrama como uma atividade única, semelhante a uma tarefa, abstraindo os outros elementos contidos dentro dele.
As atividades são representadas no diagrama BPMN através de um retângulo com as bordas arredondadas. A Figura 1 apresenta os símbolos usados para a atividade do tipo tarefa e atividade do tipo subprocesso.
Figura 1 - Representação de Atividades na BPMN
Desvio (gateway)
Os gateways são utilizados para controlar o fluxo do processo, podendo esse convergir ou divergir ao longo da sua execução. Um gateway é um elemento não-obrigatório no processo. Caso o
fluxo não necessite ser controlado não se faz necessária a utilização de um gateway. Na BPMN o mesmo tipo gateway é usado tanto para dividir como para unir o fluxo do processo.
A BPMN apresenta cinco tipos de gateways: gateway exclusivo, gateway inclusivo, gateway paralelo, gateway complexo, gateway baseado em eventos. Nesse trabalho são abordados os três primeiros citados.
Gateway Exclusivo
Um gateway exclusivo divide o fluxo em dois ou mais fluxos, cada um deles com uma condição específica. As condições apresentadas são avaliadas e no momento em que uma delas é verdadeira o fluxo do processo segue por aquele caminho, ignorando os demais. Dessa forma apenas uma das condições apresentadas no gateway exclusivo pode ser verdadeira. Um dos fluxos do gateway pode ser definido como default. Esse será o fluxo a ser seguido caso nenhuma condição seja verdadeira.
Gateway Inclusivo
O gateway inclusivo é semelhante ao exclusivo, sendo que a diferença está no fato de que mais de um fluxo pode ser seguido caso mais de uma condição seja verdadeira. As condições verdadeiras dão origem a fluxos paralelos. Também pode ser definido um caminho default, usado quando nenhuma das demais condições é verdadeira.
Uma vez utilizado um gateway inclusivo para dividir o fluxo outro gateway inclusivo deve ser usado para unir o mesmo novamente. Esse gateway inclusivo aguarda o término da execução de todos os fluxos que tiveram condições verdadeiras no gateway inclusivo que dividiu o fluxo.
Gateway Paralelo
Um gateway paralelo é usado para dividir o fluxo em vários fluxos paralelos e para sincronizar os mesmos posteriormente. Um gateway paralelo não avalia nenhuma condição. Todos os fluxos originados pelo gateway paralelo são executados de forma paralela. A sincronia desses fluxos é feita por outro gateway paralelo, que aguarda que todos os fluxos paralelos sejam encerrados para a continuidade do processo.
A Figura 2 apresenta os símbolos usados para os diferentes tipos de gateways.
Eventos
Evento representa algo que ocorre no início, meio ou final do processo. Pode representar a chegada de uma mensagem ou um determinado tempo transcorrido. Os eventos podem ser de três tipos: eventos de início, eventos intermediários e eventos de final.
Evento de Início
Eventos de início são usados para indicar o início de um processo. Os eventos de início podem ser de diferentes tipos, de acordo com a causa do mesmo Nesse trabalho são abordados três tipos de eventos de início: o evento sem causa especificada e o evento de início do tipo tempo (timer) ou evento temporal e o evento condicional. Quando nenhuma causa é especificada o evento de início representa apenas o ponto de início do processo e o mesmo é iniciado sem que nenhuma condição seja necessária. Já um evento de início do tipo tempo pode indicar que o mesmo só inicia quando uma data/hora for atingida ou quando um ciclo de tempo for completado. O evento condicional possui uma condição de negócio associada ao mesmo.
Evento Intermediário
Um evento intermediário ocorre entre o início e o final do processo. Pode ser de diferentes tipos, assim como o evento de início. Um evento intermediário do tipo tempo, por exemplo, é usado para indicar tempos de espera no processo.
Um evento intermediário pode estar localizado no fluxo do processo ou anexado a uma tarefa. Nesse último caso o evento só pode ser do tipo exceção ou compensação. Um evento do tipo exceção indica que uma determinada exceção ocorreu na execução da tarefa e um determinado fluxo do processo deve ser executado.
Evento de Fim
Um evento fim indica o final do processo. O evento de fim é opcional, podendo o processo ter nenhum, um, ou vários eventos de final.
A Figura 3 apresenta o símbolo utilizado para os diferentes tipos de eventos citados anteriormente.
Figura 3 - (a) Evento de início sem causa definida. (b) Evento de início tipo tempo. (c) Evento intermediário do tipo tempo. (d) Evento intermediário de exceção anexado a tarefa. (e) Evento de fim