Pular para o conteúdo principal

Questão de Engenharia de Software — Desenvolvimento de Software — ND 2014

Engenharia de SoftwareDesenvolvimento de Software
Código
qq089961
Banca
ND
Órgão
INPE
Ano
2014
Nível
Superior
Cargo
Tecnologista da Carreira de Desenvolvimento Tecnólogico - TJ 01
Sistemas de controle de versões são ferramentas de apoio aos desenvolvedores cuja principal função é controlar as modificações realizadas em um arquivo de projeto. Assinale a alternativa incorreta:
  1. ACada revisão do repositório representa o estado completo do documento ou projeto em um determinado instante no tempo. Para um software, isso significa que uma revisão contém toda a árvore de diretórios e os arquivos no estado em que se encontravam naquele momento.
  2. BRCS (Revision Control System) e Subversion (SVN) são sistemas de controle de versões conhecidos.
  3. CA submissão, ou commit, consiste em registrar o estado atual da cópia de trabalho com suas alterações de volta ao repositório e o desenvolvedor pode continuar fazendo novas alterações e novas submissões normalmente.
  4. DRamificações implícitas ocorrem quando você informa ao sistema de controle de versões para bifurcar a linha de desenvolvimento em determinado ponto.
  5. EA grande utilidade das ramificações depende da capacidade de poder reintegrar suas alterações de volta à linha de desenvolvimento principal.
Revelar gabarito e comentário

GabaritoD — Ramificações implícitas ocorrem quando você informa ao sistema de controle de versões para bifurcar a linha de desenvolvimento em determinado ponto.

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

Controle de Versão

A questão aborda conceitos fundamentais de sistemas de controle de versão (VCS), ferramentas essenciais para o desenvolvimento colaborativo de software. A banca testa o conhecimento sobre revisões, commits, ramificações (branches) e integração (merge). O enunciado pede a alternativa incorreta, portanto três alternativas estão corretas e uma é falsa.

Conceito

Definição

Exemplo

Correto?

Ramificação explícita

Criada intencionalmente pelo usuário ao informar o sistema para bifurcar a linha de desenvolvimento

git branch feature-x

Ramificação implícita

Ocorre automaticamente sem comando direto, como ao criar uma tag ou fazer checkout de revisão anterior

Checkout de commit antigo sem branch

Alternativa D

Afirma que ramificações implícitas ocorrem quando se informa o sistema para bifurcar

❌ (inverte os conceitos)

Alternativa A — ✅ Correta

Cada revisão (ou commit) no repositório representa um snapshot completo do projeto naquele instante. Isso inclui toda a árvore de diretórios e o conteúdo de cada arquivo. É a definição clássica de revisão em sistemas como Git, SVN e RCS.

Alternativa B — ✅ Correta

RCS (Revision Control System) e Subversion (SVN) são sistemas de controle de versão amplamente conhecidos. RCS é um dos mais antigos (década de 1980), enquanto SVN foi muito popular antes da ascensão do Git.

Alternativa C — ✅ Correta

O commit (submissão) é o ato de registrar as alterações da cópia de trabalho (working copy) de volta ao repositório. Após o commit, o desenvolvedor pode continuar trabalhando e fazendo novos commits normalmente.

Alternativa D — ❌ Incorreta

O erro está no termo "implícitas". Ramificações que são criadas explicitamente pelo desenvolvedor, informando ao sistema para bifurcar a linha de desenvolvimento, são chamadas de ramificações explícitas. Já as ramificações implícitas ocorrem automaticamente em algumas operações, como quando se cria uma etiqueta (tag) ou quando se faz checkout de uma revisão anterior sem criar um branch explícito. A alternativa inverte os conceitos.

NÃO CAIA NESSA!

A banca troca o termo "explícitas" por "implícitas" para confundir. Lembre-se: ramificação explícita = criada intencionalmente pelo usuário; ramificação implícita = ocorre sem comando direto (ex.: ao criar uma tag em alguns sistemas).

Alternativa E — ✅ Correta

A utilidade das ramificações está justamente na possibilidade de reintegrar (merge) as alterações de volta à linha principal (trunk ou master). Sem essa capacidade, os branches seriam isolados e perderiam grande parte de seu valor.

Conclusão: a única alternativa incorreta é a D, portanto o gabarito é a letra D.

PEGA ESSA DICA!

Em questões sobre controle de versão, foque nos conceitos de snapshot, commit, branch (explícito vs. implícito) e merge. A banca costuma explorar a terminologia específica, como a diferença entre ramificações explícitas e implícitas.

Link permanente: /questoes/qq089961