Qualité de code, sonar, la dette

9

Click here to load reader

Transcript of Qualité de code, sonar, la dette

Page 1: Qualité de code, sonar, la dette

Qualité de code, Sonar, La dette technique et SQALE en 5 minutes Mikael KROCK

Page 2: Qualité de code, sonar, la dette

08/01/2013 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 2

L’ ère des développeurs barbus enfermés dans une pièce noire travaillant seuls est maintenant révolue. Nous travaillons dans une industrie ou nous façonnons un produit : notre logiciel. Il est composé de multiples parties – le code source, il est assemblé et testé au moyens de divers outils – IDE, mails, intégration continue - et pour faire cela nous utilisons plusieurs systèmes de production – Test Driven Development, Scrum, Lean. Dans cette optique-là, nous faisons attention à la qualité de notre code source pour que notre produit fini soit de meilleure qualité possible. Pour mesurer la qualité du code nous avons en premier lieu, besoin de créer des indicateurs (nombre de lignes de code, nombre de commentaires, taux de couverture de code.) En second lieu, nous avons besoin d'un outil analysant et synthétisant ces indicateurs. Sonar nous permet de faire cela de manière assez intuitives et ergonomique.

Page 3: Qualité de code, sonar, la dette

08/01/2013 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 3

Sonar

Sonar est une plateforme de gestion de qualité du code source. Elle permet de régler des indicateurs de qualité, de gérer plusieurs projets, d'analyser le code source et d'afficher des tableaux de bords personnalisés. Sonar est hautement configurable et grâce à un système de plugins (libre, gratuit ou payant), il est possible de personnaliser l'outil par rapport à son besoin.

Pour aller plus loin : • http://www.sonarsource.org/ • quelques screencasts http://www.sonarsource.org/screencasts/

Sonar source in action

Page 4: Qualité de code, sonar, la dette

08/01/2013 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 4

Dette technique

La dette technique est une néologie associant le concept de dette financière au monde du développement logiciel. On dit que si on livre une fonctionnalité contenant un défaut on a une dette envers le client. Plus on attend pour la corriger plus l’intervention sera difficile. Une analogie est fait avec les intérêts d’une dette financière avec le risque de ne plus pouvoir payer la somme initiale mais juste devoir rembourser les intérêts. La dette technique est constituée par la somme des travaux requis pour corriger les défauts de l’application (maintenance évolutive ou corrective). Par analogie avec la dette financière, plus on attend pour rembourser la dette plus les intérêts coutent cher. A partir d’un certain temps, la dette n’est pas remboursable, on ne fait que payer les intérêts. Il est possible de catégoriser la dette en 2 catégories : Dette technique intentionnelle Souvent du respect des délais et cout de réalisation qui sont bien souvent en opposition par rapport à la qualité.

Page 5: Qualité de code, sonar, la dette

08/01/2013 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 5

Dette technique non intentionnelle

C’est ce qui génère de la maintenance (fonctionnalité non comprise ou non livrée ou bug). Ces dettes techniques peuvent être assumées ou non. A quoi sert la dette technique ? La dette technique est donc un concept permettant d’avoir un cout de remédiation pouvant être comparé entre projets et pouvant être communiquer aux supérieurs ou aux personnes en charges des budgets. Les catégories communes de dette technique : - Pression du business - Manque de process - Manque d’implication - Manque de tests - Manque de documentation - Peu de collaboration / synchronisation - Développement parallèle - Refactorisation du code repoussée Pour aller plus loin : • L'article de Bastien Jaillot sur la dette technique • Maitrisez votre dette technique avec Xebia

Page 6: Qualité de code, sonar, la dette

08/01/2013 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 6

Comment mesurer cette dette technique ? Il existe plusieurs moyen de détecter et de mesurer la dette technique. Il existe un plugin Sonar de base qui calcule des prémisses de cout de remédiation. Une entreprise français a développé une méthode propre au calcul de la dette technique, la méthode SQALE (méthode sous licence Creative Commons). Calcul de dette technique Un plugin de base existe pour Sonar, il calcule le cout de remédiation grâce à la formule suivante : Debt(in man days) = • cost_to_fix_duplications + • cost_to_fix_violations + • cost_to_comment_public_API + • cost_to_fix_uncovered_complexity + • cost_to_bring_complexity_below_threshold + • cost_to_cut_cycles_at_package_level Pour aller plus loin : • http://docs.codehaus.org/display/SONAR/Technical+Debt+Calculation

Page 7: Qualité de code, sonar, la dette

08/01/2013 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 7

SQALE

(Software Quality Assessment based on Lifecycle Expectations)

SQALE est une méthode de calcul de dette technique. L'idée générale derrière SQALE est de donner un coût de remédiation par sujet générateur de dette technique. Parmi les principes de base, SQALE indique que la qualité du code source est une exigence technique au même titre que, par exemple, la vitesse de chargement d'un écran. C'est donc une exigence quantifiable, mesurable et comparable. Par exigence on entend par exemple, le nombre de ligne dans une méthode, le nombre d'imbrication if, le nombre de ligne de commentaire. SQALE se décompose en 5 étapes consécutives 1. Modèle qualité: décrit les indicateurs 2. Modèle d'analyse 1 - Les fonctions de remédiations : que faire quand l'indicateur n'est pas bon 3. Modèle d'analyse 2 - Les cout de remédiation : combien coute une remédiation 4. Indices : répartition des données suivants des indices SQALE (Testabilité, maintenabilité, portabilité,etc..) 5. Agrégation et tableau de bord.

Page 8: Qualité de code, sonar, la dette

08/01/2013 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 8

SQALE propose un plugin pour analyser et calculer le cout de remédiation à l'aide de la plateforme Sonar :

Pour aller plus loin : •http://fr.wikipedia.org/wiki/SQALE •http://www.sonarsource.com/products/plugins/governance/sqale/

Page 9: Qualité de code, sonar, la dette

08/01/2013 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 9

Conclusion

Cette première approche des concepts de dette techniques et de SQALE montrent que les outils d'amélioration de qualité sont prêts et sont ergonomiques. A nous de plonger la dedans pour nous aider à améliorer notre production. Vous pouvez également jeter un œil à la présentation de ces concepts par l’équipe de SonarSource . Have fun!