Questão ENADE

Questão 21 – Enade 2021.

Leia o texto a seguir.

No decorrer de um projeto de desenvolvimento de software, é compreensível que mudanças venham a ocorrer, sejam por novos entendimentos dos atores envolvidos ou até mesmo de novas demandas apresentadas pelos clientes. Nessa perspectiva, a Gestão de Configuração de Software estabelece um conjunto de atividades para gerenciar alterações por todo o ciclo de vida de um software.

PRESSMAN, R. S. Engenharia de Software: uma abordagem profissional. 8. ed. Porto Alegre: Artmed Editora S.A. e McGraw-Hill Education, 2016 (com adaptações).

Com base no texto, assinale a opção correta acerca das atividades de gestão de configuração de software.

A. Identificação de itens na configuração de software, gerenciamento de alterações, validação de versões e controle de qualidade.

B. Identificação de objetos na configuração de software, controle de versão, controle de alterações, auditoria de configuração e relatório de status.

C. Gerência de projeto, gerência de configuração de software, ciclo de vida do projeto, processo de software e evolução das configurações.

D. Construção de modelo de requisitos, métricas para modelo de projeto, métricas de controle de versão e relatório de manutenção.

E. Identificação de alterações, controle de versão, mapeamento de alteração e notificação da alteração aos envolvidos.

1. Introdução teórica

A questão testa conhecimentos a respeito das atividades envolvidas na gestão de configuração de software. É importante frisar que essas atividades podem ser especificadas de diferentes formas por diferentes autores da área de engenharia de software. A nomenclatura presente nas alternativas da questão corresponde à utilizada por Roger Pressman e Bruce Maxim, no livro intitulado “Engenharia de Software: uma abordagem profissional”. Vamos, a seguir, estudar um pouco desse conteúdo.

Gestão de configuração de software

Na construção de um sistema computacional, alterações são inevitáveis. Essas mudanças podem causar confusão quando não são analisadas antes de serem implementadas, ou quando não há boa comunicação entre os membros da equipe responsável pelo projeto.

À medida que o trabalho de engenharia de software avança, a equipe de software cria uma hierarquia de itens de configuração de software (SCIs, do termo em inglês software configuration items). Um SCI é uma entidade única identificável, que é gerenciada e documentada durante o ciclo de vida de um projeto. Essas entidades podem incluir códigosfonte, documentos, scripts e outros elementos relacionados ao sistema. Os SCIs são chamados coletivamente de configuração de software. Nesse cenário, a gestão de configuração de software (SCM, do termo em inglês software configuration management) é responsável por identificar, organizar e controlar modificações ao longo do clico de vida do software. O objetivo da SCM é maximizar a produtividade e minimizar possíveis erros.

O processo de gestão de alterações de software define uma série de tarefas que têm quatro objetivos principais:

  • identificar todos os itens que definem a configuração do software;
  • gerenciar alterações de um ou mais desses itens;
  • facilitar a construção de diferentes versões de uma aplicação; e
  • assegurar que a qualidade do software seja mantida conforme a configuração evolui.

Com o intuito de atingir esses objetivos, são definidas cinco tarefas SCM: identificação, controle de versão, controle de alteração, auditoria de configuração e elaboração de relatórios. Essas tarefas são mostradas no diagrama da figura 1. Conforme a disposição da figura, as tarefas SCM podem ser vistas como camadas. Os SCIs “fluem” para fora através dessas camadas por toda a sua vida útil, tornando-se, finalmente, parte da configuração do software de uma ou de várias versões do sistema de software.

Figura 1. Camadas do processo SCM.

PRESSMAN e MAXIM, 2021 (com adaptações).

A atividade de identificação envolve a identificação clara dos SCIs que estão sujeitos à configuração. A gestão de configuração requer a capacidade de identificar e de rastrear esses elementos específicos dentro do sistema.

A atividade de controle de alterações pode combinar procedimentos humanos e ferramentas automatizadas, proporcionando um mecanismo para o controle de alterações. Resumidamente, nessa atividade, uma solicitação de alteração é apresentada e avaliada. Os resultados da avaliação são apresentados como um relatório de alterações e, por fim, uma ordem de alteração é gerada para cada alteração aprovada.

Na atividade de controle de versão, é criada uma atualização do arquivo original logo que a alteração for feita. Alternativamente, os objetos a serem alterados podem ser “retirados” do banco de dados do projeto e, assim que a alteração é feita, os objetos são então “colocados” novamente no banco de dados, e são usados mecanismos de controle de versão apropriados para gerar a próxima versão do software. O controle de versão permite o acompanhamento das alterações feitas, facilitando o trabalho colaborativo e a gestão de diferentes versões do software.

A auditoria de configuração complementa a revisão técnica, avaliando o objeto de configuração quanto a características que, em geral, não são consideradas durante a revisão. A revisão técnica focaliza a exatidão técnica do objeto de configuração modificado. Os revisores avaliam o SCI para determinar a consistência com outros SCIs, omissões ou efeitos colaterais em potencial.

A auditoria entra como complemento, verificando se a configuração do software está em conformidade com as políticas, com os padrões e com os requisitos estabelecidos. É produzido, também, o relatório de status de configuração, que reporta o que aconteceu no processo de modificações, quem fez as alterações, quando elas foram feitas e o que será afetado por elas. O relatório não necessariamente é gerado ao final do processo. Ele pode ser gerado em diferentes fases do desenvolvimento, para informar sobre o estado da configuração.

2. Análise das alternativas

A – Alternativa incorreta.

JUSTIFICATIVA. A identificação de itens na configuração de software é uma das atividades da SCM, assim como o gerenciamento de alterações. No entanto, o controle de qualidade não é uma atividade típica da SCM, pois esse é um conceito muito amplo e abrangente.

B – Alternativa correta.

JUSTIFICATIVA. As tarefas de identificação de objetos na configuração de software, controle de versão, controle de alterações, auditoria de configuração e relatório de status compõem o conjunto das cinco tarefas SCM.

C – Alternativa incorreta.

JUSTIFICATIVA. Nesta alternativa, temos conceitos muito amplos, como gerência de projeto e ciclo de vida, que não são atividades exclusivas da SCM.

D – Alternativa incorreta.

JUSTIFICATIVA. Nesta alternativa, temos aspectos como modelo de requisitos e métricas, que estão fora do escopo da gestão de configuração de software.

E – Alternativa incorreta.

JUSTIFICATIVA. As etapas de identificação de alterações, controle de versão, mapeamento de alteração e notificação da alteração aos envolvidos, de certa forma, descrevem superficialmente a sequência de atividades envolvidas na SCM. No entanto, a alternativa não especifica e não nomeia as cinco atividades estabelecidas.