Olá, pessoal, tudo bem? Hoje vamos abordar um assunto que tem sido cobrado de diversas formas por inúmeras bancas, mas que nem todo aluno sabe como responder, além que acaba confundindo com outro assunto muito comum nos editais para os cargos de T.I que é a ITIL. Quando falamos de gerência de configuração, estamos falando da Engenharia de Sofware, e não das bibliotecas ITIL.
[Pressman 2016] define SCM (Software Configuration Management) como o conjunto de atividades projetadas para controlar as mudanças pela identificação dos produtos do trabalho que serão alterados, estabelecendo um relacionamento entre eles, definindo o mecanismo para o gerenciamento de diferentes versões destes produtos, controlando as mudanças impostas, e auditando e relatando as mudanças realizadas [1].
É um dos ramos da engenharia de software e tem muita importância para garantia de sucesso de um projeto de sistema. Suas principais responsabilidades são o controle de versão, o controle de mudança e a auditoria das configurações [2].
O controle dos SCIs (Software Configuration Itens) é a principal atividade dessa disciplina, todos os artefatos gerados por um processo de software, tanto documental como código-fonte se tornam SCIs, sendo que tudo deve ser armazenado em um repositório que tem a responsabilidade e estrutura adequada para garantir a integridade dos dados, realizar versionamento e suportar o compartilhamento de informações entre a equipe do projeto [3].
Essa disciplina envolve 4 atividades principais que podem ser vistas na Figura 1, a seguir:
Figura 1 – Atividades da Gerência de Configuração
- Controle de versão. Envolve manter as versões dos códigos criados pelos desenvolvedores, mantendo todo o histórico de codelines, além de ser possível criar baselines com versões de cada componente criado. [2].
- Construção de sistema. Processo de reunir componentes, dados e bibliotecas do programa, compilando-os e ligando-os para criar um sistema executável [2].
- Gerenciamento de mudanças. Aqui temos o controle de mudanças, e em muitas organizações são feitas as famosas RDM (Requisição de Mudanças) isso envolve custo e medição do que está sendo solicitado a ser alterado. [2].
- Gerenciamento de lançamentos (releases). Lançamentos é a forma de promover software para produção, aqui entra as esteiras de construção de sistemas e a compilação/definição do que vai ser promovido [2].
O gerenciamento de configuração é importante para o controle de todas as atividades descritas bem como para a publicação de versões distintas de um software quando se tem uma linha de produto, ou clientes diversos que pagam por funcionalidades específicas. Isso ocorre muito em sistemas ERP (Enterpise Resource Planning) e também em software embutido como versões de S.O de smartphones, onde um core de sistema existe e features específicas são habilitadas de acordo com a versão do hardware, liberando menos ou mais funcionalidades.
É fundamental para a gestão do código-fonte e dos lançamentos quando as equipes tem vários desenvolvedores, é a base de um arcabouço de atividades que garantem a qualidade de software, nas nossas aulas detalhamos ainda mais essas atividades e falamos onde elas se encaixam no desenvolvimento ágil e também em caso de projetos dirigidos a planos ou mais tradicionais.
Vamos ver então algumas questões sobre esse assunto.
Ano: 2016 Banca: FAURGS Órgão: HCPA Prova: FAURGS – 2016 – HCPA – Analista de TI (Desenvolvimento)
Sobre Versionamento e Gerenciamento de Versões, considere as afirmações abaixo.
I – O gerenciamento de versões é o processo de acompanhamento de diferentes versões de componentes de software ou itens de configuração e dos sistemas em que esses componentes são usados. Refere-se também à garantia de que as mudanças feitas por diferentes desenvolvedores para essas versões não interfiram umas nas outras.
II – Em um sistema de gerenciamento de versões com uma variedade de recursos, desenvolvedores diferentes não podem trabalhar, ao mesmo tempo, no mesmo componente, pois se o fizessem, as mudanças feitas por diferentes desenvolvedores poderiam interferir umas nas outras.
III – Os sistemas de gerenciamento de versões fornecem, em geral, recursos de gerenciamento de armazenamento. Sua função é reduzir o espaço de armazenamento requerido pelas várias versões de componentes, que diferem apenas ligeiramente umas das outras. Em vez de manter uma cópia completa de cada versão, o sistema armazena uma lista de diferenças (deltas) entre uma versão e outra.
Quais estão corretas?
a) Apenas II.
b) Apenas I e II.
c) Apenas I e III.
d) Apenas II e III.
e) I, II e III.
Ano: 2022 Banca: CESPE / CEBRASPE Órgão: APEX Brasil Prova: CESPE / CEBRASPE – 2022 – APEX Brasil – Perfil 7: Tecnologia da Informação e Comunicação (TIC) – Especialidade: Sistemas e Aplicações
A área relacionada à engenharia de software que visa rastrear versões e gerir fluxos em um sistema em desenvolvimento, de modo a não permitir a inclusão de versões erradas dos componentes no software a ser entregue ao usuário, refere-se ao gerenciamento de
Alternativas
a) requisitos.
b) configuração.
c) mudança.
d) projeto.
Ano: 2021 Banca: SELECON Órgão: EMGEPRON Prova: SELECON – 2021 – EMGEPRON – Engenheiro (Construção Naval 2)
O gerenciamento de configurações de um produto de sistema de software envolve as seguintes quatro atividades afins:
Alternativas
a) gerenciamento de mudanças, gerenciamento de versões, construção do sistema e gerenciamento de releases
b) gerenciamento de mudanças, gerenciamento de testes, gerenciamento de requisitos e gerenciamento de releases
c) rastreamento de requisitos, gerenciamento de mudanças, gerenciamento de versões e controle de manutenção
d) rastreamento de requisitos, gerenciamento de arquitetura, gerenciamento de releases e gerenciamento de mudanças
Obs: Gabarito no final do artigo
Dessa forma encerro esse artigo e até mais!
GABARITO
- Letra B. Errado pois foram criados para diferentes desenvolvedores poderem trabalhar
- Letra B.
- Letra A.
Referências
• [1] PRESSMAN, Roger S. ; Bruce R. Maxim. Engenharia de Software, Uma Abordagem Profissional, 8° ed. Porto Alegre: AMGH, 2016. ISBN 978-85-8055- 533-2.• [2] SOMMERVILLE, Ian. Engenharia de Software, 9. ed. São Paulo: Pearson Prentice Hall, 2011. ISBN 978-85-7936-108-1.• [3] Capítulo 3 Gerenciamento de Projetos Ágil na prática: Processos e Ferramentas para Apoio a Gestão – Livro Eripi 2017 https://www.researchgate.net/publication/334683819_Capitulo_3_Gerenciamento_de_Projetos_Agil_na_pratica_Processos_e_Ferramentas_para_Apoio_a_Gestao
Professor MSc, Washington Almeida
Doutorando e Mestre em Engenharia de Software pelo Centro de Estudos e Sistemas Avançados do Recife – C.E.S.A.R. Atualmente é Analista Judiciário na Justiça Federal (TRF1), Professor de vários cursos no mercado e no Gran Cursos Online. É certificado ISF 27002.
Clique nos links abaixo:
Receba gratuitamente no seu celular as principais notícias do mundo dos concursos!
Clique no link abaixo e inscreva-se gratuitamente: