Norma para establecimiento de umbrales y límites de validación de código fuente del software

Información general

Icono normas
Tipo de recurso
Normas
Etiquetas

Descripción

Código: NOR_UMBCAL

Versión actual: v01r00

El objeto de la norma es el establecimiento de umbrales y niveles de calidad del código que serán utilizados durante el servicio de Evaluación estática de código fuente del Modelo de Calidad

Ámbito de aplicación de la norma

Esta norma es de aplicación tanto para la evaluación de la calidad del código tanto en nuevos desarrollos como mantenimientos, y será la referencia utilizada durante la ejecución del servicio de calidad estándar. 

En todo caso, se recomienda su aplicación continua en el entorno de desarrollo, desde fases iniciales, haciendo uso de las herramientas para el análisis estático de código definidas en Plataforma CI/CD corporativa, siempre que sea posible.

Puedes conocer en esta sección  cómo se marca la obligatoriedad de cumplimiento de las directrices que componen la norma.

DEFINICIÓN Y USO DE ENTORNOS

DIR_01 Umbrales de cumplimiento para niveles de calidad y su agrupación en niveles de calidad

OBLIGATORIO Los umbrales para los niveles de calidad y/o valores de referencia utilizados para evaluar las métricas obtenidas durante el análisis estático de código, así como los niveles de calidad a los que se corresponden, serán los definidos en esta norma.

Los umbrales de calidad de código aplicados al resultado de calcular las métricas de calidad definen los distintos niveles de calidad. La correspondencia entre el nivel alcanzado y el nivel objetivo determinará si la evaluación del código ha sido superada.

Los proyectos que soliciten la evaluación estática de código fuente mediante petición expresa se someterán a una aplicación gradual de los niveles, comenzando por el nivel "inicial" y aumentando el grado de exigencia a medida que se vaya superando cada nivel anterior.

Existen varios niveles de calidad , donde cada uno de ellos va asociado a una fase de madurez del ciclo de vida. De esta forma, a medida que un Sistema de información dado avance de fase, se le requerirá el cumplimiento de unos umbrales de calidad estática de código superiores, por suponerse una mayor madurez general del mismo, y, sobre todo, con respecto a la alineación y seguimiento de determinadas prácticas de desarrollo.

Así, pueden definirse:

  • Nivel 0 - Bajo: este nivel se asignará por defecto a todos los sistemas que soliciten este servicio. Es el nivel más básico, con unos umbrales de métricas más laxos, y el mínimo a cumplir por parte de un Sistema en cuanto a requerimiento de umbrales de calidad estática de código. Se centra en no empeorar la calidad del proyecto.
  • Nivel 1 - Medio: Este nivel será el primero en exigir un estándar mínimo de calidad para todo el proyecto, requiriendo la corrección de defectos previos para cumplir con los criterios de calidad del código. Sin embargo, se establecerán umbrales bajos para facilitar que el proyecto los supere sin dificultad significativa.
  • Nivel 2 - Alto: una vez superado el nivel anterior por parte de un Sistema, se le asignará este nivel, el cual este deberá cumplir la próxima ocasión que se solicite el Servicio o se realice por cualquier motivo la verificación estática de código. Aquí se dará un paso más allá en el cumplimiento de los umbrales de las métricas asociadas a la calidad estática de código; de esta forma, será más restrictivo en cuanto a algunas de las métricas incluidas, como pueden ser porcentaje de comentarios, duplicidad de líneas, o cantidad de defectos o vulnerabilidades.
  • Nivel 3 - Exigente: este nivel, que será el máximo para alcanzar, solo se asignará a un Sistema cuando este haya superado los precedentes, y se requerirá el cumplimiento de unos umbrales más exigentes que en niveles anteriores. Por ejemplo, se exigirán valores bajos para métricas que miden la cantidad de defectos o vulnerabilidades, y elevados para otras métricas, como el porcentaje de comentarios o la cobertura de código.

En la siguiente tabla se representan las diferentes métricas y la calificación de calidad o umbral requerido para cada nivel de calidad:

En la siguiente tabla se representan las diferentes fases:

 MÉTRICASNivel 0 - BajoNivel 1 - Medio(para superar la Validación)Nivel 2 - AltoNivel 3 - Exigente
 Ranking de Fiabilidad= A= A= A= A
 Ranking de Seguridad= A= A= A= A
 Ranking de Mantenibilidad= A= A= A= A
New CodePorcentaje de Lineas Duplicadas<= 30 %<= 25%<= 20%<= 15%
 Cobertura de PruebasN/A>= 50%>= 70%>= 90%
 Vulnerabilidades= 0= 0= 0= 0
 Incumplimientos Bloqueantes= 0= 0= 0= 0
 Revisión de hotspot= 100%= 100%= 100%= 100%
 Ranking de FiabilidadN/A>= C>= B= A
 Ranking de Seguridad>= C>= B= A= A
 Ranking de Mantenibilidad>= C>= B= A= A
 Porcentaje de Comentarios>= 5%>= 10%>= 15%>= 20%
OverallPorcentaje de Líneas Duplicadas<= 50%<= 40%<= 20%<= 15%
 Porcentaje de Test ExitososN/A>= 60%>= 75%= 100%
 Cobertura de PruebasN/A>= 20%>= 50%>= 80%
 Vulnerabilidades< = 100< = 50< = 20= 0
 Incumplimientos Bloqueantes< = 200< = 100< = 50= 0

La calificación de calidad (A,B,C,D,E) empleada es la utilizada por la herramienta SonarQube. Otras herramientas utilizadas para el análisis de la calidad de código usarán su propio sistema de calificación, previo establecimiento de equivalencias con el utilizado en la tabla.

DIR_02 Nivel objetivo vs nivel alcanzado

OBLIGATORIO Para superar la Evaluación estática de código fuente será necesario igualar o superar el nivel de calidad objetivo.

Estándar de asignación y superación de niveles SONAR

Para alcanzar el objetivo de mejorar la calidad del código de los sistemas de información y garantizar su sostenibilidad a lo largo del tiempo se ha definido el anterior esquema de Quality Gates basado en cuatro niveles de restricción progresiva. A continuación, se establecen los criterios para la asignación de Quality Gates a los sistemas de información nuevos y existentes, así como la evolución de los requisitos a lo largo del tiempo.

  • Criterios de Asignación Inicial

    Los sistemas de información serán evaluados en Sonar según los siguientes criterios:

    • Sistemas de información Nuevos (Desarrollo Nuevo): Aquellos que no tengan una versión en producción deberán cumplir con el Nivel 1 - Medio desde su primer análisis en Sonar. 
    • Sistemas de información Existentes: Aquellos que ya estén en producción iniciarán con el Nivel 0 - Bajo.
  • Progresión de Quality Gates

    Con el fin de garantizar una mejora continua en la calidad del código, se establece una evolución anual en los niveles de Quality Gates, quedando de la siguiente forma:

    • Primer año de adaptación del sistema de información al Modelo de calidad:
      • Sistemas de información Nuevos: Nivel 1.
      • Sistemas de información Existentes: Nivel 0.
    • Segundo año:
      • Nivel 1.
    • Tercer año:
      • Nivel 2.
    • Cuarto año y en adelante:
      • Nivel 3.
  • Seguimiento y Comunicación

    Para garantizar la transición efectiva entre niveles, se realizarán reportes a los equipos de desarrollo que lo soliciten, informando su situación actual y las mejoras necesarias para alcanzar el nivel requerido en el próximo año. Además, se brindarán capacitaciones sobre buenas prácticas de desarrollo para facilitar la adaptación a los nuevos estándares.

Este plan establece una estrategia progresiva de mejora de la calidad del código en los Sistemas de información, permitiendo una adaptación gradual sin afectar la operatividad de los proyectos existentes. La meta final es que todos los Sistemas de información cumplan con el Nivel 3 de calidad.