El análisis de código basado en KPI (KPI = indicador clave de rendimiento ) es un método para analizar el código fuente del software y los sistemas informáticos relacionados con el código fuente, con el fin de obtener información sobre aspectos críticos para el negocio en el desarrollo de un sistema de software , como el rendimiento del equipo, el tiempo de comercialización , la gestión de riesgos , la predicción de fallos y mucho más.
El análisis de código basado en KPI, desarrollado en el Instituto Hasso Plattner [ 1 ] , es un análisis estático del código fuente con el fin de mejorar la calidad del software. Sin embargo, este análisis no se limita al código fuente. También incluye otras fuentes de información, como las actividades de codificación, para obtener una visión integral de la calidad y el progreso del desarrollo del sistema de software.
Modo de funcionamiento
El análisis de código basado en KPI es un proceso totalmente automatizado que permite monitorizar en tiempo real las actividades del equipo y las modificaciones del código fuente de un sistema de software. De esta forma, las tendencias negativas se hacen evidentes en cuanto surgen. Este sistema de alerta temprana ofrece una herramienta poderosa para reducir costes y aumentar la velocidad de desarrollo. Gracias a este enfoque, se detecta a tiempo cualquier nuevo nivel de complejidad, minimizando así su impacto. En lugar de perder tiempo valioso intentando reducir la complejidad de sistemas heredados, los desarrolladores pueden dedicarlo a nuevas funcionalidades, lo que contribuye a aumentar la productividad del equipo.
El factor humano
El factor humano se incluye en el análisis de código basado en KPI, lo que significa que también se considera qué código fue registrado por cada desarrollador y cuándo. De esta manera, se puede determinar la calidad del software entregado por cada desarrollador y detectar precozmente cualquier problema relacionado con la cualificación, la orientación y la motivación de los empleados, para luego implementar las medidas adecuadas para resolverlos.
Fuentes consideradas
Para determinar los indicadores clave de rendimiento (KPI), cifras cruciales para la productividad y el éxito de los proyectos de desarrollo de software, se leen numerosas fuentes de datos relacionadas con el código del software. Para ello, el análisis de código basado en KPI utiliza métodos propios de la minería de datos y la inteligencia empresarial , empleados también en contabilidad y análisis de clientes. Este análisis extrae datos de las siguientes fuentes y los consolida en un modelo de datos de análisis. Sobre este modelo, se calculan los valores de los indicadores clave de rendimiento. Las fuentes de datos incluyen, en particular:
- Control de revisiones , también conocido como control de versiones . En este sistema, se realiza un seguimiento de cada paso de cada desarrollador durante todo el ciclo de vida del software. Los datos describen: "¿Qué desarrollador modificó qué y cuándo?". Esta información sirve de base para responder a la pregunta: "¿Qué esfuerzo o coste de desarrollo se ha invertido en qué áreas del código?". Algunos sistemas de control de revisiones destacados son Subversion , Git , Perforce , Mercurial , Synergy , ClearCase , etc.
- Sistemas de prueba de software. Estos sistemas proporcionan información sobre qué partes del código fuente ya se han probado. Con esta información, resulta evidente dónde existen deficiencias en las pruebas, incluso si estas deficiencias se dejaron intencionadamente (debido al elevado coste y esfuerzo que implica la configuración de las pruebas).
- Sistemas de seguimiento de errores ( Bug Tracker ). Esta información se puede utilizar junto con la información proporcionada por el sistema de control de versiones para ayudar a extraer conclusiones sobre la tasa de errores en áreas específicas del código.
- Sistemas de seguimiento de incidencias . La información que generan estos sistemas, junto con la del control de versiones, permite extraer conclusiones sobre la actividad de desarrollo relacionada con requisitos técnicos específicos. Además, se pueden utilizar datos precisos sobre el tiempo invertido para el análisis.
- Analizadores de rendimiento ( Perfilado (programación informática) ). Los datos sobre el rendimiento del sistema de software ayudan a analizar qué áreas del código consumen más recursos de la CPU.
Resultados del análisis
Debido a los numerosos factores que influyen en el modelo de datos de análisis, se pueden identificar métodos para optimizar el código fuente, así como requisitos para la actuación en las áreas de cualificación, dirección y desarrollo de los empleados:
- Conocimiento sobre dónde es necesario reelaborar el código fuente porque es demasiado complejo o tiene un rendimiento de ejecución inferior:
- Anidamiento profundo que aumenta exponencialmente el número de rutas de flujo de control.
- Unidades de código enormes y monolíticas en las que se han mezclado varios aspectos, de modo que para cambiar un aspecto, hay que implementar cambios en varios puntos.
- Identificación de multihilo innecesario. El multihilo es una fuente de errores muy importante. El comportamiento en tiempo de ejecución del código multihilo es difícil de comprender, lo que implica un alto costo y esfuerzo para su extensión o mantenimiento. Por lo tanto, como regla general, debe evitarse el multihilo innecesario.
- Identificación de un manejo insuficiente de excepciones. Si hay muy pocos bloques try-catch en el código o si no se ejecuta nada en la función catch, las consecuencias, si se producen errores de programa, pueden ser graves.
- Identificación de las secciones del código fuente que se han modificado desde la última prueba de software, es decir, dónde se deben realizar pruebas y dónde no. Esta información permite planificar las pruebas de software de forma más inteligente: se puede probar la nueva funcionalidad con mayor profundidad o ahorrar recursos.
- Conocimiento del coste y el esfuerzo que se requerirán para el desarrollo o la ampliación de un módulo de software en particular:
- Al ampliar los módulos de software existentes, una recomendación sería llevar a cabo una refactorización del código.
- Cualquier funcionalidad de reciente desarrollo puede analizarse para determinar si se ha realizado un análisis de objetivos/rendimiento en relación con los costos y, de ser así, por qué. Si se identificaron las causas de las desviaciones respecto al plan, se pueden implementar medidas para mejorar la precisión en la planificación futura.
- Al rastrear qué desarrollador (o equipo) produjo qué código fuente y examinar el software creado durante un período prolongado, se pueden identificar las deficiencias, ya sea como fallos puntuales de calidad, como evidencia de la necesidad de mejorar la cualificación de los empleados o como una posible optimización del proceso de desarrollo de software.
Finalmente, el modelo de datos de análisis del análisis de código basado en KPI proporciona a los gerentes de proyectos de TI, en una etapa muy temprana, una visión general completa del estado del software producido, las habilidades y el esfuerzo de los empleados, así como la madurez del proceso de desarrollo de software.
Un método para representar los datos de análisis serían los llamados mapas de software .
Véase también
Referencias
- ↑ «Instituto Hasso Plattner» . Instituto Hasso-Plattner . Consultado el 10 de abril de 2026 .
Enlaces externos
- Renderizado interactivo de mapas de árboles 3D complejos
- Comparación visual multiescala de trazas de ejecución
- Mapas de software interactivos para el análisis de código fuente basado en la web.
- Ampliación de los sistemas de recomendación con mapas de software
- Un enfoque de análisis visual para apoyar el mantenimiento perfectivo del software
- ViewFusion: Correlación de vistas de estructura y actividad para trazas de ejecución
- Una herramienta de análisis y diseño visual para la planificación de reingeniería de software.
- Anotaciones de área interactivas para mapas de árbol 3D de sistemas de software a gran escala
- Visualización de trazas de ejecución y su aplicación al mantenimiento de software
- Comprensión de sistemas de software multihilo complejos mediante la visualización de trazas.
- Visualización del comportamiento multihilo para facilitar el mantenimiento de sistemas de software complejos.
- Visualización de trazas de ejecución masivamente depuradas para facilitar la exploración de trazas.
- Proyección de cambios de código en trazas de ejecución para facilitar la localización de errores introducidos recientemente.
- SyncTrace: Análisis visual de la interacción entre subprocesos
- Análisis del programa