FACULDADE DE TECNOLOGIA ALTO MÉDIO SÃO FRANCISCO FAC FUNAM Trabalho 01 Engenharia de Software III e Inteligência Artificial 1. Projetar e implementar um sistema, utilizando a linguagem java, que faça o mapeamento de ações baseado em agentes inteligentes, mais especificamente no agente reativo simples. Engenharia de Software Projeto do sistema que deve conter diagramas baseado na UML, inclusive diagramas das classes e dos padrões de projeto utilizados com suas respectivas descrições. Inteligência Artificial Explicação do funcionamento deste tipo de agente e implementação do código-fonte do trabalho. Código para auxilio no desenvolvimento do trabalho: package vo; /** * Classe que representa a condição. * @author Isac Aguiar * @date 28/03/2014 */ public class CondicaoVO { private int codigo; private String nome; private AcaoVO acaoVO; public int getCodigo() { return codigo; } public void setCodigo(int codigo) { this.codigo = codigo; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public AcaoVO getAcaoVO() { return acaoVO; } public void setAcaoVO(AcaoVO acaoVO) { this.acaoVO = acaoVO; } public String toString() { String valor = this.codigo+": "+this.nome+"\n"; if(acaoVO != null) { valor += "ação: ->" + this.getAcaoVO()+"\n"; } valor+= "---------------------------------------------------\n"; return valor; } } package vo; /** * Classe que representa a acão. * @author Isac Aguiar * @date 28/03/2014 */ public class AcaoVO { private int codigo; private String nome; public int getCodigo() { return codigo; } public void setCodigo(int codigo) { this.codigo = codigo; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String toString() { String valor = this.codigo+": "+this.nome; return valor; } } package dao; import java.util.ArrayList; import vo.CondicaoVO; /** * Classe de acesso a dados do value object acão. * @author Isac Aguiar * @date 28/03/2014 */ public class CondicaoDAO { private static CondicaoDAO INSTANCE = new CondicaoDAO(); private ArrayList<CondicaoVO> lista = new ArrayList<CondicaoVO>(); public static CondicaoDAO getInstance() { return INSTANCE; } public int cadastrar(CondicaoVO vo) { int codigo = lista.size(); vo.setCodigo(codigo); lista.add(vo); return codigo; } public ArrayList<CondicaoVO> getLista() { return lista; } } package bo; import java.util.ArrayList; import vo.CondicaoVO; import dao.CondicaoDAO; /** * Classe de negócio do value object acão. * @author Isac Aguiar * @date 28/03/2014 */ public class CondicaoBO { private CondicaoDAO acaoDAO; public void cadastrar(CondicaoVO acao) { acaoDAO = CondicaoDAO.getInstance(); acaoDAO.cadastrar(acao); } public ArrayList<CondicaoVO> getLista() { acaoDAO = CondicaoDAO.getInstance(); return acaoDAO.getLista(); } } package gui; import javax.swing.JOptionPane; /** * Classe de dialogo básica. * @author Isac Aguiar * @date 28/03/2014 */ public class BasicGUI { protected String input(String texto) { if(!"".equals(texto)) { String nome = JOptionPane.showInputDialog(null, texto); return nome; } return texto; } protected void message(String texto) { JOptionPane.showMessageDialog(null, texto); } } package gui; import java.util.ArrayList; import java.util.Iterator; import vo.AcaoVO; import vo.CondicaoVO; import bo.CondicaoBO; /** * Classe de interface com o usuário do value object acão. * @author Isac Aguiar * @date 28/03/2014 */ public class CondicaoGUI extends BasicGUI { CondicaoBO bo; public CondicaoGUI() { bo = new CondicaoBO(); } public void cadastrar() { boolean continua = true; CondicaoVO condicao = null; AcaoVO acao = null; while (continua) { String nome = input("Nome da condição:"); if(!"".equals(nome)) { condicao = new CondicaoVO(); condicao.setNome(nome); //Ação - implementar continua = false; } else { message("Nome inválido"); continua = true; } } if(condicao != null) bo.cadastrar(condicao); } public void listar() { ArrayList<CondicaoVO> lista = bo.getLista(); StringBuffer conteudo = new StringBuffer(); for(Iterator<CondicaoVO> it = lista.iterator();it.hasNext();) { CondicaoVO vo = (CondicaoVO) it.next(); conteudo.append(vo+"\n"); } message(conteudo.toString()); } } package gui; /** * Classe principal do projeto inicia a interface. * @author Isac Aguiar * @date 28/03/2014 */ public class Main extends BasicGUI { private CondicaoGUI acaoGUI; public Main() { acaoGUI = new CondicaoGUI(); } public static void main(String args[]) { Main main = new Main(); main.execute(); } public void execute() { String opcao = "0"; while(true) { opcao = input( "Menu de opções: \n" + "1. Cadastrar Ação \n" + "2. Visualizar Ação \n" + "<Numero>. Outras opções \n"+ "100. Sair"); if("1".equals(opcao)) acaoGUI.cadastrar(); else if("2".equals(opcao)) acaoGUI.listar(); else if ("100".equals(opcao)) System.exit(0); else message("Opção Inválida!"); } } }