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 Sistemas operacionais
  • 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 e revisões de configuração

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. Details 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 e revisões de configuração

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

Following sã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 o seguintewing 3 Principais recursos:

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 archiving ou salva todas as alterações feitas no arquivo. Com a ajuda de archirecurso de salvar ou salvar, é 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. syncsincronizar sua cópia local para se manter atualizado com as alterações feitas por outros membros da equipe.

Following sã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: A Nossa Equipa 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. SCM ajuda a estabelecer simultaneidade, syncsincronizaçã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, equipe foundation Sever e Ansible são algumas ferramentas SCM populares.