QoCode
acceso

QoCode

Análisis automático de calidad de código · v0.1
01 /
Seleccionar solución del alumno
Clic para seleccionar o arrastrar y soltar
Archivos .py individuales o .zip — no se pueden mezclar

02 /
Elegir qué evaluar
Legibilidad legibilidad
Calidad semántica de nombres
Evalúa si los nombres de variables, funciones y parámetros reflejan de forma clara y comprensible su propósito dentro del programa, facilitando la interpretación del código sin necesidad de analizar su implementación.
Estilismo de nombres
Evalúa la coherencia y el formato visual de los nombres en el código, considerando aspectos como longitud y estilo de escritura, con el objetivo de mantener una nomenclatura uniforme y fácil de recorrer.
Calidad semántica de los valores
Evalúa la calidad semántica de los valores utilizados en el código, considerando si estos mantienen un significado comprensible a lo largo del programa y evitando prácticas que oculten o confundan su interpretación, como el uso de magic numbers o cambios de significado en una misma variable.
Formato de código
Evalúa la estructura visual y la consistencia del formato del código, considerando aspectos como indentación, uso de espacios y organización de los bloques, con el objetivo de facilitar la identificación de su estructura lógica y mejorar su legibilidad.
Mantenibilidad mantenibilidad
Simplificable
Agrupa el código que puede simplificarse con cambios locales sin introducir nuevas construcciones. El objetivo es reducir la complejidad del flujo de control para favorecer la comprensión del programa y facilitar la detección de errores.
Código sin efecto
Agrupa el código que no afecta el resultado de la ejecución. Su presencia suele deberse a lógica obsoleta o mal diseñada, y produce ruido innecesario que dificulta la comprensión del programa. Todos los defectos de esta categoría se resuelven eliminando código, sin necesidad de reordenarlo ni de incorporar nuevas construcciones.
Construcción inadecuada
Se centra en detectar código que resultaría más explícito y simple usando una construcción diferente del lenguaje. Una construcción adecuada comunica de forma explícita la intención del programador, reduciendo la distancia entre el código y el problema que resuelve.
Código repetido
Agrupa los defectos relacionados con la repetición de código. Así, al evitar la repetición se previenen inconsistencias al corregir errores en la lógica, además de facilitar la modificación del programa ante un cambio de requerimientos.
Diseño pobre
Aborda el código innecesariamente complejo debido a elecciones de diseño deficientes, ya que un código bien diseñado facilita su lectura y comprensión. Cualquier mejora en esta categoría requiere modificar el código de forma no trivial, sin alterar su comportamiento.

03 /
Ejecutar análisis

04 /
Hallazgos