Resenha Producao de Software: Software Livre / Código Aberto

11
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

description

Produção de Software Livre / Código Aberto

Transcript of Resenha Producao de Software: Software Livre / Código Aberto

Page 1: Resenha Producao de Software: Software Livre / Código Aberto

Resenha: Produção de Software: Software Livre / Código Aberto

Antonio Sérgio NogueiraDisciplina: Psl201d01- Introdução à Produção de Software:

Software Livre / Código AbertoProfª: Ângela Maria Alves

LavrasMinas Gerais Brasil

2008

Page 2: Resenha Producao de Software: Software Livre / Código Aberto

Sumário

1. Introdução.................................................................................................... 32. Software Livre e Open Source.................................................................... 4

2.1 A história do Software Livre.......................................................... 62.2 Software Livre – Free Software Foundation (FSF)..................... 72.3 O movimento Código Aberto – Open Source.............................. 82.4 Licenças.......................................................................................... 8

2.4.1 Licença GPL..................................................................... 82.4.2 Licença BSD..................................................................... 92.4.3 Outras Licenças e a GPL Brasileira (LPG-PC)............ 9

3. Apreciação Crítica ................................................................................... 104. Conclusão Final.......................................................................................... 10Referências Bibliográficas............................................................................ 11

Page 3: Resenha Producao de Software: Software Livre / Código Aberto

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).

Page 4: Resenha Producao de Software: Software Livre / Código Aberto

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

Page 5: Resenha Producao de Software: Software Livre / Código Aberto

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

Page 6: Resenha Producao de Software: Software Livre / Código Aberto

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

Page 7: Resenha Producao de Software: Software Livre / Código Aberto

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

Page 8: Resenha Producao de Software: Software Livre / Código Aberto

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.

Page 9: Resenha Producao de Software: Software Livre / Código Aberto

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.

Page 10: Resenha Producao de Software: Software Livre / Código Aberto

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.

Page 11: Resenha Producao de Software: Software Livre / Código Aberto

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.