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.