![]() |
Última Atualização: 08 de Dezembro de 2002 20:17 BRST | ||||||
|
Trabalho de FormaturaEsse trabalho de formatura é um projeto de software, desenvolvido em dupla pelos alunos Tiago M. Silveira (tminc at linux.ime.usp.br) e Cesar R. Olmos (crolmos at linux.ime.usp.br), sob a orientação do professor Paulo Silva e Silva (rsilva at ime.usp.br). O projeto Nosso projeto chama-se SharedObjects, e consiste num
middleware para desenvolvimento de aplicações distribuídas. A página do projeto
pode ser vista aqui, e contém todas as informações necessárias para entender do
que ele se trata. SharedObjects é uma reformulação de um projeto anterior,
que começamos a desenvolver para a disciplina Sistemas Operacionais
Distribuídos. Este projeto anterior tinha como foco a memória compartilhada
distribuída: um pouco mais genérico e menos poderoso. Já havia a noção de
objetos replicados, que era intrínseca à idéia de memória compartilhada, mas não
havia suporte ao uso compartilhado do objeto na forma que vemos hoje. No semestre seguinte, já tínhamos desenvolvido uma visão
macroscópica de onde o projeto poderia chegar, e resolvemos criar um sistema
automárico de geração de proxies. Esse foi nosso EP para a disciplina Sistemas de Objetos Distribuídos,
que acabou transformando-se no Configurator. Paralelamente, traçamos um roteiro de como transformar
nosso sistema de memória distribuída num sistema de objetos distribuídos e
saímos à caça de um orientador. O professor Paulo mostrou-se muito disposto a
participar, e foi de grande ajuda na formalização dos objetivos e escolha das
metas que teríamos que atender. Assim nasceu o SharedObjects, que hoje está no Sourceforge
e terá continuidade após o fim desta disciplina. A equipe Nossa equipe não contou com muita divisão de tarefas. Toda
a engenharia de software foi feita em dupla, e mais de 90% do código foi feito
por programação pareada (um micro, dois programadores). O restante foi
desenvolvido com ajuda do CVS e trata-se de correções, refatoramento e
aplicações de teste. Andamento do projetoTivemos considerável facilidade na estimativa de prazos, uma vez que tínhamos metas claras a cumprir e alguma experiência decorrente do primeiro projeto (memória compartilhada). Além disso, o conhecimento mútuo das capacidades de cada um e a confiança no código e no compromisso do outro foram cruciais. Para nós, bastou reservarmos as tardes de sexta-feira para o projeto. Muita coisa foi reaproveitada do código já existente, mas em diversos momentos foi necessário acelerar o desenvolvimento nos fins de semana. Ferramentas utilizadasDurante o desenvolvimento foram utilizados editores de texto como o GNU Emacs, e IDE´s, como o Sun ONE Studio (antigo Forte), e o JEdit. A utilização dessas IDE´s acelerou bastante o processo de desenvolvimento, pois elas permitem um acesso rápido à documentação, visualização da estrutura das classes, e outras funcionalidades. Como ferramenta de construção foi utilizado o ANT do projeto Jakarta. Essa ferramenta também auxiliou bastante o desenvolvimento, pois ao invés de Makefiles utiliza-se um arquivo XML que é multiplataforma, o que permitiu que o projeto fosse desenvolvido tanto em plataforma Linux quanto Windows. Para o controle de versão foi utilizado CVS, permitindo que partes do projeto fossem desenvolvida separadamente por cada um dos membros. |