Modelagem de Dados
BPMN (Business Process
Modeling Notation)
Prof. Jorge Dias Jr.
www.jorgediasjr.com
Ambientação com a ferramenta
Vamos experimentar a ferramenta
de modelagem?
Activity (Atividade)
Task (Tarefa)
Subprocess
(Subprocesso)
Representa uma unidade de trabalho realizado no processo
Task (Tarefa)
Representa uma ação, não uma função ou estado.
Task (Tarefa)
•Regra: Tasks devem ser colocadas no formato: • VERBO + NOME • Exemplos: • Checar crédito • Realizar compra • Emitir parecer
Manual
X
User Task Sem o auxílio de qualquer mecanismo de execução de processos de negócio. Um executor humanorealiza a tarefa com a ajuda de um aplicativo
Script
X
Service Task A tarefa de script é executado por um engine de processos de negócios. O modelador ou implementador define um script interpretável pela engine.Usa algum tipo de serviço, o que poderia ser um serviço Web ou
um aplicativo automatizado.
Business Rule Task
Fornecer e/ou obter dados de uma engine
Gateway
•XOR Gateway (Exclusive Gateway)
• Segue em um caminho ou o outro
A mesma coisa
BOA PRÁTICA: Colocar uma pergunta no
diamante e as respostas nos fluxos que saem dele
Gateway
•Gateway não executam ações!
•Ele apenas testa uma condiçãoParallel Gateway (AND Gateway)
Join Tem o mesmo
Parallel Box e Ad-Hoc Subprocess
Utilizado quando todas as atividades são executadas paralelamente sem ordem
Uso de Pools (Piscina) Swimlanes (raias)
Boa prática: O nome da piscina (Pool) deve ser o nome do processo
As raias (lanes) representam papeis ou unidades organizacionais
Fluxo de mensagem
• Entre piscinas se utiliza apenas fluxos de mensagens
• A piscina cliente é externa ao processo que estamos modelando, por isso o nome pode ser um ator
Representa a comunicação do processo com uma
Subprocessos
• Pode ser realizada de duas formas:
1) Com o nível filho desenhado dentro do nível pai, podendo o ser explodido e visualizado no mesmo diagrama
2) Com o nível filho desenhado em um diagrama a parte. Neste caso, o nível pai tem um link que abre o nível filho (RECOMENDADO)
Nível pai (parent level)
Subprocessos
O processo filho deve possuir o evento inicial e final também!!!!
Subprocessos reusáveis (Reusable Subprocess)
• Se o processo filho for utilizado em outros subprocessos, então o subprocesso deve ser definido como Reusable
Subprocess
• As bordas são mais grossas do que o subprocesso normal • Reusable subprocess também é chamado de Call Activity
Start Event (Evento de início)
• A figura (ícone) interna representa o gatilho (trigger) do evento • Normalmente um processo tem apenas um evento de início.
• Processos filho (dentro de um subprocesso) devem obrigatoriamente não ter gatilho
Start Event (Evento de início)
O processo inicia a partir de uma solicitação externa ao processo Deve ser nomeado com: Receber ‘X’
Start Event
Deve ser nomeado com o tempo em que se inicia.
Start Event
O evento suporta diferentes gatilhos
Start Event
Os dois eventos precisam acontecer para o processo iniciar
E se a atividade inicial do processo depender do gatilho inicial?
Uma entrada ignora as demais.
Data Object e Data Store
• Pedido é um Data Object (Objeto de dados)
• Representa e enfatiza qualquer dado necessário e importante para um elemento do processo
• Cadastro de cliente é um Data Store (Armazenamento de dados)
• Pode ser um cadastro, uma base de dados, etc.
Data association
Input ou output output
Text Annotation
• Pode ser associado (através de um association) a qualquer elemento do processo
O Método
• BPMN não define metodologia, é apenas uma notação
• A abordagem de Silver:
• 6 passos
Top-down Do nível mais alto
(menos detalhes) para o nível mais
baixo (mais detalhes)
O Método
Determinar o escopo do processo
Enumerar principais atividades em alto nível
Criar diagrama BPMN top-level
1
2
3
O Método
Expandir cada processo em diagramas child-level Adicionar: Fluxo de mensagens, Agentes
externos, provedor de serviços...
Repetir os dois últimos passos nos níveis seguintes
4
5
6
Determinar escopo do processo
•Qual a perspectiva que o processo será
modelado?
•Como o processo se inicia?
•O que determina quando estará
completo?
•O que cada instância do processo
representa?
•Existem diferentes maneiras deste
processo terminar?
Exemplo:
Compra do novo carro• Qual a perspectiva que o processo será modelado?
• Ponto de vista do cliente e da empresa? Apenas da empresa?
• Como o processo começa?
• Quando o cliente anuncia seu pedido
• Quando estará completo?
• Fechamento da venda
• O que cada instância do processo representa?
• Neste processo temos a venda.
• Existem diferentes maneiras deste processo terminar?
• Financiamento não aprovado, prazo de entrega não aceito. Enfim, Venda não concretizada.
As atividades de alto nível
•Listar as principais as atividades do processo
• 10 ou menos
• Cada atividade tem inicio e fim bem definidos
• O início da atividade é um disparada pela finalização da atividade anterior
• O fim de cada atividade alto nível deve ser pensada
•Não se preocupe com os detalhes (Eles serão adicionados mais a frente)
•Identificar os participantes na atividade
Exemplo:
Compra do novo carro0 Finalizar pedido
0 Organizar financiamento
0 Adquirir de um revendedor 0 Adquirir de fábrica
0 Preparar carro para entrega 0 Fechar e entregar
Diagrama Top-Level
• Representa o processo em um nível mais alto de abstração, sem detalhes
• Cada atividade será tratada como um sub-processo • Comece criando o diagrama considerando o
“caminho feliz”
• Sem fluxos alternativos ou de exceção
Exemplo:
Compra do novo carro• Agora acrescente os fluxos alternativos com o uso de gateways
• Praticamente todas as atividades devem ser condicionais
• Cada atividade é seguida por um gateway que testa o estado final do sub-processo
• Nomeação do gateway: “Estado final 1?” (2 saídas)
Exemplo:
Compra do novo carroExemplo:
Compra do novoExpansão dos Child-Level
• O diagrama High-Level apresenta o início e o fim do processo
• Precisamos de mais detalhes!
• Cada atividade do top-level será um processo a parte
• O evento de início deve ser Unespecified (None) – Não
especificado
• Pool e Lanes são opcionais
• Cada subprocesso deve ter seu estado final
• Cada estado final deve ter o mesmo nome dos fluxos alternativos do gateway
Exemplo: Vamos expandir a atividade
Exemplo:
Compra do novo carroEstados finais possíveis -> Fluxos possíveis do gateway
Adicionar fluxo de Mensagens
• Fluxo de mensagens não são obrigatórios em BPMN • Ira agregar informações ao diagrama
• Vai fornecer contexto do negócio ao seu diagrama
Repita os passos
6
4
e
5
nos processosAtenção
• Este é um dos métodos possíveis, proposto por um autor
• O nível de detalhamento e a organização em subprocessos é uma decisão do modelador
• Para processos pequenos não faz sentido quebrar em muitos subprocessos
Use black-box para representar solicitante de serviço
Tratar o contato inicial de um
Pool separadas implica diferentes processos
Se um sub processo é seguido por um gateway
Rotular message flow diretamente com o nome da mensagem.
Dois eventos finais não podem ter o mesmo nome
Não usar xor gateway para juntar dois caminhos.
Não usar and gateway para juntar caminhos num evento final.
Duas atividades não podem ter o mesmo nome.