Sonar devant le Java User Group de Lausanne

Freddy Mallet
Freddy Malletco-founder at SonarSource à SonarSource
Sonar au JUGL




        Freddy Mallet
        http://sonar.codehaus.org

        Le 2 Avril 2009
Les 7 péchés capitaux ...
Les 7 péchés capitaux ...
Appliqués au code source

    Aucune convention de codage




    Beaucoup de duplications




    Peu de couverture par les tests unitaires




    Absence de commentaires




    Beaucoup de bugs potentiels




    Complexité par composant importante




    Design spaghetti

La mission divine de Sonar
Lutter contre l'axe du mal ... car le code source le vaut bien !
Niveau d'armement actuel
5/7, les infidèles n'ont qu'à bien se tenir

    OK : Aucune convention de codage




    OK : Beaucoup de duplications




    OK : Peu de couverture par les tests unitaires




    KO : Absence de commentaires




    OK : Beaucoup de bugs potentiels




    OK : Complexité par composants importante




    KO : Design spaghetti

Rappel de bon sens
Un projet de qualité est :

    Un projet géré sous



    contrôleur de version
    Un projet qui compile



    (Intégration continue)
    Un projet avec une



    traçabilité technique /
    fonctionnelle
    Un projet qui n'a pas



    succombé à l'un des 7
    péchés capitaux
Aucune conventions de codage (1/7)
Checkstyle et PMD
Beaucoup de duplications (2/7)
PMD - CPD
Peu de couverture par les tests (3/7)
Junit, TestNG, Surfire, Clover, Cobertura
Absence de commentaires (4/7)
JavaNCSS 2 est en route

    Ratio de méthode publiques hors setter/getter



    avec javadoc
    Ratio de classes/interfaces publiques avec



    javadoc
    Densité de commentaire

Beaucoup de bugs potentiels (5/7)
Findbugs


  if (listeners == null)
      listeners.remove(listener);


  Sun java : JDK1.6.0, b105,
  sun.awt.x11.XMSelection
  lines 243-244
Complexité trop élevée (6/7)
JavaNCSS
Design spaghetti (7/7)
?

    Les produits références du marché



        XDepend
    


        SonarJ
    


        Structure101
    



    Quelques librairies



        JDepend
    


        Architecture Rules
    


        Macker
    
Sonar à coeur ouvert

                  Sonar Maven Plugin
 Source            Cobertura         JavaNCSS      Surefire

                                                               1-
  Code                PMD           Checkstyle    Changelog         mvn sonar
                                                   Changelog
             1

                                                  2
                     XML
                               3
                     Files


                                   Sonar web interface
                     5
          Sonar
                                                               2-
           DB                                                       http://sonar
 4

     Aggregator
     & Analyser
De quoi demain sera fait ?

    Agrégation des projets techniques par



    application, service, département...
    Ré-écriture de JavaNCSS




    Amélioration du moteur de règles




    Couverture de PHP




    Mécanismes de gestion des autorisations




    ...

Les atouts

    Facilité de mise en oeuvre :


              mvn org.codehaus.sonar:sonar-maven-plugin:1.7:sonar


    Vue consolidée sur l'ensemble du parc



    applicatif
    Suivi temporel des indicateurs




    Gestion centralisée de la qualité (règles,



    seuils)
    Client web




    Activité de la communauté

Une demo vaut mieux qu'un long sermon
Questions & Réponses
& confessions




                Merci
            http://sonar.codehaus.org
           http://www.sonarsource.com
1 sur 18

Recommandé

