sábado, 5 de dezembro de 2009

Conceitos básicos de software

Conceitos básicos de software

1 Classificação quanto à forma como são distribuídos

    1.1. Licenciados ou Com Registros

Uma licença de software tem por objetivo estabelecer de forma explícita ou expressa a forma de distribuição de um programa.

        1.1.1  Proprietários

São softwares com licenças proprietárias que seguem o padrão de copyright (seria algo próximo à cópia restrita). São adquiridos, normalmente, mediante pagamento (payware) ao fabricante ou ao revendedor (normalmente adquirido “na caixa”). É a forma mais comum de aquisição de software, o adquirente se torna proprietário do software adquirido, embora tenha que respeitar as condições de uso impostas pelo fabricante. Os softwares proprietários são protegidos por direitos autorais e contêm restrições de uso, cópia, modificação etc. As restrições são colocadas no contrato (Contrato de Licença de Usuário) e são aceitas no momento da aquisição/instalação. Importante lembrar que quando a licença de uso é quebrada há pirataria e quando os códigos contra a pirataria são quebrados, o software foi “crackeado” (de crack que significa quebrar).

        1.1.2  Shareware

São softwares proprietários, porém, distribuídos livremente em forma de cópia de avaliação ou de demonstração. Durante o processo de instalação o usuário é questionado a aceitar a licença como cópia de avaliação. Possuem restrições de uso enquanto não forem licenciados ou registrados junto ao fornecedor. As limitações podem ser de diversas formas, as mais comuns são: expirar após certo período de tempo, propagandas embutidas e limitações de funcionalidades (como não admitir salvar um arquivo ou imprimi-lo). Normalmente são utilizados como software de avaliação, ou seja, como software de demonstração para ser testado, e se for de interesse do usuário este deverá registrá-lo junto ao fornecedor. Subtipos:

A. Demo: é uma licença mais comum para jogos, músicas e outros formatos de mídias. Consiste num “pedaço” (uma demonstração) do software completo para que o usuário avalie e decida se vai adquiri-lo.
B. Trial: é uma licença que possui prazo de avaliação. O software é usual por certo período de tempo, após o período determinado o software expira e fica bloqueado o seu uso.

C. Adware: é uma licença que possui propagandas como forma de custear o software. O fabricante permite o uso desde que o usuário fique obrigado a aceitar a publicidade embutida. O fornecedor disponibiliza, normalmente, uma versão completa, proprietária, sem propagandas.

C. Nagware: Nags são janelas de aviso sobre a necessidade de aquisição da licença do software, tais janelas abrem automaticamente e repetidamente após o prazo de utilização livre. Shareware nonagged significa que o software não possui os “importunos” avisos.

        1.1.3  Software beta

Quando o software está sendo produzido, ele passa por vários estágios na criação de seu código-fonte. Antes de ser considerado completo, pronto, livre de erros para ser usado como software de produção, o software deve ser testado. O primeiro dos testes é chamado de estágio ALFA, e o segundo, de estágio BETA. Um software é beta quando o código está bem próximo da versão final, porém ainda pode conter erros significativos. Vários usuários se inscrevem em listas disponibilizadas por fornecedores para serem “beta testers” e assim apreciarem o software, gratuitamente e em primeira mão, porém, o software beta deve ser usado com cautela.

        1.1.4  Freeware

São conhecidos como softwares gratuitos, ou seja, o software gratuito ou freeware possui licença de proteção de direitos autorais e por isso pode ser restringido no futuro. Em outras palavras, podemos dizer que o autor não está cobrando, por enquanto, pelo software, mas terá a capacidade de fazê-lo em versões futuras, se desejar. Não confundir software freeware com software livre ou free software. Software freeware é um software gratuito, como por exemplo o Adobe Reader (leitor de PDF da empresa Adobe); já o free software é software aberto, ou seja, que possui o código-fonte disponível. O freeware tem como característica a gratuidade, mas não a disponibilidade do código-fonte.

        1.1.5  Software livre ou Free Software (FLOSS – do inglês Free/Libre Open Source Software)

