Sistema Online de Acompanhamento Didático

menu



3. Metodologia e ferramentas

Desenvolvimento em equipe pode trazer muitos problemas quando as coisas não são bem organizadas. A experiência com o primeiro Panda nos ensinou muito. Tivemos o cuidado de manter uma boa comunicação para não haver falta de sincronismo entre nós, de forma a manter um bom trabalho em equipe.

Para isto, utilizamos o CVS, que é uma ferramenta para o desenvolvimento concorrente e em grupo. Através dele, nós dividíamos as tarefas do dia por mensagens na internet, e depois cada um fazia a sua parte, sempre marcando as mudanças no repositório o mais rápido possível a fim de evitar os conflitos.

Escolhemos a linguagem java, pois queríamos algo muito robusto, orientado a objetos, e que pudesse ser reutilizado por outras pessoas. Alcançamos estes objetivos quando dividimos etapas do desenvolvimento em subprojetos. Inclusive usamos estas ferramentas para o desenvolvimento de outros sistemas.

A ferramenta para programação (IDE) utilizada foi o Eclipse (www.eclipse.org), que além de ser open source, conta com um grande comitê de empresas, tais como Oracle e IBM, que patrocinam seu desenvolvimento, fazendo dela uma ferramenta muito flexível. O eclipse tem tantas características úteis que não poderíamos enumerar todas. Um exemplo é a integração ao cvs, poupando o tempo de usá-lo através de linha de comando.

Queríamos também deixar o novo panda o mais modularizado possível, podendo incluir novos subsistemas sem muitos agravantes e modificações. Para isso, adotamos a arquitetura Model View Controller (MVC), onde existem 3 camadas muito distintas:

Model: trata da comunicação da aplicação com os modelos de dados, que pode ser um banco de dados, arquivos binários, ou qualquer outro tipo de repositório. No caso do panda, o modelo é um banco de dados, e esta camada Model é gerada pelo subprojeto Gerbo, que mantém um mapeamento objeto relacional, para que o SQL fique de fora do código java, gerando independência de banco de dados e orientação a objetos.

View: camada que interage com o usuário, recebe informações e mostra as informações. Para que essa camada possa ser facilmente substituída, ela não deve interferir na lógica do sistema (business logic). Para esta camada utilizamos o projeto open source Velocity, do grupo Jakarta.

Controller: camada responsável por delegar a chamada para as ações correspondentes. O projeto aqui utilizado é o Mamute, também criado por nós.

Com essa metodologia MVC, o sistema pode ser feito aos poucos, de maneira incremental, já que um módulo não interfere no outro. Com isto, podemos focar cada período de desenvolvimento em uma das funcionalidades do Panda, sem nos preocuparmos com as integração desta com as demais. Claro que algumas funcionalidades interferem uma nas outras, porém este número diminui significativamente com o MVC.

O Panda anterior misturava as 3 camadas: você encontrava código em PHP, SQL e HTML dentro do mesmo arquivo, gerando altíssimo acoplamento, o que dificulta mudanças no sistema. Isso também dificulta qualquer inclusão de novos subsistemas, já que o reaproveitamento de código é nulo. Segue um esquema geral do MVC, que a própria SUN usa para a divulgação de suas boas práticas:
login

2001 - 2002 panda.ime.usp.br