Simulador de Leilão Eletrônico em Java

Propaganda
Simulador de Leilão Eletrônico em Java
Felipe Simeão Taboada1, Silvio de Oliveira Carlos1, Ulissis Gomes Corrêa1, Priscyla
Waleska Targino de Azevedo Simões2, Cristiane Raquel Woszezenki2
1
Acadêmico do curso de Ciência da Computação – Unidade Acadêmica de Ciências, Engenharias
e Tecnologias - Universidade do Extremo Sul Catarinense (UNESC) – Criciúma, SC - Brasil
2
Professor(a) do curso de Ciência da Computação - Unidade Acadêmica de Ciências, Engenharias
e Tecnologias - Universidade do Extremo Sul Catarinense (UNESC) – Criciúma, SC - Brasil
{flip_41, silvio_tc_, ulissis_}@hotmail.com, {crw, pri}@unesc.net}
Resumo. O presente artigo descreve as fundamentações teóricas relativo a um
trabalho interdisciplinar de Estrutura de Dados I e Programação II, do Curso de
Ciência da Computação da Universidade do Extremo Sul Catarinense, que
objetivou aprofundar o conteúdo em alocação dinâmica de memória, filas e listas,
por meio do desenvolvimento de um software de leilão eletrônico em Java.
Palavras-chave: Estrutura de Dados; Programação Orientada a Objetos; Java;
Collections do Java; Leilão Eletrônico.
1. Introdução
No primeiro semestre de 2008 foi proposto um trabalho entre as disciplinas Estrutura de
Dados I e Programação II da terceira fase do curso de Ciência da Computação da UNESC
para a correlação dos conceitos abordados. Nesse sentido, este artigo descreve o
desenvolvimento de um aplicativo que teve como objetivo simular um leilão eletrônico.
Para alcançar o objetivo, os conceitos abordados na fundamentação teórica foram:
estrutura de dados, listas lineares, listas com disciplina de acesso, linguagem Java,
programação orientada a objetos e Collections (Coleções) do Java.
1.1 Linguagem Java
A linguagem Java foi anunciada oficialmente em maio de 1995 pela Sun Microsystems e
seu projeto partiu da idéia de que o próximo impacto seria nos dispositivos eletrônicos
inteligentes. Com esse principio, a Sun investiu em uma pesquisa interna de codinome
Green que foi desenvolvido com base nas linguagens C/C++. De imediato a linguagem não
fez muito sucesso pois o mercado não estava acompanhando a evolução vislumbrada pelos
criadores. Porém com a explosão da Internet notou-se uma grande força das aplicações Java
para Web, o que deu um impulso a mais para o Java se tornar uma linguagem de referência
internacional também em desktops.
Segundo Deitel (2001), a World Wide Web explodiu em popularidade em 1993 e as
pessoas da Sun viram de imediato o potencial de utilizar Java para criar paginas para Web.
Neste contexto, o Java é uma linguagem de programação orientada a objetos e, em
contraste as linguagens mais conhecidas, que são compiladas para código nativo, possui
uma tecnologia denominada bytecode (entre o código-fonte e a aplicação final).
1.2 Programação Orientada a Objeto
A programação orientada a objetos é um paradigma que representa o modo como os objetos são caracterizados
no dia-a-dia. Com essa teoria é possível criar programas e reutilizá-los, e podendo se tornar de fácil
compreensão.
A programação orientada a objetos nos fornece uma maneira mais natural e
intuitiva de ver o processo de programação.
Assim como as pessoas se comunicam entre si, os objetos também se comunicam
via mensagens. (DEITEL, H.M; DEITEL, P. J.. Java: como programar. 2001)
Neste paradigma, o programa é conceituado como um grupo de objetos que trabalham em
conjunto para a realização das tarefas. Cada um é uma parte separada do aplicativo interagindo com as
demais de maneira específica e totalmente controlada.
1.3 Estruturas de Dados
A Estrutura de Dados trata a forma como o fluxo dos dados é executado em de um aplicativo.
Uma lista encadeada pode ser considerada uma seqüência linear formada por nós ou nodos ligados por
meio de referência. Cada nodo tem a informação a que o nodo anterior tem referência, exceto pelo último do
qual a referência é feita para NULL que delimita o final da lista.
Uma lista é uma coleção linear de objetos auto-referenciais de classe, chamados de
nodos, conectados por links de referência [DEITEL 2001].
Em Java, as listas encadeadas podem ser aplicadas com o pacote java.util que
contem a classe LinkedList.
As filas representam uma estrutura de dados comum, semelhante a uma fila de
banco, supermercado, no qual a primeira pessoa é atendida enquanto os outros esperam na
fila. Nesta estrutura, os nodos são removidos pelo inicio e inseridos pelo final, por isso é
referenciada como FIFO (first-in, first-out).
[...]Muitos usuários podem estar gerando saídas para serem impressas. Se a
impressora estiver ocupada, outras saídas ainda ordem ser geradas. Estas são
colocadas no "spool" em disco (de maneira muito parecida de como um fio é
enrolado em um carretel) onde esperam em uma fila até a impressora ficar
disponível. (DEITEL, H.M; DEITEL, P. J.. Java: como programar. 2001)
Uma fila de prioridade é uma coleção em que a remoção ocorre por meio de
prioridade, ascendente ou descendente. Existem apenas de duas operações com filas de
prioridade, a inserção e remoção do elemento de maior prioridade.
Segundo Lafore (2004), a implementação das filas de prioridade por acervos
permite o maior equilíbrio no desempenho da procura de elementos.
2. Estudo de caso
O estudo de caso dessa pesquisa aborda o desenvolvimento de um simulador de leilão
virtual desenvolvido em Java a partir do ambiente NetBeans IDE 6.1, contando com
conceitos de estrutura de dados (listas, filas e filas de prioridade) e orientação a objetos.
O leilão virtual realiza a venda de produtos previamente cadastrados entre seus
usuários, onde um produto é posto a venda inicialmente com um lance minimo, e ao final
do tempo, o usuário com o maior lance registrado, adquire o produto.
As classes utilizadas na modelagem do aplicativo e ilustradas na Figura 1 são:
Produto; Remover; DarLance, que sobrepõe o preço inicial anunciado; Buscar, que localiza
produtos na lista; Listar, que exibe os produtos cadastrados na lista; Anuncia, que anuncia o
produto; e, Principal.
Figura 1: Diagrama de classes
A lista foi utilizada para lógicas de gerenciamento dos produtos; a fila para
organização dos produtos anunciados; e a fila de prioridade descendente para os lances.
O aplicativo foi desenvolvido em Java a partir do ambiente NetBeans IDE 6.1 tendo
como principais recursos ilustrados na figura 2: anunciar produto, listar produto anunciado,
buscar produtos anunciados, remover produtos anunciados, e, realizar um lance a um
produto anunciado.
Figura 2: Programa em funcionamento
3. Conclusões
A partir do desenvolvimento deste artigo pode-se concluir que os conceitos inerentes as
listas lineares são aplicáveis no desenvolvimento da maioria de aplicativos. Tanto o Java
quanto o C++ contam com as estruturas de dados a partir das collections em Java, e STL no
C++ , que facilitam o desenvolvimento de aplicativos mais robustos.
Considerando que o foco do grupo foi aprofundar o estudo sobre as Collections do
Java, o aplicativo foi desenvolvido somente para um usuário.
Com relação à interdisciplinaridade desse trabalho pode-se observar que os
conceitos puderam ser correlacionados e aprofundados.
Referências
NAUGHTON, Patrick. Dominando o JAVA. São Paulo: Makron Books, 1996.
LAFORE, Robert. Estruturas de Dados & Algoritmos em Java. Rio de Janeiro: Ciência
Moderna, 2004.
DEITEL, H.M; DEITEL, P. J.. Java: como programar. Porto Alegre: Bookman, 2001.
PUGA, Sandra; RISSETTI, Gerson. Lógica de Programação e Estruturas de Dados com
aplicações em Java. São Paulo: Prentice Hall, 2004.
CADENHEAD, Borges; LEMAY, Laura. Aprenda em 21 dias Java 2. Rio de Janeiro: Ed.
Campus, 2003.
Download