Proposta de Desenvolvimento do AMADIS

Da AMADIS

(Diferença entre edições)
 
Linha 1: Linha 1:
==Apresentação da proposta de desenvolvimento==
==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 a nível de utilização como para a entrada de novos membros contribuíntes ao desenvolvimento do software. Dentre as 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.
+
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 facilitadores para o contato entre a comunidade e a equipe responsável pelo projeto, para este fim foi criado um website, untamente com a criação de listas de discusão. 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 etc.
+
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 de 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.
+
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. Nesta seção 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.
+
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==
+
=Ferramentas utilizadas no desenvolvimento=
-
Associado a construção do site do AMADIS, foram adotadas algumas soluções para auxiliar ao desenvolvimento distribuído e um 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 de desenvolvimento de software livre do mundo. Ele oferece como ferramentas de auxílio ao desenvolvimento de projetos:
+
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;
* Fóruns de discução;
Linha 18: Linha 18:
* Support Request - Requisição de suporte;
* 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 reportar problemas encontrados no ambiente.
+
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===
+
==Utilização de sistemas versionadores==
-
Com o objetivo é facilitar uma construção distribuída do ambiente, foi adotado o CVS, primeiramente hospedado e mantido pelos próprios desenvolvedores do projeto, mas depois de alguns anos optou-se pela migração para o portal SourceForge.net. Com esta mudança a equipe além de dar mais visão ao projeto, eliminou o tarefa de manutenção do servidor de CVS e backup do desenvolvimento.
+
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.
-
O CVS é um sistema de controle de versão que permite o trabalho com diversas versões de arquivos organizados em um diretório e localizados local ou remotamente, mantendo-se suas versões antigas e os logs de modificação dos arquivos, com identificação de data e de quem fez a modificação. O CVS é uma aplicação cliente servidor que permite que múltiplos clientes trabalhem sombre um mesmo texto, e de forma automática o CVS faz junção destas versões, indicando aos clientes quando há algum conflito de edições. Ele é comumente utilizado sobre documentos de texto, por isso se faz muito útil no desenvolvimento de softwares, já que os códigos encontram-se em formato de texto.
+
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.
-
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 validar as modificações antes do empacotamento do software para distribuíção.
+
==Tomada de Decisões==
-
===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.
-
As tomadas de decisões do desenvolvimento não envolvem somente o que foi dito acima, mas também sobre as melhores técnicas de 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 a nível de entrada de novos programadores. Portanto alguns pontos essênciais deveriam ser considerados, para garantir a sustentabilidade e disseminação do AMADIS:
+
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;
* '''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 fácil didática.
+
*'''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.
+
 
 +
*'''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.
*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.
Linha 40: Linha 41:
* A primeira é o fato da linguagem ser aplamente utilizada em aplicações que exigem muito requinte e uma inigualavél estabilidade;
* 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 [http://apache.org Apache Foundation];
* A sengunda é a quantidade de recursos e soluções construídas pelas grandes fundações apoiadoras do Java, como a [http://apache.org 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 [http://www.hibernate.org Hibernate], para persistência de dados, e o [http://struts.apache.org 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.
* 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 [http://www.hibernate.org Hibernate], para persistência de dados, e o [http://struts.apache.org 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 é possível saber, talvez seja criado somente um projeto para este fim.
+
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.
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.

Edição actual desde as 05h03min de 1 de Setembro de 2006

Í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