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