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.
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.
Algumas matérias deste curso foram especialmente importantes para o projeto:
MAC426 - Sistemas de Banco de Dados: Essa disciplina introduziu os principais conceitos de banco de dados, além de ter despertado o meu interesse por esse assunto.
MAC433- Administração de Sistemas Unix- feita paralelamente ao projeto, me ajudou a aprender mexer no servidor.
MAC441- Programação Orientada a Objetos- ajudou a escolher a linguagem a montar e disciplinar a estrutura do sistemas, além de me familiarizar com UML.
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)