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.

Slides:



Advertisements
Apresentações semelhantes
Geração de DSLs Vamos criar agora um projeto exemplo que trabalhe não mais com a linguagem DRL, mas sim com DSL (Domain Specific Languages – Linguagens.
Advertisements

Programação orientada a objetos
Programação em Java Prof. Maurício Braga
Programação Orientada a Objetos*
Programação em Java Prof. Maurício Braga
Programação em Java Prof. Maurício Braga
Entrada e Saída Marco Antonio Arquiteto de Software Dezembro/2007.
Java Básico Orientação a Objeto Marco Antonio Software Architect Fev/2008.
Consumindo e Criando Web Services SOAP em .Net
Web Services Passo a passo Consumo de serviço SOAP em.Net 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
Trabalho com tabelas de decisão
Interação entre objetos
Java: Pacotes e Modificadores de Visibilidade
Java: Pacotes e Modificadores de Visibilidade
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Iniciação ao Java – Márcio F. Campos
Programação Básica em Java
Streams Java.
Estatística Básica Utilizando o Excel
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Membros estáticos.
Capítulo 13 Pacotes. 2 Capítulo 13 – Pacotes Pacotes Pacote Cláusula package Cláusula import Executando uma classe de pacote Modificadores de acesso.
9 Controle de fluxo Seqüenciadores. Jumps. Escapes. Exceções.
Treinamento no GRADEp HelloWorld Args. Slide 2 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - julho 2005 HelloWorld e Args Autoria Autora.
JAVA ENUMS © 2009 by Jorge L. de Souza Leão março de 2009 PEE - COPPE/UFRJ.
Documentando con Javadoc
Capítulo 9 Herança 1.
Classes e objetos Arrays e Sobrecarga
Herança P. O. O. Prof. Ângela e Grace.
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação JAVA
Estrutura de Dados em Java
Hibernate com JPA Prática
JAVA: Conceitos Iniciais
Fiscal - Conversão de Regra de Imposto IdentificaçãoFIS_004 Data Revisão18/10/2013.
Se liga aí, que é hora da revisão!
Programação Orientada a Objetos com Java
Capítulo 2 Java Servlets.
Nazareno Andrade (baseado no material de Hyggo Almeida)
Streams –input e output
Hashing - Espalhamento
Programação I Aula 2 (Métodos)
Entendendo as definições de classe
Sistemas Operacionais
Linguagem de Programação JAVA
Primeira aula de PL/SQL Parte II
José Pacheco A. Prado. Você pode definir diferentes cursores em seus projetos. Para isto basta utilizar a função setCursor.
JEOPS Java Embedded Object Production System
Os métodos equals() e hashCode()
Capítulo 1 Tipo enumerado.
Professora Lucélia Oliveira
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This.
Stream – Fluxo I/O Sistema de Arquivos
LPII Professora Lucélia. Pacotes Um pacote em Java é um diretório onde ficam armazenadas uma ou mais classes. Geralmente as classes com a mesma afinidade.
Programação I Laboratório I
ÁREA DE TRABALHO DO WINDOWS
Capítulo 10. Stream – Fluxo I/O  Acessando o sistema de arquivos java.io.File  Gravação em arquivos texto java.io.FileWriter java.io.BufferedWriter.
Listas Simplesmente Encadeadas
Wagner Santos C. de Jesus
Nome alunos 1 Título UC. Título – slide 2 Conteúdo Conteúdo 2.
Laboratório I Mateus Raeder Material baseado nos originais da Profa. Denise Bandeira.
Tratamento de Exceções
Programação Orientada a Objetos - Java
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Contagem Sequencial do Estoque
Java Kickstart, day 2 Semelhanças com linguagem C.
Aula Prática 4 Monitoria IP/CC (~if669).
Implementação Orientada a Objetos – Aula 05 Construtores e sobrecarga de métodos Prof. Danielle Martin Universidade de Mogi das Cruzes
Análise Léxica Prof. Alexandre Monteiro
Introdução ao Eclipse 3.2 Prof. Gustavo Wagner (modificações) Slides originais: Prof. Tiago Massoni Java Básico  Centro de Informática, UFPE.
Transcrição da apresentação:

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 1) Criar um novo Rule Project; 2) Clicar no botão Next;

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

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).

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;

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

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

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

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; }

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

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

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;

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...

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

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!

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

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; ...

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")));

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();

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();

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

Projeto: Avaliação de Crédito Mais 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

Projeto: Avaliação de Crédito Mais 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