Segundo a definição criada pela Free Software Foundation é qualquer programa de computador que pode ser usado, copiado, estudado, modificado e redistribuído, sem nenhuma restrições.
A liberdade de tais diretrizes é central ao conceito, o qual se opõe ao conceito de software proprietário, mas não ao software que é vendido almejando lucro (software comercial). A maneira usual de distribuição de software livre é anexar a este uma licença de software livre, e tornar o código fonte do programa disponível.
Veja a definição de (RIBEIRO, Daniel Darlen Corrêa. Software Livre na Administração Pública.):

“Software Livre é o software disponibilizado, gratuitamente ou comercializado, com as premissas de liberdade de instalação; plena utilização; acesso ao código fonte; possibilidade de modificações/ aperfeiçoamentos para necessidades específicas; distribuição da forma original ou modificada, com ou sem custos”.

São softwares com código-fonte aberto, ou seja, com seus códigos de criação disponíveis ao usuário para que qualquer pessoa possa modificá-los e adaptá-los às suas necessidades e o resultado de aperfeiçoamentos desse software pode ser liberado e redistribuído para outros usuários, sem necessidade de permissão do fornecedor do código original. Os softwares livres dão livre acesso aos seus códigos-fontes e são regidos pelas quatro leis básicas da liberdade definidas pela Free Software Foundation.

•    LIBERDADE 0: a liberdade de utilizar ou executar o software para qualquer propósito, para fins pessoais ou comerciais, para uso doméstico, corporativo, educacional etc. Pode-se usar em qualquer sistema computacional (o software livre pode rodar em sistemas operacionais proprietários), seja em um ou em cem computadores, veja a liberdade n. 2.
•    LIBERDADE 1: a liberdade de estudar como o software funciona, posto que o código-fonte (código utilizado para a criação do software) está disponível, logicamente sem o código-fonte não haveria tal liberdade. Esta liberdade também envolve a liberdade de modificar o código-fonte e adaptá-lo as necessidades específicas de cada usuário – veja a terceira liberdade.
•    LIBERDADE 2: a liberdade de copiar ou redistribuir cópias do software. Não há limitação para a criação de cópias de um software livre, a forma como o software livre é licenciado garante a possibilidade de duplicação sem ônus financeiro e sem necessidade de autorização do autor. Filosoficamente esta liberdade está relacionada á expansão do software livre e à possibilidade de ajuda ao próximo.
•    LIBERDADE 3: a liberdade de modificar e aperfeiçoar o programa e, claro, tornar as modificações ou implementações disponíveis para a utilização por todos os usuários.

Cabe destacar que as leis básicas são irrevogáveis, já que um autor ou modificador do software não poderá fazer restrições futuras a quaisquer das liberdades acima no software adquirido.
A licença do tipo software livre não proíbe a exploração comercial do software, ou seja, não é proibido vendê-lo, porém, o comprador tem direito de revender ou distribuir gratuitamente, o que em teoria torna a venda sem sentido. Também é bom lembrar que adaptações e melhoramentos ao código-fonte podem (ou não) ser registrados como software comercial (veja licenças permissivas e não-permissivas). Várias empresas já utilizam o software livre fazendo modificações e cobrando por estas modificações específicas no software. Também é possível ter lucro com software livre em treinamentos e suporte técnico e outros valores agregados que podem ser explorados comercialmente.
É um erro querer associar software livre somente ao Linux, vários programas são distribuídos para Windows com a liberdade de código-fonte, portanto, software livre é independente de plataforma ou de sistema operacional. Logicamente não significa, porém, que um mesmo software, pelo simples fato de ser livre, poderá ser instalado em qualquer computador ou sistema operacional. Quando um programador escreve um
software ele está pensando em uma plataforma específica (hardware e sistema operacional) e, salvo se o software for reescrito, ele não poderá ser instalado em outra plataforma.
O software livre traz vantagens, como a redução de custos, já que não se paga por licenças de uso, a adaptabilidade ou flexibilidade, já que cada usuário ou empresa poderá modificá-lo para atender a suas peculiaridades. Também pode ser citada a questão da segurança, posto que com a abertura do código é possível que eventuais falhas sejam descobertas e corrigidas em menor tempo, ou seja, o código é validado por mais usuários o que resulta em menor vulnerabilidade a intrusos e maior capacidade de desenvolvimento. No entanto, não é possível afirmar que o software livre possui superioridade em termos de funcionalidades ou de facilidades em relação ao comercial, ambos podem ter qualidades equivalentes.
Outro fator de popularidade para os softwares livres é a sua capacidade de ser uma ferramenta de inclusão digital. Ao reduzir os custos amplia-se o mercado consumidor.

