SlideShare una empresa de Scribd logo
1 de 29
Paris Novembre 2012


            Hands on Sonar

            Par Alexandre Victoor
            et Mathias Kluba
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
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
Plan

•   Introduction à la qualimétrie
•   Sonar in a Nutshell
•   Comment ça marche
•   Etendre Sonar (API)
•   Fonctionnalités avancées
Introduction à la qualimétrie

Qu’est ce que la qualimétrie?
• C’est mesurer la qualité.
Introduction à la qualimétrie

Qu’est ce que la qualité d’un
logiciel ?
•   Robustesse
•   Maintenance
•   Evolutivité
•   Performance
•   Sécurité
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
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
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 ?
Introduction à la qualimétrie

Comment mesurer la qualité ?
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
Introduction à la qualimétrie

Résultat des tests
Solution: corriger les tests
Introduction à la qualimétrie

Couverture du code
par les tests
Solution:
rédiger plus de tests
Introduction à la qualimétrie

Duplication
Solution: factoriser
Introduction à la qualimétrie

Complexité cyclomatique
Solution: SoC, découper en plus petites méthodes



                               CC = 11
Introduction à la qualimétrie

Convention de nommage
Solution: respecter UNE convention
(peu importe laquelle)
Introduction à la qualimétrie

Bugs potentiels
Solution: corriger les bugs
Introduction à la qualimétrie

Erreurs de design
Solution: SRP, réduire le LCOM, découpler
Sonar le Free de la qualimétrie
Sonar in a Nutshell
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.
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
Coment ça marche
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
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
Plugin API, batch side

• Sensor & SensorContext

• MavenPluginHandler

• Decorator
Plugin API, server side

• Composants liés aux langages, aux règles
  ProfileImporter, RulesRepository…


• GWT
  Documenté mais bientôt deprecated


• RAILS
  Simple, dynamique mais…
DI avec PICO


• Enregistrement des composants par une
  classe « plugin »

• Injection par constructeur

• Utilisation d’interfaces de marquage
Fonctionnalités évoluées

• Filtres

• Dashboards

• Plans d’actions

Más contenido relacionado

La actualidad más candente

Introduction à la qualité logicielle (1/5)
Introduction à la qualité logicielle (1/5)Introduction à la qualité logicielle (1/5)
Introduction à la qualité logicielle (1/5)Sylvain Leroy
 
20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?LeClubQualiteLogicielle
 
Conférence: L'assurance qualité au-delà de la qualité logicielle
Conférence: L'assurance qualité au-delà de la qualité logicielleConférence: L'assurance qualité au-delà de la qualité logicielle
Conférence: L'assurance qualité au-delà de la qualité logiciellegeosaa
 
Assurance Qualité logicielle
Assurance Qualité logicielleAssurance Qualité logicielle
Assurance Qualité logicielleSylvain Leroy
 
20140410 - Choisir et implanter un outil de test
20140410 - Choisir et implanter un outil de test20140410 - Choisir et implanter un outil de test
20140410 - Choisir et implanter un outil de testLeClubQualiteLogicielle
 
20130523 04 - Grille d'évaluation - Gestion du patrimoine de test
20130523 04 - Grille d'évaluation - Gestion du patrimoine de test20130523 04 - Grille d'évaluation - Gestion du patrimoine de test
20130523 04 - Grille d'évaluation - Gestion du patrimoine de testLeClubQualiteLogicielle
 
20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOpsLeClubQualiteLogicielle
 
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologieLeClubQualiteLogicielle
 
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualifeSoirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualifeTelecomValley
 
20151013 - Agirc arrco : Behavior driven development
20151013 - Agirc arrco : Behavior driven development20151013 - Agirc arrco : Behavior driven development
20151013 - Agirc arrco : Behavior driven developmentLeClubQualiteLogicielle
 
[Agile Testing Day] Introduction
[Agile Testing Day] Introduction[Agile Testing Day] Introduction
[Agile Testing Day] IntroductionCellenza
 

La actualidad más candente (13)

Introduction à la qualité logicielle (1/5)
Introduction à la qualité logicielle (1/5)Introduction à la qualité logicielle (1/5)
Introduction à la qualité logicielle (1/5)
 
20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?
 
