Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20130113 06 - Travaux de recherche sur la corrélation entre qualité du code et bugs

70 views

Published on

Génie logiciel à LaBRI, Laboratoire bordelais de recherche informatique

Published in: Software
  • Be the first to comment

  • Be the first to like this

20130113 06 - Travaux de recherche sur la corrélation entre qualité du code et bugs

  1. 1. Génie Logiciel @LaBRI Laboratoire Bordelais de Recherche en Informatique Pr. Xavier Blanc – Directeur Adjoint Janvier 2013
  2. 2. Plan • Présentation générale du LaBRI • Etat de l’art ciblé sur l’évolution logicielle • La plate-forme Harmony • Etudes réalisées • Perspectives de recherche
  3. 3. Présentation générale du LaBRI
  4. 4. Laboratoire d’Informatique • Génie Logiciel • Méthodes formelles • Combinatoire • Algorithmique • Applications réparties • Image • Calcul haute performance • BioInfo • Visualisation • Réseaux • … Classé A+ Evaluation AERES
  5. 5. Tutelles Bordeaux 1 IPB CNRSINRIA Université de Bordeaux LaBRI Bordeaux Segalen Bordeaux 4
  6. 6. Quelques Chiffres – 150 Membres permanents • 70 % Enseignants Chercheurs (Bordeaux) • 30 % Chercheurs (CNRS, INRIA) – 20 post-doc – 150 Thésards – 30 Administratifs – 450 articles / an
  7. 7. Organisation • Directeur: P. Weil • 6 Equipes – CombAlgo – Image et Sound – ProgRess – Méthodes formelles – BioInfo & Visu – HPC
  8. 8. Etat de l’art ciblé sur l’évolution logicielle
  9. 9. Composants sujets aux fautes • Exploiter les metriques pour identifier les composants sujets aux fautes • Focaliser la maintenance sur ces composants
  10. 10. Correlation Dépend des métriques et des logiciels
  11. 11. Combiner les métriques
  12. 12. Mais … Predictors are accurate only when obtained from the same or similar projects.
  13. 13. Constat • Quelles métriques ? • Quels projets / logiciels ? => Pour quel objectif ?
  14. 14. La plate-forme Harmony
  15. 15. Harmony: Observatoire Logiciel • La plate-forme Harmony propose des outils pour réaliser des études sur l’évolution des logiciels Analyse de code source Analyse des versions Analyse des bugs
  16. 16. Fonctionnement Général • Harmony construit un modèle de l’évolution • Harmony lance des analyses sur ce modèle => Le modèle et les analyses sont stockés dans une BD Versioned Items (Git, Mercurial, BugZilla) Harmony Data BaseHarmony Core Harmony Analysis Harmony - Tutorial 16
  17. 17. Le modèle d’évolution Harmony • Une Source est un dépôt • Un Item est un artefact versionné (fichier de source code file ou un bug) • Un Event se produit à un instant donné (commit, merge, bugs, etc.) • Une Action est exécuté sur un item (ajout, changement, suppression) • Un Author réalise des actions Source ItemEvent Action Author Harmony - Tutorial 17
  18. 18. Actuellement • Source code – Mainly Java, C est supporté, AST • Version Control – Git, Mercurial, SVN • Bugs – BugZilla, GitHub • Analysis – OO Metrics, Team Metrics, Library usage,
  19. 19. Etudes réalisées
  20. 20. Migration de bibliothèques • Observation de 40000 projets Maven pour identifier les migrations de bibliothèques • Connaitre les bibliothèques « tendance »
  21. 21. Classification des développeurs • Observation d’un ensemble de projets pour classifier les développeurs en fonction de l’usage des bibliothèques
  22. 22. MFAS / Bugs • Echantillonnage de projets GitHub • Calcul des composantes fortement connexes • Corrélation avec les bugs
  23. 23. Perspectives de recherche
  24. 24. Principes d’architecture • Définir des métriques mesurant des principes d’architecture – « program to an interface » • Valider ces métriques sur des projets => Pas de corrélation sur l’effort de maintenance?
  25. 25. Age d’une application • Proposer un prédicteur permettant de connaître la maturité d’une application • Savoir quand migrer • Identifier les parties risquées (pas à jour)
  26. 26. Style de programmation • Pouvoir identifier les styles de programmation des développeurs • Savoir qui est expert • Savoir anticiper des besoins de framework technique • Mesurer la distance à parcourir en terme de migration
  27. 27. Et d’autres • Evolution web • Techniques de sampling • Bug triaging • Métriques et temps • …
  28. 28. Conclusion
  29. 29. Etude d’évolution • Mesurer l’évolution logiciel • Exploitation des outils statistiques • Observation de projets industriels • Liens avec les processus de développement

×