Projeto Money Count – Idealização

Uma dificuldade que percebo nas pessoas que começam a aprender Java (assim com qualquer tecnologia) é conseguir juntar tudo que se lê a respeito em algo executável, ou seja, conseguir entender todas as tecnologias e padrões envolvidos no desenvolvimento de um sistema.

Para Java essa curva de aprendizado é relamente mais acentuada, ainda mais quando alguém se dispõe a aprender por conta própria.

Ainda me lembro de quando vi Java pela primeira vez, na faculdade. Na ocasião o professor chegou nos mostrando um programinha com poucas linhas que apresentava uma janelinha (JOptionPane) que solicitava uma informação e a apresentava na tela novamente. Aquilo me encantou, mas eu não sabia nem por onde começar, nem como instalar a JDK. Era um longo caminho pela frente (que eu ainda estou trilhando, diga-se de passagem).

Depois disso tivemos Java como linguagem para aprender OO, e mais um semestre em que vimos algo a mais de Java (a contragosto da maioria da sala). Na época não usávamos IDEs como Netbeans ou Eclipse; era tudo no JCreator. Me lembro de ter feito várias e várias telas na mão, com Swing, direto no JCreator, sem os recursos de arrastar e soltar.

Levei tempos até conseguir entender coisas como o que são drivers JDBC, pra entender como fazer uma conexão com o banco de dados, como usar padrões, etc, etc, etc.

Até conseguir criar algo considerável, um sisteminha desktop “bobinho” com conexão à base de dados, validações em formulários, e separação em camadas, penei muito nos fóruns, em cima de livros, e posso garantir que a maior dificuldade é realmente organizar todas as informações encontradas em algo funcional.

Quando criei este blog, a minha intenção era de compartilhar um pouco daquilo que aprendi desde então, nos anos que venho trabalhando com tecnologia. Fica claro que o foco é Java, mas prentendo continuar postando sobre tudo aquilo que julgar proveitoso em outras tecnologias. A intenção do blog continua a mesma, mas refletindo sobre essa dificuldade inicial dos estudantes da tecnologia, pensei em estruturar de uma maneira melhor as postagens, “colocá-las nos trilhos” para que aqueles que estão começando possam aproveitar em algum momento posts mais avançados, sem ficarem confusos. Para resumir, pensei em criar um passo-a-passo, que vai do básico até temas mais avançados.

Para conseguir isso, pensei em criar um projeto de estudo de caso, que possa passar pelos processos de análise, projeto, e desenvolvimento, passando pelas tecnologias básicas até as mais avançadas.

A idéia de ter um projeto padrão é poder, a apartir de um momento, não se importar com “o que” desenvolver, mas com o “como”, podendo ainda fazer comparativos entre as tecnologias para o desenvolvimento do mesmo sistema.

Para este objetivo elegi o primeiro sistema que desenvolvi em Java, com conexão a banco de dados e tudo o mais. É um projeto bem simples, mas funcional, e que está até hoje em funcionamento. Esse projeto surgiu da necessidade de um amigo, que me solicitou um sistema para contagem de unidades monetárias, há muito tempo atrás. A seguir darei o escopo do projeto, e a partir de agora alguns posts serão referentes a este projeto, começando do básico até alcançarmos conceitos e tecnologias mais avançadas.

Money Count

A necessidade do cliente resume-se ao seguinte:

O cliente necessita efetuar pagamentos a funcionários e fornecedores em dinheiro vivo, e para isso calcula todos os pagamentos a serem efetuados no dia e realiza saques no banco. O problema é que a soma dos valores é sacada em notas grandes, e geralmente faltam moedas e notas menores para efetuar o pagamento de valores “quebrados”. Como o cálculo dos valores é realizado por funcionários, de uma maneira não automatizada, erros são possíveis.

O que o sistema a ser desenvolvido deverá realizar:

O cliente solicitou o desenvolvimento de um sistema que permita o cadastro de contas em um banco de dados, para que posteriormente possa emitir relatórios de pagamentos diários de maneira fácil.

O sistema deverá permitir que se saiba, ao final de um relatório, quais e quantas unidades monetárias serão necessárias para se efetuar todos os pagamentos do dia.

Parece fácil não? E é!

Olhando esta especificação, muito simples, é fácil entender a necessidade do cliente e imaginar o sistema a ser desenvolvido.

O problema é o desenvolvimento desse sistema por uma pessoa que está começando agora.

No próximo post começaremos a analisar este sistema mais a fundo (processo de análise), elegendo as classes conceituais que irão compor o sistema, trabalhando com diagramação UML (só o necessário) e nos preparando para o desenvolvimento.

Até lá!

Deixe um comentário