top of page

Gerenciamento de configuração. Quais benefícios traz?

  • Jocsã Misrraine (autoral)
  • 3 de out. de 2015
  • 5 min de leitura

O que é?


Em um ambiente de desenvolvimento de software deve existir a prática CM, ou seja, gerência de configuração, em inglês Configuration Management, que por sua vez é responsável por desenvolver e usar padrões e procedimentos para o gerenciamento de sistemas de software durante seu desenvolvimento. O papel dessa disciplina durante o construção do software é tão importante quanto a própria codificação, sem a gerência de configuração torna-se difícil realizar a rastreabilidade das mudanças que foram incorporadas ao sistema e suas diferentes versões. Se você não utiliza procedimentos eficientes de gerenciamento de configuração, pode ter seu trabalho desperdiçado por alterar uma versão errada do sistema e até mesmo correndo o risco de entregar uma versão que contém vários bugs ao cliente. Não é isso que você quer, certo?


Um exemplo! Qual benefício traz?


Para ficar mais claro a necessidade da disciplina de gerenciamento de configuração, vamos analisar um exemplo: Em um determinado projeto de software, os desenvolvedores estavam empenhados em desenvolver uma nova funcionalidade que seria lançada na versão 1.4 do sistema, entretanto a equipe de testes tinha identificado e informado ao líder da equipe de correção que a versão 1.3 contia um bug que ocasionava no travamento do sistema durante algum tempo de uso; a equipe de correção começou a trabalhar em cima do erro. Os desenvolvedores por sua vez sem conhecimento do bug já tinha dado inicio ao desenvolvimento da nova funcionalidade tendo como base a versão 1.3 do sistema, seguindo o planejamento contido nos diagramas UML que foram entregues a equipe. Por fim o bug foi corrigido mas a equipe de desenvolvimento já tinha finalizado a nova funcionalidade. E agora, o que fazer a respeito disto? Perguntaram-se toda a equipe. O gestor concluiu que infelizmente o trabalho deveria ser feito novamente sobre a versão 1.4 sem bugs.


Analisando o exemplo a cima, o que esse gestor poderia fazer para que o erro não ocorresse novamente? Existe diversas ferramentas CASE (Computer Aided Software Engineering) traduzindo de uma forma não literal, são ferramentas computacionais de auxilio ao gerenciamento de software. Uma ferramenta que poderia evitar este problema seria o controle de versão. Com está ferramenta todo o código atualizado pela equipe de correção poderia ser 'automaticamente' inserido na versão 1.4 do sistema cujo a equipe de desenvolvimento estava utilizando, ou seja, ao finalizar o requisito a equipe teria a versão 1.4 com a nova funcionalidade e com o bug corrigido.


Entendendo as principais atividades.


A disciplina de gerenciamento de configuração e mudanças é dividida em 4 atividades fundamentais: Planejamento de gerenciamento de configurações, gerenciamento de mudanças, gerenciamento de versões e construção de sistemas. Aqui serão abordadas as 3 primeiras que estão a seguir.


* Planejamento de gerenciamento de configurações -


O planejamento dessa disciplina é a primeira atividade a ser realizada antes do incio de um projeto. Nesta etapa é definido os itens de configurações e o padrão a ser adotado para identificar esses itens. Estabelece o responsável pelo procedimento de CM e pela submissão de itens controlados para a equipe. Também é responsável por definir as politicas de gerenciamento que todos os membros da equipe devem adotar para o controle, especificar as ferramentas que se deve usar durante o projeto para gerenciar as mudanças e descrever a estrutura do banco de dados de configuração onde ficarão armazenadas as informações do projeto e a estrutura dessas informações que lá serão mantidas. Sendo assim uma etapa básica e indispensável.


* Gerenciamento de mudanças -


Para começarmos, vale salientar que o gerenciamento de mudanças é uma etapa constante, se não a mais importante no gerenciamento de configuração, devido essa disciplina é mais comumente conhecida como 'Gerenciamento de configuração e mudanças' e não apenas 'Gerenciamento de configuração'.


Durante a vida útil de um sistema grande de software sempre ocorre mudanças, há sugestão de novas alterações conforme a necessidade de cada cliente. Novas opiniões e desejos com base na usabilidade e necessidade surgem a todo instante durante a fase de desenvolvimento como também já na fase de produção, contudo se faz necessário que haja uma analise geral sobre essas mudanças sugeridas. Verificar se uma mudança proposta é realmente necessária, qual o custo e qual benefício trará, determina se é vantajoso ou não a implantação de uma nova funcionalidade. Devido a essas analises, dependendo do tamanho da mudança sugerida, pode se nascer a ideia de criar uma nova versão do sistema.


