Desafios e Frustrações |
Vários desafios foram encontrados antes e durante o desenvolvimento do projeto.
O primeiro desafio foi decidir qual seria o objeto de estudo da disciplina MAC499 - Trabalho de Formatura Supervisionado. Havia realizado iniciação científica na área de Inteligência Artificial sob a supervisão da professora Leliane Nunes e gostaria de realizar estágio. A escolha pela iniciação científica me pouparia trabalho, pois grande parte do projeto já estava pronto. Mas, apesar da experiência positiva deste trabalho, sabia que Inteligência Artificial não era a área da computação na qual gostaria de continuar trabalhando. Já o estágio, não tinha garantias de que a empresa liberaria a divulgação do projeto. Sempre tive interesse pela área de saúde e telemedicina. O projeto proposto pelo professor Fabio kon despertou meu interesse, pois além de ser na área de telemedicina, me apresentaria tecnologias e conceitos ainda não estudados. Então decidi pelo projeto de telemedicina. Iniciei estudando o problema apresentado pelo professor Fabio e o uso de PDAs na medicina. O crescente uso destes dispositivos móveis por médicos e profissionais de saúde e a escassez de aplicativos de código aberto nesta área motivou a minha dedicação no projeto. As reuniões realizadas entre os profissionais do CSE e a nossa equipe de desenvolvimento me ajudaram a entender melhor o sistema a ser desenvolvido. Para otimizar o desenvolvimento, o professor Fabio dividiu o sistema em três subsistemas atribuindo a responsabilidade de cada membro da equipe a um deles. Coube a mim, a interface desktop do sistema. No princípio, esta divisão me desmotivou pois não estudaria o desenvolvimento de aplicativos para dispositivos móveis, o que justamente despertou meu interesse e me fez optar pelo projeto. Por outro lado, o desenvolvimento da interface desktop exigiria muito estudo e pesquisa na área de banco de dados, na qual tinha pouca experiência. A conversão de dados entre diferentes tipos de gerenciadores e a correta modelagem dos dados foi um grande desafio para mim. Foi devido a necessidade de conhecimentos nesta área que resolvi cursar a disciplina de laboratório de banco de dados no segundo semestre de 2005. Meu objetivo inicial era modelar a base de dados do CSE. A base de dados atual não seguia nenhuma das boas práticas de modelagens mostradas pelo professor João Eduardo Ferreira e isto me incomodava muito, pois o desenvolvimento de um sistema eficiente sobre esta base de dados seria comprometido. Infelizmente, não pude realizar esta modelagem. O uso do FoxPro pelas aplicações do CSE e o tempo gasto nesta tarefa inviabilizaram sua realização. A solução encontrada foi manter duas bases de dados, FoxPro (utilizada pelas aplicações do CSE) e PostgreSQL (utilizada pelo sistema Borboleta). O objetivo inicial era sincronizar as duas bases de dados, atualizando em uma base as modificações que foram feitas na outra. Mas esta tarefa não é tão simples, pois inúmeros problemas surgiram:
Este problemas de simples resolução com gerenciadores de dados novos que tratam concorrência, transações e etc, tornam-se desafios com o uso do FoxPro que não tem suporte para estas operações. Decidimos então, que o sistema Borboleta seria validado pela equipe de saúde utilizando o gerenciador PostgreSQL. Os dados seriam exportados do FoxPro para o PostgreSQL (para que o desenvolvimento e a realização de testes fosse possível)e na segunda etapa do projeto faríamos a modelagem do banco de dados e a migração das aplicações do CSE. Uma grande parcela do tempo que me dediquei ao projeto foi despendida em pesquisas sobre o banco de dados FoxPro e a conversão de dados para gerenciadores como MySQL e PostgreSQL. Por ser um software proprietário e muito antigo, as informações eram escassas e os conversores encontrados também eram softwares proprietários ou para bancos de dados específicos. As sugestões de implementação de conversores encontradas eram em Perl, linguagem que desconheço. Então, surgiu a necessidade de estudar a linguagem Perl. Após ter passado muito tempo nesta pesquisa e com a ajuda da aluna de mestrado Kelly Rosa Braghetto, descobrimos um mecanismo de exportação de dados simples e que não necessitaria da implementação de um conversor em Perl. Uma classe Java foi suficiente para tratar o arquivo texto com os dados do banco FoxPro e obter um arquivo com queries SQL pronto para a inserção no banco de dados PostgreSQL. Após a conversão da base de dados, passei a trabalhar no sistema. Iniciei pelo desenvolvimento da parte lógica. O desenvolvimento do sistema não trouxe muitos desafios. Já conhecia as tecnologias e ferramentas utilizadas, muitas delas foram utilizadas em exercícios-programa durante o curso. O maior desafio desta parte do projeto foi estagiar e me dedicar ao projeto. A flexibilidade de horário do estágio e a carga horária de 4(quatro) horas diárias amenizaram o desafio, mas foi difícil mesmo assim. Acredito que as reuniões periódicas realizadas pelo professor Fabio me ajudaram a manter a disciplina no processo de desenvolvimento. [voltar]
|