Déploiement, orchestration & sécurisation d’APIs par
Déploiement, orchestration & sécurisation d’APIsDéploiement, orchestration & sécurisation d’APIs
Déploiement, orchestration & sécurisation d’APIsNicolas Herbaut
315 vues33 diapositives
Comment identifier et analyser les contenus conspiratoire sur Youtube par
Comment identifier et analyser les contenus conspiratoire sur YoutubeComment identifier et analyser les contenus conspiratoire sur Youtube
Comment identifier et analyser les contenus conspiratoire sur YoutubeNicolas Herbaut
45 vues13 diapositives
Hands on Sonar par
Hands on SonarHands on Sonar
Hands on SonarMathias Kluba
1.2K vues29 diapositives
HTML5 en Entreprise par
HTML5 en EntrepriseHTML5 en Entreprise
HTML5 en Entreprisele.genie.logiciel
919 vues26 diapositives
Bbl sur les tests par
Bbl sur les testsBbl sur les tests
Bbl sur les testsIdriss Neumann
14.8K vues21 diapositives
Git par
GitGit
Gitepixelic
872 vues33 diapositives

Contenu connexe

Similaire à Sonar devant le Java User Group de Lausanne

Sonar - Freddy Mallet - April 2009 par
Sonar - Freddy Mallet - April 2009Sonar - Freddy Mallet - April 2009
Sonar - Freddy Mallet - April 2009JUG Lausanne
669 vues18 diapositives
Sonar 2.0 au JUG Genève par
Sonar 2.0 au JUG GenèveSonar 2.0 au JUG Genève
Sonar 2.0 au JUG GenèveFreddy Mallet
547 vues35 diapositives
Sonar 2.0 au GenevaJUG par Freddy Mallet par
Sonar 2.0 au GenevaJUG par Freddy MalletSonar 2.0 au GenevaJUG par Freddy Mallet
Sonar 2.0 au GenevaJUG par Freddy MalletGenevaJUG
2.3K vues35 diapositives
Soirée Qualité Logicielle avec Sonar par
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarElsassJUG
1.7K vues58 diapositives
0251-formation-java-programmation-objet.pdf par
0251-formation-java-programmation-objet.pdf0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdfOmbotimbe Salifou
2 vues507 diapositives
Session GWT Devoxx France 2012 Cobra par
Session GWT Devoxx France 2012 CobraSession GWT Devoxx France 2012 Cobra
Session GWT Devoxx France 2012 CobraDNG Consulting
3.1K vues18 diapositives

Similaire à Sonar devant le Java User Group de Lausanne(20)

Sonar - Freddy Mallet - April 2009 par JUG Lausanne
Sonar - Freddy Mallet - April 2009Sonar - Freddy Mallet - April 2009
Sonar - Freddy Mallet - April 2009
JUG Lausanne669 vues
Sonar 2.0 au GenevaJUG par Freddy Mallet par GenevaJUG
Sonar 2.0 au GenevaJUG par Freddy MalletSonar 2.0 au GenevaJUG par Freddy Mallet
Sonar 2.0 au GenevaJUG par Freddy Mallet
GenevaJUG2.3K vues
Soirée Qualité Logicielle avec Sonar par ElsassJUG
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec Sonar
ElsassJUG1.7K vues
Session GWT Devoxx France 2012 Cobra par DNG Consulting
Session GWT Devoxx France 2012 CobraSession GWT Devoxx France 2012 Cobra
Session GWT Devoxx France 2012 Cobra
DNG Consulting3.1K vues
Soda sotm fr-2013_02_24 par quicky_osm
Soda sotm fr-2013_02_24Soda sotm fr-2013_02_24
Soda sotm fr-2013_02_24
quicky_osm519 vues
Soda sotm fr-2013_02_24 par quicky_osm
Soda sotm fr-2013_02_24Soda sotm fr-2013_02_24
Soda sotm fr-2013_02_24
quicky_osm379 vues
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries par Xavier MARIN
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
Xavier MARIN381 vues
Apache solr andré bois-crettez 08 par Loïc Descotte
Apache solr   andré bois-crettez 08Apache solr   andré bois-crettez 08
Apache solr andré bois-crettez 08
Loïc Descotte1.4K vues
Les ZAPeroTech #4 : REX Oracle Code One 2019 sur l'éco-système Java par DocDoku
Les ZAPeroTech #4 : REX Oracle Code One 2019 sur l'éco-système JavaLes ZAPeroTech #4 : REX Oracle Code One 2019 sur l'éco-système Java
Les ZAPeroTech #4 : REX Oracle Code One 2019 sur l'éco-système Java
DocDoku71 vues
20131210 - Rex Bouygues Telecom - Integration et inspection continue avec RTC... par LeClubQualiteLogicielle
20131210 - Rex Bouygues Telecom - Integration et inspection continue avec RTC...20131210 - Rex Bouygues Telecom - Integration et inspection continue avec RTC...
20131210 - Rex Bouygues Telecom - Integration et inspection continue avec RTC...

