Gerenciamento de configuração de software em engenharia de software

O que é gerenciamento de configuração de software?

Em Engenharia de Software, Gerenciamento de configuração de software (SCM) é um processo para gerenciar, organizar e controlar sistematicamente as mudanças nos documentos, códigos e outras entidades durante o Ciclo de Vida de Desenvolvimento de Software. O objetivo principal é aumentar a produtividade com o mínimo de erros. O SCM faz parte do campo interdisciplinar de gerenciamento de configuração e pode determinar com precisão quem fez qual revisão.

Por que precisamos do gerenciamento de configuração?

As principais razões para implementar um sistema de gerenciamento de configuração de software técnico são:

  • Existem várias pessoas trabalhando em software que é atualizado continuamente
  • Pode ser o caso em que múltiplas versões, ramificações e autores estejam envolvidos em um projeto de configuração de software e a equipe esteja distribuída geograficamente e trabalhe simultaneamente
  • Mudanças nos requisitos do usuário, política, orçamento e cronograma precisam ser acomodadas.
  • O software deve ser capaz de rodar em diversas máquinas e OperaSistemas de gerenciamento
  • Ajuda a desenvolver a coordenação entre as partes interessadas
  • O processo SCM também é benéfico para controlar os custos envolvidos na realização de alterações em um sistema

Precisa de gerenciamento de configuração

Qualquer alteração nos itens de configuração do software afetará o produto final. Portanto, as alterações nos itens de configuração precisam ser controladas e gerenciadas.

Tarefas no processo SCM

  • Identificação da configuração
  • Linhas de base
  • Controle de Mudança
  • Contabilidade do estado da configuração
  • Auditorias de configuração e Revvisualizações

Identificação da configuração

A identificação da configuração é um método para determinar o escopo do sistema de software. Com a ajuda desta etapa, você pode gerenciar ou controlar algo mesmo que não saiba o que é. É uma descrição que contém o tipo CSCI (Item de Configuração de Software de Computador), um identificador de projeto e informações de versão.

Atividades durante este processo:

  • Identificação de itens de configuração como módulos de código-fonte, caso de testee especificação de requisitos.
  • Identificação de cada CSCI no repositório SCM, utilizando uma abordagem orientada a objetos
  • O processo começa com objetos básicos que são agrupados em objetos agregados. Detalhes sobre o que, por que, quando e por quem são feitas alterações no teste
  • Cada objeto possui características próprias que identificam seu nome que é explícito para todos os outros objetos
  • Lista de recursos necessários, como documento, arquivo, ferramentas, etc.

Exemplo:

Em vez de nomear um arquivo login.php, ele deve ser nomeado login_v1.2.php, onde v1.2 representa o número da versão do arquivo

Em vez de nomear a pasta “Code”, ela deve ser chamada de “Code_D”, onde D representa o código que deve ser copiado diariamente.

Linha de Base

Uma linha de base é uma versão formalmente aceita de um item de configuração de software. Ele é designado e fixado em um horário específico durante a condução do processo de SCM. Só pode ser alterado através de procedimentos formais de controle de alterações.

Atividades durante este processo:

  • Facilitar a construção de diversas versões de uma aplicação
  • Definir e determinar mecanismos para gerenciar diversas versões desses produtos de trabalho
  • A linha de base funcional corresponde aos requisitos do sistema revisados
  • As linhas de base amplamente utilizadas incluem linhas de base funcionais, de desenvolvimento e de produto

Em palavras simples, linha de base significa pronto para lançamento.

Controle de Mudança

O controle de alterações é um método processual que garante qualidade e consistência quando alterações são feitas no objeto de configuração. Nesta etapa, a solicitação de mudança é enviada ao gerenciador de configuração de software.

Atividades durante este processo:

  • Controle alterações ad-hoc para criar um ambiente de desenvolvimento de software estável. As alterações são confirmadas no repositório
  • A solicitação será verificada com base no mérito técnico, possíveis efeitos colaterais e impacto geral em outros objetos de configuração.
  • Ele gerencia alterações e disponibiliza itens de configuração durante o ciclo de vida do software

Contabilidade do estado da configuração

A contabilidade do status de configuração rastreia cada versão durante o processo SCM. Esta etapa envolve rastrear o que cada versão possui e as alterações que levam a essa versão.

Atividades durante este processo:

  • Mantém um registro de todas as alterações feitas na linha de base anterior para alcançar uma nova linha de base
  • Identifique todos os itens para definir a configuração do software
  • Monitore o status das solicitações de mudança
  • Listagem completa de todas as alterações desde a última linha de base
  • Permite acompanhar o progresso até a próxima linha de base
  • Permite verificar lançamentos/versões anteriores a serem extraídas para teste

Auditorias de configuração e Revvisualizações

As auditorias de configuração de software verificam se todo o produto de software satisfaz as necessidades básicas. Garante que o que é construído é o que é entregue.

Atividades durante este processo:

  • A auditoria de configuração é conduzida por auditores, verificando se os processos definidos estão sendo seguidos e garantindo que os objetivos do SCM sejam atendidos.
  • Para verificar a conformidade com os padrões de controle de configuração. auditar e relatar as alterações feitas
  • As auditorias SCM também garantem que a rastreabilidade seja mantida durante o processo.
  • Garante que as alterações feitas em uma linha de base estejam em conformidade com os relatórios de status de configuração
  • Validação de integridade e consistência

