- Sonar (Qualité logicielle)
-
Sonar (Qualité logicielle) Tableau de bord SonarEnvironnement Multi-plateforme Langue anglais Type Qualité logicielle,
Analyse statique de programmesLicence GNU LGPL Site web sonar.codehaus.org
www.sonarsource.com.modifier Sonar est un logiciel libre permettant de mesurer la qualité du code source sur les projets de développement java. Sonar est distribué selon les termes de la licence LGPL v3.
Le code source est analysé suivant sept axes :
- identification des duplications de code ;
- mesure du niveau de documentation ;
- respect des règles de programmation ;
- détection des bugs potentiels ;
- évaluation de la couverture de code par les tests unitaires ;
- analyse de la répartition de la complexité ;
- analyse du Design et de l'Architecture d'une application et en faire ressortir des métriques orientées objet.
L'ensemble de ces métriques qualité permettent d'évaluer rapidement la dette technique (en) de chaque projet. Une interface Web permet à la fois d'administrer l'outil (exclusion de code source, activation des profils qualité, définition des seuils d'alertes, …) et de consulter les résultats en croisant les indicateurs et en offrant plusieurs modes de restitution (clouds, treemap, hotspots, timemachine, …).
Sommaire
Principe de fonctionnement
Sonar s'appuie sur 3 composants :
- un plugin Maven ou une tâche Ant en charge de l'analyse du code source,
- une base de données dans laquelle sont stockés l'ensemble des résultats des analyses
- et un site web pour la partie reporting et pilotage.
Cette architecture permet d'utiliser Sonar pour des audits de code ponctuels, mais également dans le cadre d'une démarche d'amélioration continue. L'utilisation d'un plugin maven pour la partie collecte de données permet en effet d'utiliser tous les moteurs d'intégration continue pour automatiser le lancement des analyses.
Open Source
De nombreuses briques open source existent qui permettent d'analyser le code source Java mais chacune d'entre elles requiert un effort de configuration. Sonar intègre la plupart de ces briques tout en réduisant le coût de mise en œuvre et en permettant de croiser les résultats. Sonar s'appuie notamment sur :
- Duplication de code : CPD - PMD ;
- Test unitaires et couverture de code : Cobertura, Clover (en), Emma (en), JUnit, Surefire ;
- Règles de programmation : Checkstyle, PMD ;
- Bugs potentiels : FindBugs.
Concernant le niveau de documentation et les métriques standards comme la complexité et le nombre de lignes de code, Sonar utilise son propre moteur d'analyse.
Extensibilité
Sonar a été développé en s'appuyant sur un cœur extensible. Cela signifie qu'il est possible pour qui le souhaite d'étendre ce cœur afin d'augmenter les fonctionnalités (ajout d'un nouveau langage, calcul d'une nouvelle métrique, ajout de règles de programmation…). Le portail des plugins Sonar permet d'accéder à la liste des extensions existantes. Aujourd'hui, plusieurs extensions Open Source et commerciales permettent de couvrir les langages PHP, Flex, PL/SQL, Cobol, Natural, Abap et Visual Basic 6.
Un plugin intègre la méthode SQALE pour calculer les indices de qualité.
Voir aussi
Analyse statique de programmes
Liens externes
- (en) Site officiel de Sonar
- (en) Site de démonstration de Sonar
- (en) SonarSource : The Sonar Company
- (fr) Introduction à Sonar
Autres outils open source
Wikimedia Foundation. 2010.