Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Hands on Sonar

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Prochain SlideShare
Model de qualité @ msdevmtl
Model de qualité @ msdevmtl
Chargement dans…3
×

Consultez-les par la suite

1 sur 29 Publicité

Plus De Contenu Connexe

Diaporamas pour vous (13)

Les utilisateurs ont également aimé (20)

Publicité

Similaire à Hands on Sonar (20)

Publicité

Plus récents (20)

Hands on Sonar

  1. 1. Paris Novembre 2012 Hands on Sonar Par Alexandre Victoor et Mathias Kluba
  2. 2. Qui sommes nous? Mathias Kluba (FastConnect) Expert .Net et Java, créateur de NDeps ;) @mathiaskluba Alexandre Victoor (SGCIB) Contributeur principal du plugin Sonar pour .Net @alex_victoor
  3. 3. Pourquoi Sonar • La crise fait rage, il faut réduire les coûts • mais souvent les projets vieillissent mal • et accumulent de la dette technique
  4. 4. Plan • Introduction à la qualimétrie • Sonar in a Nutshell • Comment ça marche • Etendre Sonar (API) • Fonctionnalités avancées
  5. 5. Introduction à la qualimétrie Qu’est ce que la qualimétrie? • C’est mesurer la qualité.
  6. 6. Introduction à la qualimétrie Qu’est ce que la qualité d’un logiciel ? • Robustesse • Maintenance • Evolutivité • Performance • Sécurité
  7. 7. Introduction à la qualimétrie Qu’est ce que la qualité d’un logiciel ? selon SQALE (http://www.sqale.org/) • Testability • Reliability • Changeability • Efficiency • Security • Maintenability • Portability • Reusability
  8. 8. Introduction à la qualimétrie Pourquoi mesurer la qualité? • Avoir plus d’information pour prendre des décisions • Suivre son évolution: dégradation ou amélioration • Transparence • Réduire la « dette technique » et se fixer des objectifs réalistes • Justifier le refactoring
  9. 9. Introduction à la qualimétrie Pourquoi mesurer la qualité? • On monitore l’état du logiciel en production: – Erreurs, warnings, … – consommation CPU/RAM, … • Et pourquoi pas monitorer l’état du logiciel avant: – Est-ce que ça compile? – Est-ce qu’il a de régressions? (tests unitaires) – Est-ce que la qualité se dégrade ?
  10. 10. Introduction à la qualimétrie Comment mesurer la qualité ?
  11. 11. Introduction à la qualimétrie Comment mesurer la qualité ? • Résultat des tests • Couverture du code par les tests • Duplication • Complexité cyclomatique • Convention de nommage • Bugs potentiels • Erreurs de design
  12. 12. Introduction à la qualimétrie Résultat des tests Solution: corriger les tests
  13. 13. Introduction à la qualimétrie Couverture du code par les tests Solution: rédiger plus de tests
  14. 14. Introduction à la qualimétrie Duplication Solution: factoriser
  15. 15. Introduction à la qualimétrie Complexité cyclomatique Solution: SoC, découper en plus petites méthodes CC = 11
  16. 16. Introduction à la qualimétrie Convention de nommage Solution: respecter UNE convention (peu importe laquelle)
  17. 17. Introduction à la qualimétrie Bugs potentiels Solution: corriger les bugs
  18. 18. Introduction à la qualimétrie Erreurs de design Solution: SRP, réduire le LCOM, découpler
  19. 19. Sonar le Free de la qualimétrie
  20. 20. Sonar in a Nutshell
  21. 21. Coment ça marche Qu’est ce que Sonar ? • Un « client » qui analyse votre projet (Java, C#, etc.) • Un portail qui affiche le résultat des analyses Mais aussi • Un plugin Eclipse • Un plugin Jenkins/Hudson • Etc.
  22. 22. Coment ça marche Qu’est ce que Sonar ? • Un projet OpenSource, gratuit • Codé en Java • Disponible sur https://github.com/SonarCommunity • Avec une mailling-list dev@sonar.codehaus.org • Maintenue par la société SonarSource • Qui réalise le support et des plugins commerciaux
  23. 23. Coment ça marche
  24. 24. Etendre Sonar • Une API REST pour – Injecter des indicateurs manuels – Ou business – générer des rapports • Pour aller plus loin une API Plugin – Batch side: les capteurs – Server side: l’IHM – De la glue avec Pico
  25. 25. REST API • Ressources sonar ? • Metrics et measures ? • Exemples de requêtes: les events http://nemo.sonarsource.org/api/events?resource=org.codehaus.sonar:son ar&categories=Alert,Version&fromDate=2012-07-01&toDate=2012-08- 31
  26. 26. Plugin API, batch side • Sensor & SensorContext • MavenPluginHandler • Decorator
  27. 27. Plugin API, server side • Composants liés aux langages, aux règles ProfileImporter, RulesRepository… • GWT Documenté mais bientôt deprecated • RAILS Simple, dynamique mais…
  28. 28. DI avec PICO • Enregistrement des composants par une classe « plugin » • Injection par constructeur • Utilisation d’interfaces de marquage
  29. 29. Fonctionnalités évoluées • Filtres • Dashboards • Plans d’actions

×