quinta-feira, 11 de março de 2010

Controle de Versão de Software

O desenvolvimento de software envolve um processo contínuo de evolução de código e baseado nesse paradigma, surgiu a necessidade do desenvolvimento de uma solução que gerenciasse o controle de versões dos códigos-fonte, da documentação e do compartilhamento de trabalho. Assim, surgiram os softwares responsáveis de controle de versão.

O sistema de controle de versão rastreia e controla todos os itens do projeto (código-fonte, arquivos de configuração), possibilitando manter e disponibilizar cada versão produzida do projeto, a política de sincronização de mudanças, que evita a sobreposição, e um histórico completo de alterações sobre cada item do projeto.

O Controle de versão apóia o desenvolvimento de diversas maneiras:

· Histórico: Registra toda a evolução do projeto, cada alteração sobre cada arquivo. Com essas informações sabe-se quem fez o que, quando e onde. Além disso, permite reconstruir uma revisão específica do arquivo sempre que desejado;

· Colaboração: O controle de versão possibilita que vários desenvolvedores trabalhem em paralelo sobre os mesmo arquivos sem que um sobrescreva o código de outro, o que traria reaparecimento de defeitos e perda de funcionalidades;

· Variações no Projeto: Mantém linhas diferentes de evolução do mesmo projeto. Por exemplo, mantendo uma versão 1.0 enquanto a equipe prepara uma versão 2.0.

Apresentando todo essas vantagens, o Controle de Versão é amplamente usado no desenvolvimento de sistemas. Seja em times pequenos ou grandes, softwares livres ou fechados, o Controle de Versão organiza e centraliza decisões.

Existem diversas soluções para Controle de Versão, gratuitas e pagas. Entre as opções pagas, destacam-se o SourceSafe (Microsoft) e ClearCase (IBM). Entre as opções gratuitas, estão o CVS, o SVN e o Git. Todas essas ferramentas têm em comum a forma de funcionamento. Em um rápido resumo:

1. Existe um repositório em um servidor qualquer. Esse servidor armazena todas as versões do software.

2. Os desenvolvedores (clientes) acessam o repositório e trabalham nos arquivos do projeto, em seus respectivos computadores.

3. Periodicamente, os desenvolvedores enviam o código atualizado para o repositório (commit).

Enfim, controle de versão é fundamental para o desenvolvimento de software. Todos os ambientes de desenvolvimento modernos, tais como o Eclipse e o NetBeans, já possuem plugins para integração com algum sistema de controle de versão.

O CVS, ou Concurrent Version System (Sistema de Versões Concorrentes) é uma ferramenta open-source de apoio ao desenvolvimento de software cuja principal função é controlar as modificações realizadas nos arquivos de um projeto. É um sistema de controle de versão que permite que se trabalhe com diversas versões de arquivos organizados em um diretório e localizados local ou remotamente, mantendo-se suas versões antigas e os logs de quem e quando manipulou os arquivos. Utiliza uma arquitetura cliente-servidor, conectados por uma LAN ou pela Internet: um servidor armazena a(s) versão(ões) atuais do projeto e seu histórico, e os clientes se conectam a esse servidor para obter uma cópia completa do projeto, trabalhar nessa cópia e então devolver suas modificações. É especialmente útil para se controlar versões de um software durante seu desenvolvimento, ou para composição colaborativa de um documento. É o sistema de controle de versão mais popular disponível hoje. Possui um mecanismo automatizado para identificar e controlar as modificações realizadas nos arquivos de um projeto ao longo do tempo, garantindo a integridade e a rastreabilidade das modificações. O CVS é visto como uma extensão natural do processo de desenvolvimento, permitindo que se possam realizar modificações paralelas de forma coerente e padronizada, especialmente em se tratando de equipes geograficamente dispersas.

Nenhum comentário:

Postar um comentário