2009-12-08 6 views
1

J'utilise une bibliothèque Java externe pour laquelle je n'ai que les javadocs et que je n'ai pas le code source. Je voudrais générer un diagramme UML à partir des javadocs existants afin que je puisse visualiser la hiérarchie des classes en utilisant quelque chose comme Graphviz. Est-ce possible? Notez que ce que je cherche est une version graphique de overview-tree.html.Générer un diagramme de classes à partir de javadocs existants

Faites-moi savoir si vous avez des idées et/ou des suggestions.

Merci,

Shirley

+0

N'avez-vous même pas les fichiers de classe? –

Répondre

0

Je ne crois pas qu'il y ait un tel outil. La plupart des outils de reverse engineering dépendent du code réel. L'information de javadoc n'est pas garantie pour correspondre au code en tant que 1: 1 pour la structure, le rendant ainsi peu fiable.

0

Je ne connais pas de solution disponible dans le commerce à cette fin. Le plus souvent, les gens ont le code source qui a généré le JavaDoc. Ceci étant dit, le fichier overview-tree.html a traditionnellement un format HTML assez simple. Il ne devrait pas être difficile d'écrire un script qui lirait le fichier sous forme de texte ou de DOM, reconstruirait la hiérarchie des étiquettes UL et LI, et l'utiliserait pour créer un fichier d'entrée pour graphviz. J'ai fait des choses similaires dans le passé avec d'autres formes de données.

C'est juste une question de temps et de compétence avec le langage de script ou les outils appropriés.

Le seul problème de cette approche est que vous n'obtiendrez que la hiérarchie des classes. Vous auriez à le rendre un peu plus intelligent si vous vouliez obtenir le "implémente XYZ" et créer plusieurs hiérarchies. Même si vous pouviez obtenir ces données, vous auriez à manipuler les niveaux de GraphViz pour obtenir une disposition appropriée une fois que vous avez cette structure d'héritage multiple.

Bien sûr, ajouter les détails des membres transformerait cela en un tout nouveau problème puisque vous devrez accéder à d'autres fichiers HTML.

Questions connexes