Resenha Producao de Software: Software Livre / Código Aberto
1. Resenha: Produção de Software: Software Livre / Código Aberto
Antonio Sérgio Nogueira
Disciplina: Psl201d01- Introdução à Produção de Software:
Software Livre / Código Aberto
Profª: Ângela Maria Alves
Lavras
Minas Gerais Brasil
2008
2. Sumário
1. Introdução.................................................................................................... 3
2. Software Livre e Open Source.................................................................... 4
2.1 A história do Software Livre.......................................................... 6
2.2 Software Livre – Free Software Foundation (FSF)..................... 7
2.3 O movimento Código Aberto – Open Source.............................. 8
2.4 Licenças.......................................................................................... 8
2.4.1 Licença GPL..................................................................... 8
2.4.2 Licença BSD..................................................................... 9
2.4.3 Outras Licenças e a GPL Brasileira (LPG-PC)............ 9
3. Apreciação Crítica ................................................................................... 10
4. Conclusão Final.......................................................................................... 10
Referências Bibliográficas............................................................................ 11
3. 1. Introdução
O texto da professora Ângela Maria Alves [ANGE] faz uma abordagem do
conceito de Software Livre, citando ainda o grande interesse da comunidade de
computação por esta consolidada experiência de sucesso no desenvolvimento de
software, relacionando também as premissas básicas que norteiam o Software Livre e
comparando-as com a do software proprietário. Enfim são esclarecidas as diferenças
entre Software Livre e software grátis. Na sequência é abordado a história do
Software Livre, que começa com o sistema operacional UNIX. Dando sequência a
esta parte histórica teremos os tópicos: GNU Free Software Foundation, o núcleo
LINUX, as distribuições LINUX, Open Source e por fim o Projeto Software Livre.
Nova exposição é feita de forma a posicionar temporalmente o desenvolvimento
do Software Livre e o movimento do Código Aberto (Open Source), bem como as
licenças geradas por esses movimentos e outros advindos destes (GPL, SCSL, MPL,
Adequação à legislação brasileira da GPL).
4. 2. Software Livre e Open Source
Desde os primórdios da indústria de software o maior desafio é a construção de
software de qualidade e viável economicamente.
A engenharia de software é o ramo do conhecimento que tem este desafio
fundamental.
“Engenharia de software [WIKI] é uma área do conhecimento da informática
voltada para a especificação, desenvolvimento e manutenção de sistemas de software
aplicando tecnologias e práticas de ciência da computação, gerência de projetos e outras
disciplinas, objetivando organização, produtividade e qualidade.“
Este desafio tem como resultado os trabalhos que envolvem milhares de
pesquisadores, empenhados em descrever e prescrever formas eficazes, para lidar
com estes problemas de construção de software, o que resultou num conjunto de
normas e modelos: CMM (Capability Maturity Model), CMMI(Capability Maturity
Model Integration, International Organization for Standardtization/International
Eletrotechnical Comission – ISO/IEC 12207, e outras.
“Capability Maturity Model ® Integration (CMMI) [CMMI] é um processo
que prevê a melhoria da abordagem nas organizações, com os elementos essenciais
de processos eficazes. Ela pode ser usada para orientar o processo de melhoria de
uma divisão, ou de uma organização inteira, através de um projeto. O CMMI ajuda
a integrar tradicionalmente separadas funções organizacionais, define processo de
melhoria de metas e prioridades, fornece orientações para a qualidade de processos,
e proporciona um ponto de referência para avaliar processos atuais.”
Paralelamente a todo este esforço, existem grupos de indivíduos que trabalham
de forma independente e geograficamente dispersos, desenvolvendo software de
qualidade que pode ser usado e modificado livremente, estes indivíduos estão se
organizando e formando organizações denominadas Projetos de Software Livre.
Apesar de todo sucesso alcançado por estas organizações e da percepção de que este
projeto tem qualidade, o seu modelo de desenvolvimento é baseado no uso de
ferramentas simples como CVS (Control Version System), lista de discussão, grupo
de desenvolvimento, tudo isso coordenado de forma não usual. Podemos citar como
exemplos: LINUX, APACHE e o SENDMAIL. Isto nos leva as seguintes questões:
1.Como tornar economicamente viável o software livre?
2.Como Projetos de Software Livre produzem software?
Recentemente a comunidade da computação e em especial a engenharia de
software começou a se preocupar com a 1 a. questão, uma vez que a 2 a. questão está
sendo discutida exaustivamente por publicações da literatura econômica e
5. administrativa.
“A economia com Software Livre [IDBR] - O Software Livre tem penetrado
decisivamente nos ambientes doméstico, comercial e governamental ao redor do
mundo. Suas características geram, para as instituições que o adotam, softwares
melhores adaptados às suas condições, menor custo de manutenção e maior
segurança.
No ambiente governamental, em especial, diversas ações de adoção de Software
Livre estão em curso ao redor do mundo. “No Brasil, as prefeituras de São Paulo-
SP, Porto Alegre-RS, Belo Horizonte - MG, Campinas-SP e Recife-PE e os governos
estaduais do Rio Grande do Sul e Paraná são exemplos desta tendência.”
Para manter-se atualizada e sincronizada a comunidade da engenharia de software
passa a estudar de forma abrangente este sucesso chamado Projeto de Software Livre.
“Software Livre [CHRI] têm despertado bastante atenção, não apenas devido
à popularidade obtida por alguns destes como o Linux e o Apache, mas também pela
forma singular como estes sistemas são desenvolvidos e sua quantidade de adeptos.
No entanto, em alguns projetos de software livre, a documentação existente dificulta
a entrada de novos participantes, já que devido à informalidade do processo de
desenvolvimento deste tipo de software, é comum que a documentação do sistema
não receba muita atenção.
Este trabalho colabora para um melhor entendimento do desenvolvimento de
software livres, relacionando-o com as questões de evolução de software. Será
apresentada uma proposta utilizada no software livre C&L para documentar em
termos da aplicação o código do sistema, utilizando-se do conceito de cenários.
Será mostrado através de um protótipo que um software seguindo esse padrão
proposto pode produzir uma documentação que torna mais fácil seu entendimento
para novos participantes do projeto.”
Consideraremos Software Livre todo software que independente de seu licenciamento
legal, garante as seguintes liberdades:
− De executar o programa;
− De a qualquer momento modificar o programa para atender necessidades próprias
ou de terceiros;
− De distribuir cópias livremente do programa original;
− De distribuir cópias livremente das versões modificadas;
Para que tais liberdades sejam supridas é necessário que os usuários tenham
acesso ao código fonte do programa de forma imperativa. Diferente do software
proprietário, cujo fonte é tratado como segredo industrial, que tem como única
liberdade garantida ao usuário a execução do programa, após o mesmo ser licenciado.
2.1 A história do Software Livre
6. O início do software livre atual começa com o sistema operacional UNIX,
apesar do mesmo existir desde o início do desenvolvimento da informática no final da
década de 60, quando a maioria dos softwares eram livres, uma vez que o hardware
era o foco dos fabricantes, e não tinha valor comercial.
O UNIX um grande sucesso, foi desenvolvido sob o conceito da portabilidade,
elegância, eficiência e simplicidade. Ele foi criado em 1969 nos laboratórios BELL,
pertencentes a AT&T. Derivado do MULTICS, e criado pela GE e pelo MIT, o
UNIX foi escrito em linguagem B e depois em linguagem C e até hoje é escrito nesta
linguagem. A AT&T cede então o sistema para as universidades e estimula
inovações, então o UNIX passa a ser popular e a Universidade de Berkeley Contribui
significativamente para isso. Em 1977 aparece o BSD ( Berkeley Software
Distribuição), que distribui uma versão UNIX mais compiladores e editores, quando
então o UNIX começa a ter fins comerciais, isso após 1975. O UNIX acaba ficando
com o código fechado , de tal forma que 1983 o sistema BSD 4.3 tem mais
popularidade. Na época para utilizar o BSD é necessário ter licença da AT&T, que
começou a ter valores proibitivos, dessa forma nasce em 1988 o Networking Release
1, que embora não fosse um sistema operacional completo, era totalmente livre e daí
nasce a 1ª. licença de Software Livre. A história prossegue até o lançamento da
Networking Release 2, quando o mesmo é proibido de 1992 a 1994, quando então
componentes são reescritos e o trabalho BSD recomeçado. A 1ª. Licença dizia, de
modo geral, que para utilizar o código:
− Não fosse removidos os aviso de copyright;
− E que se o programa fosse documentado, ele deveria ter uma citação dizendo que
aquele programa tem software de Berkeley.
2.2 Software Livre – Free Software Foundation (FSF)
A FSF como é conhecida foi iniciada em 1983, por Richard Stallman, com o
objetivo de promover na comunidade de informática o espírito cooperativo que
prevalecia em seus primórdios ou seja “criar software suficiente para poder utilizar o
computador sem a necessidade do software proprietário” . Stallman tinha a idéia de
que software proprietário implicava numa organização social onde não é permitido
compartilhar o conhecimento, não é permitido ajudar o próximo e incita a
competição, não a colaboração. Ele acredita que software deve ser livre, já que o
custo marginal de distribuição e reprodução é próximo a zero. O motivo que levou
Stallman a fundar esta organização aconteceu no MIT em 1981, quando o
computador do laboratório de Inteligência Artificial foi trocado e a falta de recursos
humanos, nesta época, fez com que a direção do laboratório utilizasse um sistema
operacional proprietário. Arraigado aos seus princípios, ele não assinou o acordo de
utilização do software imposto pelo fornecedor. Stallman então decide criar um novo
sistema operacional chamado GNU, cuja intenção era ser um clone do UNIX, livre de
software proprietário e com as especificações do UNIX. O sistema dessa forma seria
amplamente aceito e já nasceria com aplicações desenvolvidas para ele, o que
facilitaria a mudança para o novo sistema. O GNU ganha visibilidade com o
7. lançamento do editor Emacs e estimula pessoas a desenvolvê-lo. Em 1991, quando o
sistema já estava quase pronto, um finlandês chamado Linus Torvalds desenvolve
uma versão inicial de um núcleo operacional (LINUX) compatível com o UNIX, era
o que faltava para o GNU, cujo nome foi batizado de Hurd. Em pouco tempo
integram-se GNU e LINUX e assim surge o 1º sistema operacional totalmente livre.
O sistema BSD, citado anteriormente e que gerou a 1ª Licença de software livre,
torna-se disponível para uso após o LINUX, e a partir dele surgem versões como
FreeBSD, NetBSD, OpenBSD.
2.3 O movimento Código Aberto – Open Source
Este movimento surge em 1997 quando dissidentes, da ideologia da FSF e de
sua licença GNU-GPL, sentem-se incomodados e querem retirar do desenvolvimento
do Software Livre o componente social e ideologizante. Surge então o conceito de
Código Aberto, que por definição não faz nenhuma referência a aspectos políticos,
sociais e de liberdade. Dando assim abertura, para que sejam criadas licenças, que
permitam que o código aberto seja fechado e possa ser distribuído como software
proprietário. Esse movimento também acredita na eficiência econômica e técnica do
modelo aberto ( <http://www.opensource.org>).
2.4 Licenças
Ao falarmos de licença nos deparamos com dois tipos de propriedade intectual:
o direito autoral e o direito de patentes.
O direito autoral é dividido em patrimonial e moral. O patrimonial trata da
negociação da obra (licenciamento, aluguel, comercialização, transferência....). No
Brasil o software é protegido pelo direito autoral, válido por 50 anos, após o qual cai
em domínio público. O direito moral é aquele que tem o autor de ter sempre seu
nome ligado à obra (Lei no. 9606 de 1998).
O direito de patente corresponde à concessão dada pelo Estado, para explorar
por tempo determinado a invenção ou um processo produtivo. As leis americanas
permitem ao autor do software optar por um dos dois direitos.
2.4.1 Licença GPL
Nos idos de 1989, com a idéia formada do conceito de copyleft (“ Copyleft é
uma forma de usar a legislação de proteção dos direitos autorais com o objetivo de
retirar barreiras à utilização, difusão e modificação de uma obra criativa devido à
aplicação clássica das normas de propriedade intelectual, sendo assim diferente do
domínio público que não apresenta tais restrições. "Copyleft" é um trocadilho com o
termo "copyright" que, traduzido literalmente, significa "direitos de copia”[WIKI]. “),
foi criada, pela FSF, a licença de Software GNU GPL (General Public License), cujo
objetivo era estabelecer restrições ao uso do Software Livre, pelo seu autor, e garantir
as liberdades do Software Livre citadas anteriormente. As suas restrições
fundamentais são: 1. garantir que todos trabalhos derivados devem ser licenciados
8. pela GPL, e que é permitida a não distribuição das alterações realizadas no
programa, desde que usadas privadamente; 2. Não é permitida a alteração das
condições da licença.
A GPL por outro lado incentiva o uso do Software Livre para prestação de
serviços, vendas de mídias e suporte técnico como meio de auferir rendimentos. O
foco do GPL é, então, a liberdade, e não a gratuidade. A FSF possui mais duas
licenças LPGL (Lesser General Public License) e a FDL (Free Document License). A
LGPL, voltada para componentes chamados bibliotecas, libera o uso das bibliotecas
para qualquer tipo de software derivado dela, com o objetivo de popularizar o uso de
bibliotecas livres e não inviabilizar o software proprietário que rode em GNU. A FDL
é a licença do tipo copyleft, que tem como propósito assegurar a efetiva liberdade de
copiar, redistribuir, modificar ou não, comercialmente ou não, textos escritos.
2.4.2 Licença BSD
É uma licença que enquadra com a filosofia do movimento código aberto, não
tendo restrições ao uso do código, que pode ser utilizado para qualquer finalidade,
bem como para gerar software proprietário. Suas restrições básicas são:
− Manter o copyright original na redistribuição do código fonte;
− Colocar o copyright na documentação das versões binárias, não utilizando o nome
do autor para endossar as modificações efetuadas.
O software Xfree 86, o banco de dados PostgreSQL e o sistema TCP/IP são
exemplos de licenciamentos BSD.
2.4.3 Outras Licenças e a GPL Brasileira (LPG-PC)
Existem várias outras licenças como a Mozilla Public License, a Sun Country
Source License ( considerada não livre, pois tem limitações de acesso ao código
fontes), as licenças Creative Commons idealizadas para permitir a padronização de
declarações de vontade no tocante ao licenciamento e distribuição de conteúdos
culturais em geral (textos, músicas, imagens, filmes e outros). No tocante a GPL
brasileira chamada de LPG-PC (Licença Pública Geral para Programas de
Computadores), organizada por Pablo de Camargo Cerdeira, ela é uma adaptação da
GPL às leis brasileiras. No tocante as licenças em vigor, o governo federal adotou a
licença LPG-PC e a Creative Commons como padrões para desenvolvimento de seu
software.
9. 3. Apreciação Crítica
O assunto abordado ainda causa bastante incertezas quanto ao rumo que terá o
Software Livre,mas uma coisa é certa: o tema é bastante interessante e no futuro
próximo cada vez mais desenvolvedores estarão interessados no Software Livre. Para
quem quer conhecer sobre o tema Software Livre o texto acadêmico Introdução à
Produção de Software: Software Livre / Código Aberto contém uma grande
quantidade de informações e deve ser lido e relido com cuidado, de forma que o leitor
possa reter estas informações.
10. 4. Conclusão Final
O grande mérito do texto está em abordar, de forma rica, a história do
Software Livre, do Código Aberto, as licenças principais e a adequação as leis
brasileiras da licença GPL. Um tema que esta sendo bem difundido, e que a leitura
do texto permitirá ao leitor discutí-lo com bastante propriedade.
11. Referências Bibliográficas
[ANGE] ALVES, Ângela Maria. Introdução à Produção de Software: Software
Livre / Código Aberto (SL/CA). Lavras, 2005. p. 9-36.
[CHRI] CHRISTOPH, Roberto de Holanda. Engenharia de software para software
livre / Roberto de Holanda Christoph; orientador: Julio Cesar Sampaio do Prado
Leite. Rio de Janeiro: PUC, Departamento de Informática, 2004.
[CMMI] MELOW, Carnagie. What Is CMMI?. Disponível em:
<http://www.sei.cmu.edu/cmmi/general/index.html>. Acesso em: 30 novembro 2007.
[IDBR] IDBRASIL.A economia com software livre. Disponível em :
<http://www.idbrasil.gov.br/software_livre/econ_sw>. Acesso em: 29 novembro 2007.
[WIKI] WIKIPÉDIA.Engenharia de software . Disponível em:
<http://pt.wikipedia.org/wiki/Engenharia_de_software>. Acesso em: 28 novembro 2007.