Desenvolvimento de SIGs Baseados em Modelos de Processos O analista de negócio cria a...

Post on 02-Dec-2018

214 views 0 download

Transcript of Desenvolvimento de SIGs Baseados em Modelos de Processos O analista de negócio cria a...

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”