Conférence: L'assurance qualité au-delà de la qualité logicielle
Conférence: L'assurance qualité au-delà de la qualité logicielleConférence: L'assurance qualité au-delà de la qualité logicielle
Conférence: L'assurance qualité au-delà de la qualité logicielle
 
Assurance Qualité logicielle
Assurance Qualité logicielleAssurance Qualité logicielle
Assurance Qualité logicielle
 
20140410 - Choisir et implanter un outil de test
20140410 - Choisir et implanter un outil de test20140410 - Choisir et implanter un outil de test
20140410 - Choisir et implanter un outil de test
 
20130523 04 - Grille d'évaluation - Gestion du patrimoine de test
20130523 04 - Grille d'évaluation - Gestion du patrimoine de test20130523 04 - Grille d'évaluation - Gestion du patrimoine de test
20130523 04 - Grille d'évaluation - Gestion du patrimoine de test
 
20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps
 
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
 
ATDD Visuel
ATDD VisuelATDD Visuel
ATDD Visuel
 
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualifeSoirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
 
20151013 - Agirc arrco : Behavior driven development
20151013 - Agirc arrco : Behavior driven development20151013 - Agirc arrco : Behavior driven development
20151013 - Agirc arrco : Behavior driven development
 
20111004 04 - Présentation ATDD
20111004 04 - Présentation ATDD20111004 04 - Présentation ATDD
20111004 04 - Présentation ATDD
 
[Agile Testing Day] Introduction
[Agile Testing Day] Introduction[Agile Testing Day] Introduction
[Agile Testing Day] Introduction
 

Destacado

Processing 01: Introducción
Processing 01: IntroducciónProcessing 01: Introducción
Processing 01: IntroducciónHerbert Spencer
 
Audit éxposé
Audit éxposéAudit éxposé
Audit éxposéImen Oua
 
Up and Under Hors série spécial rugby féminin
Up and Under Hors série spécial rugby fémininUp and Under Hors série spécial rugby féminin
Up and Under Hors série spécial rugby fémininMarc De Jongy
 
El reloj del futuro
El reloj del futuroEl reloj del futuro
El reloj del futurominimaripi
 
L'activité e-commerce des TPE-PME en région - Edition 2013
L'activité e-commerce des TPE-PME en région - Edition 2013L'activité e-commerce des TPE-PME en région - Edition 2013
L'activité e-commerce des TPE-PME en région - Edition 2013PowerBoutique
 
PresentacióN De Curso
PresentacióN De CursoPresentacióN De Curso
PresentacióN De Cursoabrahamjair
 
Direct assurance - Baromètre de l'assurance directe des cyberconsommateurs
Direct assurance - Baromètre de l'assurance directe des cyberconsommateursDirect assurance - Baromètre de l'assurance directe des cyberconsommateurs
Direct assurance - Baromètre de l'assurance directe des cyberconsommateursDirect Assurance
 
Rahul's lessonplan
Rahul's lessonplanRahul's lessonplan
Rahul's lessonplangctesivani
 
Expresiones fraccionarias
Expresiones fraccionariasExpresiones fraccionarias
Expresiones fraccionariasXaviSei
 
Poligonos
PoligonosPoligonos
PoligonosXaviSei
 
Prise en charge de l'hypertension
Prise en charge de l'hypertensionPrise en charge de l'hypertension
Prise en charge de l'hypertensionNECH-CIEH
 
L' àlbum de la Jennifer
L' àlbum de la JenniferL' àlbum de la Jennifer
L' àlbum de la JenniferUB
 
Exposición en la Escuela de Arquitectura
Exposición en la Escuela de ArquitecturaExposición en la Escuela de Arquitectura
Exposición en la Escuela de Arquitecturakannaya
 
Tres de cada diez detenidos de bandas latinas son menores
Tres de cada diez detenidos de bandas latinas son menoresTres de cada diez detenidos de bandas latinas son menores
Tres de cada diez detenidos de bandas latinas son menoresfernandoatienzagarcia
 
proyecto de investigación de konvergencia
proyecto de investigación de konvergenciaproyecto de investigación de konvergencia
proyecto de investigación de konvergenciaangela castro
 
