Mining Software Engineering Data for Useful Knowledge
Maisqual : Amélioration de la qualité logicielle par fouille de données
Résumé
Repositories used in the development of software projects contain a great amount of interesting information on tools, methods and development practices. This information is not put to use these days because it is difficult to retrieve (e.g. for distributed teams, using many different tools), its nature implies specific characteristics (semi-structured, incomplete or inconsistent data with skewed distributions), and because its interpretation and analysis is highly subject to the knowledge and constraints of the domain.
The research work achieved in Maisqual addresses these concerns by investigating methods borrowed from the data mining field to help understand, assess and improve the quality of software projects.
To that end we identified some common issues encountered in the development and assessment of software projects, and established a list of data mining techniques that could bring useful answers. Several open source software projects were analysed, using metrics extracted from both the code itself and the development process (mainly configuration management and mailing lists). Because of the intrinsic nature of this data and its semantic context, it appears that some methods are better suited than others: e.g. unsupervised clustering, outliers detection and regression analysis.
The output of this work is threefold: firstly, some of the technics developed were introduced in SQuORE, a professional-grade software quality assessment tool edited by SQuORING Technologies. The work accomplished on the analysis process and quality models also brought useful insights for the company's team and product. Another contribution to the domain is the methodological and tooling framework setup for our analysis, which relies on safe and semantically consistent measurement techniques. Last but not least, we published under a free licence several software-related data sets for the academic and industry communities to foster research in this area of knowledge.
Les référentiels utilisés dans le développement logiciel offrent une quantité importante d'information sur les outils, méthodes et pratiques de développement. Cette information est globalement peu utilisée car elle est difficile d'accès (référentiels répartis, issus d'une grande variété d'outils différents), elle est de nature spécifique (semi-structurée, distributions non normales, données incomplète ou incohérente au premier abord..), et son interprétation est soumise à nombre de contraintes et connaissances propres au domaine.
L'effort de recherche fait au sein de Maisqual s'attaque à ces problèmes, en utilisant les techniques issues de la fouille de données pour apporter des éléments de réponses objectifs aux interrogations et difficultés rencontrées lors du développement logiciel et lors de l'évaluation de qualité pour les systèmes et produits logiciels.
Nous avons donc identifié et formalisé quelques-unes de ces problématiques courantes, et répertorié les méthodes de fouille de données pouvant apporter des éléments de réponse. Plusieurs projets logiciels libres ont été analysés, en travaillant à la fois sur les métriques issues du code source du produit et sur les informations issues du processus de développement (gestion de configuration, listes de diffusion). De par la nature des données et les volumes considérés, il appert que certaines techniques sont plus appropriées que d'autres, notamment les techniques de classification non supervisées, l'analyse par régression, et la détection d'outliers. Pour une même méthode, certains algorithmes sont également plus robustes ou plus précis en fonction des données considérées.
Les résultats de ce travail sont perceptibles à plusieurs niveaux. Premièrement, nous avons établi un lien entre recherche académique et industrie : certaines techniques ont directement été intégrées au produit SQuORE ou ont été mises à disposition sous forme de scripts utilisables par les consultants lors des missions en clientèle. Le travail effectué sur l'extraction et l'analyse des métriques logicielles et sur les modèles de qualité a également contribué à la pertinence de l'outil SQuORE. Le cadre méthodologique développé pour nos analyses, permettant de garder une sémantique sûre malgré la transformation métrologique, est un autre apport au domaine. Enfin plusieurs data sets logiciels complets ont été produits et publiés sous licence libre pour que les communautés scientifique et industrielle en bénéficient.