Pular para o conteúdo principal

Questão de Engenharia de Software — Geral — VUNESP 2023

Engenharia de SoftwareGeral
Código
vu196859
Banca
VUNESP
Órgão
CM Monte Alto
Ano
2023
Cargo
AnTI ( )

Software livre é um tipo de software desenvolvido segundo alguns princípios, visando assegurar as liberdades essenciais. Sobre este tipo de software, assinale a alternativa correta.

  1. AUm software livre não utiliza criptografia em suas mensagens.
  2. BUm software livre deve ser desenvolvido utilizando exclusivamente uma linguagem de programação.
  3. CUm software livre deve ter seu código fonte aberto.
  4. DPara um software ser considerado livre, ele não pode estar atrelado a uma licença de software.
  5. ETodo software projetado para a programação embarcada é um software livre.
Revelar gabarito e comentário

GabaritoC — Um software livre deve ter seu código fonte aberto.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Software Livre: liberdades essenciais e código aberto

Gabarito: letra C. Um software livre é definido pelas quatro liberdades essenciais estabelecidas pela Free Software Foundation (FSF), e a liberdade de acessar e modificar o código-fonte é condição indispensável para que essas liberdades possam ser exercidas — por isso, a alternativa correta afirma que o software livre deve ter seu código-fonte aberto. As demais alternativas apresentam distorções: criptografia, linguagem de programação, licenciamento e programação embarcada não são critérios que definem ou excluem a condição de software livre.

O conceito de software livre foi formalizado por Richard Stallman, fundador da Free Software Foundation (FSF), e se baseia em quatro liberdades fundamentais que o usuário deve ter em relação ao software. Essas liberdades são: (0) executar o programa para qualquer propósito; (1) estudar como o programa funciona e adaptá-lo às suas necessidades — o que exige acesso ao código-fonte; (2) redistribuir cópias; e (3) melhorar o programa e distribuir as melhorias — o que também exige acesso ao código-fonte. Perceba que a liberdade de estudar e modificar o software é o coração do conceito: sem o código-fonte aberto, essas liberdades seriam meramente teóricas, pois o usuário não teria como examinar ou alterar o funcionamento interno do programa.

É importante distinguir software livre de software de código aberto (open source). Embora na prática os dois movimentos compartilhem a mesma base de licenças e a maioria dos softwares seja simultaneamente livre e de código aberto, as filosofias são diferentes: o movimento free software enfatiza a liberdade do usuário como uma questão ética e de direitos, enquanto o movimento open source foca nos benefícios práticos e técnicos do desenvolvimento colaborativo. Para fins de concursos, a distinção mais cobrada é que software livre é uma questão de licença e liberdade, não de preço — "free" refere-se a liberdade (free as in freedom), não a gratuidade (free as in free beer). Um software livre pode ser comercializado, desde que a licença permita a redistribuição.

A pegadinha clássica da banca neste tema é associar software livre a características técnicas irrelevantes (como criptografia ou linguagem de programação) ou negar a necessidade de licença. A licença é justamente o instrumento jurídico que garante as liberdades: sem uma licença que as assegure, o software não é livre, pois o direito autoral padrão (copyright) restringe o uso, a cópia e a modificação. As licenças livres (como GPL, BSD, MIT) são o mecanismo que concede essas permissões ao usuário. Portanto, a alternativa que afirma que o software livre "não pode estar atrelado a uma licença" inverte completamente a lógica: o software livre é definido pela licença que o acompanha.

Guarde o critério decisivo: o que define um software como livre é a combinação de (1) código-fonte aberto e (2) licença que garanta as quatro liberdades. É exatamente nesses dois pilares que as alternativas se dividem — as incorretas atacam um deles ou introduzem critérios estranhos ao conceito.

1Definição (FSF)
4 liberdades essenciais
Código-fonte aberto
Licença que garante as liberdades
2Distinções
Livre ≠ open source (filosofia)
Livre ≠ grátis (liberdade, não preço)
3Licenças livres
GPL
BSD
MIT
4Não definem
Criptografia
Linguagem de programação
Programação embarcada
Software livre
LEVELsoulevel.com.br
Software livre: Definição (FSF) (4 liberdades essenciais, Código-fonte aberto, Licença que garante as liberdades); Distinções (Livre ≠ open source (filosofia), Livre ≠ grátis (liberdade, não preço)); Licenças livres (GPL, BSD, MIT); Não definem (Criptografia, Linguagem de programação, Programação embarcada)