A categoria free software pode conter licenças do tipo:

A. Licenças não-permissivas ou com Copyleft: é um tipo de licença semelhante às licenças comuns de copyright (©), porém, ao contrário destas, traz a possibilidade de liberdade de cópia e redistribuição (copyleft   – algo do tipo: cópia livre). É usada em softwares livres e não permite que redistribuidores incluam restrições adicionais quando eles redistribuem ou modificam o software. Isto significa que toda cópia do software, mesmo que tenha sido modificada, precisa ser software livre. Principais tipos de licença copyleft:
•    Licença GNU/GPL (Licença pública geral): é a designação da licença para software livre idealizada por Richard Stallman no final da década de 1980, no âmbito do projeto GNU da Free Software Foundation (FSF). É a mais conhecida por ser utilizada no núcleo ou kernel do sistema operacional Linux. Tem como característica o fato de só permitir a redistribuição se for mantida a garantia de liberdade para os futuros usuários do software, há quem diga que é uma licença “viral”, isto é, se for utilizado um código-fonte de um software que possui esta licença, automaticamente o novo software estará contaminado, ou seja, o seu código também deverá ser GNU. No caso da licença GPL, a fonte deve ser disponibilizada em local de onde possa ser acessado, ou deve ser entregue ao usuário, se solicitado, sem custos adicionais (exceto transporte e mídia). Exige a distribuição do código-fonte das versões modificadas, ou seja, impede que o software livre seja integrado a um software proprietário. Por essa restrição pode ser chamada de licença não permissiva.

•    LGPL (Lesser General Public License – antes conhecida como Library General Public License): É uma licença aprovada pela FSF que tem por objetivo ser menos restritiva ou mais permissiva que a licença GPL. A LGPL permite ser ligada com programas que não sejam GPL ou LGPL, que podem ser software livre ou software proprietário. É usada por aplicações como OpenOffice.org e Mozilla.

B. Licenças permissivas ou sem copyleft: podemos dizer que aqui está o software livre sem restrições para a lucratividade do redistribuidor, ou seja, quem fizer modificações poderá proteger com licenciamento suas modificações e, portanto, cobrar por elas. Principais tipos:
•    BSD (Berkeley Software Distribution): como é uma licença permissiva, então, o software pode ser vendido e o vendedor não é obrigado a incluir o código-fonte.
•    X.org: também não é restritiva, ou seja, é permissiva por não ser do tipo copyleft.

Veja uma lista de licenças compatíveis e não compatíveis com o modelo GPL em http://www.gnu.org/licenses/license-list.pt-br.html.
Resumidamente, percebe-se que há softwares livres que permitem a apropriação do código-fonte que sofreu alterações (licenças permissivas) e outros que não permitem a apropriação (não permissivas).

        1.1.6  Software público brasileiro (www.softwarepúblico.gov.br)

O conceito do Software Público Brasileiro – SPB é utilizado como um dos alicerces para definir a política de uso e desenvolvimento de software pelo setor público no Brasil. O Software Público é desenvolvido com recursos públicos por uma entidade governamental ou parceiros da sociedade com interesses comuns.
Tal política compreende a relação entre os entes públicos, em todas as unidades da federação e demais esferas de poder, e destes com as empresas e a sociedade. Construiu-se um portal de soluções livres com o objetivo de compartilhamento de soluções entre as instituições públicas, em particular as instituições de informática pública. Com a experiência do sistema de inventário CACIC, disponibilizado pela Dataprev, sob a Licença Pública Geral-GPL, a visão deste compartilhamento foi ampliada para toda sociedade.
A iniciativa do Portal do Software Público Brasileiro facilita a implantação de novas ferramentas nos diversos setores administrativos dos estados, promove a integração entre as unidades federativas e oferece um conjunto de serviços públicos para sociedade com base no bem software.

        1.1.7  Software aberto (open source)

