- Table of contents
- Documentation Technique
Documentation Technique¶
JTheque Metrics est une application permettant de calculer les métriques d'un projet Java. Cette application est codée en Java est utilise le Core modulaire JTheque Core.
Ce document présente les caractéristiques techniques de l'application JTheque Metrics.
JTheque Metrics Module est le module permettant de calculer les métriques d'un projet java.
1 Architecture¶
L'architecture de JTheque Metrics Module est une architecture en couches :- Vue
- Controller : Les controllers de la vue. Les controllers sont exposés par leur interfaces IXXXController.
- JThequeAction : Les actions qui peuvent être éxécutés de la vue.
- View : Les vues. Les vues sont exposées par leur interfaces IXXXView.
- Service : Les services de l'application. Ces services sont exposés par leurs interfaces IXXXService.
Les différentes couches sont injectés par IOC dans les autres couches.
2 Sauvegarde des configurations¶
Pour sauvegarder les congurations, on utilise la classe CongManager pour stocker les diérentes congurations sous la forme d'une instance de MetricsConguration qui comprend un nom et une liste de ProjectDenition.
Cette classe est un état au sens de JTheque Core. Il va donc être sauvegardé et restauré entre 2 lancements de JTheque Metrics. Cet état délegue le chargement et la sauvegarde de l'état au Core.
3 Calcul des métriques¶
Les métriques des chiers sont calculées en 2 phases :- On parcours la classe avec un parseur de chier Java (JavaParser), cela permet de compter les méthodes et les constructeurs et d'enregistrer des pointeurs pour ces derniers pour ensuite compter leurs métriques.
- On parcours la classe ligne par compter les lignes, les lignes de code et les lignes de commentaires. Pour ce faire, on utilise java.nio et un simple Scanner. On utilise ensuite les différents pointeurs créé en phase 1 pour enregistrer les métriques des sous-éléments.
4 Affichage des métriques¶
L'achage des métriques est fait dans un JTreeTable (un arbre à colonnes). On utilise le TreeTableModel pour créer un modèle pour afficher les métriques qui ont été précédemment calculées.