Análisis de la calidad del código

Completado

La calidad del código no debe medirse de forma subjetiva. Un desarrollador que escribe código calificaría la calidad de su código como alta, pero no se trata de una buena forma de medir la calidad. Equipos distintos pueden usar definiciones diferentes en función del contexto.

El código considerado de alta calidad puede significar una cosa para un desarrollador de automoción y otra para un desarrollador de aplicaciones web.

La calidad del código es esencial, ya que afecta a la calidad general del software.

El estudio "Software Defect Origins and Removal Methods" descubrió que la eficacia de los programadores individuales es menos de la mitad cuando buscan errores en su software. La mayoría de las formas de pruebas son solo eficaces en un 35 %. De esta forma, determinar la calidad se complica.

Hay cinco rasgos clave que se pueden medir para alcanzar una mayor calidad.

Confiabilidad

La confiabilidad mide la probabilidad de que un sistema se ejecute sin errores durante un período de funcionamiento específico. Se relaciona con el número de defectos y la disponibilidad del software. Mediante la ejecución de una herramienta de análisis estático se pueden medir varios defectos.

La disponibilidad del software se puede medir teniendo en cuenta el tiempo medio entre errores (MTBF).

Los recuentos bajos de defectos son fundamentales para desarrollar un código base confiable.

Capacidad de mantenimiento

La capacidad de mantenimiento mide la facilidad con la que se puede mantener el software. Se relaciona con el tamaño, la coherencia, la estructura y la complejidad del código base. Además, garantizar un código fuente fácil de mantener se basa en varios factores, como la capacidad de prueba y la capacidad de comprensión.

No se puede usar una sola métrica para garantizar la capacidad de mantenimiento.

Algunas métricas que puede considerar para mejorar la capacidad de mantenimiento son el número de advertencias estilísticas y las medidas de complejidad de Halstead.

Tanto la automatización como los revisores humanos son esenciales para desarrollar códigos base fáciles de mantener.

Capacidad de prueba

La capacidad de prueba mide la compatibilidad del software con los trabajos de prueba. Se basa en lo bien que puede controlar, observar, aislar y automatizar las pruebas, entre otros factores.

La capacidad de prueba se puede medir en función del número de casos de prueba que necesita para encontrar posibles errores en el sistema.

El tamaño y la complejidad del software pueden afectar a la capacidad de prueba.

Por lo tanto, la aplicación de métodos en el nivel de código, como la complejidad ciclomática, puede ayudarle a mejorar la capacidad de prueba del componente.

Portabilidad

La portabilidad mide el uso del mismo software en entornos diferentes. Se relaciona con la independencia de plataformas.

No hay una medida específica de portabilidad. No obstante, hay varias maneras de garantizar el código portable.

Es esencial probar con regularidad el código en distintas plataformas en lugar de esperar hasta el final del desarrollo.

También es bueno establecer los niveles de advertencia del compilador lo más altos posible y usar al menos dos compiladores.

La aplicación de un estándar de codificación también ayuda con la portabilidad.

Reusabilidad

La reusabilidad mide si los recursos existentes, como el código, se pueden volver a usar.

Los recursos se reutilizan con mayor facilidad si tienen características de modularidad o acoplamiento débil.

El número de interdependencias puede medir la facilidad de reutilización.

La ejecución de un analizador estático puede ayudarle a identificar estas interdependencias.