Minerales visita a museos virtuales semi completo
Minerales visita a museos virtuales semi completoMinerales visita a museos virtuales semi completo
Minerales visita a museos virtuales semi completomonicaitzel18
 
Echange à Céret
Echange à CéretEchange à Céret
Echange à Céretesanfe
 
Elteclas.com
Elteclas.comElteclas.com
Elteclas.comgfrances
 

Destacado (20)

Processing 01: Introducción
Processing 01: IntroducciónProcessing 01: Introducción
Processing 01: Introducción
 
Audit éxposé
Audit éxposéAudit éxposé
Audit éxposé
 
Up and Under Hors série spécial rugby féminin
Up and Under Hors série spécial rugby fémininUp and Under Hors série spécial rugby féminin
Up and Under Hors série spécial rugby féminin
 
El reloj del futuro
El reloj del futuroEl reloj del futuro
El reloj del futuro
 
Las menores beben y fuman más
Las menores beben y fuman másLas menores beben y fuman más
Las menores beben y fuman más
 
L'activité e-commerce des TPE-PME en région - Edition 2013
L'activité e-commerce des TPE-PME en région - Edition 2013L'activité e-commerce des TPE-PME en région - Edition 2013
L'activité e-commerce des TPE-PME en région - Edition 2013
 
PresentacióN De Curso
PresentacióN De CursoPresentacióN De Curso
PresentacióN De Curso
 
Direct assurance - Baromètre de l'assurance directe des cyberconsommateurs
Direct assurance - Baromètre de l'assurance directe des cyberconsommateursDirect assurance - Baromètre de l'assurance directe des cyberconsommateurs
Direct assurance - Baromètre de l'assurance directe des cyberconsommateurs
 
Rahul's lessonplan
Rahul's lessonplanRahul's lessonplan
Rahul's lessonplan
 
Uo facebook
Uo facebookUo facebook
Uo facebook
 
Expresiones fraccionarias
Expresiones fraccionariasExpresiones fraccionarias
Expresiones fraccionarias
 
Poligonos
PoligonosPoligonos
Poligonos
 
Prise en charge de l'hypertension
Prise en charge de l'hypertensionPrise en charge de l'hypertension
Prise en charge de l'hypertension
 
L' àlbum de la Jennifer
L' àlbum de la JenniferL' àlbum de la Jennifer
L' àlbum de la Jennifer
 
Exposición en la Escuela de Arquitectura
Exposición en la Escuela de ArquitecturaExposición en la Escuela de Arquitectura
Exposición en la Escuela de Arquitectura
 
Tres de cada diez detenidos de bandas latinas son menores
Tres de cada diez detenidos de bandas latinas son menoresTres de cada diez detenidos de bandas latinas son menores
Tres de cada diez detenidos de bandas latinas son menores
 
proyecto de investigación de konvergencia
proyecto de investigación de konvergenciaproyecto de investigación de konvergencia
proyecto de investigación de konvergencia
 
Minerales visita a museos virtuales semi completo
Minerales visita a museos virtuales semi completoMinerales visita a museos virtuales semi completo
Minerales visita a museos virtuales semi completo
 
Echange à Céret
Echange à CéretEchange à Céret
Echange à Céret
 
Elteclas.com
Elteclas.comElteclas.com
Elteclas.com
 

Similar a Hands on Sonar

Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie TrudelHa zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie TrudelAgile Montréal
 
qualimétrie logiciel - Entreprise Software Analytic - nov 2015
qualimétrie logiciel -  Entreprise Software Analytic - nov 2015qualimétrie logiciel -  Entreprise Software Analytic - nov 2015
qualimétrie logiciel - Entreprise Software Analytic - nov 2015Julien Vq
 
meetup devops aix marseille du 16/05/23
meetup devops aix marseille du 16/05/23meetup devops aix marseille du 16/05/23
meetup devops aix marseille du 16/05/23Frederic Leger
 
Gestion des performances applicatives en environnement Cloud et Virtualisation
Gestion des performances applicatives en environnement Cloud et VirtualisationGestion des performances applicatives en environnement Cloud et Virtualisation
Gestion des performances applicatives en environnement Cloud et VirtualisationPerformanceVision (previously SecurActive)
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOpsMicrosoft
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logicielsSylvain Leroy
 
