[ Parte I - Especificação do Projeto ]  
Parte II - Experiência Pessoal

Aluno: Flávia Rainone
Orientador: Prof. Dr. Fábio Kon

Os Desafios

 Tive dois grandes desafios durante esse ano para fazer o meu trabalho de formatura.

 O primeiro foi a dificuldade que tive para conciliar o meu estágio com o trabalho de formatura. O tempo era curto. Gastei muitos finais de semana e noites trabalhando no projeto, mas tenho certeza de que valeu a pena. Também foi difícil desenvolver o sistema com poucas reuniões com o cliente. O cliente é muito importante para tirar dúvidas e indicar que caminho seguir. Os clientes estavam sempre dispostos para faze reuniões, mas o problema de disponibilidade de horário dos programadores foi um fator decisivo no número de reuniões realizadas durante o ano. Apesar disso, as poucas reuniões que tivemos com os clientes e com o professor surpervisor Dr. Fábio Kon foram muito produtivas. A colaboração dos clientes foi muito estimulante para mim.

 O segundo foi a dificuldade que tivemos para lidar com o sistema original, em particular, a dificuldade para lidar com o Prevayler. Tivemos que aprender muito antes de chegar à conclusão de que ele não era adequado às necessidades do Jefras. Foi perdido muito tempo e um grande desafio foi superar isso. Foi necessário empenho, para conseguir implementar as funcionalidades que ainda restavam, tendo substituído o Prevayler por J2EE no segundo semestre.

O que mais gostei

 Gostei muito da experiência de desenvolver um sistema que será colocado em uso.
 
  É interessante ver o cliente satisfeito com o sistema, sugerindo melhorias e fazendo perguntas a respeito do sistema. Tivemos que organizar o desenvolvimento de um software extenso, diferente dos eps que estamos acostumados a fazer no IME. Isso exigiu mais organização.

  Além disso, é uma experiência totalmente diferente da vivência que tive no estágio, pois pudemos gerenciar o desenvolvimento do sistema e tomar decisões à nossa maneira, aplicando os conceitos que aprendemos no curso.

A influência do meu estágio

 O meu estágio influenciou muito o projeto e de duas formas diferentes.

 A primeira delas foi a escassez de tempo. A falta de disponibilidade de horário influenciou bastante, o que tornou o desenvolvimento do Jefras um verdadeiro desafio para mim, como já disse anteriormente.

 Por outro lado, o meu estágio contribuiu muito com a minha preparação para desenvolver o Jefras. Adquiri, no último ano, muita experiência nas tecnologias que foram empregadas no Jefras. Entrei em contato com a tecnologia J2EE (Java 2 Enterprise Edition), com o projeto Struts do Jakarta, entre muitos outros.

A influências das disciplinas do IME

 Essas são as disciplinas do IME que considerei mais importantes para o desenvolvimento desse projeto:

Estruturas de Dados (MAC 323): essa é a disciplina mais importante do IME, pois fornece a base do raciocínio algorítmico ao aluno. Todas as pessoas que programam, deveriam ter uma boa base em Estruturas de Dados, do mesmo modo que é feito no IME.
• Programação Orientada a Objetos (MAC 441): essa é uma disciplina que deveria ser obrigatória. É essencial que um aluno que está se formando nos dias de hoje tenha conhecimentos do paradigma orientado a objetos. Essa disciplina auxiliou muito na estrutura da arquitetura de classes, de modo que todas as funcionalidades do sistema fossem bem modularizadas e encapsuladas.
• Programação Concorrente (MAC 438): essa disciplina passa ao aluno, a noção de que um sistema distribuído ou paralelo pode apresentar falhas, devido à concorrência no acesso a dados e a variáveis do sistema. Isso foi muito importante no desenvolvimento do Jefras. Por ser um sistema distribuído, tivemos que refletir muito em situações de acesso concorrente a dados do sistema. Por exemplo: o que acontece se dois administradores do sistema criarem simultaneamente uma lista de compras?
• Sistemas de Objetos Distribuídos (MAC 440): essa disciplina fornece os fundamentos da programação distribuída e do conceito de middleware, o que me deu desenvoltura para escolher ferramentas e tecnologias que deveríamos utilizar no sistema.

Conceitos do curso utilizados

 Pude aplicar, nesse projeto, muitos conceitos que adquiri no decorrer do curso.
 
  Para começar, há o conceito de eficiência do código. A noção de que, se você codificar de um modo, o seu programa será lento e, se codificar de outro, será muito rápido, foi utilizada o tempo todo no desenvolvimento no sistema. Na verdade, utilizo esse conceito sempre que estou programando.

 Outro conceito é o de legibilidade e de elegância do código. Isso é algo que eu considero essencial e vem antes de tudo. Acho que todo código tem que ser limpo, claro e documentado (no caso do Jefras, todas as classes e métodos do sistema apresentam comentários javadoc e nomes de variáveis intuitivos).

 Além desses conceitos, com os quais entrei em contato no primeiro ano do curso, existem outros. O conceito de modularização das funcionalidades em uma boa arquitetura de classes foi amplamente aplicado no projeto. Entrei em contato com esse conceito na minha iniciação científica com o Prof. Dr. Allan Durham e ao cursar a disciplina MAC 441. O Jefras foi refatorado inúmeras vezes, só para manter esse conceito de arquitetura de classes intacto.

 Há ainda o conceito de programação concorrente segura, ou seja, escrever programas que não apresentam falhas de concorrência. Esse, eu adquiri no último ano e o considero fundamental para o desenvolvimento de sistemas distribuídos.

 Existem muitos outros conceitos do curso que aplico sempre que programo. Afinal, o nosso curso é muito forte em conceitos e é isso que dá base, a fim de que cada aluno do IME consiga se especializar em qualquer área que queira.

Conclusão

 Foi muito interessante desenvolver o Jefras e ficarei muito feliz, quando ele for colocado em uso.

 Foi um modo de aplicar tudo o que aprendi em muitas disciplinas que tive no IME e, ao mesmo tempo, foi uma nova experiência desenvolver um sistema extenso e completo.

 Desenvolver um projeto como trabalho de formatura adicionou muito a mim como profissional e tenho certeza de que irei aplicar muito do que aprendi em outros projetos, dos quais participarei ao longo da minha carreira.

 Por fim, espero ter a oportunidade de continuar desenvolvendo o Jefras no futuro, além de expandir os conhecimentos que adquiri nos últimos meses. 

Valid HTML 4.01! Valid CSS!
[ voltar ]|[ topo ]