Affichage des articles dont le libellé est diagramme de classes. Afficher tous les articles
Affichage des articles dont le libellé est diagramme de classes. Afficher tous les articles

vendredi 30 juillet 2010

Rétro-conception UML de classes par introspection java


Objectif

Utiliser les mécanismes d’introspection java pour afficher un diagramme de classes UML.

Introduction

Hier je me suis demandé s’il était faisable de générer un diagramme UML à partir d’une classe de base Java. Après une nuit blanche passée à plancher sur le problème, voici la première version d’un outil développé en 24 heures pouvant se révéler fort pratique et qui va bientôt concurrencer doxygen ou umlGraph ;)

Pseudo cahier des charges

  • Traiter toutes les classes dépendantes d’une classe mère ( ou classe de base )
  • Ne pas introspecter les packages java natifs ( commençant par java, javax et sun )
  • Afficher les superClasses, les interfaces et les classes utilisées par les attributs de classe
  • Afficher un diagramme UML global au format PNG à partir de l’outil graphviz

Améliorations ( version 1 )

  • Traiter toutes les classes d’une arborescence ( package ou racine )
  • Discriminer les interfaces des classes normales
  • Mettre les superclasses au dessus des classes spécialisées

Améliorations ( version 2 )

  • Faire des sous-graphes par packages
  • Gérer en objet les éléments Graphviz
  • Paramètres gérés : afficher les détails, détailler les interfaces, afficher les superclasses

Améliorations possibles

  • Traiter des jar
  • Générer un fichier petal rose
  • Remplir un fichier de propriétés avec les informations ( quasiment déjà intégré depuis la version 0 )

Diagramme UML de l’outil ( version 0 )

Diagramme UML de l’outil ( version 1 )

Diagramme UML utilisé pour les tests

Diagrammes UML utilisés pour les tests ( version 2 )

 

Pour approfondir les sujets