Hello,


J'ai mis en place les outils classiques d'analyse de qualité pour mes projets Java (builds de projets via maven lancés par Jenkins avec une analyse qualité Checkstyle/PMD/Findbugs dans Jenkins + 1 analyse Sonar).

J'ai lancé pas mal de corrections au niveau des bonnes pratiques de dev, du code mort, du code dupliqué, etc...


J'aimerais maintenant m'attaquer au sujet délicat de la complexité du code.

Sonar me donne des métriques sur la complexité des classes, les dépendances inter-packages, etc... : Sonar Metric Definitions - Complexity

Ça permet d'identifier les zones sensibles, mais sans le détail, et il n'y a pas non plus d'aide à la réduction de la complexité


Ce que j'aimerais, c'est trouver un outil (si possible gratuit) qui permette de générer un graphe d'une classe et d'une méthode en dressant les chemins possibles, pour identifier clairement à quel noeud la complexité s'intensifie, et éventuellement identifier des idées de simplification.

J'aurais par exemple une figure de ce type pour mon code de base :



Et du coup ça me permettrait très facilement et très rapidement de voir ce qu'il faut faire pour diminuer la complexité et d'obtenir par exemple ceci :



J'ai vu quelques outils de métriques mais qui se limitent aux dépendances entre packages ou classes Java. Je n'ai pas encore trouvé d'outil qui donne le graphe d'une méthode.


Je cherche un plugin qui s'intègre dans un IDE de type Eclipse, voire Netbeans, ou bien un plugin Maven ou Jenkins/Hudson.

Je suis évidemment preneur d'autres types d'outils, même en ligne de commande


Merci d'avance pour votre retour