Questão de Engenharia de Software — Ferramentas de Desenvolvimento de Software — INSTITUTO AOCP 2025
Engenharia de Software›Ferramentas de Desenvolvimento de Software
Código
qg539074
Banca
INSTITUTO AOCP
Órgão
IF-MS
Ano
2025
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Durante o desenvolvimento de um sistema no IFMS, dois programadores precisam trabalhar simultaneamente no mesmo projeto, enquanto um adiciona novas funcionalidades, o outro corrige erros no código existente. Para garantir que ambos possam colaborar sem sobrescrever as alterações um do outro e ainda acompanhar o histórico de mudanças realizadas, a equipe decide utilizar uma ferramenta específica para esse controle.Com base nessa situação, qual das seguintes soluções é a mais adequada?
AUtilizar um editor de texto compartilhado em tempo real, como o Google Docs, para que ambos os programadores possam ver e modificar o código simultaneamente.
BImplementar um sistema de backup manual diário, no qual cada programador copia o código do projeto para uma pasta separada no final do dia de trabalho.
CAdotar uma ferramenta de versionamento Git, que permite a cada programador trabalhar em sua própria cópia do código, registrar as alterações com commits e integrar essas mudanças de forma controlada.
DComunicar todas as alterações por meio de reuniões diárias detalhadas, nas quais cada programador informa as modificações realizadas para evitar conflitos futuros.
EUtilizar uma ferramenta de gerenciamento de projetos para atribuir tarefas e monitorar o progresso de cada desenvolvedor.
Revelar gabarito e comentário▾
GabaritoC — Adotar uma ferramenta de versionamento Git, que permite a cada programador trabalhar em sua própria cópia do código, registrar as alterações com commits e integrar essas mudanças de forma controlada.
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 com Git
Gabarito: letra C. A ferramenta Git é a solução mais adequada para o cenário descrito, pois permite que cada programador trabalhe em sua própria cópia do código, registre alterações com commits e integre as mudanças de forma controlada, atendendo exatamente aos requisitos de colaboração simultânea e histórico de mudanças. As demais alternativas não oferecem controle de versão adequado para código-fonte, sendo que a letra A (edição em tempo real) é inadequada para programação, a letra B (backup manual) não resolve conflitos, a letra D (reuniões) não é uma ferramenta técnica e a letra E (gerenciamento de projetos) não controla versões de código.
O controle de versão é uma disciplina da Gerência de Configuração de Software (GCS) que gerencia as alterações em documentos, programas e outros artefatos ao longo do tempo. O Git é um sistema de controle de versão distribuído (DVCS), o que significa que cada desenvolvedor possui uma cópia completa do repositório, incluindo todo o histórico de commits. Isso permite que dois programadores trabalhem simultaneamente em branches (ramos) diferentes, sem interferir um no trabalho do outro. Quando ambos terminam suas alterações, eles podem mesclar (merge) suas branches de volta à branch principal, e o Git ajuda a resolver conflitos caso ambos tenham modificado as mesmas linhas de código.
O fluxo de trabalho típico com Git envolve: clonar o repositório, criar uma branch para cada funcionalidade ou correção, fazer commits com mensagens descritivas, enviar a branch para o repositório remoto e, finalmente, abrir um pull request para revisão e integração. Esse processo garante que o histórico de mudanças seja preservado e que cada alteração possa ser rastreada até seu autor. O Git também permite reverter para versões anteriores do código, o que é essencial para corrigir erros ou recuperar código perdido.
A alternativa A (Google Docs) é inadequada porque editores de texto colaborativos em tempo real são projetados para documentos de texto, não para código-fonte. Eles não oferecem controle de versão granular, não suportam branches, não resolvem conflitos de merge e não integram com ferramentas de build e teste. A alternativa B (backup manual) é insuficiente porque não resolve conflitos de edição simultânea, não mantém um histórico de mudanças e é propensa a erros humanos. A alternativa D (reuniões) não é uma ferramenta técnica e não impede que alterações sejam sobrescritas. A alternativa E (gerenciamento de projetos) é útil para atribuir tarefas, mas não controla versões de código.
A pegadinha desta questão está em confundir ferramentas de colaboração genérica (como Google Docs) ou de gestão de projetos (como Trello) com ferramentas de controle de versão específicas para código. O candidato deve identificar que o problema central é a colaboração simultânea em código-fonte com histórico de mudanças, o que é exatamente o propósito do Git.
Controle de versão (GCS)
1Git (DVCS)
Cópia completa do repositório
Branches (trabalho paralelo)
Commits (histórico)
Merge (integração controlada)
Resolução de conflitos
Reversão a versões anteriores
2Ferramentas inadequadas
Editor em tempo real (Google Docs)
Sem branches/merge
Sem histórico granular
Backup manual
Sem mesclagem controlada
Propenso a erro humano
Reuniões
Não é ferramenta técnica
Gerenciamento de projetos
Não controla versões
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Editores de texto compartilhados em tempo real, como o Google Docs, são projetados para documentos de texto e não para código-fonte. Eles não oferecem controle de versão granular, não suportam branches, não resolvem conflitos de merge e não integram com ferramentas de build e teste. Embora permitam edição simultânea, não atendem aos requisitos de histórico de mudanças e integração controlada de código.
Alternativa B — ❌ Incorreta
Um sistema de backup manual diário não resolve o problema de colaboração simultânea. Cada programador copiaria o código para uma pasta separada, mas não haveria mecanismo para mesclar as alterações de forma controlada, nem histórico de mudanças. Além disso, é propenso a erros humanos e não impede que alterações sejam sobrescritas.
Alternativa C — ✅ Correta ⟵ GABARITO
O Git é um sistema de controle de versão distribuído que permite a cada programador trabalhar em sua própria cópia do código, registrar alterações com commits e integrar as mudanças de forma controlada. Ele atende exatamente aos requisitos do cenário: colaboração simultânea sem sobrescrever alterações e acompanhamento do histórico de mudanças. O Git também oferece suporte a branches, merge, resolução de conflitos e reversão para versões anteriores.
Alternativa D — ❌ Incorreta
Reuniões diárias detalhadas não são uma ferramenta técnica e não impedem que alterações sejam sobrescritas. Embora a comunicação seja importante, ela não substitui um sistema de controle de versão. Além disso, reuniões não mantêm um histórico de mudanças nem permitem integrar alterações de forma controlada.
Alternativa E — ❌ Incorreta
Ferramentas de gerenciamento de projetos, como Trello ou Jira, são úteis para atribuir tarefas e monitorar o progresso, mas não controlam versões de código. Elas não oferecem mecanismos para mesclar alterações, resolver conflitos ou manter um histórico de mudanças no código-fonte.