Introduction au génie logiciel
Introduction au génie logicielIntroduction au génie logiciel
Introduction au génie logicielMohamed Diallo
 
Solutions Linux2008 Construire Sa Vision Qualite
Solutions Linux2008 Construire Sa Vision QualiteSolutions Linux2008 Construire Sa Vision Qualite
Solutions Linux2008 Construire Sa Vision Qualitefrancois.le.droff
 
2009-01-29 Squale aux Jeudis de l'Objet
2009-01-29 Squale aux Jeudis de l'Objet2009-01-29 Squale aux Jeudis de l'Objet
2009-01-29 Squale aux Jeudis de l'ObjetFabrice Bellingard
 
QoS, QoE, troubleshooting, supervision et optimisation de la qualité sur Lync...
QoS, QoE, troubleshooting, supervision et optimisation de la qualité sur Lync...QoS, QoE, troubleshooting, supervision et optimisation de la qualité sur Lync...
QoS, QoE, troubleshooting, supervision et optimisation de la qualité sur Lync...Microsoft Technet France
 
QoS, QoE, troubleshooting, supervision et optimisation de la qualité sur Lync...
QoS, QoE, troubleshooting, supervision et optimisation de la qualité sur Lync...QoS, QoE, troubleshooting, supervision et optimisation de la qualité sur Lync...
QoS, QoE, troubleshooting, supervision et optimisation de la qualité sur Lync...Microsoft Décideurs IT
 
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...TelecomValley
 
Oracle cloud-toolbox-vf
Oracle cloud-toolbox-vfOracle cloud-toolbox-vf
Oracle cloud-toolbox-vfANASYS
 
20090609 05 - Audit de code automatisé chez Renault
20090609 05 - Audit de code automatisé chez Renault20090609 05 - Audit de code automatisé chez Renault
20090609 05 - Audit de code automatisé chez RenaultLeClubQualiteLogicielle
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php ALTER WAY
 
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...Adrien Clerbois
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Erradi Mohamed
 
Deux ans de développement Agile, erreurs et succès
Deux ans de développement Agile, erreurs et succèsDeux ans de développement Agile, erreurs et succès
Deux ans de développement Agile, erreurs et succèsAgile Tour 2009 Québec
 

Similar a Hands on Sonar (20)

Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie TrudelHa zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
 
qualimétrie logiciel - Entreprise Software Analytic - nov 2015
qualimétrie logiciel -  Entreprise Software Analytic - nov 2015qualimétrie logiciel -  Entreprise Software Analytic - nov 2015
qualimétrie logiciel - Entreprise Software Analytic - nov 2015
 
meetup devops aix marseille du 16/05/23
meetup devops aix marseille du 16/05/23meetup devops aix marseille du 16/05/23
meetup devops aix marseille du 16/05/23
 
Gestion des performances applicatives en environnement Cloud et Virtualisation
Gestion des performances applicatives en environnement Cloud et VirtualisationGestion des performances applicatives en environnement Cloud et Virtualisation
Gestion des performances applicatives en environnement Cloud et Virtualisation
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
Introduction au génie logiciel
Introduction au génie logicielIntroduction au génie logiciel
Introduction au génie logiciel
 
Solutions Linux2008 Construire Sa Vision Qualite
Solutions Linux2008 Construire Sa Vision QualiteSolutions Linux2008 Construire Sa Vision Qualite
Solutions Linux2008 Construire Sa Vision Qualite
 
2009-01-29 Squale aux Jeudis de l'Objet
2009-01-29 Squale aux Jeudis de l'Objet2009-01-29 Squale aux Jeudis de l'Objet
2009-01-29 Squale aux Jeudis de l'Objet
 
QoS, QoE, troubleshooting, supervision et optimisation de la qualité sur Lync...
QoS, QoE, troubleshooting, supervision et optimisation de la qualité sur Lync...QoS, QoE, troubleshooting, supervision et optimisation de la qualité sur Lync...
QoS, QoE, troubleshooting, supervision et optimisation de la qualité sur Lync...
 
QoS, QoE, troubleshooting, supervision et optimisation de la qualité sur Lync...
QoS, QoE, troubleshooting, supervision et optimisation de la qualité sur Lync...QoS, QoE, troubleshooting, supervision et optimisation de la qualité sur Lync...
QoS, QoE, troubleshooting, supervision et optimisation de la qualité sur Lync...
 
