O desenvolvimento de software é uma das áreas que mais recursos livres possui, frameworks multiplataforma, IDE´s livres de alta qualidade, bancos de dados, entre outros. Neste artigo veremos algumas ferramentas que proporcionam maior qualidade no processo de desenvolvimento de software, totalmente livres.
Primeiro vamos entender um pouco sobre software livre.
Inicialmente não existia o conceito de software proprietário e software livre, mas a partir da década de 70/80 inicia-se o processo de criação de software proprietários, desta forma, Richard Stallman inicia o desenvolvimento do projeto GNU: gnu not unix. Em seguida, funda a FSF (Free Software Foundation /Fundação de Software Livre) e lança a GPL - General Public License.
O Software livre não necessariamente é um software gratuito, software livre, segundo a definição de Richard Stallman: é qualquer programa de computador que pode ser usado, copiado, estudado, modificado e redistribuído sem nenhuma restrição, ou seja, liberdade e não gratuidade.
No início, os principais softwares livres criados foram como foco no desenvolvimento de software, compiladores C como o GCC, editores de texto como o Emacs, entre outros. Posteriormente surgiram sistemas operacionais completos e outras ferramentas, mas a área de desenvolvimento continuou sendo uma das áreas com maiores recursos livres do mercado de software.
As etapas básicas do desenvolvimento de software, independente da metodologia, são: análise e projeto, implementação, implantação e manutenção. Para cada uma destas áreas existe um ou mais software livres, quando não, uma infinidade, que dificulta inclusive na escolha.
Vamos começar pela etapa de análise e projeto.
A análise orientada a objetos, bem como a análise estruturada, são de extrema importância para que o sistema obtenha êxito. Atualmente, existe uma diversidade de ferramentas que apoiam o analista/projetista nesta tarefa. As ferramentas proprietárias como MS Project, juntamente com o MS Visio, tem ganhado espaço. Mas outras ferramentas livres podem ser utilizadas com a mesma qualidade. Entre elas temos as multiplataformas:
Gantt Project: Projeto de sistema e está disponível em http://ganttproject.biz/, sendo que uma das principais vantagens deste produto é a sua capacidade de multiplataforma (Linux, Windows, MacOSX, etc.). Possui recursos para gráficos de gantt e de Pert, exportação PDF, JPG entre outros, além de trabalho colaborativo através do webDAV.
Figura 1: GanttProject
Para quem quer algo mais simples e portável, existe uma ferramenta, escrita em Java e livre, o JxProject, disponível em http://www.jxproject.com/, semelhante ao GanttProject, mas com uma interface menos rica.
Figura 2: JxProject
Para quem trabalha com metodologias ágeis, principalmente o Scrum, também temos diversas ferramentas open source, entre elas o XPlanner plus, disponível em http://xplanner-plus.sourceforge.net/, multiplataforma e funciona em ambiente web. Esta ferramenta permite analisar o desempenho das equipes, as tarefas a serem desenvolvidas, entre outros pontos.
Figura 3: XPlanner plus
Agora que tratamos sobre o gerenciamento do projeto, vamos para a etapa de modelagem e requisitos de software.
ArgoUML é uma ferramenta que usa como núcleo o NetBeans, permite que se crie diagramas UML como diagrama de classe e casos de uso, é multiplataforma e tem o recurso de gerar código ou de importar código para gerar diagramas. A ferramenta esta disponível em: http://argouml.tigris.org/.
Figura 4: ArgoUML
StarUML é outra ferramenta para criação de diagramas, a diferença é que esta ferramenta esta disponível apenas para o Windows para download. Para baixar, acesse: http://sourceforge.net/projects/staruml/.
Figura 5: StarUML
Dia – Ferramenta para diagrama multiplataforma que permite criar diagramas UML, fluxogramas, diagramas de rede e muito mais: https://live.gnome.org/Dia.
Figura 6: Dia
SER – Sistema de Engenharia de Requisitos, é uma ferramenta open source para o gerenciamento de requisitos e projetos, disponível em http://sourceforge.net/projects/sersistemadeeng/ e que trabalha em plataforma web, desenvolvida em PHP, sendo uma ferramenta multiplataforma. Possui recursos para criação automatizada de caso de uso e de gantt´s.
Figura 7: SER
Com a análise pronta, vamos para a fase de implementação. Nesta fase é onde encontramos diversas ferramentas de alta qualidade, livres.
Esta é a etapa na qual a linguagem de programação é escolhida. Entre as ferramentas proprietárias mais utilizadas temos: Visual Basic, Delphi, Visual Studio (Dot Net) e Java. Ou as ferramentas mais avançadas, dependendo do software, como C/C++. Para todas estas ferramentas proprietárias temos soluções livres compatíveis e de qualidade.
Começaremos pelo Visual Basic 6, que no Brasil foi muito utilizado, e ainda é. A ferramenta de desenvolvimento rápido RAD para Linguagem Basic da Microsoft possui algumas ferramentas livres compatíveis: Gambás e Hbasic.
O Gambás é um dos mais completos IDE´s para VB, possuindo diversos recursos e uma boa compatibilidade com o Visual Basic 6. Está disponível em http://gambas.sourceforge.net/en/main.html.
Figura 8: IDE Gambas
Agora para os amantes do Delphi, a ferramenta indicada aqui é o Lazarus. Esta é uma ferramenta open source compativel com o Delphi e está disponível em http://www.lazarus.freepascal.org/.
Figura 9: IDE Lazarus
Agora chegamos ao Java, aqui sim o Software livre é o senhor da razão, sendo provavelmente as ferramentas mais utilizadas do mercado, possuindo os mais avançados recursos.
A primeira ferramenta é o IDE Eclipse, que sem dúvida é uma das mais utilizadas ferramentas do mercado. Por ser livre, é a base de diversos outros IDE´s, possuindo plug-ins para os mais diversos segmentos e recursos como diagramas UML, desenvolvimento C, PHP entre outros. Está disponível http://www.eclipse.org/.
Figura 10: IDE Eclipse
O principal concorrente livre do Eclipse é o Netbeans, outra ferramenta livre de alta qualidade, sendo possível desenvolver para celular, desktop, possuindo recursos para desenvolvimento em C, PHP etc., e plug-ins diversos. Para acessá-la, visite o endereço https://netbeans.org/.
Figura 11: IDE NetBeans
Não poderia deixar de falar de uma ferramenta open source para a plataforma .NET da Microsoft. Isso mesmo, existem ferramentas livres, não Microsoft, para a plataforma .NET, e a ferramenta é ainda muitiplataforma. A ferramenta que estamos falando é o Mono, que possui o ambiente de desenvolvimento Mono Develop, disponível no site http://monodevelop.com/.
Figura 12: IDE Mono Develop
Além destas ferramentas, temos uma que é pouco conhecida, mas que permite trabalhar com Java, C, C++ entre outras linguagens. Originalmente desenvolvida na Índia, é uma ferramenta simples e prática, o Anjuta, e está disponível em http://projects.gnome.org/anjuta/downloads.html.
Figura 13: IDE Anjuta
Agora que já tratamos de algumas ferramentas para a implementação (como foi dito no início, o objetivo é apresentar ferramentas livres, sendo impossível cobrir todas as ferramentas livres disponíveis na atualidade), vamos então ver ferramentas para a implantação e manutenção.
Começamos com o processo de gerenciamento de versão e integração continua.
As principais ferramentas para controle de versão livre são: CVS, GIT, Subversion, entre outras. Não há muito o que mostrar, mas a vantagem é que os IDE´s apresentadas acima, em sua maioria, possuem plug-ins para trabalhar com todas.
Links para downloads:
- http://cvs.nongnu.org/
- http://www.tortoisecvs.org/
- http://subversion.tigris.org/
- http://subversion.apache.org/
- http://git-scm.com/
Não se esqueça que existem outras ferramentas de controle de versão.
Para a Integração continua, temos diversas ferramentas, entre elas temos o Hudson, disponível em http://hudson-ci.org/.
Figura 14: Hudson
Ainda na mesma linha temos o Jenkins, disponível em http://jenkins-ci.org/.
Figura 15: Jenkins
Ainda temos o Sonar, que permite realizar varias tarefas, disponível em http://www.sonarsource.org/.
Figura 16: Sonar
Além destas ferramentas de integração, temos ferramentas de teste como o JMeter, que permite testes de estresse, performance entre outros, disponível em http://jmeter.apache.org/.
Figura 17: JMeter
Outra ferramenta bastante útil é o Selenium, que permite a automação de testes funcionais em ambiente web, disponível em http://docs.seleniumhq.org/.
Figura 18: Selenium
Além dos frameworks de teste como o JUnit, PHPUnit, TestNG, NUnit, SimpleTest entre outros, e bancos de dados de alta qualidade como o PostgreSQL, MariaDB e Firebird.
Conclusão
É possível notar que independente da plataforma, da linguagem e da tarefa relacionada com desenvolvimento, existe uma infinidade de ferramentas open source para auxiliar na tarefa. O foco do artigo foi apresentar algumas ferramentas, mas existem muitas outras, que podem inclusive ser consultada nos sites a seguir:
Não foram citadas ferramentas como o Maven, Ant, entre outras, mas como dissemos, o objetivo não é apresentar em sua totalidade as ferramentas livres, apenas algumas.
Até o próximo artigo.
Referencias bibliográficas
- //www.devmedia.com.br/introducao-ao-desenvolvimento-guiado-por-teste-tdd-com-junit/26559
- //www.devmedia.com.br/integracao-continua-uma-introducao-ao-assunto/28002
- //www.devmedia.com.br/qualidade-em-desenvolvimento-web-php-com-teste-unitario/27550
- //www.devmedia.com.br/usando-o-jmeter-para-teste-de-performance/20302
- //www.devmedia.com.br/qualidade-de-codigo-com-php/18119
- uml.sourceforge.net/
- http://argouml.tigris.org/
- http://www.jxproject.com/
- http://ganttproject.biz/
- gambas.sourceforge.net
- hbasic.sourceforge.net/
- www.lazarus.freepascal.org/
- www.netbeans.org
- www.eclipse.org/
- drjava.sourceforge.net
- www.jedit.org
- www.mono-project.com/
- www.bloodshed.net/devcpp.html
- anjuta.sourceforge.net
- trolltech.com/products/qt
- www.gtk.org/
- www.wxwidgets.org/
- www.nongnu.org/cvs/
- subversion.tigris.org/
- www.postgresql.org.br/
- www.mysql.com
- www.firebirdsql.org/