Examinar a qualidade do código
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.