20100121 01 - Présentation Renault
20100121 01 - Présentation Renault20100121 01 - Présentation Renault
20100121 01 - Présentation Renault
 
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
 
Oracle cloud-toolbox-vf
Oracle cloud-toolbox-vfOracle cloud-toolbox-vf
Oracle cloud-toolbox-vf
 
20090609 05 - Audit de code automatisé chez Renault
20090609 05 - Audit de code automatisé chez Renault20090609 05 - Audit de code automatisé chez Renault
20090609 05 - Audit de code automatisé chez Renault
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php
 
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016
 
Deux ans de développement Agile, erreurs et succès
Deux ans de développement Agile, erreurs et succèsDeux ans de développement Agile, erreurs et succès
Deux ans de développement Agile, erreurs et succès
 

Más de Mathias Kluba

Future Of Data Paris - BI and Big Data
Future Of Data Paris - BI and Big DataFuture Of Data Paris - BI and Big Data
Future Of Data Paris - BI and Big DataMathias Kluba
 
Analytics et Big Data, une histoire de cubes...
Analytics et Big Data, une histoire de cubes...Analytics et Big Data, une histoire de cubes...
Analytics et Big Data, une histoire de cubes...Mathias Kluba
 
Soutenance Stage Licence
Soutenance Stage LicenceSoutenance Stage Licence
Soutenance Stage LicenceMathias Kluba
 
ALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowMathias Kluba
 

Más de Mathias Kluba (6)

Future Of Data Paris - BI and Big Data
Future Of Data Paris - BI and Big DataFuture Of Data Paris - BI and Big Data
Future Of Data Paris - BI and Big Data
 
Analytics et Big Data, une histoire de cubes...
Analytics et Big Data, une histoire de cubes...Analytics et Big Data, une histoire de cubes...
Analytics et Big Data, une histoire de cubes...
 
Soutenance Stage Licence
Soutenance Stage LicenceSoutenance Stage Licence
Soutenance Stage Licence
 
ALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - Specflow
 
Alt.net spring.net
Alt.net spring.netAlt.net spring.net
Alt.net spring.net
 
Alt.net spring.net
Alt.net spring.netAlt.net spring.net
Alt.net spring.net
 

Hands on Sonar

  • 1. Paris Novembre 2012 Hands on Sonar Par Alexandre Victoor et Mathias Kluba
  • 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. 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. Plan • Introduction à la qualimétrie • Sonar in a Nutshell • Comment ça marche • Etendre Sonar (API) • Fonctionnalités avancées
  • 5. Introduction à la qualimétrie Qu’est ce que la qualimétrie? • C’est mesurer la qualité.
  • 6. Introduction à la qualimétrie Qu’est ce que la qualité d’un logiciel ? • Robustesse • Maintenance • Evolutivité • Performance • Sécurité
  • 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. 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. 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. Introduction à la qualimétrie Comment mesurer la qualité ?
  • 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. Introduction à la qualimétrie Résultat des tests Solution: corriger les tests
  • 13. Introduction à la qualimétrie Couverture du code par les tests Solution: rédiger plus de tests
  • 14. Introduction à la qualimétrie Duplication Solution: factoriser
  • 15. Introduction à la qualimétrie Complexité cyclomatique Solution: SoC, découper en plus petites méthodes CC = 11
  • 16. Introduction à la qualimétrie Convention de nommage Solution: respecter UNE convention (peu importe laquelle)
  • 17. Introduction à la qualimétrie Bugs potentiels Solution: corriger les bugs
  • 18. Introduction à la qualimétrie Erreurs de design Solution: SRP, réduire le LCOM, découpler
  • 19. Sonar le Free de la qualimétrie
  • 20. Sonar in a Nutshell
  • 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. 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
  • 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. 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. Plugin API, batch side • Sensor & SensorContext • MavenPluginHandler • Decorator
  • 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. DI avec PICO • Enregistrement des composants par une classe « plugin » • Injection par constructeur • Utilisation d’interfaces de marquage
  • 29. Fonctionnalités évoluées • Filtres • Dashboards • Plans d’actions