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!");
}
}
}
Download

Enunciado - Isac Aguiar