Alternativa A — ❌ Incorreta

Afirma que software livre não utiliza criptografia. Isso é um absurdo técnico: criptografia é uma técnica de segurança da informação, completamente independente do modelo de licenciamento. Um software livre pode (e muitos utilizam) criptografia em suas mensagens — como o Signal, o GnuPG e o próprio OpenSSL, que são softwares livres e amplamente usados para criptografia. A alternativa confunde duas dimensões distintas: a liberdade de uso/modificação (que define software livre) e a segurança técnica (que é uma característica de implementação).

Alternativa B — ❌ Incorreta

Afirma que software livre deve ser desenvolvido exclusivamente em uma linguagem de programação. Não há qualquer relação entre o modelo de licenciamento e a linguagem de implementação. Softwares livres são escritos em diversas linguagens — C, C++, Python, Java, JavaScript, entre outras — e a escolha da linguagem é uma decisão técnica do desenvolvedor, não um requisito do conceito de liberdade. A alternativa introduz um critério arbitrário que não existe na definição de software livre.

Alternativa C — ✅ Correta ⟵ GABARITO

Afirma que software livre deve ter seu código-fonte aberto. Esta é a afirmação correta e o núcleo do conceito. As liberdades de estudar, modificar e melhorar o software (liberdades 1 e 3 da FSF) são impossíveis sem acesso ao código-fonte. A Free Software Foundation define explicitamente que o acesso ao código-fonte é condição necessária para que o software seja considerado livre. Sem código aberto, o usuário não pode exercer as liberdades essenciais — ele apenas executa o programa como uma caixa-preta. Portanto, código-fonte aberto é requisito indispensável para a condição de software livre.

Alternativa D — ❌ Incorreta

Afirma que software livre não pode estar atrelado a uma licença. Esta alternativa inverte completamente a lógica do conceito. O software livre é definido justamente pela licença que o acompanha: é a licença (como GPL, BSD, MIT) que garante as permissões de uso, estudo, modificação e redistribuição. Sem uma licença que assegure essas liberdades, o software não é livre — ele estaria sob o regime padrão de direitos autorais, que restringe essas atividades. A licença é o instrumento jurídico que materializa as liberdades do software livre, não um obstáculo a elas.

Alternativa E — ❌ Incorreta

Afirma que todo software projetado para programação embarcada é software livre. Isso é uma generalização indevida: programação embarcada refere-se a software que roda em dispositivos com recursos limitados (como microcontroladores, sistemas de automação, eletrodomésticos), e não tem nenhuma relação com o modelo de licenciamento. Existem softwares embarcados proprietários (como o firmware de muitos dispositivos) e softwares embarcados livres (como o FreeRTOS, um sistema operacional de tempo real livre). A alternativa confunde o domínio de aplicação (embarcados) com o modelo de distribuição (livre vs. proprietário), que são dimensões independentes.

NÃO CAIA NESSA!

A banca explora a confusão entre características técnicas (criptografia, linguagem, programação embarcada) e o conceito jurídico-filosófico de liberdade. O candidato desatento pode ser atraído por alternativas que soam "técnicas" ou que negam a licença, mas o que define software livre é exclusivamente a combinação de código-fonte aberto + licença que garanta as quatro liberdades. Memorize esse binômio e você elimina qualquer distrator desse tipo.

PEGA ESSA DICA!

Para questões de software livre, aplique o teste das quatro liberdades da FSF: o software permite executar, estudar, redistribuir e modificar? Se sim, é livre. Se a alternativa mencionar qualquer característica técnica (linguagem, criptografia, plataforma) como definidora, descarte-a imediatamente — essas são decisões de implementação, não critérios de liberdade.

Gabarito: letra C — software livre deve ter seu código-fonte aberto, pois é essa acondição que viabiliza as liberdades essenciais de estudar, modificar e redistribuir o programa.

Link permanente: /questoes/vu196859