Artefato: Repositório de Projetos
Esse produto de trabalho armazena todas as versões de diretórios e arquivos do projeto. Ele também armazena todos os dados e metadados derivados que estejam associados a esses diretórios e arquivos.
Domínios: Configuração e Gerenciamento de Mudanças
Tipos de Produto de Trabalho: Infra-estrutura
Objetivo

O repositório do projeto armazena todos os diretórios e arquivos gerenciados pela ferramenta de gerenciamento de configuração (CM) do projeto. Ele é um recurso global que precisará ser acessado pela maioria dos "clientes" da equipe do projeto.

Dependendo do tamanho de um projeto, pode haver vários repositórios, cada um com milhares de diretórios e arquivos. O número de arquivos contido em um determinado repositório dependerá do tamanho da máquina em que o servidor do repositório está sendo executado e do número de usuários que acessará os dados simultaneamente. O servidor do repositório manipula o tráfego de leitura/gravação no repositório do projeto.

Relacionamentos
Adaptação
Opções de RepresentaçãoRepresentação UML: Opcionalmente, é possível representar este produto de trabalho como um pacote, estereotipado como <<repositório do projeto>>.

A adaptação deste produto de trabalho deve ser documentada no Produto de Trabalho: Plano de Gerenciamento de Configuração.

O repositório do projeto pode ser um ponto de falha central para todos os ativos. Portanto, ele precisa ser confiável, tolerante a falhas e escalonável para acomodar dados de modo. Além disso, precisa apresentar um alto nível de desempenho para não retardar o desenvolvimento do produto. As principais considerações de hardware, em ordem de prioridade, sobre o repositório do projeto são as seguintes:

  • Requisitos de Memória: A memória é uma das maneiras menos onerosas de aprimorar o desempenho de uma Ferramenta CM. Uma regra prática para saber a quantidade de memória principal necessária na máquina do servidor é somar todo o espaço do banco de dados utilizado pelo repositório do projeto e dividi-lo por dois. Por exemplo, 1 MB de memória principal deve ser suficiente para permitir o armazenamento em cache e a gravação de dados em segundo plano para 2 MB de espaço de banco de dados. A suposição é que metade dos dados contidos no repositório do projeto será ativamente acessada a qualquer momento. Os servidores devem ter pelo menos 256 MB. No cliente, a máquina de cada desenvolvedor deve ter pelo menos 128 MB de memória principal.
  • Requisitos de Entrada / Saída de Disco: O segundo gargalo mais provável de desempenho no ambiente CM é a velocidade em que os dados podem ser gravados no disco. As operações intensivas de leitura/gravação são check-in, check-out e criação de baseline. É recomendável que haja um controlador exclusivo e um canal por disco.
  • Largura de Banda da Rede: Como a ferramenta CM geralmente é um aplicativo distribuído, confiabilidade e capacidade de rede adequadas são necessárias para um bom desempenho. A recomendação é colocar máquinas que atuem como hosts do repositório do projeto e das visões na mesma sub-rede. Se a rede local (LAN) estiver muito saturada (como indicam os timeouts e os tempos de resposta lentos), a idéia é aumentar a capacidade da rede ou adicionar uma sub-rede para o host da ferramenta CM.  
  • Espaço em Disco no Repositório do Projeto: Dependendo do tamanho de um projeto, pode haver vários repositórios do projeto e cada um com milhares de arquivos e diretórios. O número de arquivos contido em um determinado repositório dependerá do tamanho da máquina em que o servidor do repositório está sendo executado e do número de usuários que acessará os dados simultaneamente. Um repositório de projeto ativo para desenvolvimento de código de leitura/gravação pode conter menos elementos que um repositório menos volátil que não tenha o mesmo nível de tráfego de usuário. A capacidade prevista para um repositório de projeto para desenvolvimento de software é de aproximadamente 3.000 a 5.000 elementos. Uma boa regra geral é reservar espaço em disco para o crescimento e ter cerca de 50% de espaço livre, alocando 2 GB de armazenamento para cada repositório do projeto.

O repositório do projeto deve estar em um servidor exclusivo. Isso significa que o servidor de repositórios do projeto não deve ser utilizado para:

  • compilações, builds ou testes
  • executar outras ferramentas de terceiros
  • um servidor de e-mail
  • um servidor Web