lundi 13 juillet 2009

Optimiser : Sonar


Sonar est un outil permettant de mesurer la qualité d'une application.
Initialement, Sonar était dédié uniquement aux applications JAVA/JEE. Depuis, plusieurs plugins ont été développés pour intégrer les langages suivants : C, C++, Cobol, Flex, PHP, PL/SQLVB, .Net et Web (JSP et JSF)
Sonar oriente son analyse sur 7 aspects :
  • Détection de duplication de code.
  • Mesure du niveau de documentation (Java Doc + commentaire dans le code)
  • Détection des violations des règles de programmation.
  • Détection des bugs potentiels.
  • Mesure du taux de couverture du code par les tests unitaires.
  • Mesure de la complexité du code et de sa répartition au sein des classes et méthodes.
  • Analyse de l'architecture de l'application et détection des redondances cycliques.
Sonar s'appuie sur plusieurs outils pour faire son analyse :
  • CPD (Copy Paste Detector) pour la détection de code dupliqué.
  • Checkstyle et/ou PMD (Project Mess Detector) pour la détection des violations de règles de programmation.
  • Junit/Cobertura/Emma pour l’exécution des tests unitaires et la création des rapports.
  • FindBugs pour la détection des bugs éventuels.
Pour fonctionner, Sonar doit être lancé par un script MAVEN ou ANT. Les résultats sont stockés dans une base de données (MySql, Oracle, Postgre Sql, Derby, Sql Server). Les rapports sont accessibles via l'interface Web proposée par Sonar.