Trabalho De Formatura Supervisionado - MAC499

Flavia Greggio                         Orientador: Marcelo Finger

Natureza da organização e da atividade

O objetivo deste projeto era a extensão e replicação dos dados do Fênix (Banco de Dados da pós-graduação). A parte da replicação já estava pronta, foi feita por Rodrigo Moreira Barbosa, também em seu projeto de formatura.

Definição/especificação do problema ou sistema principal do trabalho

A definição exata do que eu deveria fazer foi boa parte do projeto. O trabalho de Rodrigo Moreira Barbosa foi fazer a replicação de dados do banco Fênix numa máquina localizada no CEC. A minha parte era fazer a extensão dos dados, mas o que exatamente foi definido posteriormente.

O primeiro passo foram algumas reuniões com o Rodrigo para que ele me explicasse todo o sistema que havia na máquina, criasse uma conta pra mim, me passasse as senhas para poder trabalhar. A manutenção do servidor também era parte do projeto.

A replicação dos dados é feita por um servidor Linux rodando o SGBD Sybase Adaptative Enterprise 11.9.2 .  Como o sistema tinha de ser voltado para Web e orientado a objetos ( que facilita muito quando já se utiliza entidades de relacionamento ), foi escolhida a arquitetura MVC ( Model – View – Controller). 

Nessa arquitetura, ainda encaixam-se duas subcamadas:

O segundo passo do projeto foi o estudo das entidades existentes do banco de dados Fênix,  para eu me familiarizar com o banco e adquirir conhecimento suficiente para poder fazer a extensão dos dados.

O terceiro passo foram algumas reuniões com o professor Marcelo Finger e com o professor Carlos Hitoshi (que se reunia com a C.P.G. para saber o que eles queriam que fosse feito).

Primeiramente, foi decidido que eu faria a extensão das facilidades existentes para os alunos especiais. Estes não podem fazer suas matrículas e consultar seu histórico pela Web.

Foi aí que surgiu a dificuldade: não podemos escrever dados novos no Fênix, apenas lê-los. Algumas solucões foram pensadas para contornar o problema, e a solução que acabou sendo adotada foi :  criar uma aplicação que acessa duas bases de dados : uma base de dados local ( contendo as informações sobre os alunos especiais) e uma acessando os dados replicados do D.I. (como já estava sendo feito). 

Criei uma outra base de dados e comecei a cadastrar os dados necessários para poder matricular os alunos especiais.

Em novas reuniões, foi decidido dar prioridade para uma nova parte do projeto: automatizar a sistema de cadastro de ingressantes e envio de cartas de recomendação para a CPG.

Hoje em dia os ingressantes no mestrado têm de preencher um papel para se inscrever, entregar as cartas de recomendação para os professores, que por sua vez as entregam para a CPG. Com o novo sistema, tudo poderá ser feito online.

Os alunos preenchem o formulário online e ele é enviado para o COG (e os campos são gravados no banco). Os professores mandam uma carta de recomendação e têm de preencher seu e-mail na carta. Então é mandada uma mensagem eletrônica para este email, pedindo confirmação da carta, como forma de segurança.

Paralelamente à extensão dos dados, a manutenção do servidor também fez parte do trabalho (e boa parte). Alguns scripts de atualização foram passados, mudei a máquina de lugar, lutei (em vão) por um lugar mais seguro para o servidor, coloquei-o no ar diversas vezes porque caía constantemente.

Abaixo, estão os links para as duas páginas em html correspondentes às paginas de inscrição e de cartas de recomendação. Os links abaixo não tem funcionalidade e não gravam no banco, são apenas as telas do programa.

Cartas de recomendação.

Formulários de inscrição.

Dificuldades encontradas :

O projeto já havia sido iniciado pelo Rodrigo. Então tivemos que fazer algumas reuniões para que ele me explicasse tudo o que já havia sido feito, tive que anotar vários comandos, aprender a cuidar da máquina, anotar onde estavam todas as coisas. 

Um problema que tivemos foi a falta de um lugar bom para deixar o servidor. Inúmeras vezes o servidor foi desligado e tive que ir religá-lo, checar se havia tido algum problema, às vezes isso não era possível ser feito no mesmo dia em que deu o problema, a fila de replicação ficava grande e muitas reclamações do pessoal do D.I. devido ao servidor fora do ar. 

Houve também dificuldades (falta de tempo) pra conseguir reunir o professor Marcelo Finger, o professor Hitoshi e o pessoal da CPG. 

