Escolar Documentos
Profissional Documentos
Cultura Documentos
Lajeado
2013
BRUNO DADALT ZAMBIAZI
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
Lajeado
2013
BRUNO DADALT ZAMBIAZI
Orientador: ____________________________________
Prof. Fabrcio Pretto, UNIVATES
Mestre pela PUCRS Porto Alegre, Brasil
Banca Examinadora:
Business rules have become an important aspect in information systems development scope since
they represent the knowledge that drives business decisions and operations. Nowadays, the major
part of existing information systems have business rules embedded into their source code,
represented as code programs, which makes them visible just for people with technical knowledge
in programming languages. While business rules often change, either by external laws and
regulations or by internal requirements and policies, information systems that implement them need
to turn them accessible and subject to change for a new audience: the business people. This work
aims at analyzing and comparing two tools that enable the business rules management through their
source code externalization in information systems.
Keywords: brms, business rules, business rules management systems, information systems.
LISTA DE FIGURAS
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
1 Introduo........................................................................................................................................12
1.1 Justificativa...................................................................................................................................13
1.2 Objetivos.......................................................................................................................................14
1.3 Metodologia..................................................................................................................................14
1.4 Organizao..................................................................................................................................15
2 Referencial terico...........................................................................................................................16
2.1 Regras de negcio.........................................................................................................................16
2.1.1 Taxonomia.................................................................................................................................18
2.1.2 Anlise de negcio.....................................................................................................................20
2.1.3 Identificao e levantamento.....................................................................................................21
2.1.4 Definio e especificao..........................................................................................................22
2.2 Regras de negcio na engenharia de software..............................................................................24
2.3 Regras de negcio em Sistemas de Informao...........................................................................25
2.3.1 Perspectiva do negcio x perspectiva dos Sistemas de Informao..........................................26
2.3.2 Modelos de desenvolvimento de Sistemas de Informao........................................................28
2.3.3 Aplicao das regras de negcio................................................................................................31
2.4 Gerenciamento de regras de negcio............................................................................................32
2.4.1 Separao de regras de negcio e cdigo-fonte.........................................................................33
2.4.2 Sistemas de gerenciamento de regras de negcio......................................................................35
2.4.2.1 Sistemas especialistas e o motor de inferncias.....................................................................36
2.4.2.2 BRMS.....................................................................................................................................38
3 Ferramentas.....................................................................................................................................44
3.1 JBoss Drools.................................................................................................................................44
3.1.1 Drools Expert.............................................................................................................................45
3.1.2 Drools Guvnor...........................................................................................................................48
3.2 OpenL Tablets...............................................................................................................................50
3.2.1 Planilhas eletrnicas..................................................................................................................50
3.2.2 Web Studio.................................................................................................................................53
4 Estudo de caso.................................................................................................................................55
4.1 Proposta de trabalho.....................................................................................................................55
4.1.1 Regras de negcio......................................................................................................................56
4.1.2 Diagrama de classes..................................................................................................................57
4.2 Critrios de avaliao...................................................................................................................58
4.3 Avaliao e comparao das ferramentas.....................................................................................58
4.3.1 Interface web.............................................................................................................................58
4.3.2 Formatos de regra......................................................................................................................60
4.3.3 Testes.........................................................................................................................................66
4.3.4 Segurana..................................................................................................................................70
4.3.5 Auditoria e versionamento.........................................................................................................71
4.3.6 Integrao externa.....................................................................................................................73
4.3.7 Repositrio................................................................................................................................74
5 Concluso........................................................................................................................................75
12
1 INTRODUO
faam parte de algum repositrio central que permita seu gerenciamento completo. Foi com
este objetivo que surgiram os sistemas de gerenciamento de regras de negcio, ou Business
Rules Management Systems (BRMS), que visam possibilitar que usurios detentores do
conhecimento sejam os responsveis pelas regras que guiam os sistemas, retirando essa
atribuio da rea de tecnologia da informao e proporcionando um ambiente eficiente para
o controle das regras de uma organizao e de seus sistemas de informao.
1.1 Justificativa
De acordo com Graham (2007, p. 25), estima-se que aproximadamente 90% dos
gastos com a tecnologia da informao seja atribudo manuteno de sistemas existentes, ao
invs do seu desenvolvimento. Isso pode ser explicado, ao menos em partes, devido
replicao de regras de negcio que ocorre entre diferentes sistemas de uma mesma
organizao ou em diferentes pontos de um mesmo sistema.
Na inexistncia de um repositrio que centralize as regras de negcio, cada local de
implementao se torna um possvel ponto de falha, pois, quando se torna necessria uma
alterao, algum ponto pode ser esquecido ou, simplesmente, alterado de forma errada.
Todavia, a simples centralizao de regras de negcio no resolve todos os problemas. Isso
porque, em tese, o conhecimento de uma rea de negcio deveria ficar a cargo das pessoas
envolvidas com o negcio, tornando estas as responsveis pelas suas regras, retirando tal
atribuio dos desenvolvedores e analistas de sistemas.
Dessa forma, grande parte das atualizaes nos sistemas de informao no precisaria
mais ser feita apenas por pessoas com conhecimentos tcnicos, uma vez que a manuteno
das regras que guiam o funcionamento do negcio e, consequentemente, dos sistemas que as
implementam poderia ser feita quase que em sua totalidade pelas pessoas que detm o
conhecimento: as pessoas do negcio.
No mais desejvel embutir as regras em especificaes ou cdigos de programas
onde elas fiquem trancadas, necessitando de intervenes custosas e elevadas para
efetuar mudanas. Voc no pode mais entregar as regras em um formato inacessvel
e no entendvel audincia do negcio. Voc no pode mais deixar as regras de
14
1.2 Objetivos
1.3 Metodologia
1.4 Organizao
2 REFERENCIAL TERICO
Uma regra de negcio uma declarao explcita estipulando uma condio que deve
existir no ambiente de informao de negcios, para a informao extrada do
ambiente ser consistente com a poltica da empresa. (APPLETON, 1984);
Uma regra de negcio uma regra afirmando algo que impacta nos interesses do
negcio, e a interpretao da regra pode ter grande impacto na qualidade do sistema de
informao que ser desenvolvido. (SELVEITH, 1991);
Uma regra de negcio uma declarao que define ou restringe algum aspecto do
negcio. Pretende afirmar a estrutura, ou controlar, ou influenciar o comportamento do
negcio. (HAY; HEALY, 2000);
Mostram uma imagem clara da situao atual do negcio, servindo como a base das
melhorias na estrutura do negcio e suas operaes;
Para complementar o conceito de regras de negcio, Ross (2003) indica que as regras
18
2.1.1 Taxonomia
A classificao das regras de negcio algo que ainda no possui uma padronizao e
definio clara. Fica a cargo de cada autor, portanto, agrup-las da forma como considera
mais adequado.
Shao e Pound (1999), por exemplo, propem separar as regras de negcio em quatro
tipos:
a) Regras estruturais: especificam detalhes sobre definies utilizadas no contexto de
negcio da empresa, como, por exemplo, o que significa um cliente ouro. Exemplo:
O valor total da venda deve ser calculado conforme somatrio do valor dos itens
e subtrao do desconto fornecido pelo gerente.
c) Regras restritivas: especificam as condies que devem ser atendidas para que
determinada operao possa ser feita. Exemplo:
Os descontos acima de 10% do valor total da venda devem ser autorizados pelo
setor comercial.
d) Regras eventuais: possuem indicativos de tempo ou quantidade de aes para a
ocorrncia de algum fato. Exemplo:
O valor total de um pedido a soma entre o valor dos itens mais o imposto sobre
a venda.
Entretanto, a taxonomia mais utilizada diz respeito a uma subcategorizao especfica
sobre o que, de fato, compe uma regra de negcio. Hay e Healy (2000), Ross (2000, 2003),
Santos (2010), entre outros, declaram que uma regra de negcio representa a composio de
quatro elementos/divises: termos, fatos, restries e derivaes.
Geralmente expressos como glossrios, os termos representam substantivos,
expresses ou sentenas que definem o que so determinados elementos relevantes ao
contexto do negcio (SANTOS, 2010). Exemplo: define-se como cliente ouro qualquer
cliente que fizer mais de 20 compras em um perodo de 6 meses.
Os fatos so proposies que ligam dois ou mais termos, visando formao de uma
sentena que exprima a importncia de algo para o negcio (HAY; HEALY, 2000). Como
exemplo, pode-se considerar o desconto especial que poderia ser dado a cada cliente ouro
sendo que, neste caso, desconto especial e cliente ouro so dois termos previamente
definidos.
Restries representam condies que devem ser atendidas para que determinada
situao ou evento possa ocorrer (SANTOS, 2010). Por exemplo: a compra atravs de carto
de crdito deve ser aprovada pela operadora responsvel.
As derivaes, por sua vez, so a obteno de novas regras a partir de outras regras j
existentes (HAY; HEALY, 2000) ou a utilizao do conhecimento de uma regra atravs de
outra (SANTOS, 2010). Exemplo: o valor total da venda representado pelo somatrio do
20
Termos Expresses que definem o que so/representam os elementos utilizados nas regras de
negcio.
Fatos Composio de termos para formar declaraes que demonstram a importncia de
algo para o negcio.
Restries Pr-condies que precisam ser atendidas para que determinada ao seja realizada.
Derivaes Obteno de novas regras a partir de outras j existentes.
Fonte: elaborado pelo autor.
os analistas de sistemas tendem a no perceber muitas das regras de negcio envolvidas nos
processos que guiam uma empresa. Segundo os autores, embora tenham capacidade de
descrever a organizao em termos de estruturas de dados, os analistas de sistemas acabam
negligenciando algumas das restries sobre as quais a empresa opera, muitas vezes devido
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
O processo de levantamento das regras de negcio pode ser baseado em dois tipos de
conhecimento: explcito e implcito. Enquanto o primeiro um tipo de conhecimento fcil de
expressar na forma de princpios, procedimentos, fatos e diagramas, o segundo, geralmente,
baseia-se em operaes sem representao formal. Ou seja, o conhecimento implcito acaba
sendo baseado na compreenso, experincia e intuio de pessoas envolvidas em determinada
tarefa, sendo algo altamente pessoal e subjetivo, normalmente obtido atravs de entrevistas e
conversas informais. A extrao deste tipo de regra, e sua consequente transformao em
declaraes claras e entendveis, um problema muito comum e geralmente complicado de
resolver (BAJEC; KRISPER, 2005b).
Por outro lado, operaes baseadas em procedimentos j padronizados e bem
propagados dentro da organizao, tornam-se regras de negcio possveis de serem
documentadas por se basearem no chamado conhecimento explcito. Como muitas vezes
so obtidos atravs de modelos j existentes e bem documentados, tais regras so mais
facilmente automatizadas por sistemas de informao pois sua definio costuma ser mais
clara e fcil de compreender (BAJEC; KRISPER, 2005b).
Hay e Healy (2000) mencionam que a identificao das regras de negcio costuma
comear pelo conhecimento da poltica da organizao. Porm, mesmo esta sendo formal e
exclusiva, tipicamente descrita de forma superficial, sendo uma representao, aos olhos dos
colaboradores, de tarefas especficas que eles devem realizar. Alm disso, muitas regras so
22
Uma regra de negcio em particular pode estar envolvida dentro de diversos processos
de negcio, sendo utilizada ou replicada em diversos subsistemas. H diversas maneiras
de desenvolv-las, desde implementaes em nvel de cdigo-fonte a triggers de bancos de
dados. Porm, para que seja possvel identificar as implicaes de alter-las no futuro, bem
como entender seu significado nos sistemas que as implementam, vital que elas sejam
claramente documentadas durante todo o seu ciclo de vida, da criao s mudanas
posteriores (BAJEC; KRISPER, 2005a).
Ter as regras de negcio bem documentadas e organizadas faz uma grande diferena,
podendo proporcionar vantagem competitiva frente aos concorrentes, visto que elas so, na
realidade, o que realmente direciona o funcionamento da organizao. Regras bem
documentadas e escritas claramente tambm ajudam no processo de obteno de resultados.
Isso porque sua expresso muito mais prxima a formas comuns de expresso de usurios
que no trabalham diretamente com TI, ou seja, deixa as regras que governam a aplicao
mais acessveis a seus usurios e operadores (GOUGEON, 2003).
23
Para que isso tudo seja possvel, a definio e a especificao das regras de negcio
devem ser feitas com muito cuidado. Segundo Gottesdiener (1997), uma regra deve ser escrita
de forma que represente uma nica e completa ideia, tornando-se um componente atmico
que no pode ser dividido. Para Morgan (2002), a clareza da regra fundamental para seu
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
entendimento, devendo ser escrita em um formato que o responsvel pelo negcio consiga
imediatamente entend-la e aceit-la como lgica ou rejeit-la como invlida.
Segundo Date (2000), importante entender que a escrita das regras de negcio deve
ser independente de software ou hardware. Conforme Ross (2000), as regras de negcio no
so um sistema, embora, geralmente, sejam implementadas dentro ou atravs de um. Para
Gottesdiener (1997), as regras precisam ser independentes de paradigmas ou plataformas
tcnicas, pois devem ser definidas, gerenciadas e orientadas para e pelo negcio.
O conjunto de regras de toda a aplicao, pertinente ao negcio em questo, deve
constituir um modelo de negcio completo. De fato, em virtude das regras serem
compartilhadas entre diferentes aplicaes, a atividade de definio das regras, no geral, deve
ser vista no apenas como um processo de desenvolvimento de aplicaes individuais, mas,
sim, como o desenvolvimento de uma aplicao inteiramente integrada (DATE, 2000).
Referente especificao das regras, deve-se ter cuidado com suas sentenas.
Conforme Ross (2009), uma sentena de regra de negcio um modelo de escrita, geralmente
em linguagem natural, que serve para expressar determinado tipo de regra. Segundo o autor, a
utilizao de padres especficos para sua definio possibilita que as regras sejam mais
facilmente entendidas por diferentes pessoas envolvidas no processo, pois permite que
expressem suas ideias de forma semelhante.
Para Morgan (2002), a forma ideal para expressar as regras de negcio mediante
variaes do modelo mais simples de sentena: <sujeito> deve <restrio>. Exemplo: Para
que a venda seja efetuada, o cliente deve ser considerado adimplente. Segundo o autor, essa
forma de representao induz as regras ao conceito que considera fundamental: sempre
retornar uma expresso verdadeira.
Atualmente, entretanto, existem algumas formas padronizadas para a escrita de regras
de negcio. Um das mais utilizadas, Rule Speak Sentence Forms, criada e citada por Ross
(2009), define que importante que as regras no sejam escritas de acordo com alguma
linguagem de programao algo muito comum quando se envolve no processo algum da
rea de TI.
24
1 No modelo em cascata, todas as etapas (definio, implementao, testes, etc) so feitas de forma
sequencial, ou seja, uma s comea quando a anterior for considerada concluda (SOMMERVILLE, 2007).
2 O desenvolvimento evolucionrio prev a criao inicial de uma software simples, posteriormente
evoluindo-o at que se torne o produto final adequado. uma abordagem que intercala as atividades de
especificao, desenvolvimento e validao (SOMMERVILE, 2007).
3 Abordagem na qual o processo de desenvolvimento de software foca na integrao de componentes
previamente existentes e reutilizveis, sem ter de desenvolv-los do zero (SOMMERVILLE, 2007).
25
Pela perspectiva do negcio, regras podem ser definidas como proposies que
restringem o comportamento de uma organizao, existindo em diversas formas que variam
de simples a complexas e dinmicas (BAJEC; KRISPER, 2005a). Segundo a mesma fonte, as
regras podem ser definidas com base interna ou externa, dependendo do contexto da
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
Concluses encontradas por processos de data warehousing4 e/ou data mining5 fazem
mais sentido quando associadas a regras de negcio ativas.
Pela perspectiva dos SIs, todas as regras que tendem a apresentar mudanas constantes
requerem ateno especial. Assim, acabam sendo consideradas como regras de negcio, pelos
desenvolvedores e at mesmo analistas, no somente as regras que derivam especificamente
do negcio, mas, tambm, todas as outras que surgem dentro do processo de desenvolvimento
de uma aplicao (BAJEC; KRISPER, 2005b).
Os mesmos autores tambm citam que um dos equvocos mais comuns em relao ao
tema, este tipicamente cometido por desenvolvedores, achar que todas as regras e restries
que governam uma aplicao representam, de fato, regras de negcio. Regras que se referem
exclusivamente parte visual da aplicao, como, por exemplo, a indicao da cor com a qual
deve ser exibido determinado valor em um balancete financeiro, no representam regras de
negcio, pois, para os gestores e pessoas envolvidas com os processos de negcio, o que
importa o valor da informao e no sua apresentao.
4 Data warehousing uma tecnologia que armazena uma grande quantidade de dados, visando apresentao
deles em informaes estratgicas teis para o processo de tomada de decises (PONNIAH, 2001).
5 Data mining um processo de anlise de uma grande quantidade de dados dispersos, visando
coleta/descoberta de novas informaes (PONNIAH, 2001).
28
Halle (2002) tambm cita vantagens para os SIs na utilizao de uma abordagem
voltada s regras de negcio:
Para entender a importncia das regras de negcio no contexto dos SIs, necessrio,
primeiramente, entender como funciona o processo de desenvolvimento utilizado atualmente
na maior parte das empresas. A Figura 1 apresenta um modelo criado por Morgan (2002) para
demonstrar os atores e o fluxo de informao gerado por eles neste processo.
Segundo a fonte, h muitas coisas com o que se preocupar neste modelo. Uma das
principais o fato do responsvel pelo negcio (Business Owner), ou seja, a pessoa que
precisa do sistema e que provavelmente est pagando por ele, estar fora do processo de
desenvolvimento do software. Isso indica que, aps uma primeira fase de elicitao de
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
requisitos, a sua atuao fica bastante limitada, uma vez que os artefatos gerados pelos
desenvolvedores (Source Code > Generate) so difceis de serem entendidos por quem no
possui conhecimentos tcnicos e/ou treinamento adequado.
Outro ponto a ser notado que o modelo se baseia na premissa de que o cdigo gerado
conter erros, o que, invariavelmente, adiciona uma quantidade exagerada de testes. Assim,
subentende-se que qualquer alterao no software poder introduzir novos erros, o que torna
as oportunidades de melhorias no sistema bastante limitadas.
Alm disso, o processo acaba dependendo de materiais especficos que devem ser
interpretados por diversas pessoas at se tornar, de fato, um produto em desenvolvimento.
Basicamente, os analistas (Analysts) interpretam os requisitos do negcio (Business
Descriptions) para produzirem um documento de especificaes para desenvolvimento
(Structured System Descriptions); este documento deve ser interpretado pelos
desenvolvedores (Developers) para que, somente ento, seja gerado o cdigo-fonte (Source
Code). Essa sequncia acaba introduzindo muitos pontos de falha por questes de mal
entendidos, situaes que podem demorar a ser detectadas.
A Figura 2, tambm criada por Morgan (2002), apresenta o modelo indicado como
ideal para a criao de sistemas. De forma geral, a nica mudana ocorre na etapa de
desenvolvimento (System Development), que passa a ser bastante simplificada, e o grande
diferencial fica por conta da automao das etapas antes atribudas aos desenvolvedores.
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
O negcio precisa mudar, mas o sistema uma barreira s mudanas: muitos softwares
6 Os WSs representam componentes de uma aplicao que se comunicam utilizando protocolos abertos
baseados em eXtensible Markup Language (XML) para a troca de mensagens, provendo, assim, um grande
nvel de interoperabilidade entre aplicaes desenvolvidas em quaisquer linguagens de programao
(SUDA, 2003).
32
Criao de novas legislaes que exigem aderncia dos sistemas ou abrem caminho
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
negcio. Para Gerrits (2012), considerar as regras uma responsabilidade ou um dos artefatos
da TI, colocar em risco a aplicao como um todo, podendo ter as seguintes consequncias:
As regras se tornaro meros requisitos de sistema, o que pode ser visto como uma
lgica de negcio que s far sentido dentro de um contexto com objetivo particular;
particular: o usurio que opera o sistema pode no saber como funciona a regra de
determinada operao e at mesmo os desenvolvedores, em muitos casos, no sabem
exatamente como se comporta alguma parte ou funcionalidade do sistema. Tais afirmaes
ficam claras na ideia de Halle (2002):
Infelizmente, as regras de negcio so frequentemente inacessveis ou, pior,
desconhecidas. Este o caso em que regras de negcio esto ocultas no cdigo
legado, para o qual existe pequena ou nenhuma documentao. assustador pensar
na execuo de regras, que interessam ao negcio, que permanecem escondidas
daqueles que utilizam o sistema e daqueles que querem fazer mudanas em sua
lgica. Quando tais regras so inacessveis ou desconhecidas, as pessoas (incluindo
os desenvolvedores do sistema) fazem suposies sobre elas que podem estar
incorretas ou inconsistentes. Tais suposies levam a um comportamento (humano
ou eletrnico) que no bem orquestrado, nem efetivamente focado em objetivos
comuns, e certamente incapaz de mudanas fceis e adaptabilidade.
Conforme Kovacic (2004), os SIs desenvolvidos na forma tradicional no esto aptos
a acompanharem as mudanas requeridas pelo mundo empresarial, visto que as regras de
negcio costumam ser atualizadas constantemente. Para Bajec e Krisper (2005a), mudanas
raramente acontecem de forma espontnea, sendo, geralmente, o resultado de decises
provenientes da cpula administrativa ou de fontes externas como normas governamentais,
que determinam novas leis ou mudanas de tributao, por exemplo. Nesses casos, o impacto,
geralmente, ocorre nas regras de negcio e sua implementao, que precisam ser reavaliadas e
modificadas para atenderem aos novos objetivos, polticas e valores.
Os envolvidos com a TI, porm, geralmente no possuem o conhecimento necessrio
para saber como e quando uma regra mudar, tampouco o impacto que tal alterao ter sobre
outras regras. Segundo Narayanan (2009), tais fatos comprovam a necessidade de manter as
regras de negcio fora da aplicao, permitindo que analistas de negcio, por exemplo,
possam gerenci-las de forma contnua sempre que necessrio.
Para exemplificar o que foi mencionado, pode-se imaginar um sistema de vendas
online de uma empresa de varejo. Considerando-se a competitividade acirrada do setor,
devido grande variedade e quantidade de opes disponveis, a empresa que deseja alcanar
xito nesse ramo precisa, constantemente, lanar novas promoes sobre determinados tipos
de produtos e/ou pblico-alvo. A definio de tais ofertas, porm, ocorre em mbito gerencial,
35
na maioria das vezes pela equipe comercial. Ter estas regras acopladas no cdigo-fonte da
aplicao, porm, prejudica a dinamicidade de um sistema desse porte, pois a implementao
das funcionalidades depende exclusivamente da TI.
De acordo com Morgan (2002), a codificao das regras diretamente no sistema um
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
dos maiores erros cometidos durante o desenvolvimento das aplicaes. O resultado dessa
ao que as atualizaes de regras requerem a rescrita do software, o que,
consequentemente, torna sua realizao lenta e mais cara. Para Halle (2002), ter as regras
embutidas numa caixa-preta que exige intervenes de especialistas para futuras
modificaes, torna os SIs menos receptveis por empresas que buscam atualizar seu negcio
constantemente. A autora afirma que voc no pode mais entregar as regras em um formato
inacessvel e no entendvel audincia do negcio. Voc no pode mais deixar as regras de
negcio em um local onde elas se percam.
Regras de negcio, essenciais para o funcionamento de uma organizao, devem ser
automatizadas sempre que possvel, embora sua implementao em SIs seja uma das partes
mais crticas no processo de desenvolvimento de sistemas (ROSS, 2013). Empregando a
abordagem correta para seu gerenciamento, porm, necessrio suportar suas constantes
modificaes sem que seja preciso alterar a aplicao, provendo a externalizao das regras
pelo menos as mais crticas em relao ao sistema que as utiliza (NARAYANAN, 2009).
As regras de negcio podem ser consideradas como a parte principal de um software,
entretanto, implement-las dentro de um sistema pode acarretar em redundncia ou
incompletude. Alm disso, mesmo quando programadas de forma consistente, as regras sua
definio ou seu conhecimento podem se perder conforme o passar do tempo ou com o
excesso de modificaes (HERBST et al., 1994). Embora no seja algo novo, a separao
entre regras de negcio e cdigo-fonte promove vantagens como facilidade de atualizao,
reutilizao de regras e escalabilidade. Permitir que as regras de negcio sejam definidas e
gerenciadas separadamente aplicao pode ser visto como o estado da arte no mbito do
desenvolvimento de SIs (GOTTESDIENER, 1997).
geralmente feita de diversas formas. A correta aplicao das regras de negcio nos SIs, porm,
vital para muitas organizaes, em especial quelas nas quais as regras so definidas, na sua
maioria, por regulamentos estatutrios e nas quais as multas e penalidades podem ser
aplicadas em casos de violao. Sempre que possvel, as regras de negcio devem ser
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
o usurio do sistema (knowledge user) utiliza uma interface especfica (user interface) que
consulta o componente mais complexo do modelo: o motor de inferncias (inference engine).
O motor de inferncias pode ser visto como o mecanismo que aplica o conhecimento
sobre o conjunto de dados, com o objetivo de obter concluses vlidas de acordo com
premissas (GRAHAM, 2007). Tipicamente, o responsvel por disparar as regras quando
forem detectados determinados padres de equivalncia (ROSENBERG; DUSTDAR, 2005).
Conforme Zandipour (2011), o motor de inferncias composto por dois componentes: um
pattern matcher (combinador de padres) e uma agenda. O pattern matcher o elemento que
realiza as comparaes entre os fatos e as regras, enquanto a agenda se comporta como uma
fila de regras a serem disparadas apenas as que forem julgadas apropriadas pelo primeiro.
Ochem (2008) indica que o mecanismo de funcionamento do combinador de padres
se baseia em forward chaining (encadeamento dianteiro) ou backward chaining
(encadeamento retrgrado), padres utilizados para a verificao de estruturas de dados em
relao a diversas condies, ambos os conceitos provenientes da IA. O autor define os dois
padres da seguinte forma:
Forward chaining verifica as condies das regras at encontrar uma que
corresponda, e ento utiliza esta regra para fazer dedues em outras regras que tm
as mesmas condies. Backward chaining faz o processamento em ordem inversa,
iniciando de concluses at os fatos antecedentes.
Para Graham (2007), a utilizao de forward chaining indicada em situaes nas
quais a quantidade de resultados costuma ser pequena, embora a coleta e processamento das
informaes seja uma tarefa custosa. O backward chaining, por outro lado, realiza o processo
contrrio, sendo uma opo mais indicada para os casos em que a quantidade de informaes
resultante muito grande. Segundo o autor, ainda existe um terceiro paradigma baseado num
modelo misto, identificado como opportunistic chaining, que, de fato, o que costuma ser
empregado nas principais ferramentas de BRMS da atualidade.
38
2.4.2.2 BRMS
componentes principais: o ambiente tecnolgico no qual o sistema est inserido, que inclui
linguagem de programao, compiladores, estruturas de dados, etc; a estrutura da base de
conhecimentos, onde ficam armazenadas as informaes pertinentes ao domnio do negcio; o
motor de inferncias, parte responsvel por avaliar as regras e obter concluses vlidas a
partir de sua verificao, e, por ltimo, o repositrio de regras, que deve gerenciar, versionar e
compartilhar as regras de negcio.
A Figura 5 apresenta a arquitetura de um BRMS contendo todos os componentes
citados, bem como os atores envolvidos no processo de utilizao do sistema. Basicamente,
existe um componente (Knowledge base) que contm os elementos referentes representao
do conhecimento, ou seja, o domnio do negcio (Domain knowledge) e o repositrio de
regras (Rule repository). Estes so utilizados pelo analista de negcio (Knowledge analyst),
para manuteno e gerenciamento das regras atravs do ambiente de desenvolvimento provido
(Development environment), e pelo motor de inferncias (Inference engine). O ambiente
tecnolgico pode ser visto como a rea que circunda todos os componentes citados.
tivessem a adoo esperada no mundo dos negcios, ao passo que os BRMSs foram
especialmente projetados para prover servios que automatizam aplicaes envolvendo o
negcio da organizao.
Segundo Zandipour (2011), um importante benefcio provido por um BRMS a
separao entre os ciclos de vida da aplicao e de suas regras de negcio, conforme ilustra a
Figura 6. Para o autor, as regras mudam com uma frequncia consideravelmente maior do que
a aplicao que as utiliza, o que significa ser possvel terminar com a necessidade de
recompilar ou parar o sistema inteiro a todo momento. Com a utilizao de um BRMS, as
regras so alteradas enquanto a aplicao est rodando, sem a necessidade de alter-la.
Figura 6 - Separao dos ciclos de vida de um sistema e suas regras de negcio, atravs da
utilizao de um BRMS
9 Uma API serve como uma interface que define como um software deve se comportar para acessar as
funcionalidades de outro que implementa esta API (3 SCALE, 2012).
41
Analista de negcios quem realiza o intermdio entre as reas do negcio e da TI. Deve ter
muito conhecimento sobre o negcio e, pelo menos, o bsico de TI, para
conseguir traduzir as polticas da empresa em um modelo entendvel aos
desenvolvedores.
Desenvolvedor o profissional da informtica responsvel por mapear o vocabulrio
criado pelo analista de negcio, em uma estrutura subjacente ao sistema.
Gerenciador de polticas quem define as polticas da organizao. Geralmente, no possui
conhecimentos tcnicos de TI, porm, costuma ser um profissional com
bastante experincia em ferramentas auxiliares como planilhas.
Administrador do o profissional que gerencia e configura o ambiente e a instalao do
ambiente BRMS.
Arquiteto de regras quem faz o trabalho de otimizar as regras criadas e garante que as
mesmas pertencem ao conjunto de regras apropriado.
Fonte: do autor, adaptado de Zandipour (2011).
Em seu trabalho, Graham (2007) afirma que os sistemas de BRMS devem possuir
algumas caractersticas especficas para que atinjam um estado de maturao. Halle (2002),
por outro lado, cita aspectos de tratamento necessrios s regras para que um BRMS possa ser
considerado apto a servir adequadamente ao negcio e a seus gestores. As Tabelas 5 e 6,
respectivamente, ilustram essas caractersticas e aspectos.
then
$venda.valor = ( $venda.valor * 0.9 )
end
3 FERRAMENTAS
JBoss Drools uma ferramenta mantida pelas empresas JBoss e Red Hat. O projeto
totalmente escrito em linguagem Java, gratuito e com cdigo-fonte aberto, sendo licenciado
sob a Licena Apache 2.012, e sua primeira verso foi lanada em 2001. Atualmente na verso
5.5, lanada em 13/11/2012, o JBoss Drools uma plataforma nica e integrada para
manuteno de regras, processos de negcio e processamento de eventos.
A ferramenta possui cdigo-fonte livre, vasta documentao e comunidade ativa na
internet, alm de constituir uma soluo bastante abrangente. O Drools fornece a
possibilidade de gerncia, testes, auditoria e versionamento de regras atravs de linguagem
especfica ou interface web, execuo de regras de forma remota, disponibilizao das regras
11 Devido inexistncia de um estudo que indique a utilizao de BRMSs gratuitos, o critrio de utilizao
levou em considerao o nmero de resultados encontrados sobre as ferramentas na internet, tanto em sites
quanto em fruns de tecnologia da informao. O nico estudo oficial encontrado conhecido como
Worldwide Business Rules Management Systems Vendor Shares considera apenas softwares que so
comercializados. A verso de 2011 dele pode ser vista em
ftp://public.dhe.ibm.com/software/websphere/odm/2011_BRMS_MarketShare_Report.pdf.
12 A Licena Apache uma licena de software de autoria da Apache Software Foundation, que indica que o
cdigo-fonte do software pode ser distribudo e modificado desde que haja a incluso do aviso de copyright.
45
via WSs, tabelas de deciso, integrao com diversos frameworks Java, entre outras.
O Drools possui diversos mdulos criados de forma separada para facilitar o trabalho
de implantao e manuteno da ferramenta (TABELA 8). Este trabalho faz o estudo de dois
dos seus componentes, Drools Expert e Drools Guvnor, que so diretamente relacionados
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
conhecidas como Right Hand Side (RHS). A Listagem 3 apresenta um exemplo de regra que
verifica se um cliente invlido atravs da verificao de seu telefone e endereo.
Para a interpretao das partes LHS e RHS, o Drools Expert trabalha com estruturas
de dados que podem ser adicionadas aos arquivos DRL, acima da parte de regras, embora o
mais indicado seja a existncia de um nico arquivo contendo todas elas, deixando as regras
em arquivos separados. A Listagem 4 apresenta um exemplo de definio dentro de um DRL,
no qual definido o pacote ao qual a estrutura pertence, o nome dela e seus atributos, com um
identificador e seu tipo correspondente a uma classe Java.
idade : Integer
endereco : String
telefone : String
end
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
Para a execuo das regras, o Drools Expert disponibiliza uma API que pode ser
acessada tanto em ambientes com a linguagem de programao Java quanto em ambientes
.NET. A Listagem 5 apresenta um trecho de cdigo Java que utiliza esta API e realiza as
seguintes operaes: cria uma nova base de conhecimentos (2) a partir do arquivo regras.drl
(1); cria um novo fato com base numa estrutura de dados do tipo Cliente, instanciando o
objeto (3) e setando suas informaes (4); insere o Cliente na sesso e dispara as regras (5).
// (2)
KnowledgeBase base = builder.newKnowledgeBase();
StatefulKnowledgeSession session = base.newStatefulKnowledgeSession();
// (3)
FactType cliente = base.getFactType( "com.brunozambiazi.tcc", "Cliente" );
Object clienteBruno = cliente.newInstance();
// (4)
cliente.set( clienteBruno, "nome", "Bruno" );
cliente.set( clienteBruno, "idade", 25 );
cliente.set( clienteBruno, "telefone", "12345678" );
// (5)
session.insert( clienteBruno );
session.fireAllRules();
O DRL, embora bastante flexvel, se caracteriza como algo entendvel apenas por
desenvolvedores e pessoas com conhecimento tcnico em linguagens de programao.
Segundo Bali (2009), o Domain Specific Language (DSL) visa amenizar este problema, pois
uma forma de representar as sentenas das regras de negcio de uma forma semelhante
linguagem natural. Conforme o autor, o domnio representa a rea de negcio e suas regras
devem ser expressas com as terminologias pertinentes a tal.
48
Para que seja possvel trabalhar com as sentenas definidas em um DSL, necessrio
criar as regras em um arquivo DSLR. A diferena bsica deste tipo de arquivo para um DRL
a necessidade de utilizar o atributo expander acima da definio das regras, indicando qual o
arquivo de domnio que ser utilizado para a resoluo delas. A Listagem 8 apresenta como
seria um DSLR para validao de um cliente, com base na DSL apresentada na Listagem 7.
O Drools Guvnor o mdulo do Drools que possui uma interface web para gerncia e
13 O escopo da sentena de um DSL pode ser condition (quando representa uma condio, ou LHS) ou
consequence (quando representa uma ao a ser realizada, ou RHS).
14 O tipo de estrutura de um DSL indica se aquela sentena aplicvel de forma geral ou a apenas alguma
estrutura em especfico, como o Cliente dos exemplos. um elemento opcional.
49
manuteno das regras de negcio. Trabalha em conjunto com o mdulo Drools Expert, uma
vez que boa parte de suas operaes resulta em tarefas executadas no mdulo citado como
criao, edio e teste das regras. O Drools Guvnor oferece a possibilidade de gerenciar
diversas bases de conhecimento, dentro das quais possvel a criao ilimitada de pacotes,
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
A Figura 8 demonstra uma regra criada com o editor guiado. O segmento denominado
Quando possui as condies da regra, enquanto a parte Ento possui as aes a serem
realizadas. No exemplo apresentado, a regra indica que no deve ser cobrado o frete para uma
venda associada a um cliente cujo nome no nulo e a pontuao maior do que mil.
O Drools Guvnor tambm oferece a possibilidade de versionamento das regras,
facilitando, assim, a correo de problemas causados devido a alteraes defeituosas, e dispe
de opes administrativas para categorizao de regras e estruturas, possibilitando controle de
acesso s categorias de objetos. Alm disso, permite que toda a estrutura de dados e
informaes seja salva em SGBDs como Oracle, MySQL, PostgreSQL, entre outros.
50
OpenL Tablets uma ferramenta escrita em Java e mantida pela empresa Exigen
Services. O projeto gratuito e de cdigo-fonte aberto, utiliza a licena LGPL 15 3 e sua
primeira verso foi lanada em 2004. Atualmente na verso 5.10.2, lanada em 06/06/2013, o
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
OpenL Tablets um BRMS que se baseia na execuo de regras extradas a partir de tabelas
criadas com softwares de planilhas eletrnicas Microsoft Excel e semelhantes.
A ferramenta possui cdigo-fonte livre, tima documentao e est em constante
evoluo. Basicamente, o OpenL Tablets pode ser considerado um processador avanado de
tabelas que extrai informaes de planilhas como o Microsoft Excel, por exemplo, e as torna
acessveis para programas escritos em Java.
O OpenL Tablets possibilita a criao de regras de duas formas: utilizando qualquer
software de planilhas eletrnicas que suporte arquivos no formato .xls e um ambiente web
conhecido como Web Studio. Ambas as possibilidades sero exploradas neste trabalho.
15 A LGPL uma licena de software gratuito de autoria da Free Software Foundation, que permite que
desenvolvedores utilizem softwares sobre esta licena dentro de seus prprios softwares e ambientes de
desenvolvimento, mesmo que estes sejam proprietrios, no exigindo a liberao de seu cdigo-fonte.
51
Figura 9 - Exemplo de tabela de deciso, criado com o LibreOffice Calc, para o OpenL Tablets
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
A utilizao de uma classe empacotadora, que dispara as regras presentes numa tabela
de deciso, bastante simples e pode ser vista na Listagem 10. importante ressaltar que,
neste caso, a planilha se chama Rules.xls e est na raiz do dispositivo de armazenamento. O
trecho de cdigo realiza as seguintes operaes: (1) cria uma instncia do motor de regras
baseado no arquivo Rules.xls, indicando que o mesmo poder ser convertido para a classe
Wrapper; (2) cria o objeto Wrapper a partir do motor de regras e executa o mtodo
boasVindas informando o valor 15 como parmetro, armazenando seu resultado para posterior
(3) exibio. Neste exemplo, o resultado seria: Boa tarde, mundo!.
Listagem 10 - Execuo de tabela de deciso com classe empacotadora pela API do OpenL
Tablets
import org.openl.rules.runtime.RuleEngineFactory;
// (2)
Wrapper wrapper = rulesFactory.makeInstance();
// (3)
System.out.println( result );
}
}
O Web Studio uma aplicao web que permite que os usurios visualizem, editem e
gerenciem regras de negcio e projetos de regras criados com a tecnologia OpenL Tablets. A
aplicao possui um editor de planilhas que, embora bastante simplificado e com uma gama
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
A Figura 11, por sua vez, apresenta a tela de anlise de execuo de uma tabela de
deciso. No caso em questo, exibido em detalhes como o mecanismo do OpenL Tablets
chegou ao resultado (returned result) Boa tarde, mundo!, para a execuo da tabela citada
anteriormente, recebendo, como parmetro de entrada (input parameters), o valor quinze.
Figura 11 - Anlise de um teste de tabela de deciso com o OpenL Tablets Web Studio
4 ESTUDO DE CASO
resultados obtidos a partir da comparao das ferramentas JBoss Drools e OpenL Tablets,
assim como os critrios de avaliao e a implementao das regras em cada uma das solues.
este trabalho utilizou alguns dos conceitos bsicos referentes engenharia de software: a
elicitao das regras de negcio e um diagrama de classes.
Para a anlise e estudo das ferramentas BRMS deste trabalho, o Quadro 1 apresenta
um conjunto de regras de negcio bsico mapeado de forma a atender s demandas de um
sistema de e-commerce. Cada regra possui um identificador formado da seguinte forma:
prefixo RN, letra identificadora da seo da regra e um nmero sequencial dentro da seo.
importante a percepo de que esto listadas regras de negcio envolvidas com todo o
processo por trs de um sistema de comrcio eletrnico, desde o cadastro de clientes at a
liberao e envio de pedidos.
RN-V4 Conceder 100 pontos ao cliente se ele efetuar uma compra no dia do seu aniversrio.
No cobrar frete nas seguintes situaes:
Valor final da venda superior a R$ 149,00;
RN-V5
Valor final da venda superior a R$ 99,00 e o tipo de pagamento boleto
bancrio.
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
17 Um diagrama de classes contm toda a estrutura de classes utilizada pelo sistema, especificando os atributos
e mtodos de cada uma, bem como seu relacionamento e associao geral (GUEDES, 2009).
58
Com base nos tpicos e critrios definidos para avaliao e comparao das
ferramentas JBoss Drools e OpenL Tablets (TABELA 10), as regras de negcio apresentadas
no Quadro 1, no item 4.1.1 deste captulo, foram implementadas nos dois softwares,
utilizando, em ambos, suas ferramentas web Guvnor e Web Studio, respectivamente. Os
resultados e impresses obtidos so descritos nos tpicos a seguir.
Uma das principais desvantagens do Web Studio, em relao interface web, o fato
da ferramenta no possuir verso em portugus, o que a torna ainda mais difcil de ser
utilizada levando em considerao o contexto de empresas brasileiras o Guvnor possui uma
verso em portugus que, embora contenha alguns erros de traduo, facilita seu
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
Cada BRMS trabalha com conceitos prprios para a execuo de suas regras de
negcio. O OpenL Tablets, por exemplo, conhecido como um processador avanado de
tabelas que captura determinados padres em planilhas eletrnicas, tornando acessveis como
regras as tabelas encontradas, e exigindo, assim, que elas sejam chamadas explicitamente para
serem executadas. Ferramentas como o JBoss Drools, por outro lado, possuem um motor de
regras e inferncia que descobre, dado um conjunto de fatos, quais regras devem ser
executadas e em que ordem, baseando-se em aprimoramentos do algoritmo Rete18.
Alm disso, cada BRMS tambm possui formatos especficos para a criao de regras
de negcio. Os formatos suportados pelas ferramentas de estudo deste trabalho foram
brevemente explicados no Captulo 3, e as regras de negcio relacionadas ao hipottico
sistema de comrcio eletrnico, expostas no Quadro 1, no item 4.1.1 do Captulo 4, foram
criadas em ambas as solues atravs de suas interfaces web.
O fato do OpenL Tablets suportar apenas tabelas de deciso como modelo e formato
18 Rete um algoritmo largamente utilizado em sistemas de regras devido a sua eficincia em determinar o que
e em qual ordem deve ser executado, a partir de um conjunto de regras e fatos. De forma geral, sistemas
de BRMS implementam este algoritmo com melhorias que julgam adequadas e, de fato, so estas melhorias
que fazem com que uma ferramenta tenha vantagens de desempenho em relao s outras. Conforme Forgy
(1982), o algoritmo Rete um mtodo eficiente para comparao de uma grande coleo de padres com
uma grande coleo de objetos. Ele encontra todos os objetos que correspondem com cada padro.
61
de regras, faz com que o processo de criao tenha de ser analisado e implementado de forma
diferente. Isto porque as tabelas de deciso permitem expressar conjuntos de condies e de
aes em um nico elemento a prpria tabela. A implementao no Drools, ao contrrio,
exige que cada condio sobre o mesmo objeto seja feita em uma nova regra, devido ao fato
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
da ferramenta utilizar o modelo definido como ECA19 explicado no Captulo 2, item 2.4.2.2.
Um exemplo dessa diferena a implementao da regra de negcio RN-PJ3, que
define o percentual de juros que deve ser aplicado a uma venda conforme o nmero de
parcelas. Sua criao no formato de tabela de deciso permite que todas as condies e aes
sejam expressas numa nica tabela, conforme mostra a Figura 15, enquanto no modelo ECA
ela precisaria ser dividida em trs regras semelhantes apresentada na Figura 16, mudando
apenas os valores correspondentes.
19 importante citar que o Drools tambm possui suporte completo a tabelas de deciso. No entanto, o
objetivo deste trabalho analisar diferentes perspectivas quanto criao e manuteno de regras de
negcio, e, por isso, optou-se pela sua avaliao apenas no que se refere ao seu grande diferencial: a
linguagem prpria e extensvel para criao de regras e o editor guiado de seu mdulo de BRMS.
62
Embora mais limitado neste contexto, o OpenL Tablets tambm possui algumas
expresses que podem ser utilizadas para facilitar o trabalho de quem escreve as regras.
Valores booleanos, por exemplo, podem ser substitudos pelas palavras verdadeiro e falso,
20 Frases como Existe um, No existe, Modificar valor de e Inserir valor, so padro do Guvnor e
esto disponveis para qualquer regra criada com o editor guiado, independentemente de haver um DSL.
63
enquanto sinais de menor, menor ou igual, maior e maior ou igual, por frases em ingls
como: less than <number>, more than <number>, <number> and more. A Figura 18
demonstra a implementao da regra RN-C1 no OpenL Tablets, utilizando as frases nas
condies da pontuao do cliente, e os termos falso e verdadeiro para serem aplicados a um
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
A mesma regra implementada no OpenL Tablets poderia ser feito conforme a Figura
20. Nela, a complexidade do clculo e arredondamento continuam presentes na prpria regra,
sendo necessrio, inclusive, realizar a converso explcita do resultado para o tipo adequado.
)
)
then
$venda.setValor( $valor
* ( 1 + $venda.getPercentualDeJuros()/100 )
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
);
end
No OpenL Tablets, a complexidade da regra existe no apenas pelas operaes que ela
exige, mas tambm pela necessidade de iterar sobre os itens da venda. Assim, a criao da
regra demandou a utilizao de dois conceitos diferentes que a ferramenta disponibiliza para
os casos mais complexos: tabela de mtodo (method table) e tabela de planilha (spreadsheet
table).
Enquanto as tabelas de mtodo consistem na escrita de cdigos Java interpretados pela
API do OpenL Tablets em tempo de execuo, as tabelas de planilha possuem frmulas e
clculos separados em linhas e colunas. Para a regra RN-V2, foi necessrio criar uma tabela
de mtodo que realiza a iterao sobre os itens da venda, chamando, para cada um, a tabela de
planilha que calcula o valor referente quele item.
A implementao e complexidade das duas tabelas pode se vista nas Figuras 21 e 22.
Na primeira, necessrio utilizar cdigo Java para conseguir percorrer todos os itens da
venda, fazendo seu somatrio atravs da chamada tabela apresentada na segunda figura,
que, por sua vez, funciona em um modelo de declarao de variveis coluna esquerda com
valores calculados coluna direita.
4.3.3 Testes
A possibilidade de testar as regras de negcio antes que elas sejam aplicadas numa
base de produo, um dos requisitos bsicos para qualquer soluo de BRMS. Tanto o
Guvnor quanto o Web Studio possuem ferramentas especficas para isso.
Por parte do Drools, o Guvnor trabalha com o conceito de cenrios de testes. Na
prtica, um cenrio nada mais do que um conjunto de valores de entrada/sada e da
informao do que se espera de resultado em termos de regras disparadas possvel
informar, inclusive, quantas vezes se espera que uma regra seja executada. Assim como as
regras, os cenrios de testes tambm so separados por pacotes, o que importante devido ao
motor de inferncias do Drools que far a avaliao apenas das regras existentes nos pacotes
de mesmo nome.
As regras RN-PJ1 e RN-PJ2 representam validaes sobre o nmero mximo e o valor
mnimo das parcelas de uma venda, respectivamente. Sua implementao no Drools, feita em
forma de duas regras, pode ser testada com um nico cenrio de testes que contemple todas as
situaes relacionadas. A Figura 23 demonstra o cenrio de testes para tal, ao mesmo tempo
em que deixa evidente a apresentao grfica confusa da ferramenta, que causa dificuldades
na identificao de cada fato referente ao teste.
67
verificar o percentual de regras disparadas, bem como as regras que no so executadas por
nenhum dos cenrios de teste existentes.
21 Teste unitrio o processo onde blocos individuais, funes, mtodos ou 'unidades' de cdigo so testados
individualmente. Um conjunto de entrada predeterminado usado para gerar uma sada que comparada
contra uma sada esperada. [] Testes unitrios permitem que voc saiba quando seu cdigo quebra.
(CASEY, 2010)
69
Figura 26 - Implementao das regras RN-PJ1 e RN-PJ2 como tabela de deciso do OpenL
Tablets
Figura 27 - Tela de rastreio do teste das regras RN-PJ1 e RN-PJ2, no Web Studio
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
4.3.4 Segurana
categorias.
Analista - Leitura Permisso apenas de leitura nas categorias determinadas.
Pacote - Desenvolvedor Tipo de usurio com permisso para operar a ferramenta em nvel de
pacotes.
Pacote - Leitura Permisso apenas de leitura nos pacotes determinados.
Fonte: elaborado pelo autor.
Embora o Web Studio tambm crie revises para cada operao de escrita de regras, a
ferramenta no disponibiliza um recurso para visualizar o histrico completo de uma regra em
especfico, pois suas revises seguem um modelo de sequenciamento geral. Dessa forma, o
usurio precisa abrir cada uma das revises sempre so exibidas todas as existentes para o
projeto e verificar se foi feito algo com a regra desejada. No obstante, tal tarefa se torna
ainda mais complicada pelo fato de no ser possvel informar comentrios no momento de
salvar uma regra.
A vantagem do Web Studio, porm, que possui justamente o recurso inexistente no
Guvnor: a comparao de uma regra em diferentes revises. A Figura 29 ilustra esse recurso,
que deixa destacadas as clulas modificadas.
73
(SOA)22. A grande vantagem desse tipo de abordagem o fato das regras passarem a ser
acessveis por sistemas e programas desenvolvidos independentemente da linguagem de
programao, ao contrrio da utilizao das APIs, que so disponibilizadas apenas para
linguagens especficas no caso do Drools e do OpenL Tablets, apenas para Java.
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
Sistemas de BRMS devem poder ser incorporados em arquiteturas SOA e suas regras
precisam permitir sua disponibilizao como web services. Os softwares de estudo deste
trabalho permitem que isso seja feito, embora tais recursos faam parte da etapa de
configurao da ferramenta, o que, consequentemente, no feito por usurios do negcio,
mas, sim, por pessoas da TI com conhecimento tcnico para tal.
4.3.7 Repositrio
22 Conforme Graham (2007), SOA uma forma de desenvolvimento de softwares que enfatiza a utilizao de
servios para suportar os requisitos do negcio. Neste modelo, os servios podem ser utilizados individual
ou coletivamente, por outros servios, e so independentes de tecnologias especficas, sendo geralmente
acessados atravs de padres como Simple Object Access Protocol (SOAP) e Web Services Description
Language (WSDL).
23 RMI a implementao Java do protocolo Remote Procedure Call (RPC), que permite a execuo de
procedimentos existentes em outras mquinas, em um ambiente distribudo (LAROQUE, 2003).
24 WebDav uma extenso do protocolo Hipertext Transfer Protocol (HTTP) que permite que os clientes
publiquem, bloqueiem e gerenciem recursos web (FITZPATRICK; PILATO; SUSSMAN, 2011).
75
5 CONCLUSO
negcio que guiam a empresa no alcance de suas metas e objetivos. Sua atualizao constante,
portanto, se tornou uma nova necessidade, visto que, devido a polticas, regulamentaes, leis
ou novas oportunidades de mercado, as regras de negcio costumam mudar com muita
frequncia. fato, porm, que estas regras no so responsabilidade da rea de tecnologia da
informao, uma vez que sua definio feita, geralmente, pela alta gerncia de uma empresa
ou por pessoas designadas especificamente para este fim, como os analistas de negcio.
Dessa forma, acabou surgindo um novo desafio para os envolvidos com tecnologia da
informao: como possibilitar a atualizao constante das regras de negcio de um sistema de
informao, permitindo o acesso s regras pelo prprio negcio e tornando este apto
realizao de alteraes quando necessrio? O principal objetivo deste trabalho, assim, foi
verificar se algumas das ferramentas de BRMS utilizadas atualmente atendem ao que
determina a bibliografia: solucionar o desafio supracitado e, como consequncia, remover a
lacuna existente entre as reas de negcio e tecnologia da informao.
De forma resumida, pode-se concluir que as ferramentas analisadas neste trabalho no
esto capacitadas a fornecer, para as pessoas do negcio, toda a autonomia esperada com a
implantao de um BRMS. Foi possvel obter esta resposta, inclusive, sem que os testes
fossem realizados por pessoas do negcio, uma vez que o desenvolvimento das regras em
qualquer uma das ferramentas, mesmo sendo feito por uma pessoa com conhecimento tcnico
em linguagens de programao, mostrou-se um processo complexo e demorado, que exigiu
diversas tentativas para ser terminado.
A implantao do JBoss Drools ou do OpenL Tablets como BRMS de uma
organizao, portanto, poderia resultar no aumento da complexidade do trabalho dos
envolvidos, contrariando a agilidade exigida pela demanda do mercado. Alm disso, a to
sonhada independncia da rea de TI no seria alcanada, uma vez que qualquer regra de
complexidade mnima exigiria a interveno de pessoas com conhecimentos de linguagens de
programao e das especificaes da ferramenta utilizada.
Por outro lado, a possibilidade de ter as regras de negcio separadas do cdigo-fonte
das aplicaes, permitindo seu constante reaproveitamento, acaba sendo um dos atrativos para
76
REFERNCIAS
3 SCALE. What is an API? Your guide to the Internet Business (R)evolution. 2012.
Disponvel em: <http://www.3scale.net/wp-content/uploads/2012/06/What-is-an-API-
1.0.pdf>. Acesso em: 19 maio 2013.
APPLETON, Daniel S. Datamation. Business Rules: The Missing Link. p. 145-150, outubro
1984.
BAJEC, Marko; KRISPER, Marjan. Information Systems. A methodology and tool support
for managing business rules in organisations, Oxford, v. 30, n. 6, p. 423-443, setembro
2005.
______. Issues and challanges in business rule-based information systems development. In:
ECIS 2005, 13., 2005, Regensburg, Information Systems in a Rapidly Changing Economy.
Regensburg, 2005. p. 887-898.
BALI, Michael. Drools JBoss Rules 5.0: Developer's Guide. Birmingham: Packt Publishing,
2009.
BRINCK, Tom; GERGLE, Darren; WOOD, Scott. Usability for the web: Designing Web
Sites that Work. [S. I.]: Sagebrush Education Resources, 2001.
BROWNE, Paul. JBoss Drools Business Rules: Capture, automate, and reuse your business
processes in a clear English language that your computer can understand. Birmingham: Packt
Publishing, 2009.
CARKENORD, Barbara A. Seven Steps to Mastering Business Analysis. The Bridge, [S. I.],
v. 5, n. 2, 2008. Disponvel em: <http://www.b2ttraining.com/wp-
content/uploads/thebridgefall2008.pdf>. Acesso em: 11 maio 2013.
CRUZ, Carla; RIBEIRO, Uir. Metodologia Cientfica: Teoria e Prtica. Rio de Janeiro:
Axcel Books, 2003.
FITZPATRICK, Brian W.; PILATO, C. Michael; SUSSMAN, Ben Collins. Version Control
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
FORGY, Charles. Artificial Intelligence. Rete: A fast Algorithm for the Many Pattern/Many
Object Pattern Match Problem, n. 19, p. 17-37, 1982.
GERRITS, Rick. Putting Business Rules in the Hands of the Business. Business Rules
Journal, [S. I.], v. 13, n. 4, abril 2012. Disponvel em:
<http://www.brcommunity.com/a2012/b645.html>. Acesso em: 11 maio 2013.
GIL, Antonio Carlos. Como elaborar projetos de pesquisa. 4 ed. So Paulo: Atlas S.A.,
2002.
GOUGEON, Alain. Everything you ever wanted to know about Business Rules. 2003.
Disponvel em: <http://www.bptrends.com/publicationfiles/07-03 ART Everything About Bus
Rules - Gougeon.pdf>. Acesso em: 22 maio 2013.
HALLE, Barbara von. Business Rules Applied: Building Better Systems Using the Business
Rules Approach. New York: John Wiley & Sons, Inc, 2002.
HAY, David; HEALY, Kery A. The Guide Business Rules Project: Final Report. Chicago:
Guide International Corporation, 2000. v. 1.3.
p. 173-189, 1990.
KRUG, Steve. No me faa pensar! Uma abordagem de bom senso usabilidade na Web. [S.
I.]: Alta Books, 2006.
MORGAN, Tony. Business Rules and Information Systems: Aligning IT with Business
Goals. Indianapolis: Addison-Wesley, 2002.
NARAYANAN, Rajagopalan. Business Rules Change All the Time, But Your Applications
Don't Have To. SAP Insider, [S. I.], v. 10, n. 2, abril 2009. Disponvel em:
<http://www.sap.com/campaign/emea/Assets/09_BRMWebinar_Sept/Business_Rules_Chang
e_All_The_Time.pdf>. Acesso em: 12 maio 2013.
PONNIAH, Paulraj. Data Warehousing Fundamentals. New York: John Wiley & Sons, Inc,
2001.
ROSS, Ronald G. What is a business rule? BR Community, maro 2000. Disponvel em:
<http://www.brcommunity.com/b005.php>. Acesso em: 05 maio 2013.
______. Business Rules Manifesto: The Principles of Rule Independence. Business Rules
Group, v. 2, novembro 2003. Disponvel em:
<http://www.businessrulesgroup.org/brmanifesto.htm>. Acesso em: 06 maio 2013.
80
______. Requirements are Rules: True or False? Business Rules Journal, [S. I.], v. 14, n. 3,
maro 2013. Disponvel em: <http://www.brcommunity.com/a2013/b692.html>. Acesso em:
BDU Biblioteca Digital da UNIVATES (http://www.univates.br/bdu)
12 maio 2013.
ROSS, Ronald G; LAM, Gladys S. W. Business Analysis with Business Rules. Business
Rules Journal, [S. I.], v. 12, n. 10, outubro 2011. Disponvel em:
<http://www.brcommunity.com/a2011/b616.html>. Acesso em: 11 maio 2013.
SHPIGEL, Michael. BPM, BRMS and SOA: Delivering on the Promise of Organizational
Agility. [2011?]. Disponvel em: <http://www.mitx.org/files/BPM_BRMS_and_SOA.pdf>.
Acesso em: 20 maio 2013.
VENETIANER, Tom. Como vender seu peixe na internet: um guia prtico de marketing e
comrcio eletrnicos. Rio de Janeiro: Campus, 2000.