Controle de Versão e Requisitos de Software

Controle de Versão de Requisitos de SoftwareQuando falamos de Controle de Versão de Requisitos de Software muitos profissionais “estranham” um pouco, pois na nossa cultura de produção de software, o controle de versão geralmente é mais aplicado ao modelo de código fonte e ao software executável produzido a partir deste modelo.

Produzir software é um processo de refinamento contínuo, que se dá através da produção de modelos em diferentes níveis de abstração. Obs.: sobre refinamento contínuo podemos ver um pouco mais aqui.

Então, produzimos um modelo em um nível de abstração específico, para algum outro profissional produzir outro modelo a partir deste, em um nível de abstração mais “próximo” do que o software será “de fato” (“de fato” = software executável).

Por exemplo: um Analista produz um diagrama de classes e outro constroi estas classes no modelo de código fonte. Neste exemplo, o modelo de classes (diagrama por exemplo) está num nível de abstração menos “próximo” do software executável que as classes implementadas, que já estão “dentro” do código fonte e com os devidos ajustes para funcionarem na estrutura do sistema.

Controle de Versão e Processo de Desenvolvimento

O que irá definir quais os modelos que serão produzidos durante a produção do software será o processo de desenvolvimento adotado pela empresa que fará o trabalho.

Os processos de desenvolvimento variam ao infinito: ainda temos muitas empresas que a partir de um telefonema já parte para a construção (loucura total \0/), e também ainda temos muitas empresas que fazem dezenas de cerimônias antes de especificarem os requisitos, e depois fazem duas mil coisas até chegar no software executável (quanto chegam – loucura total também \0/).

Mas independente dos modelos produzidos no projeto, conforme o que o processo de desenvolvimento utilizado pela empresa define, todos os modelos devem ser versionados, possuir gestão de suas mudanças, e isso é feito através do controle de suas versões.

Sem controlar a versão do que se produz as confusões e retrabalho serão apenas uma questão de tempo.

E como fazer com os Requisitos de Software?

Requisitos de Software são a base de todo software. Tudo em um escopo tem um propósito de negócio, senão não teria razão de existir. Este propósito são os requisitos, que precisam ser atendidos, e materializados no software executável.

E como qualquer outro modelo, os requisitos sofrem mudanças ao longo do tempo. Alguns requisitos vão para fora do escopo, outros entram no escopo, e outros se mantém mas sofrem alterações. Todo software é dinâmico, seu escopo sofre alterações constantes durante seu ciclo de vida.

E neste contexto, controlar a “vida” dos requisitos é fundamental; isso é controlar o escopo do software. Sem este controle, fatalmente haverão problemas, pois perde-se a referência do “objeto” do sistema.

No vídeo abaixo temos um breve papo com nossos alunos do curso de Engenharia de Requisitos, onde abordo um pouco sobre o controle de versão de requisitos de software.

Espero que o conteúdo tenha sido útil, e fico à disposição para falarmos a respeito!

Grande abraço!

Engenharia de Software