As maiores dificuldades foram minha total inexperiência com sistemas de bancos de dados (só tinha visto a teoria) e com as tecnologias usadas (JSP, JDBC, servlets, o TomCat...). 

Todas essas dificuldades foram superadas com estudo, perguntas aos colegas, paciência e uma ajuda do Carlos Leite pra religar o servidor quando este cai.

Forma de organização da equipe de trabalho e atribuição de responsabilidades

A equipe de trabalho basicamente era formada só por mim. O Rodrigo colaborou bastante e me ajudava com a manutenção do servidor. Os professores Finger e Hitoshi definiam o que deveria ser feito.

Estimativa inicial de prazos e do andamento do projeto

Minha estimativa inicial era terminar as reuniões e estudo no primeiro semestre, aprender as tecnologias nas férias de julho e fazer a parte da replicação no segundo semestre.

Métricas post-mortem do andamento do projeto

As estimativas iniciais foram razoavelmente cumpridas, mas o projeto ainda não está terminado. O sistema de matrícula dos alunos especiais deve ser terminado ainda (já foi feita a base de dados para eles). O sistema de cadastro precisa ser homologado. Devo terminar estes pontos neste primeiro semestre. Há a possibilidades de este projeto ser incluído na Arca (minha sugestão de nome foi Papagaio, já que replica).

Bibliografia utilizada ou básica para o área de atuação em que se insere o estágio

Participação em treinamento

Não participei de nenhum curso ou congresso. Meu treinamento foi auto-didático.

Ferramentas e técnicas utilizadas já foram especificadas acima.

Técnicas que tenham lhe parecido relevantes para o problema em questão, mas que não tenham sido exploradas por falta de tempo, recursos humanos ou apoio da organização:

As técnicas utilizadas foram bem pensadas e discutidas e acredito que foram uma boa escolha.

Forma de acompanhamento utilizada pelo gerente/administrador do projeto:

O professor Marcelo Finger me acompanhou diretamente, através de reuniões e e-mails.

 

Avaliação do Curso

Algumas matérias deste curso foram especialmente importantes para o projeto:

Vou aproveitar este espaço para fazer uma breve avaliação do curso. O que senti durante boa parte dele é que temos muita teoria e pouca prática. Eu acho teoria muito importante mas poderíamos ter um pouco mais de matérias práticas, como os laboratórios, talvez como optativas.

Fazemos muitas matérias de outros departamentos e achamos que elas não servem para nada no nosso curso. Isso não é verdade, mas os professores são bastante mal-informados e não sabem dizer pra que isto serve no nosso curso. Cálculo 4, por exemplo, eu usei em Visão Computacional. O professor poderia tentar dizer isso ao começar a dar uma matéria que aparentemente não tem conexão nenhuma com a realidade do BCC.

Fazendo estágios e este projeto eu pude perceber como as coisas teóricas funcionam (ou não funcionam muitas vezes) na prática, aprendi também a disciplinar meu código (coisa que fiz em raríssimos EPs- já que quando não temos uma obrigação de continuidade acabamos deixando algumas coisas largadas).

O que o curso me ensinou de verdade foi aprender a vencer dificuldades (eu -e a maioria dos alunos -nunca tinha tido problemas em conseguir nota antes do BCC ) e recuperar notas baixas. Me deu um raciocínio lógico e abstrato que posso usar pra qualquer coisa. Aprendi a não desistir na primeira dificuldade e a ir atrás do que queria.

Lembro-me dos primeiros dias de aulas quando todos os veteranos diziam que é lenda alguém ser formar em 4 anos, que iríamos encontrar várias pedras no caminho etc. Em parte eles estavam certos : nada mais foi fácil como antes. Mas um certo professor que dizia que a turma toda (bcc2000) se formaria em 4 anos também tinha sua razão : )

Avaliação do Projeto

O projeto foi importante para eu me familiarizar com Banco de Dados, aprender a mexer com linguagens Web, servidor de aplicação etc e aprender a pegar um projeto do começo e ir trilhando, encontrando dificuldades, lidando com expectativas alheias.

Durante o curso todo só temos experiência com EPs, que são uma coisa fechada: um enunciado, um programa, uma nota (salvo raras exceções). Este projeto foi iniciado já com coisas feitas, tive de descobrir o que queriam que fosse feito, mudar coisas no meio e deixar de um jeito que pessoas possam entender no futuro.

Agradecimentos

-Professor Marcelo Finger

-Rodrigo Moreira Barbosa

-Professor Hitoshi

-Carlão (obrigado por religar a máquina)