Diretriz: Decisões Importantes em Implementação
Esta diretriz descreve fatores importantes a serem considerados ao ajustar os aspectos de Implementação do processo.
Relacionamentos
Descrição Principal

Decidir Como Utilizar Produtos de Trabalho

Decida sobre quais produtos de trabalho devem ser utilizados e como utilizar cada um deles.  Além de identificar quais produtos de trabalho devem ser utilizados, também é importante ajustar cada produto de trabalho a ser utilizado deforma a atender às necessidades do projeto. 

A tabela a seguir especifica quais produtos de trabalho de Implementação são recomendados e quais são considerados opcionais (ou seja, apenas podem ser utilizados em determinados casos). Para conhecer considerações de ajuste adicionais, consulte a seção de ajuste da página de descrição do produto de trabalho.

Produto de Trabalho Finalidade

Adaptação (Opcional, Recomendada)

Modelo de Implementação

(Subsistema de Implementação, Elemento de Implementação)

O modelo de implementação consiste no código fonte, nos programas executáveis e em todos os outros produtos de trabalho necessários para construir e gerenciar o sistema no ambiente de tempo de execução.

Uma implementação é composta de elementos de implementação, que incluem código (origem, binários e programas executáveis), e de arquivos contendo informações (por exemplo, um arquivo de inicialização ou um arquivo LEIA-ME).

Um subsistema de implementação é uma coleta de elementos e outros subsistemas de implementação que é utilizada para estruturar o modelo de implementação dividindo-o em partes menores.

Todos os projetos de software possuem um modelo de implementação com elementos de implementação que incluem, no mínimo, algum código fonte e programas executáveis.

Alguns projetos também incluirão subsistemas, bibliotecas e modelos visuais.

Os subsistemas são úteis quando há um grande número de elementos de implementação para serem organizados.

Plano de Integração da Construção Define a ordem em que os componentes devem ser implementados, quais construções devem ser criadas durante a integração do sistema e como eles devem ser avaliados.

Opcional.

Recomendado se for necessário planejar a integração. Omita-o apenas quando a integração for trivial.



Cobertura de Teste de Unidade

Decida em que grau o teste de unidade será desempenhado e o nível de cobertura de código, cuja  escala varia de informal a 100%. Essa escala é descrita no Plano de Teste.

O nível de cobertura do teste unitário costuma ser determinado pelas necessidades dos testadores de sistemas e de integração, para os quais o código foi encaminhado. Os testadores de sistemas dependem da qualidade do código para efetuarem seu trabalho. Se houver muitos defeitos no código, esses testadores o devolverão aos implementadores com muita freqüência. Isso é sinal de um processo de desenvolvimento de baixa qualidade; a solução pode ser exigir que os implementadores realizem testes unitários mais completos.

É claro que não se pode esperar que o código não apresente mais nenhum defeito depois da execução do teste de unidade. No entanto, é necessário encontrar um equilíbrio "saudável" entre o teste de unidade e a qualidade.

O nível de cobertura do teste unitário também pode variar de acordo com as diferentes fases. Nem mesmo um projeto cuja segurança seja muito importante e que exija 100% de cobertura do código durante a construção e a transição costuma exigir esse mesmo nível durante a elaboração, porque muitas classes são implementadas apenas parcialmente nessa etapa.

Decidir Como Revisar Código

Decida qual será o grau de revisão de código. 

As vantagens das revisões de código são:

  • Implementar e estimular um estilo de codificação comum no projeto. A revisão do código é uma maneira eficiente de fazer com que os membros do projeto sigam o Guia de Programação. Para assegurar isso, é mais importante revisar os resultados de todos os autores e implementadores do que revisar todos os arquivos de código-fonte.
  • Localizar erros que os testes automatizados não detectam. As revisões de código localizam erros que não tenham sido detectados nos testes.
  • Compartilhar conhecimento entre as pessoas e transferi-lo das mais experientes para as menos experientes.

As desvantagens das revisões de código são:

  • Demanda tempo e recursos.
  • Se a revisão não for feita de forma apropriada, pode ser ineficaz. Há um risco de a revisão do código ser feita "apenas porque precisa ser feita" e não como um complemento eficiente para testes automatizados.

Para obter informações adicionais sobre revisão do código, consulte também Tarefa: Revisar Código.

A revisão do código valoriza significativamente o projeto. Pode-se observar uma melhora no desempenho dos revisores em todos os projetos que medem os níveis de erros e de problemas de manutenção relacionados a revisões de código. Em muitas organizações, porém, é difícil fazê-las "decolar", por várias razões:

  • Não foram coletados dados suficientes para verificar se a revisão do código realmente funciona.
  • Foram coletados dados em demasia.
  • Os implementadores são muito protecionistas em relação ao código.
  • As revisões se prendem demais a formalidades.
  • A administração das revisões exige muito esforço.

Para fazer o melhor uso possível das revisões de código, lembre-se:

  • Colete apenas dados adequados.
  • Meça o desempenho das revisões e exiba o resultado.
  • Utilize as revisões sem "excessos".

Para obter informações adicionais sobre níveis de revisão, consulte Diretriz: Níveis de Revisão