Déployer une application directement depuis visual studio 2010
Qualité de code, sonar, la dette
1. Qualité de code, Sonar, La dette technique et SQALE en 5 minutes Mikael KROCK
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.
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 - contact@novencia.com 2
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
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 - contact@novencia.com 3
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é.
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 - contact@novencia.com 4
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
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 - contact@novencia.com 5
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
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 - contact@novencia.com 6
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.
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 - contact@novencia.com 7
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/
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 - contact@novencia.com 8
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!
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 - contact@novencia.com 9