Proposta de Desenvolvimento do AMADIS

Da AMADIS

Revisão das 05h03min de 1 de Setembro de 2006 por Juliano (discussão | contribs)
(dif) ← Revisão anterior | Revisão actual (dif) | Revisão seguinte → (dif)

Índice

Apresentação da proposta de desenvolvimento

Dentro da comunidade de software livre existem algumas práticas que facilitam a disseminação de um projeto de software, tanto entre os usuários quanto programadores que desejem contribuir para o desenvolvimento de um sistema. Dentre essas boas práticas estão a utilização de sistemas versionadores, criação de meios de contato entre a equipe de desenvolvedores e a comunidade e uma documentação sobre o processo e material produzido.

Como todo projeto de software livre o AMADIS deve possuir que facilitem o contato entre a comunidade e a equipe responsável pelo projeto, para este fim foi criado um website, juntamente com a criação de várias listas de discusão para diferentes finalidades. O site teve sua estrutura inspirada no modelo utilizado pelo projeto Mozilla.org, que disponibiliza dados institucionais, informações gerais sobre o software, hitórico do projeto e, principalmente, um amplo acervo de documentação.

Na criação do site do AMADIS alguns cuidados foram tomados, para guiar o acesso ao conteúdo. Ele apresenta uma primeira área, mais acessível, onde são descritos, em detalhes, informações sobre o projeto, metodologias utilizadas, informações institucionais, detalhamento das funcionalidades do ambiente, e apresentação de screenshots(fotos das telas), produção acadêmica sobre o ambiente, etc. Como uma exposição do ambiente, muito útil para quem busca ter informações sobre o produto, como funcionamento ou fundamentos da construção do mesmo.

Uma segunda área foi contruída pensando exclusivamente sobre o ponto de vista do desenvolvedor. Nela encontram-se registrados dados sobre documentação do código do ambiente, manuais para ingresso ao desenvolvimento, tutoriais de práticas utilizadas pelos mantenedores e textos informativos sobre conceitos da computação utilizados na construção de cada módulo, ferramenta ou script dentro da plataforma.

Ferramentas utilizadas no desenvolvimento

Associado a construção do site do AMADIS, foram adotadas algumas soluções para auxiliar o desenvolvimento distribuído e uma integração e gerência da produção do software. Para este fim, a equipe de mantenedores optou por usar o portal SourceForge.net, mundialmente conhecido como o maior portal de produção e gerência para o desenvolvimento de software livre do mundo. Ele oferece como ferramentas de auxílio ao desenvolvimento de projetos:

  • Fóruns de discução;
  • CVS (Concurrent Version Control) - Sistema de Versões Concorrentes;
  • BugTracker - Registro de erros;
  • Feature Request - Requisição de novas funcionalidades;
  • Support Request - Requisição de suporte;

Com essas ferramentas fica muito mais fácil de gerênciar e determinar prioridades sobre o desenvolvimento do projeto, além de promover a intervenção de membros da comunidade em geral, pois o sistema é aberto aos visitantes, permitindo que os mesmos façam solicitações de suporte, criação de novas funcionalidades ou reporte de problemas encontrados no ambiente. Além disso, o uso do SourceForge tem como objetivo caracterizar o software como um projeto da comunidade e não de um grupo específico. O uso desse portal facilita o ingresso de novos desenvolvedores e possibilita que usuários de fora do meio acadêmico contribuam com o sistema.

Utilização de sistemas versionadores

Tendo como o objetivo ser um projeto legitimamente livre, o AMADIS encontrou-se disponível através de mecanismos de versionamento desde a primeira linha programada. Com o objetivo de facilitar uma construção distribuída do ambiente, foi adotado o CVS como sistema versionador, primeiramente hospedado e mantido pelos LEC, mas porteriormente migrado para o portal SourceForge.net. Com esta mudança a equipe além de dar mais visibilidade ao projeto, eliminou o tarefa de manutenção do servidor de CVS.

Com a possibilidade de ter o desenvolvimento distribuído entre os programadores do sistema, fica muito mais fácil o engajamento de novos membros da comunidade ao desenvolvimento da plataforma. Cabendo somente aos mantenedores verificar as modificações antes do empacotamento do software para distribuíção.

Tomada de Decisões

As tomadas de decisões do desenvolvimento não envolvem somente o que foi dito acima, mas também sobre as melhores técnicas para a construção do AMADIS. Para garantir uma melhor sustentabilidade ao projeto. Um desses pontos foi a escolha da plataforma que seria a base de construção do sistema, Java ou PHP.

Durante um certo tempo a escolha entre as duas linguagens consumiu muitas horas em estudo, visando encontrar tecnologias que viabilizassem e facilitassem o desenvolvimento da plataforma dentro de cada linguagem, pois a mudança da linguagem a ser utilizada influênciaria na disseminação do ambiente, tanto a nível de utilização quanto para a captação de novos programadores. Portanto alguns pontos essênciais deveriam ser considerados, para garantir a sustentabilidade e disseminação do AMADIS:

  • A portabilidade do sistema deveria ser preservada - a instalação do ambiente em servidores deveria ser facilitada, de forma que as necessidades de configuração do hospedeiro da plataforma fossem mínimas;
  • Aceitação da Comunidade de Software Livre - algumas linguagens tendem a ser melhor aceitas pela comunidade, no caso do PHP que detem o maior número de usuários, pela sua curva de aprendizado e pela sua forma de licensiamento;
  • Modularidade do Sistema - o sistema deveria privilegiar a construção por módulos, o que facilitaria a manutenção, e desenvolvimento de novos recursos. Além da possibilidade de desligamento da uma parte da plataforma, sem prejudicar o funcionamento do todo;
  • Melhor qualidade no resultado final do produto, o que cabia à adoção de soluções que agregariam ao AMADIS, uma grande estabilidade e um melhor acabamento.

Por alguns motivos, que serão listados abaixo, o Java mostrou-se mais apto a dar suporte ao desenvolvimento do novo AMADIS.

  • A primeira é o fato da linguagem ser aplamente utilizada em aplicações que exigem muito requinte e uma inigualavél estabilidade;
  • A sengunda é a quantidade de recursos e soluções construídas pelas grandes fundações apoiadoras do Java, como a Apache Foundation;
  • A terceira é que atualmente o AMADIS utiliza o CMDevel como framework para camada de negocios com banco de dados, e tem o seu sistema de templates um pouco inflexivel quanto a manutenção do HTML, mas muito útil na questão de geração de telas. O problema do CMDevel não cabe a sua utilização, e sim a manutenção, pois o desenvolvimento de frameworks é muito desgastante, e a manutenção do CMDevel, em alguns momentos causou certos transtornos. No caso do Java isso seria solucionado com o Hibernate, para persistência de dados, e o Struts para construção das telas. Isso já diminuiria bastante a carga da equipe sobre a manutenção de muitos recursos, podendo ter o desenvolvimento mais concentrado nas aplicações.

Porém, durante este período de decisões, o AMADIS já passava pela sua fase de estabilização, e a sua linguagem nativa, PHP4, já havia sido substituida pela versão mais atual, PHP5. A linguagem sofreu grandes mudanças entre as versão 4 e 5, a principal foi a transformação da "Orientação a Objetos" (OO) que na versão mais atual assemelha-se a do Java. Com o advento de novas funcionalidades e modos de programar no PHP, e considerando o tempo de projeto curto para realizar a migração do AMADIS para o Java, foi decidido continuar o desenvolvimento utilizando o PHP5, até que o ambiente atingisse as metas estabelecidas pelo projeto. A versão em Java não foi simplesmente esquecida, e sim adiada para um outro momento, pois o volume de trabalho é considerável, e o tempo de implementação ainda não pode ser antecipado.

Com isso ocorrereu o surgimento de duas instâncias do AMADIS, uma chamada de AMADIS 1.x, a qual será desenvolvida em PHP5 e que atualmente encontra-se na verão 1.2, e uma outra chamada 2.x, que trata-se da versão que será programada em Java.

Mas toda essa parte de contexto do desenvolvimento está sendo tratado no tópico Arquitetura da Plataforma, onde existem todas as especificações do Core, módulos e API.

Links

Ferramentas pessoais
Parceiros
















SourceForge.net Logo

Supported by Cenqua