Participante do processo SCM

A seguir estão os principais participantes do SCM

Participante do processo SCM

1. Gerenciador de configuração

  • O Gerente de Configuração é o chefe responsável por identificar os itens de configuração.
  • CM garante que a equipe siga o processo de SCM
  • Ele/ela precisa aprovar ou rejeitar solicitações de mudança

2. Desenvolvedor

  • O desenvolvedor precisa alterar o código de acordo com as atividades de desenvolvimento padrão ou solicitações de alteração. Ele é responsável por manter a configuração do código.
  • O desenvolvedor deve verificar as alterações e resolver conflitos

3. Auditor

  • O auditor é responsável pelas auditorias e revisões do SCM.
  • Necessidade de garantir a consistência e integridade do lançamento.

4. Gerente de Projeto:

  • Garantir que o produto seja desenvolvido dentro de um determinado prazo
  • Monitora o progresso do desenvolvimento e reconhece problemas no processo de SCM
  • Gere relatórios sobre o status do sistema de software
  • Certifique-se de que os processos e políticas sejam seguidos para criação, alteração e teste

5 Do utilizador

O usuário final deve compreender os principais termos do SCM para garantir que possui a versão mais recente do software

Plano de gerenciamento de configuração de software

O planejamento do processo SCMP (planejamento de gerenciamento de configuração de software) começa nas fases iniciais de codificação de um projeto. O resultado da fase de planejamento é o plano SCM que pode ser ampliado ou revisado durante o projeto.

  • O SCMP pode seguir um padrão público como o IEEE 828 ou um padrão específico da organização
  • Define os tipos de documentos a serem gerenciados e a nomenclatura dos documentos. Exemplo de teste_v1
  • O SCMP define a pessoa que será responsável por todo o processo de SCM e criação de linhas de base.
  • Corrigir políticas para gerenciamento de versões e controle de alterações
  • Definir ferramentas que podem ser usadas durante o processo de SCM
  • Banco de dados de gerenciamento de configuração para registrar informações de configuração.

Ferramentas de gerenciamento de configuração de software

Qualquer software de gerenciamento de mudanças deve ter os três recursos principais a seguir:

Gerenciamento de simultaneidade:

Quando duas ou mais tarefas acontecem ao mesmo tempo, isso é conhecido como operação simultânea. A simultaneidade no contexto do SCM significa que o mesmo arquivo está sendo editado por várias pessoas ao mesmo tempo.

Se a simultaneidade não for gerenciada corretamente com ferramentas SCM, isso poderá criar muitos problemas urgentes.

Controle de versão:

SCM usa método de arquivamento ou salva todas as alterações feitas no arquivo. Com a ajuda do recurso de arquivamento ou salvamento, é possível reverter para a versão anterior em caso de problemas.

Synchronização:

Os usuários podem fazer check-out de mais de um arquivo ou de uma cópia inteira do repositório. O usuário então trabalha no arquivo necessário e faz check-in das alterações no repositório. Eles podem sincronizar sua cópia local para se manterem atualizados com as alterações feitas por outros membros da equipe.

A seguir estão ferramentas populares

1.Git: Git é uma ferramenta gratuita e de código aberto que auxilia no controle de versão. Ele foi projetado para lidar com todos os tipos de projetos com rapidez e eficiência.

Link para download: https://git-scm.com/

2. equipe Foundation Servidor: Time Foundation é um grupo de ferramentas e tecnologias que permitem à equipe colaborar e coordenar para a construção de um produto.

Link para download: https://azure.microsoft.com/en-us/services/devops/server/

3.Ansible: é uma ferramenta de gerenciamento de configuração de software de código aberto. Além do gerenciamento de configuração, também oferece implantação de aplicativos e automação de tarefas.

Link para download: https://www.ansible.com/

Confira mais ferramentas de configuração de SW: https://www.guru99.com/software-configuration-management-tools.html

Conclusão

  • As melhores práticas de gerenciamento de configuração ajudam as organizações a gerenciar, organizar e controlar sistematicamente as mudanças nos documentos, códigos e outras entidades durante o Ciclo de Vida de Desenvolvimento de Software.
  • O objetivo principal do processo SCM é aumentar a produtividade com o mínimo de erros
  • A principal razão por trás do processo de gerenciamento de configuração é que há várias pessoas trabalhando em software que está em constante atualização. O SCM ajuda a estabelecer simultaneidade, sincronização e controle de versão.
  • Uma linha de base é uma versão formalmente aceita de um item de configuração de software
  • O controle de alterações é um método processual que garante qualidade e consistência quando alterações são feitas no objeto de configuração.
  • A contabilidade do status de configuração rastreia cada versão durante o processo SCM
  • As auditorias de configuração de software verificam se todo o produto de software satisfaz as necessidades básicas
  • Gerente de projeto, gerente de configuração, desenvolvedor, auditor e usuário são participantes do processo SCM
  • O planejamento do processo SCM começa nas fases iniciais de um projeto.
  • Git, Team Foundation Sever e Ansible são algumas ferramentas SCM populares.