DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Revista MSDN Magazine Edição 11 - A Arte de Versionar Integrando o VS.NET ao Visual SourceSafe (Parte I)

Artigo Originalmente Publicado na MSDN Magazine Edição 11

msdn11_capa.jpg

Clique aqui para ler todos os artigos desta edição

 

A Arte de Versionar

Integrando o VS.NET ao Visual SourceSafe

(Parte I)

por André Furtado

 

Costuma-se dizer que a única certeza de um novo projeto de software é que o mesmo sofrerá mudanças. Apesar de tal afirmação estar focada nas mudanças de requisitos, ela é perfeitamente aplicável ao item que mais está sujeito a alterações em um projeto: seu código-fonte. Desse modo, o popularmente adotado processo de desenvolvimento incremental de software, caracterizado por sucessivos builds, releases,  patches e correções, pode-se tornar um sério risco ao projeto caso não haja um gerenciamento produtivo e eficaz da evolução do código-fonte, assim como do controle de seu compartilhamento entre os desenvolvedores. Através deste artigo você encontrará na ferramenta Visual SourceSafe (VSS) uma poderosa aliada para automatizar e gerenciar o controle de versão de seus projetos, além de descobrir como aumentar consideravelmente a produtividade de sua equipe através da integração do VSS com o Visual Studio .NET.

Nesta primeira parte, você entenderá o porquê do controle de versão, os fundamentos básicos do VSS e como implantar a ferramenta, além de descobrir que cuidados devem ser tomados com suas soluções e projetos no VS.NET para garantir um controle versão eficiente.

Por que versionar?

Ao contrário de muitos problemas e soluções que existem na Tecnologia da Informação, o controle de versão não é uma necessidade originada pelas recentes tecnologias ou pela complexidade do atual processo de desenvolvimento de software. Na verdade, desde que um programador necessitou desenvolver sucessivas versões para sua aplicação e desde que duas pessoas (e não apenas uma) decidiram somar seus esforços para implementar uma aplicação, criou-se a necessidade pela Gerência de Configuração.

Se você não está antenado com processos e a Engenharia de Software em geral, talvez nunca tenha ouvido falar em Gerência de Configuração. Entretanto, a verdade é que ela está cada vez mais em evidência e merecendo a atenção dos projetos de software da atualidade (existem, inclusive, profissionais especializados apenas nessa área: os gerentes de configuração). Em resumo, a Gerência de Configuração é um processo que, através do controle e organização da evolução do software em construção, procura maximizar a produtividade e diminuir a burocracia do projeto, evitando desperdício de trabalho e enganos comuns cometidos por desenvolvedores.

O cenário a seguir exemplifica alguns problemas decorrentes da ausência de um processo adequado de Gerência de Configuração. Imagine que dois desenvolvedores, João e Maria, estão trabalhando conjuntamente na implementação de um software, conforme mostra a Figura 1. Além de desenvolver suas próprias classes (J1, M1, J2, M2, etc.), João e Maria estão compartilhando a classe C, mostrada ao centro da figura. Suponha que João acessa a classe compartilhada e realiza algumas modificações na mesma. Mais tarde, Maria também realiza algumas alterações em C mas, ao tentar compilar suas classes (M1, M2 e M3) com C, diversos erros são apontados pelo compilador, nenhum deles na parte que Maria alterou. Resultado: Maria não tem a menor idéia sobre a causa do problema, portanto não sabe resolvê-lo e está com seu desenvolvimento bloqueado!

 

 

image002.jpg

Figura 1. João e Maria desenvolvem software, compartilhando a classe C

 

Você poderia propor a seguinte solução: que tal se cada desenvolvedor trabalhasse com uma cópia local da classe compartilhada, salvando-a em um repositório comum a cada alteração, como mostra a Figura 2? Sim, esta abordagem resolve a situação anterior, mas cria um outro problema.

 

image004.jpg

Figura 2. João e Maria desenvolvem software, utilizando cópias locais (CJ e CM) da classe compartilhada

 

Suponha que João encontre e corrija um defeito em sua versão local da classe compartilhada, salvando esta alteração na classe C do repositório. Maria, com sua versão local desatualizada, pode encontrar e corrigir o mesmo defeito já corrigido por João. Resultado: o trabalho de João é desperdiçado! Uma situação pior ainda se dá quando João encontra e corrige um defeito, salvando "

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


André Furtado
é engenheiro de software pelo Centro de Tecnologia XML de Recife / Qualiti Software Processes, mestrando e bacharel em Ciência da Computação pela Universidade Federal de Pernambuco, Certified Microsoft Solutions Framework Practitioner, Certified IBM-DB2 User e SCJP 1.4.
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03