ferramenta para combinação e sugestão de horários na grade de matrícula pedro h. f. s. diniz
TRANSCRIPT
Ferramenta para combinação e sugestão de horários na grade de matrícula
Pedro H. F. S. Diniz
O que é?
• É uma ferramenta de auxilio à tomada de decisões.
• Software java multi-plataforma.• Software java multi-ambiente.• Propõe solução utilizando programação
dinâmica.
Motivação
• Agilizar o processo de matŕicula.• Facilitar o processo de matrícula.• Diminuir a sobrecarga nos servidores da
faculdade.• Aumentar o leque de opções de matrícula.
Apresentação do Sistema
• Apresentação das telas.
• Caso de uso 1.
• Caso de uso 2.
Caso de uso 1
Horário Segunda Terça Quarta Quinta Sexta Sábado17 a 19 Cálculo1 Cálculo2 Cálculo1 Cálculo2
Futebol Finanças Finanças Finanças
17 a 20 Yoga Yoga 17 a 21 Etica Cristã Redes Etica Cristã Redes
Estruturas Discretas Estruturas Discretas 19 a 21 Banco de Dados 2 Banco de Dados 3 Banco de Dados 2 Banco de Dados 3
Administração Administração Projeto de Sistemas Projeto de Sistemas Projeto de Sistemas
21 a 23 IHC Banco de Dados 1 IHC Banco de Dados 1
Professor sem prioridade Carlos Alberto Matéria Total Complemento Túlio Yrfein Cálculo1 2+2=4 Já cursado
Categoria prioritária Grade Curricular Cálculo2 2 Banco de Dados 1 4+2+2=8
Matérias prioritárias Banco de Dados 1 Banco de Dados 2 2 Depende de BD1 Administração Banco de Dados 3 2 Depende de BD2
IHC 2+2=4 Etica Cristã 2+2=4
Pontuação Total Projeto de Sistemas 2+2=4 Professor 2 Redes 2+2=4 Categoria 2 Estruturas Discretas 2+2=4
Escolha de matéria 4 Administração 4+2=6 Sem preferência 1 Financas 2+2=4 Depende de Administração
Futebol 1 Yoga 1
Caso de uso 2
Horário Segunda Terça Quarta Quinta Sexta Sábado17 a 19 Cálculo1 Cálculo2 Cálculo1 Cálculo2
Futebol Sistemas Operacionais Sistemas Operacionais Finanças Finanças Finanças
17 a 20 Yoga Yoga 17 a 21 Etica Cristã Redes Etica Cristã Redes
Estruturas Discretas Estruturas Discretas 19 a 21 Banco de Dados 2 Banco de Dados 3 Banco de Dados 2 Banco de Dados 3
Administração Administração Projeto de Sistemas Projeto de Sistemas Projeto de Sistemas
21 a 23 IHC Banco de Dados 1 IHC Banco de Dados 1
Professor sem prioridade Nenhum Matéria Total Complemento Cálculo1 2
Categoria prioritária Eletiva Livre Cálculo2 2 Depende de Cálculo1 Banco de Dados 1 2 Já cursado
Matérias prioritárias Finanças Banco de Dados 2 2+4=6 Depende de BD1 Banco de Dados 2 Banco de Dados 3 2 Depende de BD2
IHC 2 Etica Cristã 2
Pontuação Total Projeto de Sistemas 2 Professor 2 Redes 2 Categoria 2 Estruturas Discretas 2
Escolha de matéria 4 Administração 2 Já cursadoSem preferência 1 Financas 2+4=6 Depende de Administração
Futebol 2+2=4 Depende de 200 créditosYoga 2+2=4
Sistemas Operacionais 2
Especificação
• Consulta ao site de matrícula e disciplinas no PUC On-Line.
• Pesquisa de opinião com alunos do D.I. • Criação do diagrama de classes.• Criação do Modelo de Entidades e
Relacionamentos.
Metodologia (Scrum)
• Metodologia Ágil.• Sprints de 1 semana.• Pacotes gerados são
incrementais, funcionais e testáveis.
• Auxílio da ferramenta Trac para listas de bugs
Estrutura do Projeto
Subdivisão em 3 subprojetos:1.Projeto Modelo2.Projeto Desktop3.Projeto Web
Projeto Modelo
• Contém classes que implementam a regra de negócio
• É responsável pelo algoritmo de combinação• Implementa as classes de DAO e Serviço para
acesso ao banco/base de dados.• Utiliza programação orientada à aspectos
sobre a biblioteca spring para gerenciar a sessão de conexão com o banco.
Projeto Desktop
• Utiliza java swing para renderizar as telas no sistema operacional.
• Tem como dependência o projeto modelo.
• Implementa os padrões de projeto ‘Command’ e ‘Wizard’.
Projeto Web
• Criado com a biblioteca Vraptor.
• Implementa o padrão REST.
• Processa as páginas em html com o uso do Freemarker template engine.
Comentários de implementação
1. O algoritmo de combinação.2. Vraptor3. O padrão REST4. Freemarker
O Algoritmo
• Utiliza apenas matérias onde as dependêcias são respeitadas.
• Dependência de crédito ou 0 a N disciplinas
• Força bruta com tabela de cache auxiliar.
• O(n)
VRaptor
• Biblioteca que extende o Spring.• Adiciona suporte ao padrão REST.• Framework, opensource, MVC, para
a web focado em desenvolvimento rápido.
O padrão REST
• Propõem utilizar as operações GET, POST, PUT e DELETE do protocolo HTTP.
• Orientado a recursos. Ex: http://www.site.com.br/recurso
• Permite uri´s amigáveis de fácil entendimento e acesso.
• Proporciona a criação de Webservices RestFull.
Freemarker
• É um template engine.• Criado para MCV com foco único na
parte de ‘visão’ do sistema. • Sintaxe amigável ao desenvolvedor.• Rápido.• Possui diversas macros embutidas.
Considerações Finais
• Agora uma matrícula pode demorar apenas 10 minutos ao invés de horas.
• Pesquisa sobre A.O.P.• Pesquisa sobre gerenciamento de
sessão multi-ambiente.• Vraptor provou ser um ferramenta
ágil para sistemas web.
Perguntas?