Análise de completude
A análise de completude é um mecanismo para verificar se há regras em falta a partir de um conjunto de regras.
Uma ruleset é considerada completa se para qualquer caso possível pelo menos uma regra se aplica.
- Verifique se uma ruleset está completa.
- Obtenha um relatório das regras em falta.
- Acrescente as regras que faltam para a régua.
Para obter mais informações, consulte Analisando um projeto de regra
Mecanismo de completude
O mecanismo de completude analisa a parte da condição de cada regra em uma ruleset e detecta se há casos em que nenhuma regra se aplica.
Para verificar se uma ruleset está completa, o mecanismo de completude procede da seguinte forma para identificar os casos que estão ausentes:
Se o projeto de regra contém um fluxo de regra, o mecanismo de completude analisa a tarefa de regra de regra por tarefa, para verificar se cada tarefa de regra está completa.
Por exemplo, se uma regra está ausente em várias tarefas de regras, o relatório lista as tarefas de regra onde a regra está ausente.
Se o projeto de regra não contiver nenhum fluxo de regra, o mecanismo de completude leva em conta todas as regras do projeto.
Nota:Um ruleflow deve conter pelo menos uma tarefa de regra.
Exemplo de análise de completude
No exemplo a seguir, a ruleset é composta por cinco regras que definem the customer e que configuram a categoria de the customer a Silver, Platinum ou Gold.
Regra 1
se o valor do cliente é pelo menos 500 e o valor do cliente é menor que 1000 então set the category of the customer to "Silver";
Regra 2
se a idade do cliente é pelo menos 65 e o valor do cliente é menor que 500 então set the category of the customer to "Platinum";
Regra 3
se o valor do cliente é pelo menos 1000 e o valor do cliente é menor que 1500 então set the category of the customer to "Gold";
Regra 4
se o valor do cliente é pelo menos 1500 então set the category of the customer to "Platinum";
Regra 5
se o valor do cliente é menor que 500 e a idade do cliente é menor que 50 então set the category of the customer to "Platinum";
Análise de completude da ruleset detecta que nenhuma regra aplicada no caso em que o cliente esteja entre 50 e 65 e tenha um valor inferior a 500.
Esse caso ausente é apresentado como um esqueleto de regras que você pode usar para criar a regra ausente:
definições
set 'Customer1' to a customer ;
se
o valor de Customer1 é menor que 500
e a idade de Customer1 é menor que 65
e a idade de Customer1 é de pelo menos 50
então
<action>
Regras em falta
Se a análise de completude mostrar que sua ruleset não está completa, ele propõe regras adicionais para completar a ruleset. Essas novas regras são regras de esqueleto. É preciso editar a regra ausente para definir a ação a ser feita.
O mecanismo de completude analisa as condições de cada regra na régua para definir o conjunto de condições para a regra proposta. Se as regras corresponderam a um objeto Customer mas testem atributos diferentes, por exemplo age, valuee shopping cart, o conjunto de condições na regra proposta leva em consideração os atributos testados nas regras analisadas. Portanto, a parte de condição na regra sugerida pode parecer complexa e incluir muitas instruções de condição. Ela pode ser simplificada para refletir uma forma mais natural de expressar as condições de regra. A análise é baseada nos objetos utilizados nas regras existentes e que combinam com a memória de trabalho. Para obter mais informações, consulte Ferramentas de depuração Ruelset.
No exemplo a seguir, a regra sugerida testa os atributos value e age . Você pode simplificar a regra removendo qualquer condição.
Exemplo
Se a análise de integralidade propõe a seguinte regra:
definições
set 'Customer1' to a customer ;
se
o valor de Customer1 é menor que 500
e a idade de Customer1 é menor que 65
e a idade de Customer1 é de pelo menos 50
então
<action>
você pode remover a condição na idade do cliente, e manter apenas a condição no valor:
definições
set 'Customer1' to a customer ;
se
o valor de Customer1 é menor que 500
então
<action>
Se a ruleset contém apenas regras de ação, as regras de falta propostas são verbalizadas. No entanto, se a ruleset incluir regras técnicas ou tabelas de decisão, ou se houver pouca informação sobre verbalização, as regras em falta são apresentadas em IRL.
O mecanismo de completude pode gerar regras que se sobrepõem. Você pode modificar as condições dessas regras.
Desempenho
O desempenho da análise de completude depende de vários fatores como o número de regras no conjunto de regras, o número de tarefas de regras e o mais importante o número de regras em falta.
Para melhorar o desempenho e reduzir o tempo de execução da análise de completude, defina um limite para o número de regras em falta para propor. Por exemplo, limite os resultados a dez regras em falta. Uma vez que você integrou as dez primeiras regras faltas, execute a análise de completude novamente para identificar outras regras que faltam.