3.1 MODELAGEM
3.1.5 Diagramas de Classes
Figura 26.Diagrama de seqüência dos agentes envolvidos no processo de leilão
3.1.5.1 Classes da Ferramenta
As classes da ferramenta são aquelas que são usadas em todo o Gilgamesh. Na Figura 27, pode ser visualizado esse diagrama de classes. As classes presentes no diagrama são: GLance.
GLeilao, GUsuario, GProduto e GOferta.
Figura 27. Diagrama de classes da ferramenta GLance
Classe que representa os lances submetidos aos leilões. A Tabela 5 e a Tabela 6 demonstram os atributos e as operações, respectivamente.
Tabela 5. Atributos da classe GLance
Atributo Descrição do Atributo descricao: String Descrição do lance Produto: GProduto Produto do lance
quantidade: int Quantidade proposta no lance valor: float Valor do lance
Tabela 6. Operações da classe GLance
Operação Parâmetros Descrição da Operação getDescricao(): String Retorna descrição do lance getProduto(): GProduto Retorna produto do lance getQuantidade(): int Retorna quantidade do lance getValor(): float Retorna valor do lance
recoverData(): GLance Recupera informações a partir do banco setLance(): void String desc Insere informações do lance
storeData(): void Armazena dados do leilão no banco de dados
GLeilao
Classe que representa as características de um leilão virtual. Nas Tabela 7 e Tabela 8 estão descritos as informações de atributos e operações, respectivamente.
Tabela 7. Atributos da classe GLeilao
Atributo Descrição do Atributo descricao: String Descrição do leilão Lances: GLance Lances do leilão Ofertas: GOferta Ofertas do leilão tipo: String Tipo do leilão
Tabela 8. Operações da classe GLeilao
Operação Parâmetros Descrição da Operação getDescricao(): String Retorna a descrição do produto getLances(): GLance [] Retorna lances submetidos ao leilão getOfertas(): GOfertas Retorna as ofertas do leilão
getTipo(): String Retorna o tipo do leilão
recoverLeilao(): void String leilao Atualiza o objeto com os dados pertinentes a leilão da base
setLeilao(): void String tipo, String descricao, GLance Lances, GOferta Oferta
Insere informações do leilão nos atributos
storeData(): void Armazena dados do objeto no banco
GUsuario
A classe GUsuario é a responsável de armazenar e processar as informações do usuário. A Tabela 9 e a Tabela 10 descrevem, respectivamente, os atributos e as operações da classe.
Tabela 9. Atributos da classe GUsuario
Atributo Descrição do Atributo email: String Email do usuário nome: String Nome do usuário
Tabela 10. Operações da classe GUsuario
Operação Parâmetros Descrição da Operação getEmail(): String Retorna e-mail do usuário
getNome(): String Retorna nome do usuário
setEmail(): void String email Insere o email do usuário setNome(): void String nome Insere nome do usuário
GProduto
A classe GProduto representa um produto no Gilgamesh. A Tabela 11 e a Tabela 12 representam, respectivamente, a descrição dos atributos e operações da classe GProduto.
Tabela 11. Atributos da classe GProduto
Atributo Descrição do Atributo caracteristicas String[] Características do produto descricao String Descrição do produto
Tabela 12. Operações da classe GProduto
Operação Parâmetros Descrição da Operação getCaracteristicas():
String[]
Retorna as características do produto getDecricao(): String Retorna a descrição do produto setProduto(): void String desc,
String carac[]
Insere dados de produto
GOferta
A classe GOferta representa a oferta de um produto à venda. Na Tabela 13 e na Tabela 14 estão listadas as descrições dos atributos e das operações, respectivamente.
Tabela 13. Atributos da classe GOferta
Atributo Descrição do Atributo descricao: String Descrição da oferat Produto: GProduto Produto da oferta quantidade: int Quantidade ofertada valor: float Valor mínimo da oferta
Tabela 14. Operações da classe GOferta
Operação Parâmetros Descrição da Operação getDescricao(): String Retorna descrição da oferta getProduto(): GProduto Retorna produto da oferta getQuantidade(): int Retorna quantidade da oferta
getValor(): float Retorna valor da oferta (preço unitário) recoverData(): void String leilão Atualiza dados do objeto com dados da base setOferta(): void String desc,
GProduto Produto, int qtd,
float valor
Configura atributos do objeto oferta
storeData(): void Armazena dados da oferta no banco de dados
3.1.5.2 Classes dos Agentes
As classes dos agentes são aquelas que são usadas para implementar os agentes do Gilgamesh. Na Figura 28, pode ser visualizada esse diagrama de classes. As classes presentes no diagrama são classificadas como classe do módulo de leilões e classes do módulo de busca de produto.
Figura 28. Diagrama de classes dos agentes do Gilgamesh Classes do módulo de leilões
As classes do módulo de leilões são aquelas que projetam classes que serão implementadas no módulo de leilões do Gilgamesh. Essas classes são: GAgOfertante, GAgArrematante e GAgInterfaceCLIPS.
GAgOfertante
A classe GAgOfertante representa o Agente Ofertante do Gilgamesh. Na Tabela 15 e na Tabela 16 podem ser visualizados, respectivamente, atributos e operações da classe.
Tabela 15. Atributos da classe GAgOfertante
Atributo Descrição do Atributo
Leiloes[]: GLeilao Leilões nos quais o leiloeiro participa
Tabela 16. Operações da classe GAgOfertante
Operação Parâmetros Descrição da Operação finalizeLeilao(): void GLeilao Leilao Finaliza leilão
recebeLance(): void GLance Lance Recebe lances
recoverData(): void Atualiza informações do agente através do banco de dados
showVencedor():
GAgArrematante
Retorna vencedor do leilão
storeData(): void Armazena informações do ofertante no banco de dados
GAgArrematante
A classe GAgArrematante representa o Agente Arrematante do Gilgamesh. Na Tabela 17 e na Tabela 18 podem ser visualizados, respectivamente, atributos e operações da classe.
Tabela 17. Atributos da classe GAgArrematante Atributo Descrição do Atributo Lances[] GLance Lances do arrematante
Tabela 18. Operações da classe GAgArrematante
Operação Parâmetros Descrição da Operação
recoverData(): void GUsuario Usuario Atualiza informações do agente de acordo com o banco de dados
storeData(): void Armazena informações do agente no banco de dados
submitLance(): void GLeilao Leilao Submete lances ao leilão
GAgInterfaceCLIPS
A classe GAgInterfaceCLIPS representa o Agente Interface Sistema Especialista do Gilgamesh. Na Tabela 19 e na Tabela 20 podem ser visualizados, respectivamente, atributos e operações da classe.
Tabela 19. Atributos da classe GAgBuscaLeilao Atributo Descrição do Atributo
lstRequisicoes: ArrayList Lista de requisições ao Sistema Especialista
Tabela 20. Operações da classe GAgBuscaLeilao
Operação Parâmetros Descrição da Operação setRequisicao(): void GilgaMessage
GMRequisicao
Recupera resultado da execução da requisição a regra
getResultadoRequisicoes():
String
String nomeAgente Retorna resultado das requisições ao Sistema Especialista
Classes do módulo de busca de produtos
As classes do módulo de busca de preços são: GAgWebCrawler e GAgBuscaProduto.
GAgWebCrawler
A classe GAgWebCrawler representa o Agente Web Crawler do Gilgamesh. Na Tabela 21 e na Tabela 22 podem ser visualizados, respectivamente, atributos e operações da classe.
Tabela 21. Atributos da classe GAgWebCrawler Atributo Descrição do Atributo
queueLinks: String[] Fila de links a serem varridos pelo agente
Tabela 22. Operações da classe GAgWebCrawler
Operação Parâmetros Descrição da Operação
accessWeb(): String[] String url Acessa uma página Web e retorna a mesma seachLinks(): void String[] pagina Retorna links encontrados em uma página e os
grava no final da queueLinks
GAgBuscaProduto
A classe GAgBuscaProduto representa o Agente Busca Produto do Gilgamesh. Na Tabela 23 e na Tabela 24 podem ser visualizados, respectivamente, atributos e operações da classe.
Tabela 23. Atributos da classe GAgBuscaProduto Atributo Descrição do Atributo
listPaginas: String[][] Lista de páginas que foram armazenadas pelo Agente Web Crawler
Tabela 24. Operações da classe GAgBuscaProduto
Operação Parâmetros Descrição da Operação
recoverData(): void Busca todas as páginas que o Agente Web Crawler gravou no banco de dados e grava as mesmas na lista de páginas (lstPagina)
searchProduto(): void Procura informações de produtos nas páginas da lista lstPagina e grava estes produtos em uma tabela de ocorrências no banco de dados