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 do projeto em relativo isolamento dos demais desenvolvedores. O Gerenciador 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 liberações 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
'máquina do tempo', fazendo com que tudo no ambiente, não apenas as origens, apareça como era no passado.
O espaço de trabalho de cada desenvolvedor precisa ficar isolado para fins de edição, de compilação, de teste e de
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.
-
Outras pessoas devem poder excluir, até um próximo período de integração, aquelas alterações 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 particular de um espaço de trabalho estaria localizado normalmente no diretório pessoal de um
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 particular do
espaço de trabalho deve parecer estar 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 tarefas do projeto. Um conjunto de trabalho é uma lista de versões específicas de subsistemas
que devem ser consultadas ou modificadas para implementar uma parte do 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 utilizadas 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 uma
determinada liberação 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 visualizações:
-
Visualizações de Captura Instantânea
-
Visualizações Dinâmicas
Uma visualização de captura instantânea fornece ao desenvolvedor um ambiente de trabalho estável e sem
alterações. 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 utilizam o termo "modo
seguro" para essa á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 pull, uma vez que depende
da extração ativa de informações relevantes, em vez de disponibilizá-las de imediato por meio de mecanismos de
atualização automática.
Uma visualização dinâmica é uma estrutura de dados virtuais, 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.
|