Examinar a qualidade do código

Concluído

A qualidade do código não deve ser medida subjetivamente. Um código escrito por desenvolvedor classificaria a qualidade de seu código como alta, mas essa não é uma boa maneira de medir a qualidade do código. Equipes diferentes podem usar definições diferentes com base no contexto.

Um código considerado de alta qualidade pode significar uma coisa para um desenvolvedor automotivo. E pode significar outra para um desenvolvedor de aplicativos Web.

A qualidade do código é essencial, pois afeta a qualidade geral do software.

Um estudo sobre "Origens de Defeitos de Software e Métodos de Remoção" descobriu que os programadores individuais são menos de 50% eficientes em encontrar bugs em seus softwares. E a maioria das formas de teste são apenas 35% eficientes. Isso dificulta a determinação da qualidade.

Há cinco características principais a serem medidas para maior qualidade.

Confiabilidade

A confiabilidade mede a probabilidade de um sistema ser executado sem falhas em um período de operação específico. Ela se relaciona com o número de defeitos e a disponibilidade do software. Vários defeitos podem ser medidos com a execução de uma ferramenta de análise estática.

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

As contagens de defeito baixa são cruciais para o desenvolvimento de uma base de código confiável.

Facilidade de manutenção

A facilidade de manutenção mede como o software pode ser mantido facilmente. Ela se relaciona com o tamanho, a consistência, a estrutura e a complexidade da base de código. E a garantia de código-fonte sustentável depende de vários fatores, como capacidade de teste e compreensão.

Você não pode usar uma única métrica para garantir a facilidade de manutenção.

Algumas métricas que você pode considerar para aprimorar a capacidade de manutenção são o número de avisos estilísticos e as medidas de complexidade de Halstead.

Tanto a automação quanto os revisores humanos são essenciais para o desenvolvimento de bases de código de manutenção.

Capacidade de teste

A testabilidade mede o sucesso do software no suporte aos esforços de teste. Ela depende do quanto você pode controlar, observar, isolar e automatizar os 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 capacidade de teste.

Portanto, a aplicação de métodos no nível do código — como complexidade ciclomática — pode ajudar você a melhorar a testabilidade do componente.

Portabilidade

A portabilidade mede a forma como o mesmo software pode ser usado em ambientes diferentes. Ela está relacionada à independência da plataforma.

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

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

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

Impor um padrão de codificação também ajuda com a portabilidade.

Capacidade de reutilização

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

Os ativos são reutilizados com mais facilidade quando têm características como modularidade ou acoplamento flexível.

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

A execução de um analisador estático pode ajudar você a identificar essas interdependências.