1 / 26

Exemplo de Projeto

Exemplo de Projeto. Vamos criar agora um projeto exemplo para verificar as condições de crédito de um conjunto de indivíduos; Nosso primeiro conjunto de regras será bastante simples: Pessoas acima de 18 anos tem crédito e pessoas abaixo de 18 anos não tem crédito. Projeto: Avaliação de Crédito.

sylvana
Télécharger la présentation

Exemplo de Projeto

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Exemplo de Projeto • Vamos criar agora um projeto exemplo para verificar as condições de crédito de um conjunto de indivíduos; • Nosso primeiro conjunto de regras será bastante simples: • Pessoas acima de 18 anos tem crédito e pessoas abaixo de 18 anos não tem crédito.

  2. Projeto: Avaliação de Crédito • 1) Criar um novo Rule Project; • 2) Clicar no botão Next;

  3. Projeto: Avaliação de Crédito • 3) Selecionar as 4 primeiras opções, para que um código esqueleto seja gerado automaticamente;

  4. Se você quiser testar se o Drools está funcionando, executar os arquivos: • DroolsTest: teste do Drools; • DecisionTableTest: teste da geração de regras a partir de tabelas de decisão (arquivo Sample.xls).

  5. Projeto: Avaliação de Crédito • 4) Vamos criar do zero um novo arquivo de regrar; • 5) Criar um novo pacote com o nome com.credito para armazenar seu código;

  6. Projeto: Avaliação de Crédito • 6) Criar a classe Pessoa que representa a pessoa que pode ou não receber crédito;

  7. Projeto: Avaliação de Crédito • 7) Criar os campos da pessoa: nome, idade, sexo, comidaPredileta, dataCarteira: • package com.credito; • import java.util.Date; • publicclass Pessoa { • private String nome; • privateint idade; • privatechar sexo; • private String comidaPredileta; • private Date dataCarteira; • }

  8. Projeto: Avaliação de Crédito • 8) Gerar o construtor usando o menu Source > Generate Constructor Using Fields.

  9. Projeto: Avaliação de Crédito • 9) Você vai ter um construtor semelhante a este: • public Pessoa(String nome, int idade, char sexo, String comidaPredileta, • Date dataCarteira) { • super(); • this.nome = nome; • this.idade = idade; • this.sexo = sexo; • this.comidaPredileta = comidaPredileta; • this.dataCarteira = dataCarteira; • }

  10. Projeto: Avaliação de Crédito • 10) Gerar os getters para cada campo. Não é necessária a geração dos setters, por enquanto.

  11. Projeto: Avaliação de Crédito • 11) Criar uma classe agora para armazenar tipos de comidas: • package com.credito; • publicclass Comida { • private String nome; • privateint calorias; • public Comida(String nome, int calorias) { • super(); • this.nome = nome; • this.calorias = calorias; • } • public String getNome() { • return nome; • } • publicint getCalorias() { • return calorias; • } • }

  12. Projeto: Avaliação de Crédito • 12) Vamos criar agora as regras. Criar um novo pacote de regras dentro do pacote com.credito dentro da pasta credito/src/rules;

  13. Projeto: Avaliação de Crédito • 13) Criar duas regras simples: • package com.credito • import com.credito.Pessoa; • import com.credito.Comida; • rule "Permite Crédito" • when • $p : Pessoa(idade >= 18) • then • System.out.println("Crédito Permitido para: " + $p.getNome() ); • end • # continua...

  14. Projeto: Avaliação de Crédito • rule "Crédito Negado" • when • Pessoa( $nome : nome, idade < 18) • then • System.out.println("Crédito Negado para: " + $nome); • end

  15. Projeto: Avaliação de Crédito • 14) Observar que: • Tem autocompletar via CTRL + <espaço>; • Os problemas são indicados na aba Problems; • SALVE SEMPRE!

  16. Projeto: Avaliação de Crédito • 15) Crie uma nova classe CreditoExemplo dentro do pacote com.credito. Coloque método main nesta classe.

  17. Projeto: Avaliação de Crédito • 16) Colocar os Imports necessários: • import java.io.IOException; • import java.io.InputStreamReader; • import org.drools.RuleBase; • import org.drools.RuleBaseFactory; • import org.drools.WorkingMemory; • import org.drools.compiler.DroolsParserException; • import org.drools.compiler.PackageBuilder; • import java.text.DateFormat; • import java.text.ParseException; • import java.text.SimpleDateFormat; • import java.util.Date; • ...

  18. Projeto: Avaliação de Crédito • 17) Carregar um pacotes de regras: • PackageBuilder builder = new PackageBuilder(); • builder.addPackageFromDrl(new InputStreamReader(CreditoExemplo.class.getResourceAsStream("/credito.drl")));

  19. Projeto: Avaliação de Crédito • 18) Criar uma nova base de regras a partir do pacote e carregar as regras dentro da memória de trabalho: • RuleBase ruleBase = RuleBaseFactory.newRuleBase(); • ruleBase.addPackage(builder.getPackage()); • WorkingMemory workingMemory = ruleBase.newStatefulSession();

  20. Projeto: Avaliação de Crédito • 19) Colocar os fatos na memória de trabalho e disparar as regras: • Pessoa alberto = new Pessoa("Alberto", 23, 'M', "Banana", formataData("12/03/2001")); • Pessoa bernardo = new Pessoa("Bernardo", 17, 'M', "Maça", formataData("15/12/2000")); • //... • workingMemory.insert(alberto); • workingMemory.insert(bernardo); • workingMemory.fireAllRules();

  21. Projeto: Avaliação de Crédito • 20) Observar a resposta obtida: • Crédito Negado para: Bernardo • Crédito Permitido para: Alberto

  22. Projeto: Avaliação de CréditoMais exemplos de regras • rule "Comida muito calórica" • when • $p: Pessoa ($gostaDe: comidaPredileta) • $c: Comida ( nome == $gostaDe, calorias >= 500) • then • System.out.println("Pense Bem! " + $p.getNome() + " come comidas muito gordurosas!"); • retract($p); • end

  23. Projeto: Avaliação de CréditoMais exemplos de regras • rule "Idade suspeita" • when • $p: Pessoa( idade > 99) • then • System.out.println(“Ei, “+$p.getNome()+” está mentindo a idade!"); • $p.setIdade(0); • update($p); • end

More Related