Post on 02-Dec-2018
Desenvolvimento de SIGs Baseados em Modelos de
Processos Um framework de Desenvolvimento Orientado a Business Process
Equipe Gustavo Sizílio Nery gustavo.sizilio@ifrn.edu.br
Heitor Mariano de Aquino heitormariano@ppgsc.ufrn.br
Eduardo Aranha eduardoaranha@dimap.ufrn.br
Roteiro O problema
A solução proposta
O estado atual da implementação (API)
Exemplo de uso / Aplicação na SINFO
O problema Dificuldade:
Desenvolver e alterar implementações dos processos nos SIGs
Manter rodando diferentes versões de modelos de processos
Acesso à informações sobre a definição, andamento e gargalos de processos
Manter a sincronia e rastreabilidade entre modelagem de processos e código dos SIGs
Solução Modelar explicitamente os fluxos de atividades dos processos
Orientar as funcionalidades dos SIGs de acordo com modelos de processos especificados
Solução
Exemplo de Uso
Modelagem & Deploy
Modelagem do processo (Analista de Negócio) O analista de negócio cria a especificação do processo utilizando a notação BPMN
Utiliza uma ferramenta de modelagem (Bizagi, Camunda Modeler, BPMN.io, etc...)
Salva o processo na notação BPMN (XML)
Compartilha o modelo especificado com a equipe de desenvolvimento
Utilizando Git, Dropbox, etc...
O modelo especificado pelo analista contém apenas aspectos de negócio, não possui detalhes de implementação
Modelagem do processo (Analista de Negócio)
Modelagem do processo (Desenvolvedor) Recupera a versão do modelo especificada pelo Analista de Negócio
Utilizando Git, Dropbox, etc…
Altera o modelo, especificando detalhes de implementação
Regras de fluxo de controle
Registro de classes delegate
Registro de classes de listeners
Salva o modelo contendo aspectos de negócio e aspectos de implementação
Modelagem do processo (Desenvolvedor)
Deploy do Modelo Utiliza a ferramenta BPM Tools
Seleciona o arquivo do modelo e confirma o deploy
A ferramenta lê o modelo e salva no repositório de definição de processos (banco de dados relacional)
Gera um número de versão para o modelo implantado
No código
Define classe de constantes
Nome e Identificador do processo
Nome e Identificadores das atividades
Implementação & Integração
Iniciando um processo
Iniciando um processo Ao iniciar o processo, é preciso informar o ID da entidade no SIG
Este ID faz o vínculo da entidade do SIG com a instância do processo
Projeto ID 01 → Processo ID 1001
Projeto ID 02 → Processo ID 2103
É possível informar um mapa de variáveis que serão armazenadas como dados no processo
Visualizando um processo
Visualizando um processo
Listando Processos É possível buscar processos por atividade atual ou por valor de variáveis informadas
para o processo
Processos que estão na atividade Delegar Para Avaliadores (caixa verde)
Completando atividade
Delegar Para Avaliadores
Completando atividade
Dados de Execução Durante a execução a engine armazena automaticamente alguns dados
Data de início/fim do ciclo de vida da atividade
Data em que a atividade começou a ser executada
Usuário que executou a atividade
Além disto, a engine também armazena os parâmetros informados durante a execução
Desvio da especificação A API lança uma excessão caso seja completada uma atividade que não esteja em
execução (não esteja verde)
A API prevê um método que permite forçar o desvio do fluxo para outra atividade que não esteja prevista
Usado para contemplar casos que não foram previstos pelo analista durante o processo de especificação do processo de negócio
Ao efetuar um desvio, é obrigatório informar um motivo (utilizado para melhoria de processos)
Discussão
Aplicações imediatas
Protocolo
Novas Funcionalidades
Adaptação de alguma funcionalidade existente
Refinar para especificidades da SINFO
Integrar membros da equipe da SINFO
Avaliação pelos arquitetos
Fedback
Duvidas?
Slides Backup (Fundamentação Teórica)
Referências Van Der Aalst, Wil MP, Arthur HM Ter Hofstede, and Mathias Weske. "Business
process management: A survey." Business process management. Springer Berlin Heidelberg, 2003. 1-12.
White, Stephen A. "Introduction to BPMN." IBM Cooperation 2.0 (2004): 0.
Poelmans, Stephan, Hajo A. Reijers, and Jan Recker. "Investigating the success of operational business process management systems." Information Technology and Management 14.4 (2013): 295-314.
Introdução O que é Business Process Management (BPM)?
Existem muitas definições de BPM
Nos anos 90, O mundo vivia um “Workflow Wave”
BPM foi considerado por muitos como o “próximo passo” depois do Workflow Wave
Muitos termos utilizados nos 90s evoluiram e alteraram de significado
Muitos artigos se dedicam a definir BPM e siglas relacionadas
Apesar das discussões, nitidamente o BPM surgiu como uma evolução de Workflow Management System (WFMS)
O que é um Workflow e o que é um Workflow Management System?
BPM vs WFMS Workflow:
“The automation of a business process, in whole or part, during which documents, information or tasks are passed from one participant to another for action, according to a set of procedural rules.” - Workflow Management Coalition (WfMC)
Workflow Management System (WFMS):
“A system that defines, creates and manages the execution of workflows through the use of software, running on one or more workflow engines, which is able to interpret the process definition, interact with workflow participants and, where required, invoke the use of IT tools and applications.”
Perceba o foco em software e execução...
BPM vs WFMS Com o passar dos anos, pesquisadores perceberam o foco em software muito
restritivo
Alguns termos foram evoluindo e muitos termos foram criados, incluindo BPM
BPM:
“Supporting business processes using methods, techniques, and software to design, enact, control, and analyze operational processes involving humans, organizations, applications, documents and other sources of information.” - Van Der Aalst et al.
Perceba o foco também em métodos, no nível operacional
BPMN Processos de Negócio precisam ter uma base formal
Não pode deixar margem para ambiguidade
É importante a existência de modelos que sejam entendidos por vários stakeholders (gerentes, analistas, devs, dev-ops, etc...)
Petri nets
UML
BPEL (web service composition)
BPMN
BPMN Business Process Modeling Notation
Linguagem visual
Baseado em flowcharting diagram
Foco no entendimento do processo por vários stakeholders
Criado por BPMI Notation Working Group para padronizar definições de processo
Padrão OMG
BPMN
BPMS As empresas evoluiram os WFMS para BPMS, agregando funcionalidades de
gerência, monitoramento e análise de processos
“A business process management system (BPMS) is generic software that supports the modeling, analysis and enactment of business processes.” - Poelmans et al.
Plataforma de suporte ao BPM
jBPM
Red Hat JBoss BPM Suite
Bizagi BPM Suite
Oracle BPM
Alguns Benefísios do BPM Melhora a comunicação (base comum de conhecimento de processos)
Incluindo comunicação interempresarial
Identificar problemas de processo antes da implementação
Inclui possibilidade de simulação
Análise de modelos pode ser utilizada para melhoria de processos
Identificar gargalos ou atividades desnecessárias
Melhoria de roteamento e alocação de atividades
Workflow
Alinhamento da implementação com expectativas da gerência
Contexto Atual Alguns autores dizem que a utilização de BPMS não “bombou” como deveria, porém
grandes empresas fazem uso
É visível os benefícios de inserir BPM na arquitetura das empresas
Entretanto, aplicar BPM não é uma questão apenas de TI, mas uma mudança de cultura na empresa!
Requer uma adaptação arquitetural, devido a existência de sistemas legados
Migrar os dados para um ambiente BPM, muitas vezes, é uma tarefa muito complicada
“There is no free lunch”