Examinar a qualidade do código

Concluído

A qualidade do código não deve ser medida por opiniões pessoais. Um desenvolvedor escrevendo código classificaria seu próprio código altamente, mas essa não é uma maneira confiável de medir a qualidade do código. Equipes diferentes podem usar definições diferentes com base no que estão construindo.

Código que é considerado de alta qualidade pode significar uma coisa para um desenvolvedor de software de carro e algo diferente para um desenvolvedor de aplicações web.

A qualidade do código é importante porque afeta a qualidade geral do software.

Um estudo sobre "Origens de defeitos de software e métodos de remoção" descobriu que programadores individuais encontram menos de 50% de bugs em seu próprio software. A maioria das formas de teste só encontra 35% de bugs. Isso dificulta a determinação da qualidade.

Há cinco características principais a medir para um código de maior qualidade:

Fiabilidade

A fiabilidade mede a probabilidade de um sistema funcionar sem falhas durante um período de tempo específico. Refere-se ao número de defeitos e disponibilidade do software. Você pode medir vários defeitos executando uma ferramenta de análise estática.

A disponibilidade do software pode ser medida usando o tempo médio entre falhas (MTBF).

Baixas contagens de defeitos são cruciais para o desenvolvimento de código confiável.

Capacidade de Manutenção

A manutenibilidade mede a facilidade com que o software pode ser mantido. Relaciona-se com o tamanho, consistência, estrutura e complexidade do código. Garantir que o código-fonte seja sustentável depende de vários fatores, como a capacidade de teste e a compreensão.

Não é possível usar uma única métrica para garantir a manutenção.

Algumas métricas que você pode considerar para melhorar a manutenção são o número de avisos de estilo e as medidas de complexidade de Halstead.

Tanto a automação quanto os revisores humanos são importantes para o desenvolvimento de código que pode ser mantido.

Capacidade de teste

A capacidade de teste mede o quão bem o software suporta os esforços de teste. Depende de quão bem você pode controlar, observar, isolar e automatizar testes, entre outros fatores.

A capacidade de teste pode ser medida com base em quantos casos de teste você precisa para encontrar possíveis falhas no sistema.

O tamanho e a complexidade do software podem afetar a estabilidade.

Portanto, a aplicação de métodos no nível do código, como a complexidade ciclomática, pode ajudá-lo a melhorar a capacidade de teste do componente.

Portabilidade

A portabilidade mede o quão utilizável o mesmo software é em ambientes diferentes. Está relacionado com a independência das plataformas.

Não há uma medida específica de portabilidade. Mas há várias maneiras de garantir o código portátil.

É importante testar regularmente o código em diferentes plataformas, em vez de esperar até o final do desenvolvimento.

Também é bom definir os níveis de aviso do compilador o mais alto possível e usar pelo menos dois compiladores.

Seguir um padrão de codificação também ajuda na portabilidade.

Reutilização

A reutilização mede se os ativos existentes, como o código, podem ser usados novamente.

Os ativos são mais facilmente reutilizados se tiverem modularidade ou características de acoplamento frouxo.

O número de interdependências pode medir a reutilização.

A execução de um analisador estático pode ajudá-lo a identificar essas interdependências.