Universidade de São Paulo
Instituto de
Matemática e Estatística
Projeto Coruja
por Tessie
Ikemori
MAC 499 -
Trabalho de Formatura Supervisionado - 2001
Professor Responsável: Prof. Dr. Carlos Eduardo Ferreira
Professor Supervisor: Prof. Dr. Carlos Hitoshi Morimoto
I) Introdução
Como trabalho de formatura, optei por uma iniciação científica visando "estudo e avaliação de técnicas para o projeto de páginas da Web com conteúdo dinâmico". Dentro desta proposta, surgiu a oportunidade de participar do que, mais tarde, foi chamado de "Projeto Coruja". O objetivo era criar um sistema para inscrição, matrícula e acompanhamento on-line dos alunos da pós-graduação do IME.
O
projeto, iniciado em janeiro deste ano,
não chegou a ser concluído. Sendo assim, pretendo, nesta monografia,
discutir não o projeto em si, mas relatar a
experiência de ter participado do desenvolvimento deste sistema: o
CORUJA.
II) O Grupo
1. Alunos
Ricardo Bueno Cordeiro (Ciência da Computação - pós-graduação)
Rosana Mayumi Morigaki (Ciência da Computação - graduação)
Tessie Ikemori (Ciência da Computação - graduação)
2. Orientador
Prof. Dr. Carlos Hitoshi Morimoto
3. Colaboradores
Do Grupo de Desenvolvimento do Sistema Panda:
Paulo Eduardo Azevedo Silveira (Ciência da Computação - graduação)
Gilmar Gimenes Rodrigues (Ciência da Computação - graduação)
III) O Projeto
1.
Breve Histórico
A idéia de se criar um sistema de inscrição, matrícula e acompanhamento on-line dos alunos da pós-graduação surgiu da necessidade de se criar dois outros sistemas: inscrição on-line para os exames de seleção da pós-graduação e um sistema de acompanhamento dos alunos especiais da pós-graduação.
Avaliando a página da pós-graduação do DCC (Departamento de Ciência da Computação), verificamos que as informações estavam destavam dispostas desorganizadamente e o processo de inscrição para o exame de seleção ainda não era totalmente on-line. Decidiu-se, então, criar um formulário de inscrição on-line , criando um banco de dados que pudéssemos utilizar posteriormente.
No caso dos alunos especiais, o que se via era a falta de acompanhamento do desempenho acadêmico destes alunos. Os professores, para melhor orientarem os alunos na escolha de disciplinas a serem cursadas, precisavam de um registro histórico-escolar desses alunos. Esse controle também era importante para definir quem e quando cada aluno especial poderia tornar-se aluno regular.
E apesar de já existir um sistema de matrículas na USP (Fênix-WEB), implementar a matrícula on-line para a pós-graduação do IME foi uma decisão muito natural: seria a criação de um sistema unificado para a pós-graduação, de forma que não só os alunos especiais fossem cadastrados no sistema de acompanhamento, mas também os alunos regulares.
Foi então que surgiu a idéia de nomear este projeto como "Projeto Coruja", pois teríamos, devidamente registrados, todos os dados do aluno - desde a inscrição para o exame de seleção até se tornar um ex-aluno.
No início, preocupamo-nos em criar o sistema para o Departamento de Ciência da Computação, mas deixamos em aberto a possibilidade de se estender as funcionalidades do sistema para todos os outros departamentos do IME.
2.
Modelagem do sistema
2.1) Definição de funcionalidades
2.1.a) Organização da página da pós-graduação do DCC
- Formulário de inscrição on-line
- Central de informações sobre a pós-graduação
- Aplicativo de administração da página (restrito):
-> editar grade de horários das disciplinas
-> editar informações gerais
2.1.b) Controle do Processo de Seleção
- o exame era para o DCC-IME, mas havia a possibilidade de tornar-se
nacional (se isso ocorresse, muitas pessoas passsariam pelo exame e
usariam o resultado não para se inscrever no IME, mas se inscreverem
em outros locais)
2.1.c) Matrícula dos Alunos
- Os alunos (especiais e regulares) devem escolher as matérias nas quais
desejam se matricular
- Cada orientador deve dar um visto eletrônico na matrícula de seu
orientando, e a lista dos matriculados em cada disciplina segue para a
secretaria da pós e para os professores responsáveis pela disciplina
2.1.d) Acompanhamento dos Alunos
- Cada professor tem acesso ao histórico do desempenho acadêmico
de seu orientando
- Cada aluno pode editar seu cadastro
2.1.e) Coordenação das bolsas
- o sistema deve ajudar na coordenação das bolsas
2.2) Definição do Banco de Dados
- definir o modelo de entidades-relacionamentos
3. Desenvolvimento
do sistema
3.1) Ferramentas utilizadas
Dentro das necessidades do sistema, optou-se por desenvolver a página
em PHP e implementar o banco de dados em mySQL.
3.2) Sistema-piloto
Logo no início do semestre, criamos um sistema-piloto, ainda sem
implementação do banco de dados propriamente dito. Com a ajuda de
professores e alunos da pós-graduação, fizemos um teste com o sistema
de matrículas.
3.3) O Sistema
Após detecção das falhas, começamos a implementar o banco de dados.
Nosso sistema ficou hospedado no "panda", e tivemos a colaboração do
grupo de desenvolvimento do sistema panda para a criação do banco de dados.
O desenvolvimento do sistema ficou parado neste ponto.
4.
Bibliografia e sites de apoio
- CASTAGNETTO,
Jesus; RAWAT, Harish; SCHUMAN, Sascha; SCOLLO,
Chris & VELIATH, Deepak. Professional PHP
Programming.Wrox Press:
Birmingham, 1999.
- www.php.net (The PHP Group)
- www.phpbuilder.com (PHP Builder)
IV) Experiências
1. Na modelagem do sistema
Nesta fase, o grupo era composto apenas pela Rosana e por mim. Nós começamos a trabalhar juntas quando entramos para o grupo de desenvolvimento do Sistema Panda. Da necessidade de se criar um outro sistema para a pós-graduação, nós duas migramos para o grupo de desenvolvimento do Sistema Coruja.
Continuamos, no entanto, a participar -
mais como ouvintes - das discussões sobre o Sistema Panda. Isso ajudou muito
quando tivemos de definir questões de segurança.
O sistema, aparentemente, era muito simples. No entanto, durante a modelagem do sistema e, principalmente na avaliação do banco de dados, verificamos toda a complexidade de se criar tal sistema. Fizemos várias reuniões para definir todas as funcionalidades do sistema: verificar quem seriam os usuários, o que cada um teria permissão para fazer.
2.No
desenvolvimento do sistema
Definidas as funcionalidades do sistema, o primeiro passo foi a criação de um sistema piloto, ainda no início do ano, a ser testado pelos alunos da pós e pelos professores. Como ainda não tínhamos um banco de dados, criamos vários arquivos a fim de simular um banco de dados. O sistema, neste primeiro momento, estava hospedado na rede IME. Os testes mostraram várias falhas no código do projeto, e então partimos para a criação do Sistema Coruja, já com um banco de dados propriamente dito.
No início, o projeto foi sendo viabilizado dentro das expectativas, mas aos poucos foi sendo deixado de lado. Acredito que uma das principais razões para isso foi a dificuldade do grupo em se reunir: durante esta fase, a comunicação entre os integrantes foi feita, basicamente, por correio eletrônico, o que muitas vezes atrapalhou o andamento do projeto. E um dos nossos erros foi dar pouca importância à discussão sobre o desenvolvimento do projeto em si - os arquivos PHP a serem criados.
Sabendo da dificuldade de nos encontrarmos constantemente, nós havíamos definido quem cuidaria de qual módulo do sistema. Não parecia necessário sentarmos juntos para escrever o código - ainda acredito que não seja. Mas não definimos corretamente como seria a estrutura geral dos arquivos, e isso acabou prejudicando o processo como um todo.
Relato alguns problemas enfrentados - ainda que aparentemente pequenos, certos detalhes são definitivos: por exemplo, ter permissão de escrita nos arquivos do outro componente do grupo. Como cada um do grupo estava escrevendo uma parte do código, era comum esquecermos de dar permissão de escrita para os outros integrantes. Isso era necessário, já que muitos arquivos implementavam funções que podiam ser usadas pelos outros vários arquivos - e, às vezes, precisávamos modificar algo no arquivo do outro.
Para o sistema-piloto, nós havíamos pensado numa determinada estrutura de arquivos - já para o Sistema Coruja, não seguimos a mesma estrutura, e isso foi feito sem realmente discutirmos o assunto.
Outro detalhe importante: nosso sistema era hóspede do servidor "Panda". Ainda que os administradores do Panda tenham sido sempre muito atenciosos conosco, não posso deixar de mencionar que o desenvolvimento do Coruja, muitas vezes, ficou estagnado devido a problemas no servidor. O Panda também estava em fase de acabamento, de forma que não podíamos exigir que dessem atenção máxima ao Coruja.
V) Conclusões
1. Sobre a Iniciação Científica
Apesar dos meus objetivos de iniciação científica não terem se concretizado de forma mais evidente, esta iniciação me deu a oportunidade de entrar em contato com ferramentas que dificilmente eu utilizaria fazendo apenas os projetos das disciplinas do IME.
Para muitas pessoas, talvez, participar de uma iniciação científica seja interessante apenas para quem pretende seguir uma carreira acadêmica. Eu não pretendo fazer pós-graduação em Ciência da Computação, mas acredito que foi importante para mim ter vivido esta experiência. Nós utilizamos PHP, mas foi interessante discutir quais ferramentas eram mais adequadas ao nosso sistema.
2. Sobre
atividades extra-curriculares
Algo que eu considero muito importante é a participação em atividades extra-curriculares, e só tenho a agradecer aos professores que incentivam tais atividades.
Participar da Empresa-júnior, do Centro Acadêmico, da Atlética, das Atividades Culturais - ainda que possam não contar créditos, essas atividades exercitam, no aluno, algo que fica adormecido durante o cotidiano de listas-projetos-provas do IME: a sociabilidade.
3. Sobre o
curso do BCC
Para o desenvolvimento deste projeto em particular, as disciplinas que mais me ajudaram foram "Engenharia de Software", "Banco de Dados" e "Laboratório de Programação I e II".
Em relação a outras disciplinas, acredito que todas têm sua importância: embora algumas não tenham relação direta com computação, maturidade matemática se adquire fazendo disciplinas diversas. Computação é uma área extremamente dinâmica, estão sempre surgindo novas tecnologias, e a facilidade (ou não) de aprender algo novo depende muito dessa maturidade.