TCC - LagarLottery Desenvolvimento de um software para jogadores de loterias Aluno: Euclides Pinheiro de Melo lagar_lottery@yahoo.com.br Orientador: Dalton Francisco de Andrade dandrade@inf.ufsc.br Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Sistemas de Informação
Banca examinadora Prof. PhD. Dalton Francisco de Andrade (Orientador) Prof. Dr. Paulo Sergio da Silva Borges Prof. Dr. Ricardo Pereira e Silva
Estrutura da apresentação Introdução Software para jogadores de loterias Objetivos Requisitos Projeto Implementação LagarLottery v1.0 Considerações finais / trabalhos futuros Perguntas e comentários
Introdução Introdução O problema da loteria O desejo do jogador Estratégias para vencer Software pode ajudar
Introdução Software para jogadores de loteria Propósito Processo típico para jogar na loteria Características gerais Limitações
Introdução Propósito Aliviar o usuário de tarefas mecânicas e repetitivas Dar agilidade e conveniência ao processo de se jogar na loteria
Processo típico para jogar na loteria Introdução
Introdução Características gerais Realizar análises sobre os resultados passados; Gerar bolões; Filtrar bolões gerados; Imprimir os jogos em volantes de loteria; Conferir os jogos.
Introdução Limitações De modo geral, não há como garantir ganhos (o software é ferramenta, cabe ao jogador a estratégia) Impossível disponibilizar todas as funcionalidades que cada usuário possa desejar de antemão. Falta de extensibilidade é um problema comum dos softwares existentes
Introdução Objetivos Desenvolver um software para jogadores de loterias Específicos (principais): carga dos resultados de loterias via internet; permitir análises sobre os resultados passados que foram carregados, e apresentar estas análises de forma visual (tipicamente gráficos); gerar combinações de jogos (conhecidos tipicamente como bolões);
Introdução Objetivos permitir restrições sobre jogos combinados (conhecidos tipicamente como filtros); realizar conferência dos jogos gerados; imprimir os jogos gerados em volantes de loterias; software deverá ser extensível para outras loterias similares e fornecer facilidades para adicionar novas funcionalidades;
Requisitos Requisitos Mapeamento dos objetivos do trabalho para requisitos de software O diferencial mais importante deste trabalho: extensibilidade
Projeto Projeto Dividiu-se o problema em 6 módulos: Módulo análise Módulo filtro Módulo gerador Módulo conferência Módulo impressão Módulo núcleo
Projeto Projeto Como o problema da extensibilidade foi resolvido Arquitetura plugin Exemplos: módulo análise suporte a loterias diferentes
Projeto Arquitetura plugin Navegadores de internet suportam plugins para adicionar novos tratadores de tipo de mídia Editores de imagem, como o Photoshop, Gimp, Corel suportam plugins para aplicar efeitos nas imagens em edição Ambientes de desenvolvimento, como o Eclipse e o Netbeans, permitem que novas funcionalidades sejam agregadas ao ambiente
Projeto Arquitetura plugin em LagarLottery Permitir ao usuário do software a adição de novas funcionalidades (análises, filtros, geradores, etc) sem necessidade de recompilar ou alterar código existente Sistema reconhece a presença de código novo e o deixa disponível para uso Abstrações pré-definidas facilitam o trabalho do desenvolvedor em adicionar novas funcionalidades
Exemplo: módulo análise Projeto
Exemplo: suporte a loterias diferentes Projeto
Implementação Tecnologias Java 5 ou maior (facilidade para identificar subclasses de uma classe específica em tempo de execução) Netbeans 5.5 (facilidade para o desenvolvimento da interface gráfica, integração CVS, bom editor) Todas disponíveis gratuitamente para baixar (facilita para que novos desenvolvedores se envolvam no projeto)
Implementação Site do projeto SourceForge http://sourceforge.net/projects/lagar-lottery/ CVS (fonte e documentos) Binário pronto para execução
LagarLottery v1.0 LagarLottery v1.0 A seguir, telas das principais funcionalidades:
Tela inicial
LagarLottery v1.0
LagarLottery v1.0
LagarLottery v1.0
LagarLottery v1.0
LagarLottery v1.0
LagarLottery v1.0
LagarLottery v1.0
LagarLottery v1.0
LagarLottery v1.0
LagarLottery v1.0
Considerações finais / trabalhos futuros Considerações finais / trabalhos futuros Desafio: quebra da resistência das pessoas quanto a este tipo de software Fornecimento de pontos de extensibilidade se mostrou eficaz: novas funcionalidades eram adicionadas em questão de minutos Trabalho futuro: análises automatizadas Trabalho futuro: integração de linguagem de script para que o usuário possa adicionar novas funcionalidades dentro do programa (facilidade com java 6)
Encerramento Encerramento Perguntas e comentários