Conceitos: Espaços de Trabalho
Tópicos
Os espaços de trabalho referem-se a áreas 'particulares' nas quais os desenvolvedores podem implementar e testar o código de acordo com os padrões adotados para o projeto com um relativo isolamento dos demais desenvolvedores. O Gerente de Configuração precisa criar um ambiente de espaço de trabalho para cada desenvolvedor do projeto.
Um espaço de trabalho oferece a cada desenvolvedor um ambiente consistente, flexível, barato e reproduzível que seleciona e apresenta a versão adequada de cada arquivo. O espaço de trabalho deve poder proporcionar um controle minucioso do compartilhamento e do isolamento. Isso é necessário porque, na maioria dos projetos, os desenvolvedores precisam se isolar das mudanças feitas por outros mas, ao mesmo tempo, devem poder testar se as mudanças que eles fizeram e as mudanças feitas por alguns outros desenvolvedores são compatíveis entre si.
Quando executa a manutenção em releases mais antigas, um desenvolvedor deve poder ver as antigas versões, os binários, os documentos, os testes, as ferramentas e outros objetos. Nesse caso, o espaço de trabalho funciona como uma espécie de 'máquina do tempo', fazendo com que tudo o que existe no ambiente, e não apenas os códigos-fonte, apareça como era no passado.
O espaço de trabalho de cada desenvolvedor precisa ficar isolado para fins de edição, compilação, teste e depuração. Entretanto, o isolamento do espaço de trabalho deve ser relativo e não absoluto:
- Outras pessoas devem poder acompanhar o trabalho de um desenvolvedor e seletivamente integrá-lo ao seu próprio trabalho.
- Os demais desenvolvedores devem poder isolar, até um próximo período de integração, aquelas mudanças que se mostrem desestabilizadoras para seus trabalhos.
Um espaço de trabalho pode ser completamente reservado para um determinado desenvolvedor ou compartilhado por uma equipe de desenvolvedores em uma rede.
Além de permitir acesso a versões do código-fonte, um espaço de trabalho deve oferecer armazenamento privado (isolado) dos arquivos gerados durante o desenvolvimento do software:
- Versões de trabalho (com check-out) dos arquivos-fonte,
- Executáveis,
- Outros objetos particulares do espaço de trabalho - código-fonte, subdiretórios de teste e arquivos de dados de teste.
O armazenamento privado de um espaço de trabalho normalmente fica localizado no diretório pessoal do desenvolvedor em uma estação de trabalho. Um espaço de trabalho compartilhado por um grupo de desenvolvedores pode ter sua própria área de armazenamento localizada em um servidor de arquivos central. Porém, a localização real do armazenamento privado é basicamente irrelevante. Do ponto de vista do desenvolvedor, o armazenamento privado do espaço de trabalho deve parecer ser totalmente integrado.

A figura acima ilustra o conceito de espaços de trabalho particular e integrado no contexto geral do Cubo CM.
As configurações de trabalho (perfis de espaço de trabalho) referem-se a subsistemas específicos que compõem um conjunto de trabalho do projeto. Um conjunto de trabalho é uma lista de versões específicas de subsistemas que devem ser consultadas, ou modificadas, para implementar um trabalho. Essa lista pode representar todo o sistema ou um subconjunto.
Uma visão oferece acesso a um conjunto de arquivos armazenados no repositório do projeto. Além disso, uma versão oferece acesso a um conjunto adequado de versões desses arquivos:
- Uma nova visão de desenvolvimento pode oferecer acesso às versões mais recentes dos arquivos.
- Uma segunda nova visão de desenvolvimento pode conceder acesso às versões que estão sendo usadas pela equipe que está trabalhando em uma nova interface de usuário de seu produto.
- Uma visão de manutenção pode fornecer acesso às versões dos arquivos que foram utilizados para compilar um determinado release do produto.
Um espaço de trabalho, também chamado de visão, permite que os desenvolvedores façam e testes mudanças reservadamente e, depois, compartilhem as modificações com os demais membros da equipe. Há dois tipos de visões:
- Visões de Imagens e
- Visões Dinâmicas.
Uma visão de imagem proporciona ao desenvolvedor um ambiente de trabalho estável e imutável. Ela pode ser comparada a uma árvore de diretórios de um computador. Uma visão de imagem é preenchida com cópias das versões adequadas dos arquivos de um ou mais repositórios do projeto. Algumas pessoas usam o termo "sandbox" (caixa de areia) para se referirem a tal árvore de diretórios. Quando um desenvolvedor deseja ver as mudanças feitas por outros membros da equipe, ele atualiza a visão. Este estilo de trabalho é caracterizado como um modelo de extração (pull), uma vez que ele extrai as informações relevantes em vez de disponibilizá-las de imediato através de mecanismos de atualização automática.
Uma visão dinâmica é uma estrutura de dados virtual, pois parece conter todos os dados de desenvolvimento. As visões dinâmicas não criam cópias locais dos arquivos, confiando nas atualizações imediatas feitas na rede. As visões dinâmicas podem ser a melhor opção nas seguintes situações:
- O espaço em disco no cliente é limitado
- Você deseja se beneficiar das vantagens oferecidas pelo compartilhamento de objetos
- A equipe de desenvolvimento deve trabalhar com as versões mais recentes do código. Este recurso é particularmente útil para fins de integração, que requer a versão mais recente de um software.
Copyright
(c) 1987 - 2001 Rational Software Corporation
|