Sonar devant le Java User Group de Lausanne

  • 1. Sonar au JUGL Freddy Mallet http://sonar.codehaus.org Le 2 Avril 2009
  • 2. Les 7 péchés capitaux ...
  • 3. Les 7 péchés capitaux ... Appliqués au code source Aucune convention de codage  Beaucoup de duplications  Peu de couverture par les tests unitaires  Absence de commentaires  Beaucoup de bugs potentiels  Complexité par composant importante  Design spaghetti 
  • 4. La mission divine de Sonar Lutter contre l'axe du mal ... car le code source le vaut bien !
  • 5. Niveau d'armement actuel 5/7, les infidèles n'ont qu'à bien se tenir OK : Aucune convention de codage  OK : Beaucoup de duplications  OK : Peu de couverture par les tests unitaires  KO : Absence de commentaires  OK : Beaucoup de bugs potentiels  OK : Complexité par composants importante  KO : Design spaghetti 
  • 6. Rappel de bon sens Un projet de qualité est : Un projet géré sous  contrôleur de version Un projet qui compile  (Intégration continue) Un projet avec une  traçabilité technique / fonctionnelle Un projet qui n'a pas  succombé à l'un des 7 péchés capitaux
  • 7. Aucune conventions de codage (1/7) Checkstyle et PMD
  • 8. Beaucoup de duplications (2/7) PMD - CPD
  • 9. Peu de couverture par les tests (3/7) Junit, TestNG, Surfire, Clover, Cobertura
  • 10. Absence de commentaires (4/7) JavaNCSS 2 est en route Ratio de méthode publiques hors setter/getter  avec javadoc Ratio de classes/interfaces publiques avec  javadoc Densité de commentaire 
  • 11. Beaucoup de bugs potentiels (5/7) Findbugs if (listeners == null) listeners.remove(listener); Sun java : JDK1.6.0, b105, sun.awt.x11.XMSelection lines 243-244
  • 12. Complexité trop élevée (6/7) JavaNCSS
  • 13. Design spaghetti (7/7) ? Les produits références du marché  XDepend  SonarJ  Structure101  Quelques librairies  JDepend  Architecture Rules  Macker 
  • 14. Sonar à coeur ouvert Sonar Maven Plugin Source Cobertura JavaNCSS Surefire 1- Code PMD Checkstyle Changelog mvn sonar Changelog 1 2 XML 3 Files Sonar web interface 5 Sonar 2- DB http://sonar 4 Aggregator & Analyser
  • 15. De quoi demain sera fait ? Agrégation des projets techniques par  application, service, département... Ré-écriture de JavaNCSS  Amélioration du moteur de règles  Couverture de PHP  Mécanismes de gestion des autorisations  ... 
  • 16. Les atouts Facilité de mise en oeuvre :  mvn org.codehaus.sonar:sonar-maven-plugin:1.7:sonar Vue consolidée sur l'ensemble du parc  applicatif Suivi temporel des indicateurs  Gestion centralisée de la qualité (règles,  seuils) Client web  Activité de la communauté 
  • 17. Une demo vaut mieux qu'un long sermon
  • 18. Questions & Réponses & confessions Merci http://sonar.codehaus.org http://www.sonarsource.com