Integrantes | Supervisor | Tipo do trabalho |
---|---|---|
Hugo Corbucci e Mariana Vivian Bravo | Prof. Dr. Fabio Kon | Projeto |
Modelagem em Programação Orientada a Objetos
Programação extrema (XP) aplicada a desenvolvimento de Software Livre.
Archimedes: Software livre, programação extrema e orientação a objetos
Archimedes é um software livre para desenho técnico (CAD – projeto auxiliado por computador) com apenas quatro meses de desenvolvimento. O projeto foi idealizado há pouco mais de um ano por um grupo de alunos do IME do qual os autores deste trabalho fazem parte.
O objetivo inicial do projeto é produzir uma ferramenta suficientemente funcional para uso comercial por arquitetos. Ela deve se assemelhar ao líder de mercado AutoCAD® na interface com o usuário de forma a facilitar a transição entre os dois programas. Além disso, com o amadurecimento do software, suas funcionalidades deverão proporcionar uma maior produtividade aos usuários.
A primeira fase do projeto consistiu em montar um grupo de colegas interessados em desenvolvê-lo. Em julho de 2005, o grupo analisou outros softwares abertos semelhantes, com a finalidade de encontrar algum que pudesse servir como base inicial ao Archimedes. Como nenhum projeto era adequado, decidiu-se começar do zero com a linguagem Java e as bibliotecas gráficas abertas SWT e OpenGL.
Durante o segundo semestre de 2005, o grupo aproveitou a disciplina de Engenharia de Software para conhecer e aplicar essas tecnologias. A disciplina também serviu para aplicar algumas práticas de programação extrema como programação pareada, integração contínua, testes automatizados entre outras. Optou-se por programação extrema pois o projeto tem muitos requisitos e era essencial que os arquitetos participassem do desenvolvimento para permitir que o projeto crescesse no sentido desejado.
O desenvolvimento começou com a matéria de Laboratório de Programação Extrema com um grupo de oito alunos. O planejamento do projeto, no entanto, teve início no fim de 2005 por meio de reuniões com os arquitetos envolvidos e reuniões do próprio grupo para entender melhor o programa a ser desenvolvido e discutir possíveis modelagens. Desde o início da disciplina, quatro reuniões com os arquitetos foram feitas para mostrar o trabalho. Apesar de o programa já ter quatro versões estáveis decorrentes destas reuniões, ele ainda está longe de ser usado como ferramenta de trabalho.
Todo o material produzido até agora pode ser encontrado na internet em:
http://archimedes.iv.fapesp.br
Data | Evento |
---|---|
27/05/2006 | Entrega do release 3 |
01/07/2006 | Entrega do release 4 |
02/08/2006 | Início do primeiro rascunho da monografia |
05/08/2006 | Entrega do release 5 |
26/08/2006 | Entrega do release 6 |
26/08/2006 | Fim do primeiro rascunho |
02/09/2006 | Apos análise do primeiro, início do segundo rascunho |
16/09/2006 | Entrega do release 7 |
26/09/2006 | Fim do segundo rascunho |
02/10/2006 | Início da primeira versão da monografia |
07/10/2006 | Entrega do release 8 |
26/10/2006 | Fim da primeira versão da monografia |
28/10/2006 | Entrega do release 9 |
02/11/2006 | Encerramento da programação relativa ao pôster, a apresentação e monografia. Fazer o pôster. |
04/11/2006 | Começo da versão final da monografia |
11/11/2006 | Montar apresentação |
25/11/2006 | Encerramento da monografia |
02/12/2006 | Entrega do release 10. Encerramento do trabalho para mac499 |
03/12/2006 | Revisão da monografia |
08/12/2006 | Lançamento da versão 1.0 do Archimedes |
OBS: As atividades com fundo prata são relacionadas a mac499.
Descrição, motivação e histórico do projeto.
Enumeração das linguagens e bibliotecas utilizadas.
Abordagem da aplicação de computação gráfica e geometria computacional no projeto.
Descrição da metodologia utilizada (programação extrema) e dos cuidados tomados no projeto arquitetural orientado a objetos.
Explicação mais detalhada da metodologia.
Adaptações feitas a programação extrema para aplicar ao desenvolvimento de software livre.
Arquitetura do sistema.
Padrões utilizados.
Principais algoritmos.
Estado atual do projeto.
Publicações relacionadas.
Participação em eventos de software livre.
Opiniões da comunidade de software livre e dos arquitetos.
Apresentações das principais funcionalidades do programa.
Análise dos resultados obtidos com programação extrema.
Conclusão sobre as escolhas tomadas durante o desenvolvimento.
Especulações sobre o futuro do projeto.
Dispensa explicações.