IsBar: software específico para gerenciamento de bares usando Orientação a Objeto
Por FRANCISCO SANDRO ELIAS PORFÍRIO | 07/05/2014 | TecnologiaIsBar: software específico para gerenciamento de bares usando Orientação a Objeto [1]
Francisco Sandro Elias Porfírio[2]
RESUMO: Este artigo vem mostrar os passos necessários para o desenvolvimento de um software específico para bares, com o objetivo de suprir uma necessidade de controle e gerenciamento encontrada em diversos estabelecimentos do tipo, com a utilização da linguagem de programação Java que é bastante dinâmica e que facilita os trabalhos com o uso da orientação a objeto, podendo assim ter uma representação apropriada do mundo real em um software e com isso obter os resultados esperados. Tendo como resultado o aplicativo de fácil uso para os clientes e a documentação para que outros desenvolvedores possam estar utilizando-a em trabalhos futuros.
Palavras-chave: Java. Orientação a Objeto. Software. Bar.
- 1. Introdução
1.1. Definição do Problema
A partir da ideia proposta pelo professor Marcos Duarte[3] em desenvolver um software para gerenciamento de bares, questionou-se: quais seriam as funcionalidades desejadas em um software de gerenciamento de bares?
1.2. Justificativa
A grande maioria dos bares possui uma necessidade que é a implantação de um software que ajudasse no estoque e no controle de vendas do ambiente como também agilizasse o atendimento aos clientes deste estabelecimento. Sendo este software de extrema importância no gerenciamento de bares.
A utilização do paradigma orientado a objeto surgiu a partir dos requisitos cobrados pelo professor Marcos Duarte na disciplina de Programação Orientada a Objeto I, sendo este o facilitador do desenvolvimento do projeto, devido às vantagens que este paradigma traz identificando os objetos do mundo real facilitando a simulação e a relações entre esses objetos.
1.3. Objetivo Geral
Mostrar os passos necessários para o desenvolvimento de um software responsável pelo gerenciamento de bares.
1.4. Objetivos Específicos
Para alcançar o objetivo geral serão desenvolvidas as seguintes funcionalidades:
- Controle de entrada e saída de produtos no estoque;
- Controle de funcionários;
- Controle das mesas do bar;
- Fluxo de caixa.
- 2. Levantamento Bibliográfico
Em pesquisas realizadas na internet pode-se constatar que são muitos os trabalhos científicos relacionados ao desenvolvimento de softwares utilizando programação orientada a objeto, porém, dificilmente se encontra trabalhos científicos com o tema gerenciamento de bares.
Sendo a orientação a objeto um paradigma que vem para resolver muitos problemas enfrentados pela programação estruturada.
Segundo Sebesta (1999 apud PEREIRA; LIMA JÚNIOR, 2003, p. 2), “A essência da programação orientada a objetos é resolver problemas identificando os objetos do mundo real do problema e o seu pensamento necessário, criando, então, simulação dos mesmos, seus processos e as comunicações necessárias entre eles”.
- 3. Desenvolvimento
3.1.Materiais e Métodos
3.1.1. Linguagem
Java é a linguagem de programação utilizada nesse projeto, devido a todas as vantagens que esta linguagem pode oferecer, principalmente com a utilização da orientação a objetos.
3.1.2. Plataforma
A plataforma utilizada é a Java SE (Standard Edition), que é o Java para desktops e contém a Máquina Virtual JVM, o compilador e as APIs necessárias para o desenvolvimento de programas em Java.
3.1.3. Ambiente de Desenvolvimento
Netebeans foi a IDE (Integrated Development Environment) utilizada para o desenvolvimento do software juntamente com o StarUML para a criação de um diagrama de classes inicial.
3.2.Planejamento e Desenvolvimento do Software
Inicialmente foi feito um planejamento através de um diagrama de classes como mostra a Figura 1:
Figura 1: Diagrama de Classes (ideia inicial)
Ao longo do desenvolvimento houve a necessidade de adicionar mais métodos ao projeto, alterando assim algumas funcionalidades do planejamento inicial.
Em algumas classes foi necessário o uso de herança que é um dos principais recursos do paradigma orientado a objetos.
Deitel (2009, p. 301), define herança como sendo:
Uma forma de reutilização de software na qual uma nova classe é criada, absorvendo membros de uma classe existente e aprimorada com capacidades novas ou modificadas. Com a herança, os programadores economizam tempo durante o desenvolvimento de programa reutilizando software de alta qualidade testado e depurado. Isso também aumenta a probabilidade de um sistema ser implementado efetivamente.
Nas classes Produto e Funcionário houve o uso de herança para a utilização do polimorfismo que é a capacidade de um objeto poder ser referenciado de várias formas, e também a reutilização de código dessas classes existentes em nosso projeto, trabalhando individualmente cada uma deles.
Foi necessário definir também essas classes como sendo classes abstratas. Para Bitencourt (2011, p. 4): “Uma classe abstrata é utilizada quando deseja-se fornecer uma interface comum a diversos membros de uma hierarquia de classes. Os métodos declarados na classe abstrata serão implementados em suas subclasses, através de polimorfismo.”
Tratando essas classes como abstratas impede-se que sejam criadas instancias de funcionários e produtos, não podendo ser criados objetos desses tipos.
Outra escolha importante foi tratar os métodos de Estoque com estático, que é mais bem explicado por Ricarte (2011), quando diz que há situações em que um método pode fazer uso de recursos da classe sem necessariamente estar associado a um objeto, ou seja, um método estático pode ser aplicado à classe e não a objetos.
Dessa forma a informação fica guardada pela classe tendo assim apenas uma referência na memória.
3.3.Detalhes de Funcionamento
O projeto traz um software simples de gerenciamento de bares inicialmente sem o recurso de interface gráfica, mas com as funcionalidades básicas integradas para um bom funcionamento. O software possui um menu inicial com as opções de: funcionários, mesas, estoque, caixa e sair, demonstrados conforme a Figura 2.
Figura 2: Menu Inicial
Na opção Funcionário pode-se observar os submenus responsáveis pelo cadastro de um funcionário no sistema, sendo este de início pré-definido como Gerente ou Garçom, faz uma busca individual de funcionários, lista todos os funcionários cadastrados e também possui a opção de demitir um funcionário, conforme a Figura 3.
Figura 3: Menu Funcionário
Na segunda opção de menu, a Mesa é responsável por inserir uma nova mesa ao bar, abrir mesa na chegada de novos clientes, fazer um pedido àquela mesa, exibir o que já foi consumido em cada mesa e por último fechar mesa ao encerrar o conta, como mostra a Figura 4.
Figura 4: Menu Mesa
Já na terceira opção, no menu Estoque pode-se adicionar as bebidas e petiscos, buscar produtos pelo nome, listar todos os produtos, alterar e excluir um produto através do nome cadastrado, como mostra a Figura 5.
Figura 5: Menu Estoque
E por último, o menu Caixa que é responsável por exibir os gastos com os funcionários cadastrados, o saldo do caixa após o levantamento dos dados relacionados aos gastos com o pagamento dos funcionários e o que foi arrecadado com as contas encerradas e fechar o caixa diário que encerra o programa, conforme a Figura 6.
Figura 6: Menu Caixa
3.4.Simulação
Suponha que um cliente chegue ao bar, ao se dirigir a mesa, é criada uma conta, após isso o cliente realiza um pedido com o produto desejado, sendo descontada a quantidade no estoque. Com o cliente satisfeito é realizado o fechamento da mesa, havendo o pagamento da conta, o valor será atribuído ao caixa do bar.
- 4. Conclusão
Decorrente deste trabalho pode-se concluir que, apesar do desejo de implementação da interface gráfica não ter sido possível, o desenvolvimento do projeto aconteceu de acordo com o planejado e o software realiza as funções básicas necessárias para um bom funcionamento na gerência de bares.
O projeto foi desenvolvido de acordo com os conceitos apresentados em sala de aula, na disciplina Programação Orientada a Objeto I, servindo também de orientação para outros programadores que queiram desenvolver programas similares através do uso da API gerada.
Para implementações futuras pode-se desenvolver a persistência dos dados em um Banco de Dados além da implementação da Interface Gráfica para a obtenção de um layout mais agradável para o usuário.
- 5. Referências
BITENCOURT, Tatyana. Conceitos de Programação Orientada a Objetos. 2011. UNICAMP. Disponível em: <http://www.guj.com.br/content/articles/oop/oop.pdf>. Acesso em: 08 dez. 2011.
DEITEL, H. M. Java: como programar. 6ª ed. São Paulo: Pearson Prentice Hall, 2005.
PEREIRA, F. C. G. LIMA JÚNIOR, L. F. de. Programação Orientada a Objetos: Definição, Conceitos e terminologias. 2003. CEFETPB. Disponível em:
<http://www.coinfo.cefetpb.edu.br/professor/fred/progiv/spj-fj/slides/javaPOO.pdf>. Acesso em: 21 nov. 2011.
RICARTE, I. L. M. Programação Orientada a Objetos: Uma Abordagem com Java. 2001. Grupo de Usuários Java. Disponível em:
<http://www.dca.fee.unicamp.br/cursos/PooJava/Aulas/poojava.pdf>. Acesso em: 08 dez. 2011.
[1] Trabalho apresentado ao Curso de Sistemas de Informação da Faculdade Paraíso do Ceará (FAP) para a
obtenção de nota parcial na disciplina de Metodologia Científica, semestre 2011.02.
[2] Estudante de Graduação do Curso de Sistemas de Informação da Faculdade Paraíso do Ceará (FAP). Rua da Conceição, 1228 – Juazeiro do Norte – CE – Brasil. Endereço eletrônico: sandrokti@gmail.com. Técnico em Informática pelo Instituto Federal de Educação, Ciência e Tecnologia – Campus Crato-CE.
[3] Possui mestrado em Ciência da Computação pela Universidade Federal de Pernambuco e atualmente é professor e pesquisador pela Faculdade Paraíso – Juazeiro do Norte-CE.