O USO DE TI COMO SUPORTE AO GERENCIAMENTO DE

Propaganda
CURSO DE GRADUAÇÃO BACHARELADO EM SISTEMAS DE
INFORMAÇÃO
DIOGO AZEVEDO GOUVEIA
O USO DE TI COMO SUPORTE AO GERENCIAMENTO DE
PROCESSOS DE NEGÓCIOS: ESTUDO DE CASO COMPARATIVO
ENTRE DUAS METODOLOGIAS DISTINTAS
CAMPOS DOS GOYTACAZES – RJ
2016
DIOGO AZEVEDO GOUVEIA
O USO DE TI COMO SUPORTE AO GERENCIAMENTO DE
PROCESSOS DE NEGÓCIOS: ESTUDO DE CASO COMPARATIVO
ENTRE DUAS METODOLOGIAS DISTINTAS
Trabalho de Conclusão de Curso apresentado à
Coordenação
de
Informática
do
Instituto
Federal
Fluminense, como parte das exigências para obtenção de
título de Bacharel em Sistemas de Informação.
Orientador: Prof. M.Sc. Eduardo Francisco da Silva Freire
CAMPOS DOS GOYTACAZES – RJ
2016
RESUMO
Os processos são parte fundamental e integrante de todas as organizações, como
no caso deste trabalho onde a organização é uma Instituição Federal de Ensino,
onde existem processos burocráticos que necessitam muito tempo para serem
realizados, sem nenhuma preocupação como possíveis melhorias e automatização
de tarefas, surgiu a ideia de mapear o processo de transferência de turno do técnico
a fim de propor melhorias e automatizações. Ao mesmo tempo que foi mapeado e
melhorado o processo de transferência de turno, através da criação de um web
service em programação convencional Ruby on Rails e utilizando uma ferramenta
Business Process Management Suite – BPMS, para gerenciar todo o fluxo do
processo. Também foi possível realizar uma comparação entre as metodologias que
são evidentemente muito distintas, comparação essa que demonstrou as qualidades
e facilidades de cada ferramenta, ao mesmo tempo que demonstrou que o uso das
duas pode ser em conjunto, onde uma complementa a outra, não causando um alto
acoplamento.
Palavras-chave: melhorias, BPMS, acoplamento.
ABSTRACT
The processes are fundamental and integral part of all organizations, as in the case
of this work where the organization is a Federal Teaching Institution, where there are
bureaucratic processes that require a long time to make, without any concern as
possible improvements and automation tasks, the idea to map the coach turn transfer
process in order to propose improvements and automation. While it has been
mapped and improved turn-transfer process, by creating a web service in
conventional programming Ruby on Rails and using a Business Process
Management Suite tool - BPMS to manage the entire process flow. It was also
possible to make a comparison between the methodologies are clearly very different
comparison such that demonstrated the qualities and each tool facilities, while
demonstrated that the use of the two may be taken together, where one
complements the other, causing no a high coupling.
Key-words: improvements, BPMS, coupling.
LISTA DE FIGURAS
Figura 1: Diagrama de fluxo de trabalho do projeto...................................................16
Figura 2: Ciclo de vida BPM típico para processos com comportamento previsível.23
Figura 3: Gráfico de tendência...................................................................................26
Figura 4: Gŕafico de caminhos frequentes no fluxo do processo..............................27
Figura 5: Gráfico de fluxo gerado pelo Bizagi............................................................28
Figura 6: Pool de um projeto Bizagi...........................................................................29
Figura 7: Lane de um projeto Bizagi..........................................................................29
Figura 8: Circulo inicial e conectores de um projeto Bizagi.......................................30
Figura 9: Retângulo de tarefa de um projeto Bizagi..................................................30
Figura 10: Exemplo de modelagem BPM no Bizagi..................................................31
Figura 11: Importação de arquivo xml ou json para conexão REST no Bizagi.........32
Figura 12: Diagrama da análise AS-IS de transferência de turno do curso técnico. .37
Figura 13: Diagrama da análise TO-BE de transferência de turno do curso técnico 39
Figura 14: Uml da aplicação de tranferência de turno...............................................40
Figura 15: Classes mapeadas pelo web service.......................................................41
Figura 16: Index com dados alterados no Microsoft Sql Server................................43
Figura 17: Tela de verificação de pendências na biblioteca......................................44
Figura 18: Tela de acesso, após o login.....................................................................44
Figura 19: Tela de verificação de pendências na biblioteca......................................45
Figura 21: Tela para visualização de turno disponível...............................................46
Figura 20: Tela de confirmação de pedido de transferência realizado......................46
Figura 22: Tela para visualização de todos os pedidos de transferência..................47
Figura 23: Tela para visualização dos dados de um pedido......................................47
Figura 24: Tela para confirmação da transferência....................................................48
Figura 25: Tela de confirmação de transferência realizada.......................................49
Figura 26: Exemplo de resposta xml utilizada no projeto..........................................50
Figura 27: Tela de inserção do número de matrícula do aluno..................................51
Figura 28: Dados de um pedido de traferência pela ferramenta BPMS....................52
Figura 29: Resposta visual ao realizar um pedido de transferência..........................52
Figura 30: Área do coordenador, visualização de pedidos de alunos.......................53
Figura 31: Visualização do caminho do processo......................................................54
Figura 32: Arquivo curso.rb........................................................................................67
Figura 33: Arquivo disciplina_transferencia.rb...........................................................67
Figura 34: Arquivo matricula_pauta.rb.......................................................................68
Figura 35: Arquivo matricula_pauta_transferencia.rb................................................68
Figura 36: Arquivo pauta.rb........................................................................................68
Figura 37: Arquivo pessoa.rb.....................................................................................69
Figura 38: Arquivo turma.rb........................................................................................69
Figura 39: Arquivo turno.rb.........................................................................................69
Figura 40: Arquivo pessoa.rb.....................................................................................70
Figura 41: Arquivo autentication_biblioteca.rb...........................................................70
Figura 42: Arquivo biblioteca.rb..................................................................................70
Figura 43: Arquivo autentication_transfer.rb..............................................................71
Figura 44: Arquivo transfer.rb.....................................................................................71
Figura 45: Arquivo database.yml, responsável pela conexão ao banco de dados.. .72
Figura 46: Configurações da aplicação Ruby on Rails..............................................72
Figura 47: Configurações da aplicação Ruby on Rails..............................................73
Figura 48: Update dos dados no Microsoft Sql Server realizado..............................74
Figura 49: Index com dados alterados no Microsoft Sql Server................................74
Figura 50: Arquivo Autentication_sql_server.rb..........................................................75
Figura 51: Arquivo aluno.rb........................................................................................75
Figura 52: Arquivo matricula.rb..................................................................................76
LISTA DE SIGLAS
API - Application Programming Interface
BPM - Business Process Management
BPMN - Business Process Modeling Notation
BPMS - Process Management Suite
BPEL - Process Execution Language
ERP - Enterprise Resource Planning
HTTP - Hypertext Transfer Protocol
ORM - Object-relational mapping
RA - Registro Acadêmico
REST - Representational State Transfer
SOA - Service-Oriented Architecture
SOAP - Simple Object Access Protocol
TCC - Trabalho De Conclusão De Curso
TDS - Tabular Data Stream
TIC - Tecnologias de Informação e Comunicação
UML - Unified Modeling Language
UTC - Coordinated Universal Time
WWW - World Wide Web
SUMÁRIO
1 INTRODUÇÃO................................................................................................................... 13
1.1 JUSTIFICATIVA............................................................................................................... 14
1.2 METODOLOGIA.............................................................................................................. 15
1.3 OBJETIVOS.................................................................................................................... 17
1.4 OBJETIVOS ESPECÍFICOS:..........................................................................................18
2 GESTÃO POR PROCESSOS............................................................................................20
3 TECNOLOGIAS EMPREGADAS......................................................................................25
3.1 FERRAMENTAS DE GESTÃO DE PROCESSO.............................................................25
3.2 RUBY.............................................................................................................................. 32
3.3 RAILS.............................................................................................................................. 32
3.4 GEMS............................................................................................................................. 33
3.4.1 GEMS PARA CONEXÃO MICROSOFT SQL SERVER A UM S.O UNIX.....................34
4 ESTUDO DE CASOS.........................................................................................................36
5 ANÁLISE DE RESULTADOS.............................................................................................55
6 CONCLUSÃO.................................................................................................................... 59
7 REFERÊNCIAS................................................................................................................. 62
8 APÊNDICE......................................................................................................................... 64
13
1
INTRODUÇÃO
Toda organização, com ou sem fins lucrativos possui processos que são vitais
para seu pleno funcionamento, processos esses que são diários e possuem como
objetivo final um cliente sendo atendido por um determinado processo.
Assim sendo uma Instituição Federal de ensino uma organização provedora
de muitos processos, geralmente processos que tem como o cliente final um aluno,
tende-se a buscar uma melhoria de processos para um melhor atendimento a esse
cliente, de forma rápida e segura sendo possível ter total controle a todo o fluxo do
processo e aos envolvidos nele.
E como a quantidade de clientes em potencial em uma Instituição Federal de
ensino é geralmente em grande escala, em grande escala geralmente os processos
sofrem gargalos, pode haver perda de dados em alguma etapa do processo. O fluxo
também pode ser de difícil entendimento para os envolvidos.
Dessa forma em muitas situações as perdas não são possíveis de ser
rastreadas a fim de resgatar esses dados ou verificar o responsável pela perda, não
existindo também uma fácil visualização do funcionamento do processo, para que
todos os envolvidos entendam plenamente os seus papéis no processo.
Isso ocorre quando não existe um melhoramento contínuo e análise como
prevista pelo Business Process Management – BPM, representada por uma análise
AS-IS “Como é” e uma análise TO-BE “Como deve ser”.
Dessa maneira os processos muitas vezes podem ser extremamente
burocráticos e causar uma grande perda de tempo e dados como evidenciado
anteriormente, esses processos podem ser vistos pela ótica do Business Process
Management – BPM, visando uma melhoria contínua.
Portanto, uma ferramenta Business Process Management Suite – BPMS
permite o mapeamento organizacional de processos em qualquer setor de uma
empresa, na busca da integração funcional e proporcionando maior agilidade nas
atividades envolvidas por pessoas, tarefas, máquinas e aplicações de software, para
que se consiga os objetivos do negócio.
E dessa forma usando modelagem de processos como o Business Process
Modeling and Notation - BPMN, analistas de negócio podem criar uma
14
documentação dos modelos criados e assim possibilitar o melhor entendimento dos
processos da empresa em diferentes níveis, tornando de fácil compreensão todo o
processo para todos os
envolvidos nele e propiciando assim uma melhoria
contínua que pode ser observada por todos os membros do processo.
Com isso, os processos de uma organização devem passar pela análise ASIS e TO-BE e logo em seguida serem postos em execução, através de uma
ferramenta Business Process Management Suite - BPMS para que possa ser
controlado, monitorado, medido e melhorado, identificando novos pontos de
melhoria e retornando ao início do ciclo (ABPMP, 2013).
1.1
JUSTIFICATIVA
Para justificar a elaboração desse projeto, deve ser evidenciado que a ideia
surgiu da intenção em medir o desempenho do desenvolvimento de um sistema para
testar duas metodologias de desenvolvimento, uma com técnicas de programação
convencional e outra usando os conceitos do BPM, com o uso de uma ferramenta
BPMS. Também se deve essa medição, ao que foi verificado nos processos diários
de transferências de turnos de alunos do técnico, em uma Instituição Federal de
Ensino.
Então este trabalho visa realizar uma comparação entre uma ferramenta de
BPMS e programação de forma tradicional, tentando evidenciar a necessidade do
uso de ferramentas voltadas exclusivamente para implementação e controle de
processos de negócios em conjunto com web services desenvolvidos utilizando
linguagem de programação open source, de forma que a implementação utilizando o
BPMS seja vista como rápida e confiável para fluxos de processos de negócios, que
é uma demanda sempre alta para organizações com ou sem fins lucrativos, e que
precisam automatizar e, ou melhorar seus processos de negócios, essa comparação
visa ser feita entre um web service desenvolvido nesse trabalho, na linguagem de
programação Ruby com seu framework Rails, que em português seria como caixa
de ferramentas para a linguagem, e a ferramenta de gestão de processos Bizagi.
E com um desenho das melhorias nos processos, poderão ser desenvolvidos
equipamentos tecnológicos necessários à execução automatizada dos processos,
15
uma vez que desenvolvidos os equipamentos tecnológicos, também conhecidos
como serviços web, os web services em inglês, os processos serão configurados na
ferramenta Business Process Management Suite – BPMS, a fim de ser utilizada para
controlar e monitorar os processos, com essa ferramenta. E os envolvidos nos
processos que são os stakhoders poderão interagir a fim de entregar o resultado
esperado pelos clientes do processo, neste caso, os estudantes.
1.2
METODOLOGIA
Como este projeto visa realizar comparações entre técnicas recentes
conhecidas por Business Process Management – BPM, ou seja, Gerenciamento de
Processos de Negócios, que buscam aliar conhecimento dos trabalhos realizados
pelas pessoas, colaboradoras dos processos e do fluxo interno desses processos, e
também com intuito de verificar pontos de melhoria e automatização das etapas
onde as tecnologias possam agilizá-los, comparando com técnicas de programação
tradicionais conhecidas, como o Ruby on Rails.
Então para isso, a metodologia para realização do trabalho científico, pelas
características dos objetivos e do objeto de estudo, será uma pesquisa exploratória
e um estudo de caso comparativo.
Dessa forma para realizar a pesquisa exploratória serão necessários
equipamentos de tecnologia da informação e comunicação, assim como o domínio
de conhecimentos em desenvolvimento de software, linguagem de programação
orientada a objetos, que nesse trabalho será aplicada através da linguagem Ruby
utilizando seu framework Rails, que facilita a criação de aplicações direcionadas a
conteúdo web com o uso de web services.
Então o fluxo na Figura 1, descreve a metodologia do processo de criação
deste trabalho, o gráfico demonstra as atividades realizadas, passando por todas as
etapas durante a concepção do trabalho, como a instalação das ferramentas
computacionais necessárias para o desenvolvimento do projeto.
Assim sendo, na primeira etapa com instalação e configuração de servidor,
configuração da rede a ser usada, instalação e configuração da ferramenta BPMS,
16
bancos de dados, instalação e configuração de framework e interpretador da
linguagem a ser usada nesse projeto, neste caso Ruby com seu framework Rails.
No que se trata, na segunda etapa a elaboração de um diagrama AS-IS para
mapear o processo como está sendo executado no momento o “COMO É”, antes de
passar pelo ciclo de melhorias BPM, seguido da elaboração de um diagrama TO-BE,
que demonstra como um processo deveria ficar “COMO DEVE SER”, também em
notação BPM.
Então, após elaborado o diagrama TO-BE, foram seguidos dois fluxos de
desenvolvimento, um com a elaboração de um web service em Ruby on Rails que
fornece os serviços que são consumidos pela ferramenta Business Process
Management Suite – BPMS, ferramenta que implementa todo o fluxo de controle do
processo.
Assim como, após o desenvolvimento nas etapas anteriores, em seguida,
respectivamente foram realizados os testes, e logo após os dois testes serem
realizados, foi possível realizar a análise de resultados colocando o projeto em
funcionamento.
Figura 1: Diagrama de fluxo de trabalho do projeto.
Fonte: elaboração própria
17
1.3
OBJETIVOS
Para que os objetivos sejam alcançados, serão necessários equipamentos de
tecnologia da informação, servidores de internet e seus componentes, modelagem
de processos de negócio usando notação BPMN – Business Process Management
and Notation.
Assim, para conseguir o objetivo de avaliar a eficácia do estudo, será
realizado um estudo de caso aplicado a uma organização real que esteja utilizando
os conceitos de gestão por processos e que necessita automatizar tarefas
mapeadas e desenhadas em ferramenta Business Process Management Suite BPMS.
Então o mapeamento será feito nos principais processos de pedidos e
requisições de alunos ao setor de Registro Acadêmico, tais como: transferências,
trancamentos de matrículas, boletins, segundas vias de documentos, certidões, etc,
mapeamento esse que possibilitará o alcance do objetivo de comparação das
metodologias.
Ao fim será possível medir e comparar o conhecimento obtido e necessário
para desenvolvimento usando as duas tecnologias distintas, medir e comparar todas
as tarefas necessárias para o desenvolvimento usando cada tecnologia. E também
verificar os recursos e facilidades proporcionados por cada uma das duas
tecnologias, podendo verificar assim se o uso das duas tecnologias em conjunto traz
benefícios para o gerenciamento, controle e melhoria contínua de processos ou se o
uso em separado mostra-se mais promissor.
Para isso visa a criação de um web service, sendo assim, um provedor de
serviços pela internet em linguagem open source, Ruby on Rails e o
desenvolvimento de uma aplicação Bussiness Process Management Suite para
consumir os serviços oferecidos pelo web service, e para que haja um baixo
acoplamento entre as tecnologias, podendo ser usada qualquer ferramenta Business
Process Management Suite, além da que será utilizada nesse trabalho.
Também para alcançar o objetivo final, optou-se pelo desenvolvimento das
atividades do processo em si, em um web service, que será desenvolvido utilizando
18
a linguagem Ruby on Rails por ser uma linguagem open source, e assim a aplicação
desenvolvida em BPMS que, apenas consumirá os serviços e assim poderá realizar,
gerenciar e controlar o processo de transferência de turno do ensino técnico e poder
existir a comparação entre as duas tecnologias.
Desta maneira, para a comparação será desenvolvido um protótipo de Portal
do Estudante na internet utilizando conceitos de gerenciamento de processos de
negócios BPM com um desenvolvimento tradicional, tanto um quanto o outro
utilizando o desenvolvimento de sistemas a partir de servidores web, ou web
services, e mapeando os processos relativos aos serviços prestados pelo setor de
Registro Acadêmico – RA, e assim poder verificar os resultados dessa comparação
e possibilitando a implantação de uma ferramenta de documentação, controle e
monitoramento de processos de negócios.
Dessa forma, também para alcançar o objetivo final de comparar as duas
metodologias distintas, será feito uma comparação das documentações dos dois
métodos, o de desenvolvimento tradicional em relação ao método baseado em
suporte ao processo por meio de integração com a ferramenta de execução de
processos, fazendo com que a análise possa trazer os dados necessários para uma
melhor implantação de um fluxo de processos, que possa suprir da melhor forma
possível as necessidades de um cliente final, possibilitando também, através dos
conceitos de gerenciamento de processos, aplicar o conceito de melhoria contínua,
que proporciona o gerenciamento de processos do BPM.
1.4
OBJETIVOS ESPECÍFICOS:
São objetivos específicos deste trabalho:
•
Comparar duas metodologias totalmente distintas.
•
Verificar se as dua metodologias podem funcionar em conjunto, para um
melhor gerenciamento do processo.
•
Desenvolvimento de sistemas através de web services.
•
Gerenciar as atividades realizadas pelo web service, através de uma
ferramenta de gerenciamento de processo BPMS.
•
Aplicar os conceitos de melhoria contínua.
19
•
Desenvolver ferramentas utilitárias em código aberto e disponibilizá-la para
toda a comunidade através do Portal do Software Livre.
•
Ao final poder comparar as tecnologias separadamente e em conjunto, para
verificar se o funcionamento em conjunto, ou em separado se mostra a
melhor opção para a gerência de processos.
20
2
GESTÃO POR PROCESSOS
Dentro do atual contexto brasileiro, há uma série de fatores que têm
influenciado as organizações com ou sem fins lucrativos a utilizarem ferramentas
que possam ajudar na melhoria da prestação dos serviços, neste sentido serão
abordados temas teóricos para embasar o estudo ora apresentado.
Dessa maneira, segundo Freire et al. (2015) é possível entender, que para
cada mudança, levando em conta o dinamismo da gestão por negócio, muitos
esforços se mostram necessários na hora de adaptar os sistemas computacionais
desenvolvidos com conceitos de programação tradicional, esses esforços se
traduzem em um planejamento e execução de um projeto de mudanças, que
demandará analises parciais de sistemas, com alterações no código dos softwares,
também serão necessários testes, checagens e formas de garantir a qualidade.
Então demonstrando que todo o processo de manutenção ou adaptação de
software demanda muitos recursos humanos, materiais e principalmente tempo.
Para isso em seu trabalho, é buscado um debate em que os conceitos de
desenvolvimento de software usando os conceitos de BPM se mostra necessário,
visto o dinamismo dos processos de negócio. Onde os conceitos de BPM propõe a
formalização de uma metodologia de desenvolvimento baseada no conceito de baixa
acoplagem e no uso de ferramentas Business Process Management Suite – BPMS.
Portanto, para Oliveira (2010), um processo é realizado através de atividades
determinadas por uma sequência na qual se pode obter um resultado, que pode ser
um bem ou um serviço. Também pode ser visto como o desempenho de uma
atividade ou um conjunto delas onde exista uma entrada, uma transformação e uma
saída, e com isso, tem como objetivo alcançar metas. Assim o processo de negócio
de uma empresa passou a ser uma unidade na qual os processos e recursos que o
compõem são organizados para este fim. Ainda no que reflete Oliveira (2010), os
processos são importantes, porque é através deles que as empresas exercem suas
funções, pois todo e qualquer trabalho importante realizado nas empresas, faz parte
de algum processo. Business Process Management - BPM configura-se em um
método de gestão para gerenciar processos empresariais, onde conta com o auxílio
de ferramentas tecnológicas Oliveira (2010).
21
Assim sendo, o Processo pode ser conceituado de formas variadas por
muitos estudiosos, entretanto, sua essência é a mesma. O foco desse conceito está
associado a entradas inputs, saídas outputs e à agregação de valor a essa saída,
que poderá ser um produto ou um serviço. De acordo com Valeriano (2001), todas
as atividades técnicas, gerenciais e administrativas podem ser estudadas sob a
forma de processo. Gonçalves (2000, p.7) conceitua processo como “qualquer
atividade ou conjunto de atividades que toma um input, adiciona valor a ele e
fornece um output a um cliente específico”. Oliveira (2006, p. 8) também faz por
acrescentar, ao conceituar processo, que estes têm como “finalidade de atender e,
de, preferência superar as necessidades e expectativas dos clientes externos e
internos da empresa”.
E também, de acordo com a ótica de Cruz (2008) sobre o BPMS existem
várias e diferentes abordagens sobre este tema, assim como diversas classificações
para as tecnologias que compõem o conjunto suíte. Todos os especialistas em
BPMS falam dele como um conjunto de tecnologias cuja a finalidade é a de facilitar a
construção de sistemas que integrem completamente o ambiente de negócio de
qualquer organização. É por isso que a arquitetura de Caixa de ferramentas o
framework BPMS foi construída com tecnologias emprestadas de outros ambientes.
Esta estrutura, conhecida como BPMS Suíte, é mais uma tentativa de explicar
porque BPMS pode fazer mais do que qualquer software de Fluxo de Trabalho um
workflow existente até então.
Desta forma novos desafios passaram a exigir abordagens que superassem a
orientação
dos modelos gerenciais anteriores e
que
compreendessem e
explicassem o comportamento das variáveis organizacionais (VALLE e OLIVEIRA,
2009). O conceito de Gestão por Processos, chamado de BPM busca observar o
funcionamento da empresa de maneira horizontal em contraponto à tradicional
Gestão por Funções, ou seja, ela deve ser vista não apenas como na forma de um
organograma, onde as ações e decisões são tomadas verticalmente, de maneira
estritamente departamental, mas sim entendendo que seus processos, em sua
maioria, envolvem diversas áreas e funções paralelas e para que os mesmos gerem
melhores resultados, necessitam comunicar-se entre si, de maneira independente de
hierarquias tradicionais.
22
Então para ver a organização a partir de seus processos significa focar mais
na ação (a atividade de trabalho) do que na estrutura (as funções, os
departamentos). Para Souza, Dávila e Donadel (2009), a visualização horizontal da
organização focada no cliente, proporciona uma maneira mais efetiva de se
enxergar a cadeia de valor, facilitando o processo de decisão entre, por exemplo,
terceirizar ou não um processo.
Dessa maneira, para Cruz (2010), deve-se ter em mente que um fator
determinante para o sucesso da implantação da Gestão por Processos é o
envolvimento da alta direção da companhia no sentido de ser o grande incentivador,
patrocinando o projeto tanto no que diz respeito ao investimento em recursos
necessários, tais como softwares e infraestrutura, quanto na contratação,
qualificação e treinamento dos profissionais envolvidos no projeto. Também é
esperado da alta direção a participação na definição das metas e objetivos e sua
atuação em apresentações, ouvindo as pessoas, impondo regras e restrições,
avaliando resultados e cobrando soluções.
E também, Valle e Oliveira (2009) afirmam que antes de focar no processo
individualmente, a Gestão por Processos consiste de um ciclo de vida no qual a
organização é estudada desde a classificação e priorização dos principais
processos, que são aqueles que mais impactam o negócio, passando pelo
mapeamento dos mesmos. Só então, de acordo com Cruz (2010) são iniciadas as
fases de análise inicial das necessidades ou do problema, partindo em seguida para
a documentação, desenho e análise do processo atual e na sequência para a
análise, redesenho ou modelagem do novo processo onde também são definidas as
métricas e indicadores necessários para se controlar o novo processo e, finalmente,
a implantação do novo processo, com as melhorias identificadas para que então o
processo passe a funcionar na prática e então ser monitorado e avaliado com o
objetivo de identificar possíveis problemas e dificuldades e tratá-los com a
implementação de ações corretivas de acordo com os objetivos de melhoria
contínua.
23
Figura 2: Ciclo de vida BPM típico para processos com comportamento previsível.
Autoria: CBOK, 2013
Com isso, o Business Process Management – BPM Gerenciamento de
processos de negócios é uma abordagem disciplinada para identificar, desenhar,
executar, documentar, medir, monitorar, controlar e melhorar processos de negócios
automatizados ou não para alcançar os resultados pretendidos consistentes e
alinhados com as metas estratégicas de uma organização, (ABPMP, 2013),
demonstrado na Figura 2.
Dessa forma, por ABPMP (2013) Processos de negócio devem ser
gerenciados em um ciclo contínuo para que possa manter sua integridade e permitir
a transformação. Business Process Management - BPM implica em um
comprometimento permanente e contínuo da organização para o gerenciamento de
seus processos. Isso inclui um conjunto de atividades, tais como modelagem,
análise, desenho, medição de desempenho e transformação de processos. Tem que
existir uma continuidade, um ciclo com feedback, uma resposta sem fim para
assegurar que os processos de negócio sempre estejam alinhados com a estratégia
organizacional e ao foco do cliente.
Assim sendo, o planejamento é o ciclo de feedback que assegura a
manutenção do processo em meio à mudança no ambiente, permitindo a melhoria
contínua ao longo do tempo.
24
Análise de processos envolve a compreensão de processos de negócio,
incluindo sua eficiência e eficácia para atendimento dos objetivos para os quais
foram desenhados.
Então o desenho de processos é a concepção de novos processos de
negócio e a especificação de como esses funcionarão, serão medidos, controlados e
gerenciados.
Desta forma a Implementação trata os esforços de transição de um novo
processo de negócio “TO-BE” para operar em produção.
Neste sentido o Monitoramento e Controle é o gerenciamento de desempenho
de processos, é o monitoramento formal e planejado da execução de processos e o
acompanhamento do desempenho com o objetivo de apurar a eficiência e eficácia
dos processos.
Assim como o Refinamento é uma simulação, presente quando introduzimos
dados reais – e não apenas previsões – em nosso modelo.
O conceito de baixo acoplamento presente no conceito de BPM é uma
característica que mostra a necessidade das organizações de se tronarem mais
flexíveis, de acordo com os fenômenos externos que influenciam as atividades
internas e se mostram de suma importância na gestão empresarial (WEICK e
SUTCLIFFE, 2001).
Assim sendo, com o baixo acoplamento, é possível existir independência
entre tecnologias distintas, que podem coexistir de forma a melhorar um processo,
tornando seu produto final mais seguro e confiável atrelado a uma manutenção que
pode ser aplicada de forma simples, não havendo a necessidade de novas análises,
vastas codificações que demandam muito esforço e tempo. Podendo ser alterada
cada tecnologia no momento que for necessário.
25
3
3.1
TECNOLOGIAS EMPREGADAS
Ferramentas de gestão de processo
As ferramentas de processo também conhecidas por Business Process
Management Suites ou Systems - BPMS são conjuntos de sistemas que
automatizam a gestão de processos de negócio, tais como modelagem, execução,
controle e monitoramento. Tipicamente, inclui o mapeamento dos processos de
negócio ponta a ponta, desenho dos fluxos e formulários eletrônicos, definição de
workflow, regras de negócio, integradores, monitoramento em tempo real das
atividades e alertas.
Dessa forma é uma poderosa ferramenta de gestão, para garantir que os
processos estão sendo efetivamente executados como modelados, contribuindo
para os objetivos da organização.
E também existem várias ferramentas para modelagem Business Process
Management - BPM, dentre elas, as mais conhecidas são Bizagi, Bonitasoft e Intalio,
dentre essas a escolhida para esse projeto foi a ferramenta Bizagi por sua facilidade
de uso, simplicidade e por ser a mais completa dentre as três ferramentas
anteriormente citadas, como pode ser comprovada pela análise feita no trabalho final
Trennepohl (2014).
Dessa forma, o trabalho de Trennepohl (2014) evidencia a preferência pelo
uso da ferramenta Bizagi fazendo uma análise individual das três ferramentas
anteriormente citadas, com critérios de aceitação.
Portanto, uma das funcionalidades que pode ser destacada no Bizagi é de
gerar automaticamente em todo projeto Bizagi, todo o gerenciamento do fluxo do
processo, gerando também todos os gráficos necessários para análises gerais de
todo o fluxo.
Desta maneira a ferramenta Business Process Management Suite Bizagi
torna a forma de elaboração e concepção de um processo bem simples, pois já traz
toda interface gráfica pronta, sendo preciso apenas arrastar e soltar todos os
elementos que o desenvolvedor julgue necessário estar em uma determinada tela.
26
Então assim, estão prontos também em um projeto Bizagi toda a
implementação de um fluxo de processo, toda implementação de criação de
usuários e logins para os mesmos, somado a seus papéis bem definidos, toda a
implementação de persistência em banco de dados, não sendo necessário que o
desenvolvedor tenha grandes conhecimentos sobre criação de bancos de dados,
tabelas e persistência, pois isso encontra-se pronto em qualquer projeto Bizagi,
bastando apenas que o desenvolvedor defina na própria ferramenta os nomes de
tabelas e campos que serão criados, no estilo arrastar e soltar, sendo necessário o
mínimo de programação para a concepção de um processo com início, meio e fim.
Para tal, uma aplicação Bizagi traz consigo também totalmente pronta, sem
que seja necessário nenhuma programação, uma sessão de relatórios com
estatísticas e gráficos detalhados que podem ser vistos em um exemplo na figura 3.
Figura 3: Gráfico de tendência
Fonte: elaboração própria
E assim sendo, a Figura 3, traz um gráfico de análise de tendência de
ativações de processos em um intervalo de tempo, junto com outro gráfico de
atividade de processo, possibilitando o controle da quantidade de processos
iniciados, encerrados ou abortados em um intervalo de tempo, mais à direita
também é possível visualizar uma tabela com o resumo das atividades de processo
27
que pode ser salva no formato xls, nativamente fornecido pela ferramenta BPMS,
nesse caso o Bizagi.
Dessa maneira, a sessão de relatórios da ferramenta não se resume apenas
aos gráficos mostrados na figura 3, existe toda uma gama de relatórios gerados
automaticamente pela ferramenta, relatórios que possibilitam um controle total do
fluxo do processo do início ao fim, onde pode ser visualizado em tempo real, o
estado do processo, para ilustrar pode-se visualizar isso em mais um exemplo de
gráfico gerado automaticamente pela ferramenta BPMS na figura 4.
Figura 4: Gŕafico de caminhos frequentes no fluxo do processo.
Fonte: elaboração própria
Portanto, neste gráfico na Figura 4, gerado pela ferramenta BPMS, é possível
visualizar os caminhos frequentemente percorridos pelo fluxo do processo em uso,
trazendo um melhor controle do processo como um todo.
Para um melhor controle e analise do processo, a ferramenta BMPS usada
nesse
projeto
traz
muitos
outros
gráficos
gerados
e
implementados
automaticamente, de forma a deixar o desenvolvedor preocupado apenas com as
características do processo em si, tirando o foco da programação, tornando assim o
uso da ferramenta de fácil utilização para um usuário leigo em programação, criação
de banco de dados e desenvolvimento de interfaces gráficas.
28
Figura 5: Gráfico de fluxo gerado pelo Bizagi
Fonte: elaboração própria
O Bizagi1 é um modelador gráfico de processos muito utilizado no mercado,
onde o processo de negócio pode ser modelado e especificado utilizando uma
notação específica da metodologia, a notação BPMN.
Assim sendo, o modelador da notação BPM embutido contém vários
elementos necessários para a criação de um projeto BPM, os principais elementos
podem ser vistos nas imagens abaixo da Figura 6 até a Figura 9. Também serão
demonstradas algumas das principais fases utilizadas para a criação de um projeto
Bizagi, começando pela modelagem BPM mostrada na Figura 10 e a importação de
arquivo xml ou json para conexão Representational State Transfer - REST, Figura
11.
Então a Pool na Figura 6 é utilizada para representar uma atividade, é na pool
que ficarão todos os elementos da notação como tarefas, conectores, círculos de
representação inicial e final e outros, um conjunto de artefatos da notação que
inseridos na pool da Figura 6 representam um processo, que pode ser completo ou
parcial, alguns dos elementos serão explicados a seguir.
1
Portal Bizagi. Disponível em: <http://www.bizagi.com/>. Acesso em 20 de janeiro de 2015.
29
Figura 6: Pool de um projeto Bizagi.
Fonte: elaboração própria
Desta forma, a Lane na Figura 7 utilizada para organizar e categorizar os
papéis e responsáveis dentro de um pool/Atividade. É permitido somente um nome
de responsável por lane e pode-se inserir mais de um lane indicando o responsável.
Figura 7: Lane de um projeto Bizagi.
Fonte: elaboração própria
30
Assim sendo, o circulo inicial e conectores respectivamente utilizados para
simbolizar o início de um projeto Bizagi e conectores utilizados para mostrar a ordem
e sequência em que as atividades serão executadas, os conectores fazem a ligação
entre os elementos da notação em um fluxo BPM, como é demonstrado na imagem
a seguir, em que uma tarefa representada por um retângulo é conectada ao círculo,
que representa o início de um fluxo. Cada fluxo tem só uma origem e um só destino.
Figura 8: Circulo inicial e conectores de um projeto Bizagi
Fonte: elaboração própria
Assim, essas tarefas são sempre representadas por um retângulo, como pode
ser visualizado na imagem abaixo, são usadas para demonstrar uma ação da
atividade. Sempre utilizar o verbo infinitivo para descrever o nome da ação.
Figura 9: Retângulo de tarefa de um projeto Bizagi.
Fonte: elaboração própria
31
Com a representação de um exemplo de modelagem BPM no Bizagi,
utilizando os elementos de notação anteriormente citados. Na Figura 10, mostra-se
um TO-BE de um processo completo, demonstrando como um processo deve ser
depois de passar pelo ciclo de melhorias do Business Process Management – BPM
em um AS-IS que mapeia como o fluxo está sendo executado, no TO-BE é possível
observar como um processo deve ser, depois de automatizado.
Figura 10: Exemplo de modelagem BPM no Bizagi
Fonte: elaboração própria
Nesse sentido, a conexão REST no Bizagi é feita de forma gráfica, para isso é
preciso que seja importado para a aplicação um arquivo no formato xml ou json para
conectar os atributos de um serviço na web, um web service aos atributos da
aplicação a tela gráfica de importação do arquivo para a ligação REST, que são
mostradas na Figura 9 para demonstração.
32
Figura 11: Importação de arquivo xml ou json para conexão REST no Bizagi
Fonte: elaboração própria
3.2
Ruby2
É uma linguagem de programação de fácil entendimento com uma sintaxe
enxuta, adota-se na linguagem o termo sugar sintaxe para representar uma sintaxe
mais limpa, próxima a textual que se assemelha a um texto corrido. Linguagem que
usa um interpretador para rodar suas aplicações, a linguagem facilita a produtividade
a reutilização de código.
3.3
Rails3
É um framework para a linguagem Ruby, direcionado ao desenvolvimento de
aplicações web. Propicia a produtividade sustentável e prevê uma diversão
enquanto se programa segundo o site oficial Rails.
2
Portal Ruby. Disponível em:<https://www.ruby-lang.org/pt/>. Acesso em 04 de abril de 2015.
Portal Rails. Disponível em: <http://rubyonrails.org/>. Acesso em 03 de abril de 2015.
3
33
Então, o framework favorece a convenção ao invés da configuração,
permitindo a criação de códigos de forma elegante, limpa e com grande
produtividade.
E também é possível desenvolver aplicações web com as conhecidas telas de
cadastro, croods simples, em questão de minutos, o desenvolvedor não precisa se
preocupar com as configurações e pode se dedicar, quase que exclusivamente com
o desenvolvimento em si, gerando assim alta produtividade como simplicidade e
rapidez.
3.4
Gems
São pacotes de código em Ruby que podem ser instalados para estender ou
adicionar funcionalidades em sua aplicação. O arquivo Gemfile é onde especifica-se
as gems que pretende-se usar, permite especificar suas versões.
Dessa forma, o arquivo Gemfile.lock é, onde o Bundler guarda as versões
exatas que foram instaladas. Dessa forma, quando um projeto ou biblioteca é
instalado em outra máquina, utilizar o comando “bundle install”, o Bundler ira checar
o arquivo Gemfile.lock e instalar exatamente as mesmas versões, pois instalar
versões diferentes em máquinas diferentes pode causar erros no projeto.
Dessa forma, Gems são semelhantes a plugins, mas possuem diferenças, por
exemplo Gems são códigos Ruby que são instalados em uma máquina e ficam
disponíveis para todas as suas aplicações Ruby, como “rails” e “rake”, plugins
também são códigos Ruby, mas são instalados apenas na aplicação em que estão
inclusas.
Então a Gem pg é a interface Ruby para conexão PostgreSQL RDBMS 4. Ele
funciona com PostgreSQL5 8.4 ou mais, também é possível obter todas as
informações relacionadas a instalação e configuração da Gem no link.
Dessa forma a Gem devise é outra principal gem utilizada na aplicação, foi a
gem '‘devise’' utilizada para autenticação de usuários de forma simples de se
incorporar à aplicação. Instalação e configuração da gem '‘devise 6’' no link
encontrado no rodapé.
4
PostgresSQL. Disponível em: <http://www.postgresql.org/>. Acesso em 21 de janeiro de 2015.
GitHub inc. Disponível em: <https://github.com/ged/ruby-pg>. Acesso em 13 de abril de 2015.
6
GitHub inc. Disponível em: <https://github.com/plataformatec/devise>. Acesso em 27 de julho de
2015.
5
34
3.4.1
GEMS PARA CONEXÃO MICROSOFT SQL SERVER A UM S.O UNIX
FreeTDS7 é um conjunto de bibliotecas para sistemas operacionais que
utilizam Unix como base, a biblioteca do FreeTds depois de instalada, permite que
os programas possam se comunicar de forma nativa com Microsoft SQL Server, e
bancos de dados Sybase.
E de forma técnica, o conjunto de bibliotecas do FreeTDS, é uma versão open
source do Tabular Data Stream – TDS, que é um protocolo usado pelo banco de
dados Microsoft SQL Server, Sybase.
Portanto o FreeTDS também suporta protocolos dos mais variados e três
Application Programming Interface APIs para o acesso a ele. E também trabalha
com outros softwares, como Perl e PHP, e fornecendo acesso por essas linguagens
de programação.
Dessa maneira, a Gem tyny_tds8 segundo o site da mesma ela é uma forma
moderna, simples e rápida biblioteca do FreeTDS, direcionada para a linguagem de
programação Ruby fazendo o uso do DB-Library, que é uma interface em nível de
chamada que também possibilita que aplicativos em linguagem C possam realizar o
acesso ao Microsoft® SQL Server.
Assim sendo, o DB-Library foi a interface de acesso original que permitiu o
acesso das aplicações ao Microsoft® SQL Server, ela continua sendo muito
específica para esse banco de dados. Junto a gem tyny_tds é destinada a
possibilitar a conexão, consultas e iterações em bancos de dados Microsoft SQL
Server pela linguagem Ruby.
E tem como benefícios conversões automáticas para tipos primitivos do Ruby,
aliados a alta velocidade. Realiza a conversão de todos os tipos de dados SQL
Server para objetos Ruby de forma nativa.
Assim sendo, segundo o site da gem tyny_tds, ela é a única biblioteca Ruby
cliente que permite codificação cliente, de forma padronizada para UTF-8, quando
se conecta ao Microsoft® SQL Server. Também realiza a codificação de todos os
7
Portal FreeTDS. Disponível em: <http://www.freetds.org/>. Acesso em 05 de abril de 2015.
GitHub inc. Disponível em: <https://github.com/rails-sqlserver/tiny_tds>. Acesso em 13 de abril de
2015.
8
35
dados binários e strings de forma correta. E tem como foco se tornar o modo de
conexão de baixo nível para Microsoft SQL Server adapter for ActiveRecord.
Assim a gem activerecord-sqlserver-adapter 9 é a gem possibilita o
mapeamento pelo Object Relational Mapping ORM do Rails, é um adaptador de
servidor SQL para ActiveRecord usando SQL Server.
9
GitHub inc. Disponível em:
Acesso em 15 de abril de 2015.
<https://github.com/rails-sqlserver/activerecord-sqlserver-adapter>.
36
4
ESTUDO DE CASOS
No capítulo de estudo de casos é demonstrado todo o processo de
levantamento de requisitos através da elaboração de documentação uml, mapeando
as necessidades tecnológicas, também através de testes realizados com as
tecnologias usadas para que houvesse a certeza de que seria possível prosseguir
com o trabalho.
Desta forma a documentação UML foi usada para mapear as classes
utilizadas pela aplicação e também as classes do banco de dados preexistente que
viria ser usado nesse trabalho.
Assim no capítulo de estudo de casos também é demonstrado todos os
resultados
obtidos
durante
demonstrações de telas
o
processo
de
desenvolvimento,
através
de
que demonstram o funcionamento do web service
desenvolvido Ruby on Rails efetuando as tarefas do processo de transferência de
turno do técnico, juntamente, as demonstrações de telas da ferramenta BPMS, que
consome os serviços do web service e possibilita o gerenciamento de todo o
processo e também possibilitando a visualização de possíveis melhorias adotadas
pela metodologia BPM utilizada nesse trabalho. A fim de demonstrar o
desenvolvimento de um web service, a comparação e junção de duas tecnologias
distintas.
Dessa forma os web services, são aplicações que via internet ou intranet,
funcionam como aplicações servidoras disponibilizando serviços para máquinas
clientes,
comunicando-se
por
protocolos
padrões
da
internet,
como
o
Representational State Transfer REST, que é uma abstração da arquitetura World
Wide Web o popular www e também através do protocolo Simple Object Access
Protocol SOAP, utilizado para fazer a troca de informações estruturadas de forma
descentralizada. Esses serviços podem ser acessados em forma de Application
Programming Interface API, e podem ser disponibilizados em vários formatos, como
os mais conhecidos estão os formatos xml e json, através desses formatos, é
possível que uma máquina cliente consuma os serviços de um web service,
realizando a tarefa no servidor através de uma aplicação cliente.
37
Dessa maneira, o AS-IS é a documentação elaborada através de um
levantamento da situação do processo, representada em fluxo de diagrama da
situação atual do processo. Neste momento, também levantam-se os problemas ou
fragilidades, bem como as oportunidades de melhoria do processo. Funciona para
entender os objetivos do processo, no levantamento dos problemas, é possível
verificar a burocracia do processo, falta de planejamento, verificar atividades que
não agregam valor, prazos de execução do processo, riscos, ameaças externas,
custos do processo e muitos outros problemas existentes no processo.
Desta forma a modelagem AS-IS do processo de transferência de turno do
curso técnico é realizado atualmente, demonstrando também que o cliente do
processo de negócio, nesse caso o aluno, precisa realizar a maioria das atividades
fisicamente, e atividades essas, sem nenhum controle de fluxo, não existe uma
estimativa do tempo em que determinada atividade será realizada tão pouco existe a
certeza de que será realizada, a demonstração é feita utilizando a ferramenta Bizagi
Modeler nas Figuras 12 e 13.
Figura 12: Diagrama da análise AS-IS de transferência de turno do curso técnico
Fonte: elaboração própria
Também assim, a modelagem TO-BE representada na Figura 13, demonstra
como o processo de transferência de turno deverá ficar após automatização,
também demonstrando que as atividades dos clientes, que são alunos, são
38
reduzidas e somente são realizadas as atividades que são obrigatoriamente
presencial pelo mesmo, deixando a maioria das atividades a cargo do sistema, com
o TO-BE é possível, já nesta fase perceber as possíveis melhorias a serem
aplicadas ao processo, em relação ao diagrama AS-IS que demonstra as atividades
de forma burocráticas sendo em sua maioria, executadas de forma presencial,
demandando muito esforço e trabalho, principalmente pelo cliente final o aluno,
como pode ser observado, a maioria das tarefas foram automatizadas, a fim de
trazer agilidade ao processo, e tornando-o menos burocrático.
Assim, nas atividades automatizadas onde, tanto na raia de aluno quanto na
de coordenador eram feitas de forma presencial como demonstrado na Figura 12, já
na Figura 13 onde se demonstra o TO-BE, essas tarefas que possuem um ícone de
engrenagem, são as automatizadas, totalmente realizadas por um web service
através da ferramenta de gerência de processos.
Assim como, a primeira atividade automatizada denominada Verifica
Existência executa no web service uma atividade que verifica no banco de dados, se
a matrícula inserida no formulário anterior, realmente é uma matrícula existente no
banco de dados, em seguida a atividade Verifica Pendência, faz a verificação de
uma possível pendência no banco de dados da biblioteca, caso exista, impossibilita
o pedido de transferência, sendo direcionado para a tarefa com o nome de Possui
pendência e em seguida finalizando o fluxo. Se não houver pendência, o fluxo segue
e passa por uma atividade automatizada que recupera o nome do aluno solicitante
do pedido de transferência, através do número de matrícula digitado no primeiro
passo.
Assim seguindo o fluxo de aluno existente e sem pendência na biblioteca, a
próxima atividade automatizada no TO-BE, a atividade com o nome Busca dados,
recupera do banco de dados Academico os dados da turma e turnos que o aluno
solicitante está.
E em prosseguimento ao fluxo, os dados recuperados na atividade anterior
são mostrados ao aluno e em seguida de forma automatizada em outra tarefa
denominada como Pedido realizado, pega os dados da turma e turno onde o aluno
se encontra, junto com os dados da opção de turno e turma disponíveis para este
aluno e monta um pedido de transferência que será confirmado pelo aluno na
39
próxima atividade em um formulário chamado de confirmação de pedido. Após
confirmar o pedido, a ferramenta BPMS automaticamente passa para a próxima
atividade que executa através do web service uma persistência de dados, gerando o
pedido de transferência, indo em seguida para uma atividade de responsabilidade do
coordenador que através de um Aceite como denomina a próxima atividade que em
um formulário recebe o aceite de uma enturmação que será realizada na última
tarefa automatizada, ou negada indo direto para a tarefa de Enturmação indeferida e
em seguida encerrando o processo.
Sendo assim, aceita a enturmação o fluxo se encaminha para a atividade
Enturma que através do web service, faz a transferência do pedido realizado pelo
aluno, com um feedback de que a enturmação foi efetivada na tarefa enturmação
deferida, em seguida finalizando o processo com uma transferência realizada com
sucesso.
Figura 13: Diagrama da análise TO-BE de transferência de turno do curso técnico
Fonte: elaboração própria
Também na figura 14 é mostrada uma representação em Unified Modeling
Language - UML da aplicação com todas as suas classes, a classe Find é
responsável pela busca e validação dos dados do aluno, com o pedido efetuado e
finalizando o fluxo na parte do aluno, automaticamente o status do pedido muda
40
para um novo pedido, ficando o fluxo de um novo pedido sendo manipulado pela
classe Transfer.
Dessa forma, se o pedido for indeferido por um coordenador, os dados do
pedido automaticamente serão manipulados pela classe Refused_Transfer.
Quando o pedido é deferido, os dados do pedido de transferência são
manipulados
pela
classe
Performed_Transfer,
assim,
essas
classes
são
responsáveis por realizar todas as atividades do processo de transferência de turno
do técnico, desde o pedido, até a enturmação.
Figura 14: Uml da aplicação de tranferência de turno.
Fonte: elaboração própria
Também, na Figura 15, uma representação em UML de todas as classes de
modelo do banco de dados legado que está sendo mapeado pela aplicação de
transferência, as tabelas são preexistentes e povoadas por dados do banco de
dados Academico.
41
Nenhuma dessas tabelas foi gerada pela aplicação, estão sendo apenas
mapeadas e utilizadas pela aplicação de transferência de turma de forma a
possibilitar todas as operações em bancos de dados, tais como recuperação,
alteração, inserção e deleção de dados.
Figura 15: Classes mapeadas pelo web service
Fonte: elaboração própria
Para isso, as classes representadas na Figura 15 são apenas classes em
nível de modelo, utilizadas apenas para a conexão com o banco de dados externo e
legado, banco de dados Academico, classes usadas apenas para buscar os dados,
já que a aplicação faz uso de dois bancos preexistentes.
De forma que a classe Pessoa é responsável pela conexão com a tabela
Pessoas no banco de dados Academico. Com o mapeamento dessa classe é
possível que a aplicação através do Object relational mapping - ORM do Rails possa
mapear todas as colunas contidas na tabela automaticamente, sendo preciso ser
configurado manualmente na classe apenas a chave primária da tabela em questão.
42
Assim sendo, a classe Aluno é responsável pela conexão com a tabela Alunos
no banco de dados Academico. A classe Aluno é usada pela aplicação para mapear
a tabela Alunos contendo alguns métodos em sql para a busca dos dados utilizados
internamente pela aplicação, com o auxílio do ORM do Rails, é preciso configurar
manualmente apenas a chave primaria da tabela em questão e a chave estrangeira
da tabela de relacionamento.
Tanto quanto, a classe Matrícula é responsável pela conexão com a tabela
Matriculas que contém os dados referentes a matrícula de um aluno, e são utilizados
pela aplicação.
Assim sendo, aplicação mapeia em nível de modelo implementando alguns
métodos que utilizam sql para buscar dados da matrícula de um aluno com o auxílio
do ORM do Rails da mesma forma que foi explicada anteriormente.
E dessa forma, a classe Turma é responsável pelo mapeamento da classe
Turmas no banco de dados Academico, utilizando alguns métodos em SQL para
buscar os dados refentes a um aluno pertencente a uma determinada turma, e que
fez uma solicitação de transferência de turno. Esses dados referentes a turma em
que o aluno solicitante está no momento, e a turma para que o aluno deseja a
transferência, dados esses que são recuperados na tabela Turmas, através da
classe Turma, que faz seu mapeamento na aplicação para gerar um novo pedido de
transferência, essas são as 4 principais classes responsáveis pela transferência de
turno.
No tocante, a classe biblioteca mapeada pela aplicação de transferência de
turno, se conecta a tabela nada_consta do banco de dados preexistente da
“Biblioteca”, banco esse fictício, pois não foi liberado acesso ao banco de dados da
biblioteca do Instituto Federal Fluminense, para tal foi preciso ser criada uma
abstração do banco real para simular o uso do banco da biblioteca da instituição,
essa classe apenas faz o mapeamento para conexão a tabela nada_consta, sem a
necessidade de conhecimento de toda tabela, ela conhece apenas o id da tabela,
deixando o resto para a responsabilidade do ORM do Rails que através do id mapeia
toda a tabela do banco pré existente.
43
Dessa forma, para a realização do projeto foram utilizadas bases de dados
reais do Sistema Academico que utiliza o Microsoft Sql Server. Para tal, testes de
conexão entre uma aplicação simplista em Ruby on Rails que nativamente não se
conecta a uma base de dados Microsoft Sql Server.
Portanto, rodando em um Sistema Operacional Linux foram realizados testes,
esses envolvendo configurações realizadas no Sistema Operacional tanto no Linux
rodando a aplicação em Ruby on Rails quanto no Sistema Operacional Windows 7
utilizado como Servidor, como Base de dados Microsoft Sql Server e internamente
na aplicação. Também pode ser visualizado na Figura 16 um teste de conexão ao
banco de dados Academico onde todas as operações de crood estão funcionando.
Figura 16: Index com dados alterados no Microsoft Sql Server.
Fonte: elaboração própria
Assim sendo, a aplicação para transferência de turno de cursos técnicos foi
desenvolvida primeiramente em Ruby on Rails, as telas de front-end a seguir
mostram a interface gráfica visualizada pelos usuários consumindo os serviços do
web service, em html, que posteriormente fornecerá, após adaptações serviços no
formato xml para acesso e consumo externo por uma ferramenta Business Process
Management Suite.
44
E dessa maneira, a primeira tela da aplicação Figura 17, mostra a tela de
login gerada pela gem '‘devise’' que possibilita a criação de um novo usuário, login
na aplicação, recuperação de senha e pedido de confirmação de e-mail.
Figura 17: Tela de verificação de pendências na biblioteca.
Fonte: elaboração própria
Assim também, na tela a seguir, representada pela Figura 18, após o login de
usuário é permitido o acesso para usuários do tipo aluno e coordenador, com acesso
exclusivo para cada tipo de usuário, não possibilitando o acesso de um aluno ao
conteúdo restrito ao coordenador.
Figura 18: Tela de acesso, após o login
Fonte: elaboração própria
45
Como sendo, a tela ilustrada pela Figura 19, mostra a tela inicial, para um
usuário do tipo aluno que deseja solicitar uma transferência de turno para um curso
técnico. Para que o processo de solicitação seja iniciado, é preciso que o aluno não
possua pendências na biblioteca. Então essa tela é para verificação de pendências
na biblioteca, bastando digitar seu número de matrícula contido em sua carteirinha,
se o aluno possuir alguma pendência, lhe será informado na mesma tela, que não
pode continuar com o processo de solicitação de transferência.
Assim sendo, se não houver nenhuma pendência após inserido o número de
matrícula, o processo automaticamente direciona o usuário para a próxima tela
seguindo o fluxo do processo de transferência.
Figura 19: Tela de verificação de pendências na biblioteca.
Fonte: elaboração própria
E então, demonstrando na Figura 20, é possível visualizar o turno em que
está atualmente e o turno disponível para transferência, após a visualização do turno
disponível, se o usuário quiser prosseguir com o processo de transferência, basta
clicar em próximo para continuar o fluxo e gerar automaticamente o pedido de
transferência.
46
Figura 20: Tela para visualização de turno disponível.
Fonte: elaboração própria
Então assim, na Figura 21, é demonstrado que a solicitação de transferência
foi realizada com sucesso, essa tela funciona apenas com auxílio visual para
informar o término do fluxo do processo na parte do aluno.
Figura 21: Tela de confirmação de pedido de transferência realizado.
Fonte: elaboração própria
Portanto nessa tela de visualização exclusiva para um usuário do tipo
coordenador, representada pela Figura 22, onde somente um usuário desse tipo
47
pode visualizar essas informações, não sendo possível que um usuário do tipo aluno
possa visualizar este conteúdo. Nessa tela é possível visualizar todos os pedidos de
transferência realizados por alunos e acessar o pedido no link “mostra pedido” que
redirecionará para visualização do pedido com todos os dados complementares. Na
tela a seguinte, esse redirecionamento o levará para a visão view mostrar show.
Figura 22: Tela para visualização de todos os pedidos de transferência.
Fonte: elaboração própria
Assim também, na ilustração representada pela Figura 23 são apresentados
os dados de um pedido de transferência, visualizados apenas por um usuário do tipo
coordenador, para realizar a transferência requerida pelo aluno deve-se seguir o
fluxo do processo clicando no link próximo, sendo redirecionado automaticamente
para a tela seguinte, continuando o fluxo do processo.
Figura 23: Tela para visualização dos dados de um pedido.
Fonte: elaboração própria
Dessa forma, Como mostrado na Figura 23 e dando seguimento ao estudo de
caso, são visualizados os dados da transferência com o turno atual do aluno e para
48
qual turno será transferido na Figura 24. Para que seja deferida ou indeferida a
transferência é preciso que exista uma justificativa do coordenador, se não houver
não é possível deferir ou indeferir a transferência. Após inserir a justificativa e clicar
em Ok, automaticamente a transferência será realizada no banco de dados
Academico. E será redirecionado para uma tela de confirmação da transferência.
Figura 24: Tela para confirmação da transferência.
Fonte: elaboração própria
Também, como pode ser visto na Figura 25, é possível visualizar a
confirmação de transferência e visualizando para onde será realizada a
transferência, essa tela é o final do fluxo de transferência de turno de um aluno que
solicitou transferência. O fluxo será reiniciado no momento em que houver uma nova
solicitação de transferência de turma realizada por um aluno, com isso podemos
verificar que o fluxo de transferência de turno está completo, sendo necessário
posteriormente a adaptação para que o web service forneça todos esses serviços
em formato xml para que seja consumido por uma aplicação externa que faça o
controle do processo de transferência em todo seu fluxo.
49
Figura 25: Tela de confirmação de transferência realizada.
Fonte: elaboração própria
Dessa forma, o web service que foi desenvolvido neste projeto, foi
implementado em linguagem de programação Ruby com a utilização de seu
framework Rails. Linguagem e framework que posteriormente teve seu código
adaptado para fornecer serviços no formato xml, como era previsto durante o
desenvolvimento do processo de transferência de turno, quando a aplicação apenas
acessava os serviços nativamente no formato html. Linguagem e framework são de
fácil compreensão e seguem os paradigmas de MVC, também facilita o uso de
métodos ágeis durante o desenvolvimento, possibilidade de reutilização de códigos
prontos que podem ser incorporados ao seu projeto Rails de forma simples através
da utilização de gems.
Assim sendo, com a finalização do web service, fornecendo todos os serviços
necessários, no formato xml, como pode ser visto na Figura 26, foi iniciada a
elaboração e implementação dos processos na ferramenta BPMS Bizagi, de forma
rápida e simples foram criadas as telas relacionadas a serviços que trazem
informações ao usuário, a conexão dos serviços foi feita via Representational State
Transfer – REST que de forma simples possibilitou a conexão ao web service que
disponibiliza os serviços necessários para a realização do pedido de transferência
de turno de um aluno, de um curso técnico, junto com os serviços necessários para
50
transferência no banco de dados Academico, realizado por um coordenador
autorizado.
Figura 26: Exemplo de resposta xml utilizada no projeto.
Fonte: elaboração própria
De forma que, prosseguindo com o estudo de casos, depois da
implementação do web service com o processo em funcionamento, foi preciso
verificar o funcionamento do web service rodando a partir da ferramenta BPMS.
Para tal, testes foram realizados, com dados reais do banco de dados Academico.
Usando um número de matrícula real contida no banco, foi possível então, realizar o
fluxo do processo de transferência pela ferramenta BPMS que além de realizar o
processo, deve gerenciá-lo e fornecer, uma melhor visualização do processo para
todos os envolvidos. Também trazendo uma visualização de melhorias contínuas
previstas pelo BPM.
Desta maneira, nas Figuras que vão de 27 a 31, será demonstrado parte do
fluxo do processo realizado pela ferramenta BPMS consumindo os serviços do web
service e assim gerenciando-o.
51
Como na figura 19 que o processo de transferência de turno feito pelo web
service, e visualizado em html, sem o uso de uma ferramenta de controle de
processo, onde as tarefas são apenas executados, mas sem controle algum do
processo. Na Figura 27 é demonstrado a mesma tela da Figura 17, mas sendo
utilizada pela ferramenta de gerenciamento de processos, onde é possível ter
controle do fluxo, oque não existia anteriormente. Controle esse que será
demonstrado na Figura 31.
Figura 27: Tela de inserção do número de matrícula do aluno.
Fonte: elaboração própria
De tal forma que, na Figura 20, onde temos os dados de um turno disponível
para transferência, na Figura 28 temos os mesmos dados de uma forma mais
enxuta, como apenas sendo visualizado pelo aluno, os dados necessários para sua
transferência.
Então nesse passo do processo, se o aluno quiser realizar o pedido de
transferência, basta ele clicar em próximo para que seu pedido de transferência seja
gerado pelo serviço do web service, que está sendo consumido pela ferramenta que,
ao mesmo tempo que realiza o fluxo do processo, também gerencia todo ele,
gerência essa que é representada visualmente na Figura 31.
52
Figura 28: Dados de um pedido de traferência pela ferramenta BPMS.
Fonte: elaboração própria
Como sendo, nessa tela representada pela Figura 29, pode-se verificar a
resposta que é emitida ao aluno solicitante de uma transferência, quando ele opta
por continuar o fluxo do processo, agora gerenciado pela ferramenta BPMS,
controlando todo o processo.
Assim quando, o aluno nessa tela clicar em próximo, ele terá finalizado a sua
parte do processo. A ferramenta dará seguimento com o restante do processo,
encaminhando a tarefa para um próximo usuário cadastrado no sistema, como
coordenador.
E
desta
forma,
a
tarefa
gerenciada
pela
ferramenta
é
movida
automaticamente para o usuário que seja do tipo coordenador, que esteja sem
tarefas ou como o menor número de tarefas pendentes.
Figura 29: Resposta visual ao realizar um pedido de transferência.
Fonte: elaboração própria
53
Portanto, a área gerada pela ferramenta BPMS, que gerencia todo o
processo, se conectando e consumindo os serviços do web service. Esta Figura 30
mostra a área exclusiva para o usuário do tipo coordenador, que é o único que pode
realizar o aceite de um pedido de transferência ou negá-lo dentro do processo.
E desta maneira, a própria ferramenta, direciona automaticamente o pedido
realizado por um aluno para um usuário do tipo coordenador.
Também assim, nessa tela também é possível visualizar um status da tarefa
representado por um círculo na cor verde, indicando que a tarefa está dentro do
prazo para ser executada, esse status pode variar entre a cor amarela e vermelha.
Que respectivamente representam que a tarefa está com o tempo para realização
próximo de se esgotar e tempo esgotado, tempo esse que pode ser previamente
configurado na ferramenta, a fim de limitar o tempo que uma tarefa deve ser
executada.
Figura 30: Área do coordenador, visualização de pedidos de alunos
Fonte: elaboração própria
Desta forma, a ferramenta para facilitar o acompanhamento do fluxo do
processo gerenciado por ela, permite que de forma simples seja visualizado o
caminho percorrido pelo processo e onde o processo se encontra parado,
visualizado na Figura 31.
Através dessa visualização gerada automaticamente pela ferramenta é
possível além de visualizar onde a tarefa se encontra parada, como também na
responsabilidade de qual usuário essa tarefa se encontra e a quanto tempo.
Com isso é possível gerenciar todo o processo, tanto as tarefas
automatizadas quanto as tarefas que devem ser executadas por pessoas, limitando
tempo, área de atuação e responsabilidade, garantindo a integridade do processo
54
que pode ser de fácil visualização, proporcionando um maior entendimento do
processo, por todos os integrantes do mesmo.
Figura 31: Visualização do caminho do processo.
Fonte: elaboração própria
55
5
ANÁLISE DE RESULTADOS
Comparando as duas tecnologias utilizadas, iniciando pela mais convencional
usada nesse projeto a linguagem de programação Ruby, junto com seu framework
Rails, foi possível perceber que para esse tipo de desenvolvimento por mais que a
linguagem e a metodologia do framework visem agilidade e facilidade na
programação, nota-se que é preciso conhecimentos prévios e domínio da
linguagem, de configurações do framework Rails, junto com conhecimentos de web
services e banco de dados.
Assim nota-se que um leigo sem os conhecimentos prévios, teria dificuldades
em conceber uma aplicação igual a desenvolvida neste projeto, utilizando a
programação convencional aplicada nesse projeto.
Dessa forma, a análise de resultados de todas as atividades realizadas
durante o desenvolvimento do projeto, vem para demonstrar as qualidades, junto
com o conhecimento adquirido para cada atividade realizada, em cada metodologia
de desenvolvimento.
Para tal a aprendizagem da linguagem de programação Ruby on Rails,
demandou-se um tempo maior que no aprendizado da utilização BPMS, vale
ressaltar que o desenvolvedor não tinha familiaridade com nenhuma das duas
tecnologias no início do trabalho. O conhecimento foi adquirido ao longo do
desenvolvimento no trabalho.
E assim sendo, na linguagem Ruby foi necessário o aprofundamento na
sintaxe e na configuração do framework Rails, respectivamente com estudos mais
detalhados para cada uma deles, seguindo para a próxima atividade do trabalho em
Ruby on Rais, mostrou-se necessário a pesquisa das gems que seriam utilizadas no
projeto. Até que todas as gems fossem definidas, não seria possível avançar para a
terceira atividade.
Com o Mapeamento de banco de dados que por sua vez foi a atividade onde
foram mapeadas todas as tabelas a serem utilizadas no projeto, nessa atividade é
que foram avaliadas quais tabelas do banco de dados Academico seriam mapeadas
e utilizadas no projeto. Continuando para a quarta atividade foram definidos e
criados os bancos de dados e tabelas para uso do web service, bancos e tabelas
56
que armazenam os dados obtidos no banco de dados Academico, mapeado na
atividade anterior.
Assim, nessa quinta atividade resume-se ao desenvolvimento da aplicação
em Ruby on Rails, ou, seja no desenvolvimento do web service que fornece serviços
no formato xml e as telas de front-end da aplicação.
Seguindo com a próxima atividade, a sexta atividade e última foi feita a
adequação das respostas no formato xml para que fossem acessíveis a que uma
aplicação externa consumisse os serviços desse web service.
E então, na atividade de aprendizagem da ferramenta foi preciso um rápido
conhecimento da utilização, instalação e configuração da ferramenta, que se
mostrou simples, feito isso, seguiu-se para a segunda atividade. Na atividade de
criação de um diagrama AS-IS que mostra como o processo de transferência de
turno do técnico é executado no memento, ou seja antes de passar por um ciclo de
melhorias como o previsto pelo Business Process Management – BPM.
De forma que após mapeado todo o fluxo de processo através do AS-IS na
terceira atividade, é necessário passar o diagrama pelo ciclo de melhorias BPM.
E no diagrama TO-BE é possível visualizar como o processo após passar pelo
ciclo de melhorias deve ficar com as automatizações implementadas.
De forma que, em uma seguinte atividade se dá o desenvolvimento de todo o
processo após feito o diagrama TO-BE, a partir desse diagrama que prevê as
melhorias e automatizações do processo, podemos configurar todas as tarefas do
processo para que consumam os serviços externos no formato xml gerado pelo web
service, que foi desenvolvido anteriormente em Ruby on Rails, na quinta atividade
realizada a conexão dos serviços no formato xml vindos do web service, a cada
tarefa da ferramenta Business Process Management Suite - BPMS, na sétima
atividade, não foi preciso desenvolver o módulo de login de usuário, pois o mesmo já
se encontra pronto em todo projeto Bizagi da ferramenta BPMS.
Portanto, o esforço necessário para o desenvolvimento da aplicação em Ruby
on Rails como web service, tanto quanto o esforço desempenhado para o
desenvolvimento do fluxo do processo na ferramenta BPMS, sendo essa o Bizagi.
57
E durante a primeira etapa de análise do processo de transferência de turno
do técnico foi necessário criar uma análise AS-IS utilizando a ferramenta Bizagi para
mapear o processo como executado no momento. De forma simples o Bizagi
fornece todos os elementos necessários para a criação AS-IS, e em seguida da
mesma forma a elaboração de um TO-BE com as possíveis melhorias e
automatizações do processo também feito pela ferramenta Bizagi.
Dessa maneira, em seguida a aprendizagem e domínio da linguagem Ruby
utilizando seu framework Rails foi necessário um conhecimento mais aprofundado
sendo gasto muitas horas para o domínio necessário e desenvolvimento do web
service, contudo após o conhecimento obtido mostrou-se fácil aplicá-los ao
desenvolvimento, em contrapartida a instalação, configuração e utilização da
ferramenta Bizagi, mostrou-se muito simples, tendo poucas horas gastas nesse
processo.
Assim sendo, durante todo processo de desenvolvimento do web service,
foram encontradas algumas dificuldades que custaram o uso de algumas horas a
mais como o caso envolvendo o mapeamento do banco de dados Academico onde
não havia um conhecimento da organização e relacionamento das tabelas, sendo
necessário verificar o padrão de relacionamento e padrão de nomes de chaves
estrangeiras e primarias, para um mapeamento de todas as tabelas que acessariam
o banco de dados. Outra dificuldade encontrada foi a utilização de múltiplos bancos
de dados simultaneamente, pois o web service é conectado a três bancos de dados
que trocam dados entre si.
E desta forma, ao mesmo tempo não foi possível ter acesso ao banco de
dados da biblioteca onde o web service deveria verificar alguns dados necessários a
transferência de turno do técnico, para isso, então foi criada uma abstração do
banco de dados da biblioteca simulando alguns dados para validar a abertura de um
pedido de transferência, após o mapeamento, algumas adaptações foram
necessárias para o funcionamento da aplicação em Ruby on Rails como web service
adaptações que se mostraram simples através de métodos fornecidos pelo
framework Rails, que fornecem serviços em html, xml ou qualquer outro formato que
seja necessário utilizar.
58
E também, após o desenvolvimento do web service fornecendo todos os
serviços necessários a conexão da aplicação BPMS foram encontrados alguns
problemas iniciais que previam o uso do formato json para fornecer os serviços, não
sendo possível a conexão através desse formato e tendo total sucesso ao utilizar o
formato xml para a conexão aos serviços do web service à ferramenta BPMS.
59
6
CONCLUSÃO
Nas organizações atualmente são buscadas, constantemente soluções de
software que consigam auxiliá-las, permitindo que exista um diferencial competitivo
ainda maior com o atendimento ao cliente.
E tendo em vista, esse novo cenário acabou tornando a tecnologia cada vez
mais responsável pelo sucesso das organizações e é nesse contexto que o BPM
aparece como uma das melhores formas de promover essa interação.
Nesse contexto essas soluções de software também podem ser aplicadas a
organizações sem fins lucrativos, como uma Instituição Federal de ensino, para que
existam melhorias em seus processos.
Assim, na atualidade existem variedades de ferramentas que favorecem o
controle e o desenvolvimento das organizações. O grande desafio, é possibilitar que
os profissionais de TI consigam se aproximar da visão de negócio da empresa e
integrem a tecnologia com o ambiente de processos de negócio, sem contar ainda,
com a dificuldade em escolher a ferramenta certa para cada organização.
De forma que o BPM, por sua vez, tem como um de seus principais objetivos
a otimização dos processos de negócio. Para isto, o BPM fornece tecnologias,
métodos e ferramentas que são utilizados em conjunto pela área de TI e de
negócios, aumentando a satisfação do cliente, a qualidade do produto e melhorando
as operações de forma rápida e contínua.
Portanto em uma primeira análise, após o estudo de caso foi possível concluir
que não a impedimento para a escolha do Ruby on Rails, para o desenvolvimento do
web service do projeto pois, através dos testes foi evidenciado que não importa qual
o banco de dados ou em qual servidor esse banco de dados está rodando, seja um
banco de dados Microsoft SQL Server instalado em um sistema operacional
Windows ou um banco de dados instalado em um servidor com sistema operacional
linux.
60
E sendo assim, possível fazer a conexão e mapeamento de tabelas utilizando
o Ruby on Rails através de suas gems a qualquer banco de dados em qualquer
sistema operacional.
Da mesma forma, em uma análise mais profunda deste trabalho é possível
verificar que o uso da ferramenta Bizagi para gerenciamento, controle e melhoria do
processo
mostra-se
totalmente
eficiente.
Com
sua
facilidade
de
uso
e
desenvolvimento, não sendo necessário que um desenvolvedor utilizando essa
ferramenta tenha grandes conhecimentos em alguma linguagem de programação ou
gerenciamento e criação de bancos de dados para desenvolver toda a notação
Business Process Management, e um gerenciador completo para um processo
totalmente funcional, contudo por existirem várias ferramentas suites do BPM, nesse
trabalho foi desenvolvido em linguagem open source um web service que realiza
todas as tarefas do processo de transferência de turno do técnico e disponibiliza
seus serviços em formato xml para ser utilizado em conjunto como a ferramenta
BPMS.
E como demonstrado nesse trabalho que a ferramenta Bizagi traz consigo
inúmeras facilidades e recursos totalmente prontos, por exemplo toda a parte de
gerenciamento, controle e monitoramento de processos, aliadas a facilidade de
manutenção, onde é possível, se necessário, alterar o processo em tempo real,
reutilizando qualquer atividade do processo, ou simplesmente mover a atividade
para a etapa do processo que for necessária. Podendo também de forma simples
alterar a ligação de uma tarefa para outra, assim alterando de forma simples o fluxo
do processo, sem que tenha a necessidade de desenvolver um novo fluxo ou uma
nova atividade.
Nesse sentido, se em algum momento o desenvolvedor precisar mudar de
tecnologia nesse caso o Bizagi, essa mudança será de forma descomplicada, pois
os serviços em si são realizados pelo web service que tem seus serviços acessados
e consumidos pela ferramenta em questão o Bizagi via REST gerenciando todo o
processo.
Dessa forma, como proposto inicialmente nesse trabalho, buscando verificar o
uso de uma ferramenta BPMS em comparação com uma ferramenta feita em
programação nos moldes convencionais, para que fosse possível fazer uma
61
comparação entre as duas metodologias em se tratando de desenvolvimento,
conhecimento necessário no trabalho, foi possível evidenciar que o uso de uma
ferramenta BPMS mostra-se muito útil para gerenciar, controlar e verificar melhorias
para o processo, também por sua facilidade de manutenção.
E também durante o processo de desenvolvimento foi possível verificar os
prós e contras de cada metodologia distinta e perceber que usando as duas em
conjunto pode-se obter um ótimo resultado para o uso em processos sendo possível
ter um baixo acoplamento entre os serviços do web service desenvolvido em Ruby
on Rails, uma linguagem e framework open source, e a ferramenta Bizagi que faz
todo o gerenciamento do fluxo de processo de forma completa e segura.
E também nesse sentido, o baixo acoplamento entre as duas tecnologias
possibilita utilizar tanto a ferramenta Bizagi que se mostrou extremamente fácil de
desenvolver e utilizar, por trazer consigo uma gama de ferramentas prontas para
análise e gerenciamento de todo o fluxo do processo, quanto qualquer outra
ferramenta BPMS se necessário. Também permite a troca da tecnologia do web
service, por qualquer outra que seja necessária.
62
7
REFERÊNCIAS
ABPMP. BPM CBOK: Guia para o Gerenciamento de Processos de Negócio - Corpo
Comum de Conhecimento. Versão 3.0: ABPMP, 2013.
CAPOTE, Gart. Guia Para Formação de Analistas de Processos. Rio de Janeiro: Ed.
Bookess, 2011.
SMITH, H. e FINGAR, P. Business Process Management: the third wave. Tampa, Fl,
USA: Meghan-Kiffer Press, 2007.
VALERIANO, Dalton L. Gerenciamento Estratégico e Administração por Projetos.
Makron Books, São Paulo-SP. 2001. 295p.
GONÇALVES, José Ernesto Lima. As empresas são grandes coleções de processo.
CRUZ, Tadeu. BPM & BPMS - Business Process Management & Business Process
Management Systems.1. ed. : Brasport, 2008. 292 p. il.
CRUZ, Tadeu BPM & BPMS - Business Process Management & Business Process
Management Systems. Rio de Janeiro 2009 2ª edição.
CRUZ, Tadeu BPM & BPMS: Business Process Management & Business Process
Management Systems – 2.ed. – Rio de Janeiro: Brasport, 2010, 272 p.
ERL, T.; Carlyle, B.; Pautasso, C; Balasubramanian, R. (2012) “SOA with REST:
principles, patterns & constraints for building enterprise solutions with REST”.
Prentice Hall.
KARANDE, A.; Karande, M. e Meshram, B.B. (2011) “Choreography and
orchestration using business process execution language for soa with web services”.
IJCSI International Journal of Computer Science Issues, Vol. 8, Issue 2, Mar.
Análise comparativa das principais ferramentas gratuitas de business process
management (BPM), Curso de ciência da computação, p.51.
63
VALLE, R.; OLIVEIRA, S. Análise e Modelagem de Processos de Negócio – Foco na
notação BPMN São Paulo: Atlas, 2009.
OLIVEIRA, R - Gestão de Processos – BPM. Mar. 2010. Disponível em:
http://www.ev.org.br. Acesso em: 20. Março. 2011.
WEICK K. E. e Sutcliffe K. M. (2001) “Managing the unexpected: assuring high
performance in an age of complexity”. San Francisco, CA: Jossey-Bass
FREIRE et al. Proposta de Modelo de Processo de Desenvolvimento de Software
Orientado
ao
Gerenciamento
de
Processo
de
Negócio.
Disponível
em:
<http://essentiaeditora.iff.edu.br/index.php/citi/article/view/6351/4062>. Acesso em:
20 de Abril de 2015.
Análise comparativa das principais ferramentas gratuitas de business process
management (BPM), Curso de ciência da computação, p.51.
TRENNEPOHL
2014,
Biblioteca
Digital
da
UNIJUÍ.
Disponivel
em:
<http://bibliodigital.unijui.edu.br:8080/xmlui/handle/123456789/2719>. Acesso em 19
de fevereiro de 2016.
64
8
APÊNDICE
CONFIGURAR RAILS NO LINUX PARA ACESSAR SQLSEVER NO SERVIDOR
WINDOWS
CONFIGURAR NO SERVIDOR WINDOWS
1. Usar acesso de usuário e senha no Microsoft SQL Server, não usar
autenticação do WINDOWS.
NO SQL SERVER CONFIGURATION MANAGER
2. Configurar porta 1433
3. Configurar TCP IP igual ao da máquina
4. Em ferramentas administrativas->Administrador de fonte de dados ODBC->
5. Fonte de dados do sistema-> configurar nome do banco 'Academico', servidor'
nes-servidor', usuário e senha.
CONFIGURAÇÃO LINUX E APLICAÇÃO
INSTALAR FREETDS
1. Baixar do site http://www.freetds.org/ a versão 0.91 em Stable Release
2. cd ~/Downloads/
3. tar xvfz freetds-stable.tgz
4. cd freetds-0.91
5. ./configure
6. make
7. sudo make install
Obs.: Instalar Rails na versão 4.1.0 só funciona corretamente nessa versão por
enquanto.
CONFIGURAR O SEGUINTE ARQUIVO
Obs.: Adicione a seguinte configuração ao final do arquivo freetds.conf. onde host é
o IP do servidor que deseja acessar, com a porta configurada em 1433 e o tds
version copie e cole do jeito que está mesmo.
65
1. $ sudo gedit /usr/local/etc/freetds.conf
[nes-servidor]
host = 192.168.0.101
port = 1433
tds version = 7.1
INSTALAR RAILS
1. $ gem install rails --version=4.1.0 --no-ri –no-rdoc
Obs.: Instalar na versão 4.1.0 a gem 'activerecord-sqlserver-adapter' só
funciona corretamente nessa versão por enquanto. se houver outra versão
instalada no seu ambiente de desenvolvimento pode instalar junto, mas na
hora de criar a apicação tem que criar setando a
versão, da seguinte forma:
2. Setar versão: $ rails _4.1.0_ "nome_da_aplicação" sem as aspas.
NA APLICAÇÃO
1. Gems necessárias para a conexão:
2. gem 'tiny_tds'
3. gem 'activerecord-sqlserver-adapter'
Obs.: Prefiro deixá-las no arquivo Gemfile da aplicação.
4. configurar database.yml
Obs.: Deve alterar de acordo com suas configurações os seguintes itens
"host" (com o IP do seu servidor), "dsn" (com o nome do seu servidor) e por
fim "username" e "password" (com os respectivos nome de usuário e senha
do servidor ).
development:
adapter:
sqlserver
host:
192.168.0.101
port:
1433
database: Academico
username: "USUÁRIO"
password: "SENHA"
66
5. No model criado pela aplicação é preciso setar o nome da tabela e a chave
primaria para o acesso.
Em /app/models nesse caso arquivo aluno.rb
Obs.: Neste caso foi criado um simples crud para teste no Servidor com os seguintes
campos:
COD_ALUNO,
MAE_FALECIDA,
RENDA_FAMILIAR,
TIPO_ESCOLA_ORIGEM.
exemplo: na tabela ALUNOS no BD Academico.
class Aluno < ActiveRecord::Base
self.table_name = "ALUNOS"
self.primary_key = "COD_ALUNO"
end
CONFIGURAR A APLICAÇÃO PARA RODAR NO WINDOWS
1. Ir ao link www.rubyinstaller.org/ e baixar RubyInstaller 2.0.0-p648, 2.1.8 and
2.2.4 released instalar como qualquer outro executável Windows, mantendo
as opções padrões.
2. Baixe a biblioteca de acesso e transações SQL, chamada SQLite. Para tanto,
faça o download tanto do arquivo sqlite-3_6_4.zipquanto do sqlitedll3_6_4.zip,
descompacte
e
copie
os
arquivos
sqlite3.def,sqlite3.exe,
sqlite3.dllpara o C:\WINDOWS\SYSTEM32.
3. Desinstalar o bundler, pois gera um checksum error. Executar no cmd do
Windows gem unistall bundler
4. gem install bundler -v 1.9
5. Reiterar gem 'therubyracer' da Gemfile, pois não é preciso no Windows e gera
erro quando se tenta rodar a aplicação
6. Adicionar ao arquivo Gemfile a gem 'tzinfo-data', platforms: [:mingw,
:mswin, :x64_mingw].
7. Adicionar ao arquivo Gemfile a gem 'coffee-script-source', '1.8.0'
67
8. Ir ao link www.rubyinstaller.org/downloads/ e baixar a versão 2.0X64 do
DEVELOPMENT KIT.
9. bundler install.
CLASSES DE MAPEAMENTO
Arquivo com classe de modelo responsável por mapear a tabela 'cursos' no
banco de dados Academico, através do adaptador 'sqlserver' para utilização na
aplicação.
Figura 32: Arquivo curso.rb
Fonte: elaboração própria
Arquivo com classe de modelo responsável por mapear a tabela
'disciplinas_transferencias' no banco de dados Academico, através do adaptador
'sqlserver' para utilização na aplicação.
Figura 33: Arquivo disciplina_transferencia.rb
Fonte: elaboração própria
Arquivo com classe de modelo responsável por mapear a tabela
'matriculas_pautas' no banco de dados Academico, através do adaptador 'sqlserver'
para utilização na aplicação.
68
Figura 34: Arquivo matricula_pauta.rb.
Fonte: elaboração própria
Arquivo com classe de modelo responsável por mapear a tabela
'matriculas_pautas_transferencias' no banco de dados Academico, através do
adaptador 'sqlserver' para utilização na aplicação.
Figura 35: Arquivo matricula_pauta_transferencia.rb.
Fonte: elaboração própria
Arquivo com classe de modelo responsável por mapear a tabela 'pautas' no
banco de dados Academico, através do adaptador 'sqlserver' para utilização na
aplicação.
Figura 36: Arquivo pauta.rb
Fonte: elaboração própria
Arquivo com classe de modelo responsável por mapear a tabela 'pessoas' no
banco de dados Academico, através do adaptador 'sqlserver' para utilização na
aplicação.
69
Figura 37: Arquivo pessoa.rb
Fonte: elaboração própria
Arquivo com classe de modelo responsável por mapear a tabela 'turmas' no
banco de dados Academico, através do adaptador 'sqlserver' para utilização na
aplicação.
Figura 38: Arquivo turma.rb
Fonte: elaboração própria
Arquivo com classe de modelo responsável por mapear a tabela 'turnos' no
banco de dados Academico, através do adaptador 'sqlserver' para utilização na
aplicação.
Figura 39: Arquivo turno.rb
Fonte: elaboração própria
Arquivo com classe de modelo responsável por mapear a tabela 'pessoas' no
banco de dados Academico, através do adaptador 'sqlserver' para utilização na
aplicação.
70
Figura 40: Arquivo pessoa.rb
Fonte: elaboração própria
Para o banco de dados Biblioteca, que por falta de acesso a uma cópia do
mesmo que não foi disponibilizada para testes, também foi preciso criar um arquivo
de conexão para aceitar uma segunda conexão simultânea, arquivos de conexão e
de classe de modelo podem ser vistos nas seguintes figuras 41 e 44.
Figura 41: Arquivo autentication_biblioteca.rb
Fonte: elaboração própria
Arquivo da classe modelo, responsável por mapear a tabela nada_consta,
uma reprodução feita supondo o funcionamento do banco de dados da biblioteca,
essa suposição precisou ser feita, pois não foi disponibilizada uma cópia desse
banco de dados, nem acesso.
Figura 42: Arquivo biblioteca.rb
Fonte: elaboração própria
Arquivo de conexão responsável por realizar a conexão com o banco de
dados que armazena os pedidos de transferência, essa classe é usada apenas
como um conector que possibilita a conexão simultânea do banco de dados utilizado
71
na aplicação com outros bancos atualizados ao mesmo tempo, ele mantêm a
conexão com o banco de dados aplicação ao mesmo tempo que acessa outros
bancos de dados.
Figura 43: Arquivo autentication_transfer.rb
Fonte: elaboração própria
Arquivo de classe de modelo responsável por mapear a tabela “searches” no
banco de dados “Transferencia”, onde ficam armazenadas todos os pedidos de
transferência.
Figura 44: Arquivo transfer.rb
Fonte: elaboração própria
No arquivo database.yml abaixo, são configurados os bancos de dados que a
aplicação poderá acessar, no mesmo são mostradas todas as conexões com os
bancos de dados. Todas as conexões fazem uso de adaptadores para os bancos
citados acima, todos em forma de gems, que podem ser vistas em tecnologias
utilizadas.
72
Figura 45: Arquivo database.yml, responsável pela conexão ao banco de dados.
Fonte: elaboração própria
Os resultados foram obtidos com êxito, foi possível realizar a conexão via
aplicação Ruby on Rails a uma cópia da base de dados Academico, resultados
demonstrados logo abaixo nas figuras 46 a 49
Figura 46: Configurações da aplicação Ruby on Rails
Fonte: elaboração própria
73
Como demonstrado na figura 47 uma continuação da tela inicial com as
configurações da aplicação Ruby on Rails, configurações padrão para o início e
subsequentes testes que foram realizados na aplicação.
Figura 47: Configurações da aplicação Ruby on Rails
Fonte: elaboração própria
A figura 48 demonstra um teste de conexão ao banco de dados Microsoft
SQLSERVER que não funciona de forma nativa no rails em um sistema operacional
Linux, não basta a utilização de uma gem, também são necessárias algumas
configurações adicionais que são demonstradas no apêndice em configurar rails no
linux para acessar SQLSEVER no servidor WINDOWS.
Este teste se deu através do update de dados diretamente no banco de dados
Microsoft SQL Server, que obteve sucesso como pode ser visualizado na figura 43,
mostrando o update com sucesso de alguns dados referentes a tabela alunos no
banco de dados Academico. Outros testes foram realizados e o update obteve
sucesso em todas as vezes de forma estável após a instalação da gem necessária e
configurações adicionais a aplicação foi capaz de mapear qualquer tabela do banco
de dados Academico, tornando possível além do update, qualquer outra operação no
banco de dados.
74
Figura 48: Update dos dados no Microsoft Sql Server realizado.
Fonte: elaboração própria
Pode ser visualizado na figura 49, através da view index, os dados alterados
pelo update(atualizar) realizado na figura 49, através desse teste podemos também
acessar na view index os links para visualização completa dos dados através da
visão(view) mostrar(show), editar os dados através da view(visão) edit(editar) e
excluir os dados através da visão(view) excluir(destroy). Com isso pode-se perceber
que a conexão ao banco de dados Microsoft SQL Server está totalmente funcional.
Figura 49: Index com dados alterados no Microsoft Sql Server.
Fonte: elaboração própria
75
A aplicação utiliza múltiplos bancos de dados em simultâneo, um Microsoft
SQL Server, SQLITE e um POSTGRESQL. Em se tratando do banco de dados
Academico, esse banco não foi gerado pela aplicação se trata de um banco já
existente, já com dados inseridos e utilizados pela aplicação, todas as tabelas já
existentes no banco de dados Academico e que são utilizadas pela aplicação,
precisaram ser mapeadas no model ou modelo da aplicação, também foi preciso
criar um arquivo de conexão para cada banco de dados em que a aplicação se
conecta. Arquivo esse mostrado abaixo somado a as classes de modelo para acada
tabela mapeada que podem ser visualizados da figura 50 a 52. Mais configurações
no apêndice.
Figura 50: Arquivo Autentication_sql_server.rb
Fonte: elaboração própria
Arquivo com classe de modelo responsável por mapear a tabela 'alunos' no
banco de dados 'Academico, através do adaptador 'sqlserver' para utilização na
aplicação.
Figura 51: Arquivo aluno.rb
Fonte: elaboração própria
76
Arquivo de modelo que demonstra a classe responsável por mapear a tabela
'matriculas' no banco de dados Academico, através do adaptador 'sqlserver' para
utilização na aplicação.
Figura 52: Arquivo matricula.rb
Fonte: elaboração própria
Arquivo que ilustra a classe de modelo responsável por mapear a tabela
'turmas' no banco de dados Academico, através do adaptador 'sqlserver' para
utilização na aplicação, é preciso também explicitar no arquivo o relacionamento
existente entre as tabelas no banco de dados que será conectado, isso é necessário
para o mapeamento completo do Object relational mapping – ORM do Rails.
Download