É um movimento (mais ideológico) que procura incentivar a liberdade de disponibilidade do código-fonte e afirmar sua superioridade em relação aos softwares proprietários, porém, o movimento do Código Aberto não traz licenças claras sobre a utilização do software como faz a Free Software Foundation ao especificar as licenças do software livre. Alguns autores chegam a considerar que o movimento software aberto é apenas um movimento ideológico enquanto o software livre é uma realidade. Para eles (do software aberto) seria imoral qualquer tentativa de exploração comercial do software e os adeptos, em geral, não utilizam, não trabalham e não exploram softwares proprietários. Obviamente, por definição, todo software aberto (por permitir o acesso livre ao código-fonte) é um software open e gratuito.

        1.1.8  Software quase-livre ou semi-livre

Não é uma categoria muito utilizada, porém é mencionada como se fosse um software em que se garante a permissão para que indivíduos o usem, copiem, distribuam e modifiquem, incluindo a distribuição de versões modificadas, desde que o façam sem o propósito de auferir lucros. Cita-se como exemplo a distribuição inicial do StarOffice e algumas versões do Netscape.

        1.1.9  Licença dual ou dúplice

É a referência a softwares que podem ser livres para usuários domésticos e proprietários para empresas, ou outro tipo de duplicidade na licença de uso.

        1.1.1 . Outros

Ainda existem formas especiais de aquisição de registros de softwares, são elas:
A. Bookware: deve-se comprar um determinado livro;
B. Postcardware: o desenvolvedor solicita que lhe seja enviado um cartão postal;
C. Stampware: o autor solicita que lhe seja enviada uma carta, com selo postal.

    1.2. NÃO LICENCIADO

        1.2.1  Software de domínio público


Não tem proteção de direitos autorais, é software sem copyright, pode ser usado, alterado e não possui restrições por um dos dois motivos: o autor abriu mão de direitos autorais ou expirou-se o prazo de domínio privado da obra. Quando acontece de o autor abrir mão de direitos autorais ou expirar-se o prazo para a propriedade, a obra cai em domínio público, ou seja, se torna bem comum. O software de domínio público pode ser copiado e distribuído livremente, mas isso não garante a disponibilidade quanto ao código-fonte.

        1.2.2  Software as a Service (SAAS) ou Aluguel de Software

Ao invés de adquirir uma licença do software, o usuário (pessoa física ou jurídica) aluga o software por um determinado período de tempo e paga uma taxa em relação a esse período. O software é utilizado online e o usuário é assinante do software. Para as pequenas e médias empresas há a redução de custos já que poderá usar softwares mais robustos pagando preços mais módicos, também se economiza em atualizações e manutenções que são obrigações do fornecedor. Também se coloca como vantagens a agilidade da “instalação” já que o software já está pronto para uso e assim é desnecessária a ampliação do hardware já existente, a acessibilidade pelo fato de o software estar disponível online, a flexibilidade porque pode-se aumentar o número de assinaturas a qualquer momento.

1.3. QUANTO À POSSIBILIDADE DE EXPLORAÇÃO COMERCIAL

        1.3.1  Software Comercial

São softwares desenvolvidos para a utilização comercial, ou seja, são produzidos para que a empresa adquirente lucre com a sua utilização. A grande parte dos softwares comerciais são proprietários, porém é possível encontrar software livre para uso comercial. O nome comercial indica a possibilidade de utilização para fins comerciais por quem adquire o software, ou seja, a capacidade de utilizá-lo para fins comerciais.

        1.3.1 Software não-comercial

São softwares que são distribuídos com a proibição de serem usados em ambientes comerciais. Não podem ser explorados para gerar rendas ou riquezas ao usuário. Vários softwares freewares possuem tal tipo de restrição. Em geral, o objetivo é fazer com que as empresas adquiram o software “professional” que é pago e normalmente caro.

Nenhum comentário:

Postar um comentário