Una de las cosas en las que he estado pensando muchas veces es cómo podemos usar métricas de algún tipo para medir el cambio, ¿vamos hacia atrás o no? Esto es en el contexto de una gran base de código heredada que estamos mejorando. La mayor parte del código es C++ con un patrimonio de C. Algunas funciones nuevas y la GUI están escritas en C#.¿Cómo puedo visualizar los cambios en una gran base de código de calidad?
Para empezar, al menos podríamos estar comprobando si el nivel de complejidad simple estaba cambiando con el tiempo en el código. La dificultad está en tener una representación: podemos hacer una superficie 3D donde un mapa 2D representa el código y tenemos un mapa de calor de color que representa la complejidad con la superficie 3D abombada hacia dentro y hacia afuera para mostrar el cambio.
Una vez que puedes generar matrics de números, hay una tonelada de sistemas matemáticos para encargarse de cosas como esta.
Con el tiempo, me gustaría tener números más sofisticados pero las mismas técnicas de visualización utilizadas para representar el cambio.
Me gusta la idea en Crap4j de centrarme en la relación entre la complejidad y el número de pruebas unitarias que cubren ese código.
También me gustaría incluir Uncle Bob's SOLID metrics y algunas de las métricas OO de Chidamber y Kemerer. La parte difícil es encontrar herramientas para generar estos para C++. La única opción parece ser Krakatau Essential Metrics (no tengo inconveniente en pagar por las herramientas). Mi deseo de utilizar las métricas de CK proviene en parte de los libros Object-Oriented Metrics:Measures of Complexity de Henderson-Sellers y los anteriores Object-Oriented Software Metrics.
Si comenzamos a usar algunas de estas métricas, podríamos terminar con diez o más números que varían a lo largo del tiempo. Soy bastante ignorante de las estadísticas, pero parece que podría ser interesante rastrear un montón de tales métricas y luego prestar atención a las que tienden a variar.
Tenga en cuenta que una pregunta relacionada es acerca de measuring code quality across a large code base. Estoy más interesado en medir el cambio.
Gracias, que era el término mágico que tenía que ser capaz de reducir mis búsquedas. Encontré un documento de póster realmente interesante sobre el uso de diagramas 3D Kiviat http://w3.msi.vxu.se/~kerren/pubs/kerren-softvis10.pdf –
Actualizando el enlace al documento: http: //homepage.lnu. se/staff/akemsi/pubs/kerren-softvis10.pdf –