Gilmar Gimenes Rodrigues
João Carlos Matsuzaka Costa
Paulo Eduardo
Azevedo Silveira
Supervisor Carlos Hitoshi Morimoto
1. Objetivos
A experiência que tivemos no desenvolvimento do panda foi enorme. Apesar de
todos os obstáculos, bugs, ausência de bom planejamento, erros no
desenvolvimento, o projeto ficou legal, sendo usado atualmente por uma
quantidade de matérias maior que o esperado e muito maior do que o panda antigo.
Porém com o passar do tempo, inúmeros bugs foram encontrados. Apesar de
vários corrigidos, algumas coisas estão completamente ligadas ao tipo de
implementação utilizada, implementação a qual não fora muito bem estudada na
época, impossibilitando um fácil aumento de funcionalidades no panda.
O objetivo principal agora é melhorar o código, deixar a interface com o
usuário extremamente amigável, para que a curva de aprendizado seja muito
rápida, e especialmente a adição de novas funcionalidades.
O panda novo também serve para que nós, integrantes do grupo, possamos
desenvolver nossas capacidades nos seguintes temas:
- orientação a objetos - isso permitirá grande escalabilidade do
código, deixando ele independete de muita coisa, como banco de dados, sistema
operacional, e até mesmo a saída: pode-se facilmente migrar de web para
applet.
- interface com o usuário - o panda atual é um sistema muito simples,
porém possui dificuldades para o usuário: falta telas de ajudas, organização
nas telas e melhor posicionamento.
- engenharia de software - para ter uma metodologia no
desenvolvimento e na modelagem.
- banco de dados - para a modelagem do sistema, melhoria na
performance e especialmente escalabilidade. Neste caso já temos o sub projeto
gerbo, já em estad avançado, para auxiliar na abstração do banco de dados.
- programação em time - quando a programação de um sistema envolve
mais de um participante, o acoplamento dos módulos é sempre difícil, por isso
é necessário uma ótima modularização do projeto.
Esse mesmo grupo trabalhou em cima do texugo, que tem um código muito mais
limpo e elegante. Porém sem uma orientação a objetos, e uma plataforma mais
estruturada, a escalabilidade do sistema está sempre muito limitada.
De uma forma mais geral, queremos praticar a "boa programação" e aplicar isso
a um projeto útil para o IME e quem sabe para a USP.
2. Decisões a serem tomadas
Existem algumas grandes observações que foram levantadas, apos um ano de uso
do panda. Com isso, compilamos aqui algumas decisões que precisamos tomar, e
mudará em muito o sistema:
- O panda deverá ainda ter uma ênfase em manter material didático e outros?
Com o uso do panda, vimos que 11 de 19 materias em que o panda fora utilizado,
tivemos o estilo "panda só para eps". Por isso seria interessante discutir em
que deveríamos focar. Focando-se apenas em entrega eletrônica e controle de
notas, poderíamos ter um sistema que descompactava o trabalha e permitia o
monitor colocar comentarios em cada arquivo. Se o enfoque for ensino a
distância, poderíamos criar um sistema bom para a criação da página, já que
todas as matérias possuiam páginas paralela ao panda.
- O código existente do panda é relativamente bom. Existem uma organização
estrutural e encapsulação de módulos como banco de dados e lista de discussão.
Então reutilizar o código ou não é um ponto, porém estamos muito mais
inclinados a começar do zero, devido a escolha da plataforma java e para
podermos seguir passos de engenharia de software na elaboração do projeto.
- A criação automática de lista de discussão foi algo bastante usado, e
essencial. Porém utilizar algo tão específico, como o ezml, que por sua vez
usa o qmail, é algo que amarra em muito o projeto e possibilita várias formas
de bugs, que foi o que ocorreu. A utilização de um fórum seria muito
interessante e mais amigável para o usuário, porém todos os professores já
estão habituados a lista de discussão por email.
3. Funções do novo panda
Segue uma lista das funções novas que o panda terá:
- Desenvolvimento de projetos por times - Isso é referente a entrega
de eps por mais de uma pessoa.
- Sistema de mensagens privadas - especialmente para quem não tem
email, dessa maneira o professor pode contar o aluno pelo panda, e vice-versa.
O aluno também pode reclamar com o monitor, por exemplo.
- Sistema avançado de correção de trabalhos - descompacta os
arquivos, edita, comenta, compila, etc.
- Cadastro único do aluno - não é necessário mais criar o aluno para
cada disciplina, basta matriculá-lo.
- Flexibilidade de permissões dos usuários - cada aluno, monitor e
professor terá uma série de permissões. por exemplo, alguns professores podem
criar professores, alguns monitores podem editar as notas de provas.
- Forum - agora ao inves de listas, usaremos forum, para diminuir o trafego de emails e
fazer com que as pessoas leiam soh o que as interessam..
- Cálculo das médias
- Controle da visualização das notas - atualmente as notas aparecem
na medida que são criadas.
- Remoção de alunos - alguns professores terão controle sobre isso.
- Gerenciamento de erro - melhor sistema de erro, logando o
acontecimento e notificando o administrador.
- Senhas criptografadas
- Melhor controle dos alunos - possiblita uma fácil migração de
turma, criação de nova senha, etc.
- Visualização dos logs dos alunos
Notificacoes - notificaçoes quando as notas estiverem prontas
Visualizacao das notas - as notas só são visíveis a partir do momento que um professor falar que elas
são, e não a partir de quando elas estão disponíveis.
Existem ainda pequenos ajustes das funcionalidades do panda velho, que omitimos
aqui.
2. Cronograma e atividades já realizadas
Segue um esboço do cronograma de eventos em relacão ao panda.
- 19/04 - Especificação básica do panda, coleta de informações para a
funcionaldiade do panda e outros.
- 20/04 - Reunião com os professores envolvidos e interessados.
- 15/06 - Início da codificação do panda. Planejamos a partir daqui
soltar uma versão na teia de uma em uma semana a partir do meio de julho.
- 25/06 - Finalização do Gerbo, o mapeador objeto/banco de dados que iremos usar.
- 10/07 - Formalização de toda a especificação da funcionalidade e do
cronograma.
- 15/07 - Primeira modelagem do banco de dados.
- 15/08 - O novo panda estará entrando no ar como um sistema paralelo
ao panda atual, com finalidade de testes e de ajustes finos. Gostaríamos que
alguns professores usassem o panda novo, para que a gente pudesse prepara-lo
para a prova final: mac2166 em 2003.
3. Estrutura da Monografia
A monografia terá o seguinte aspecto.
- Introdução.
- Tecnologia - O que foi usado e como.
- Banco de dados e engenharia de software - Esquemas e modelos.
- Opiniões pessoais - Uma parte da monografia onde seremos parciais e faremos criticas ao projeto e ao curso,
falando
como o curso foi importante para o porjeto, e vice-versa, lembrando de citar as matérias.
- Conclusão - atigimos nosso objetivo?
E o mais importante, o panda.arca.ime.usp.br.