A primeira etapa ao processo de gerenciamento de configurações em mudanças é o preenchimento de um formulário de solicitação de mudanças, o CRF (Change Request From). O CRF deve conter a data que a solicitação da mudança foi feita e também data de aprovação, implementação e validação da mudança quando a mesma é aprovada. Hoje existe diversas ferramentas simples que otimizam o processo do preenchimento deste formulário como Bugzilla de código-fonte aberto como outras pagas, mas pode ser criada como uma simples página de formulário web com a geração de um protocolos para acompanhamento.


Uma vez que um formulário de solicitação de mudança é enviado, o mesmo deve ser inserido no banco de dados de configuração. A solicitação é analisada pelo CCB (Change Control Board) tradução de forma não literal, comitê de controle de mudanças. Nesta etapa é feita a analise geral em relação a necessidade, custos e benefícios da mudança. Passado esta etapa, a solicitação deve receber uma prioridade para que na sua vez seja implementada no sistema.


* Gerenciamento de versões e releases -


O gerenciamento de versões difere do gerenciamento de releases e são ambas importantes para o bom andamento do crescimento do sistema. As partes envolvidas no gerenciamento de versões e releases tem suas preocupações focadas na identificação e a manutenção da rastreabilidade das versões de um sistema. O gerente responsável pelas versões deve idealizar procedimentos para assegurar que tais versões de um sistema sejam facilmente recuperar e de modo algum podem ser alteradas acidentalmente pela equipe de desenvolvimento.


- Versões X releases -


Uma versão de sistema é uma instância de um sistema que de alguma forma difere de outra em funcionalidades distintas, desempenhos ou defeitos de software reparados. Algumas versões são equivalente em funcionalidades mas projetadas para diferentes plataformas de hardware e software. Uma versão de sistema não obrigatoriamente devem ser entregues ao cliente e ferramentas CASE, já comentadas aqui, são atualmente usadas para apoiar o gerenciamento de versões.


Quando uma versão vem a ser entregue a um cliente, ela é chamada de release. Cada release deve incorporar novas funcionalidades ou ser planejado para uma plataforma diferente de hardware. Normalmente há muitas versões de um sistema do que releases para o cliente.


OBS: Versões com pequenas mudanças diferentes de outras são algumas vezes chamadas de variantes. A numeração de cada versão quanto release devem ser únicas, podem conter identificação baseada em atributos ou orientada a mudanças.


* Ferramentas CASE para gerenciamento de configuração


Ferramentas CASE como já falado aqui são ferramentas computacionais de auxilio ao gerenciamento de software. Elas vem para otimizar o processo de gerenciamento tanto no apoio a mudanças como a gerenciamento de versões e release. A dois tipos de workbench que apoiam a CM:


Workbenches abertos – São ferramentas para cada estágio do processo CM são integradas por meio de procedimentos organizacionais padronizados para uso de ferramentas workbench abertas. Há diversas ferramentas, uma de codigo-fonte aberto como por exemplo já falado é o Bugzilla dentre outros.


Workbenches integrados – Fornecem recursos integrados para controlar versões. As vantagens desses tipos de workbenches são a troca de dados simplificada e o workbench inclui um banco de dados integrado de CM. Um ferramenta desse tipo que podemos exemplificar é a ClearQuest para rastreamento de mudanças.


* Conclusão -


A prática do gerenciamento de configurações é essencial em qualquer desenvolvimento de software, seja ele grande porte ou pequeno. O exercício dessa disciplina evita diversos problemas durante toda a vida útil de um sistema, indo da fase de concepção até a fase de produção. Traz benefícios como o rastreamento de versões, integração de código-fonte do sistema e etc; tudo de uma forma simples e rápida, trazendo benefícios para todos os membros da equipe, tornando o processo ágil e seguro.



Referencias bibliográficas:


Engenharia de software – Sommerville 2007 – 8º edição.


 
 
 

Commenti


Nossa Equipe

Nossa equipe é formada por alunos arretados que curtem aprender sobre novas tecnologias e compartilhar conhecimentos pra ver esse mundo se tornar melhor.

Filtrar por tag
bottom of page