Por que é chamado de Gerenciamento de configuração de software (SCM)?

9

Quando penso na configuração do software, penso em um arquivo que é lido em tempo de execução - esse arquivo conteria coisas como a porta que um servidor pode usar, se deve usar criptografia e caminhos de vários recursos.

Quando me deparei com o "Gerenciamento de configuração de software", pensei que isso significava apenas o gerenciamento de arquivos de configuração, mas rapidamente percebi que as ferramentas do SCM se referem não apenas aos arquivos de configuração, mas também ao código do software, ao software executável / binário e aos recursos.

Então, por que usamos o termo "Gerenciamento de configuração de software"? O "Gerenciamento de Software" não seria mais abrangente? Ou está faltando meu entendimento do que é considerado "configuração"?

flow2k
fonte

Respostas:

13

O termo gerenciamento de configuração pertence ao vocabulário geral de engenharia.

Seu objetivo é manter um registro das características de todas as partes / componentes de um sistema complexo (por exemplo, um carro, um míssil, um dispositivo eletrônico) e, é claro, a alteração dessas características quando um componente é substituído por um componente similar. Uma configuração descreve exatamente um produto específico.

Em outras palavras, o gerenciamento de configuração é o gerenciamento de versões para produtos industriais. Permite a qualquer momento montar uma versão anterior de um produto.

No software, não existe um catálogo de peças do setor que permita identificar de forma exclusiva um software e suas versões sucessivas e encontrá-lo em algum armazém para montar (configurar) uma versão mais antiga do produto. A parte / componente do software é melhor descrita por seu código na íntegra. Portanto, o gerenciamento da configuração do software significa gerenciar as versões do código fonte. É por isso que o termo gerenciamento de configuração de software é usado para gerenciamento de versão do código-fonte.

Observe, no entanto, que o SCM é maior que apenas a versão do código-fonte. Também pode incluir o gerenciamento de dependências externas (por exemplo, bibliotecas ou estruturas de terceiros com versões gerenciadas em outro local), recursos externos (por exemplo, binários ou dlls de terceiros ou definições de API para interoperar com sistemas externos), bem como ativos digitais (por exemplo, imagens ou vídeos a serem pacotes com o produto final).

Christophe
fonte