Analyse dynamique d’une application avec jtracert

Voici un outil qui va vous aider dans la compréhension d’un code et plus particulièrement du comportement dynamique de ce code.

Imaginez une nouvelle application dont vous êtes le nouveau responsable et qui n’est pas ou peu documentée (imaginez très fort 😉 ).

Cela peut être aussi une librairie externe dont vous voulez comprendre le fonctionnement ou mieux tracer l’exécution d’un bug.

Le constat est alors le suivant :

  • Il est relativement simple d’avoir une analyse statique du code (pour peu que l’on dispose du code source ou d’un bon décompilateur) et donc d’avoir un diagramme de classe d’une application.
  • Quid de l’analyse dynamique (diagramme de séquence) ?

Bien sûr on peut toujours lire le code et encore mieux l’executer en mode débug mais c’est extremement chronophage.

L’outil que je vous présente (jtracert http://code.google.com/p/jtracert/ ) va vous permettre de générer un diagramme de séquence à partir de l’exécution d’une application java SE ou EE.

S’il existait déjà quelques outils permettant de générer un diagramme de séquence à partir du code (Netbean UML permet de le faire mais uniquement pour une opération), il manquait l’outil capable de générer un diagramme de séquence (en respectant la notation UML) à partir de l’exécution d’un code.

L’outil est simple d’utilisation, il suffit de rajouter quelques paramètres à la JVM au lancement du serveur d’application

Par ex sous Tomcat, ajouter simplement la ligne suivante au fichier catalina.bat :

set JAVA_OPTS=-DanalyzerOutput=sdEditRtClient -DsdEditHost=127.0.0.1 -DsdEditPort=60001 -javaagent:"chemin librairie"\jTracert.jar=7007 %JAVA_OPTS%

Ensuite il faut lancer l’application de visualisation et les premiers diagrammes commencent à apparaître.

Bien sur il est possible de filtrer les classes intéressantes afin d’éviter de se retrouver avec un schéma énorme (une expression régulière permet de filtrer les classes).

On peut même éditer le diagramme (compléter les noms, ajouter des annotations, etc…).

Exemple de diagramme

imagebrowser image

Tout n’est pas parfait mais l’outil a le mérite d’exister et de fournir une alternative graphique à une stack trace.

Parmi les reproches on peut citer :

  • Un seul développeur actif sur le projet
  • Pas de possibilité d’exporter le schéma autre que HTML/PDF/GIF (Le format XMI aurait été très utile).

Vous avez trouvé cette publication utile? Cliquer sur
Ippon
Ippon est un cabinet de conseil en technologies, créé en 2002 par un sportif de Haut Niveau et un polytechnicien, avec pour ambition de devenir leader sur les solutions Digitales, Cloud et BigData.

Ippon accompagne les entreprises dans le développement et la transformation de leur système d’information avec des applications performantes et des solutions robustes.

Ippon propose une offre de services à 360° pour répondre à l’ensemble des besoins en innovation technologique : Conseil, Design, Développement, Hébergement et Formation.

Nous avons réalisé, en 2017, un chiffre d’affaires de 31 M€ en croissance organique de 30%. Nous sommes aujourd’hui un groupe international riche de plus de 320 consultants répartis en France, aux USA, en Australie et au Maroc.
FRANCE Website LinkedIn