KBDoctor Complexity Index.
Agregué al KBDoctor un reporte que mide la complejidad de los objetos GeneXus de una KB.
No es fácil definir que objeto es complejo y cual es simple, por lo que definí un KBDoctor Complexity Index, que mide algunas de las cosas que me interesa simplificar.
El mismo esta definido de la forma
+(MaximoNivelAnidacion * MaximoNivelAnidacion)
+ NumeroCiclomatico * 10 // Cuenta IF, Do While, For, Do Case
+ MaximoBloqueCodigo * 2
En nuestros sistemas, si un objeto tiene un índice mayor que 500 es considerado muy complejo y debe cambiarse.
No es fácil definir que objeto es complejo y cual es simple, por lo que definí un KBDoctor Complexity Index, que mide algunas de las cosas que me interesa simplificar.
El mismo esta definido de la forma
KBDoctor Complexity Index =
+100 por tener algún parametro sin IN: OUT: INOUT+(MaximoNivelAnidacion * MaximoNivelAnidacion)
+ NumeroCiclomatico * 10 // Cuenta IF, Do While, For, Do Case
+ MaximoBloqueCodigo * 2
El indice intenta, que todos los objetos tengan reglas parm con IN y OUT, tener un nivel de anidacion bajo, bloques de codigo chico y un numero ciclomatico tambien chico.
Estuve evaluando otros criterios para medir la complejidad como
- Cantidad de Rules
- Cantidad de tablas accedidas
- Cantidad de atributos accedidos
pero preferí una primer versión del indice que fuera mas sencilla y fácil de usar.
El reporte también saca una suma del total de la KB (puede ayudar a medir que tan compleja es la KB) y la complejidad promedio.
El tener un indicador, ayuda a realizar trabajos de mejoras en el código existente.
Si alguien mas está trabajando en el tema, me gustaría intercambiar experiencias para avanzar mas rápido.
Comentarios
Publicar un comentario
1) Lee el post
2) Poné tu opinión sobre el mismo.
Todos los comentarios serán leidos y la mayoría son publicados.