Pular para o conteúdo principal

Questão de Engenharia de Software — Gerência de Configuração — FCC 2015

Engenharia de SoftwareGerência de Configuração
Código
fc019790
Banca
FCC
Órgão
DPE-SP
Ano
2015
Nível
Médio
Cargo
Programador
Um SCV − Sistema de Controle de Versão
  1. Adistribuído, trabalha apenas com um servidor central e diversas áreas de trabalho, baseado na arquitetura cliente-servidor. Por ser distribuído, as áreas de trabalho precisam primeiro passar pelo servidor para poderem se comunicar.
  2. Blocalizado, atende apenas equipes de desenvolvimento pequenas e que trabalham em uma rede local sem fio. Este SCV não tem problemas de velocidade para enviar e receber os dados e tem um bom tempo de resposta do servidor.
  3. Cdistribuído, permite que as áreas de trabalho se comuniquem. Mas recomenda-se usar um servidor remoto para hospedar o projeto e centralizar o fluxo de envio, evitando ramificações do projeto e a perda do controle.
  4. Dcentralizado, é recomendado para equipes com muitos desenvolvedores e que se encontram em diferentes filiais. Cada área de trabalho pode ter seu próprio servidor e as operações de push e pull são feitas na própria máquina.
  5. Efunciona, com duas operações: 1) check-in: permite pegar a versão de outra área de trabalho e mesclar com a do usuário e 2) check-out: permite ao usuário enviar para outra área a sua versão do projeto.
Revelar gabarito e comentário

GabaritoC — distribuído, permite que as áreas de trabalho se comuniquem. Mas recomenda-se usar um servidor remoto para hospedar o projeto e centralizar o fluxo de envio, evitando ramificações do projeto e a perda do controle.

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

Sistema de Controle de Versão (SCV)

Gabarito: letra C. A alternativa C descreve corretamente um SCV distribuído, no qual as áreas de trabalho (repositórios locais) podem se comunicar diretamente, mas recomenda-se o uso de um servidor remoto para centralizar o fluxo de envio, evitando ramificações e perda de controle. Esse é exatamente o modelo adotado por ferramentas como Git, com um repositório central (ex.: GitHub) como ponto de coordenação. As demais alternativas apresentam erros conceituais.

A questão testa o conhecimento das características fundamentais dos sistemas de controle de versão centralizados e distribuídos, bem como das operações básicas de check-in e check-out.


Alternativa A — ❌ Incorreta

Afirma que um SCV distribuído trabalha apenas com um servidor central e que as áreas de trabalho precisam passar pelo servidor para se comunicar. Isso descreve, na verdade, um sistema centralizado. Em sistemas distribuídos, cada área de trabalho possui uma cópia completa do repositório e pode se comunicar diretamente com outras áreas (peer‑to‑peer), sem necessitar de um servidor central obrigatório para a comunicação.

Alternativa B — ❌ Incorreta

Utiliza o termo localizado, que não é uma classificação padrão em SCVs. A descrição sugere um sistema que funciona apenas em rede local, mas não define corretamente nenhum modelo conhecido. Além disso, todo SCV tem operações de envio/recebimento; a afirmação sobre velocidade e tempo de resposta é genérica e não distingue o tipo do sistema.

Alternativa C — ✅ Correta ⟵ GABARITO

Descreve precisamente um SCV distribuído: permite a comunicação direta entre áreas de trabalho, mas recomenda o uso de um servidor remoto para hospedar o projeto e centralizar o fluxo de envio, prática comum para manter a rastreabilidade e evitar bifurcações descontroladas. Essa é a definição mais alinhada com ferramentas modernas como Git e Mercurial.

Alternativa D — ❌ Incorreta

Apresenta um SCV centralizado com a afirmação de que cada área de trabalho pode ter seu próprio servidor e que operações push/pull são feitas na própria máquina. Em um sistema centralizado, existe um único servidor central que armazena o repositório oficial; as áreas de trabalho não possuem servidores próprios, e as operações de push/pull são sempre realizadas entre a área de trabalho e esse servidor central.

Alternativa E — ❌ Incorreta

Inverte as definições das operações: check-in é o ato de enviar as alterações locais para o repositório (e não pegar a versão de outra área), enquanto check-out é a obtenção de uma versão do repositório para a área de trabalho (e não enviar para outra área). A alternativa troca os papéis das duas operações.

NÃO CAIA NESSA!

A banca explora a confusão clássica entre check-in e check-out. Lembre‑se: check‑in = enviar (comitar), o mesmo que push; check‑out = obter uma versão, o mesmo que pull ou clone. Verifique sempre o sentido de cada operação.


Conclusão: A única alternativa que descreve corretamente um SCV (no caso, distribuído) é a letra C.

Link permanente: /questoes/fc019790