accueilLogicielsDéveloppement et Qualité LogicielsQualité logicielle
 

Sonar

Sonar est un logiciel open source permettant de mesurer la qualité du code source sur les projets de développement java.


Sonar utilise notamment les outils suivants pour effectuer ses analyses :

- Checkstyle
- Clover
- Cobertura
- Findbugs
- Google analytics
- PMD
- Squid for Java
- Surefire

Il y en a d’autres disponibles que l’on peut ajouter après l’installation via un système de plugin.

Architecture technique

Sonar s’appuie sur 3 composants :

- un plugin Maven en charge de l’analyse du code source,
- une base de données (MySQL/Oracle/PostgreSQL/MS SQLServer) dans laquelle sont stockés l’ensemble des résultats des analyses
- une interface web

sonar peut etre installé soit
- en mode standalone
- en tant que webapp tomcat

Analyser un projet

Analyser un projet maven

- en utilisant les lignes de commandes maven

mvn clean install
mvn sonar:sonar

- en utilisant la plateforme d’intégration continue Hudson

il existe un plugin Sonar pour Hudson qui permet de lancer une tâche post-build d’analyse Sonar.

Analyser un projet non maven

http://docs.codehaus.org/display/SO...

Dans le cas d’un projet non-maven il faudra alors le maveniser en ajoutant un fichier pom.xml à la racine. Cela permettre de réaliser rapidement une première analyse

<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>[GROUPID]</groupId>
<artifactId>[ARTIFACTID]</artifactId>
<name>[PROJECT NAME]</name>
<version>[PROJECT VERSION]</version>
<build>
      <sourceDirectory>emplacement des sources\</sourceDirectory>
      <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.5</source>
                <target>1.5</target>
             <excludes>
                    <exclude>**/*.*</exclude>
                </excludes>
            </configuration>
         </plugin>
      </plugins>
</build>
<properties>
        <sonar.dynamicAnalysis>false</sonar.dynamicAnalysis>
</properties>
</project>

Interface web Sonar

La vue d’un projet est composée du dashboard (l’écran de contrôle), ainsi que d’un menu à sa gauche. Ce menu permet d’accéder aux principales informations :

- Le "Dashboard" qui propose en une page une visualisation complète de la qualité du projet.
- Le "Violations drilldown" est la page principale regroupant l’ensemble des violations des règles de qualité.
- La "Time machine" montre l’évolution du projet au cours du temps.
- Les "Clouds", ou nuages, montrent les "quick wins" ou les points critiques du projet.
- Les "Hotspots" regroupent en une page les classes les plus influentes sur la qualité.
- Les "Settings" permettent de configurer le projet.

La page d’accueil d’un projet est son dashboard, qui se divise en plusieurs blocs d’informations.

- les statistiques principales : le nombre de lignes de code, de packages, de classes Java le pourcentage de commentaires dans le code. les données sur la duplication de code

- la répartition de la complexité cyclomatique par méthode ou par classe.

- le pourcentage du respect des règles de codage et de dénombrer les violations .

- les tests unitaires ainsi que sur la couverture du code par ceux-ci.

- les commentaires

Il est possible de faire afficher d’autres blocs d’informations, selon les plugins installés sur le serveur Sonar.

vanessa.parisse@dsi.cnrs.fr


ARESU
Direction des Systèmes d'Information du CNRS

358 rue P.-G. de Gennes
31676 LABEGE Cedex

Bâtiment 1,
1 Place Aristide Briand
92195 MEUDON Cedex



 

 

Direction des Systèmes d'Information

Pôle ARESU

Accueil Imprimer Plan du site Credits