Examinar a qualidade do código

Concluído

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

Código que é considerado de alta qualidade pode significar uma coisa para um desenvolvedor automotivo. E isso pode significar outro 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 programadores individuais são menos de 50% eficientes em encontrar bugs em seu software. E a maioria das formas de teste são apenas 35% eficientes. Dificulta a determinação da qualidade.

Há cinco características principais a medir para uma maior qualidade.

Fiabilidade

A fiabilidade mede a probabilidade de um sistema funcionar sem falhas durante um período específico de funcionamento. Refere-se ao número de defeitos e disponibilidade do software. Vários defeitos podem ser medidos 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 desenvolver uma base de código confiável.

Capacidade de Manutenção

A manutenibilidade mede a facilidade com que o software pode ser mantido. Ele se relaciona com o tamanho, consistência, estrutura e complexidade da base de código. E garantir a manutenção do código-fonte 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 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 que possam ser mantidas.

Capacidade de teste

A capacidade de teste mede o quão bem o software suporta os esforços de teste. Ele 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.

É essencial 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.

A imposição de 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.