L'Agence nationale de la recherche Des projets pour la science

Translate this page in english

Société de l'information et de la communication (DS07) 2017
Projet VaryVary

Faire Varier la Variabilité

La plupart des systèmes logiciels modernes (système d'exploitation comme Linux, navigateurs Web comme Firefox ou Chrome, encodeurs vidéos comme x264 ou ffmpeg, serveurs, applications mobiles, etc.) sont sujets à varier ou sont déclinés dans de nombreuses variantes. Des centaines d'options de configurations, de caractéristiques, ou de modules d'extension sont combinés, avec potentiellement des fonctionnalités distinctes et divers effets sur le temps d'exécution, l'empreinte mémoire, etc.
Parmis les configurations, certaines d'entre elles sont choisies et pourtant ne compilent pas, échouent à l'exécution, ne passent pas une suite de test, ou n'atteignent pas une certaine qualité de performance (e.g., consommation énergétique, sécurité).

Dans ce projet JCJC, nous suivons une direction quelque peu provocante et inexplorée. Nous considérons que l'espace de variabilité d'un système logiciel peut être spécialisé et doit lui-même varier lorsque c'est nécessaire. Le but de ce projet est de fournir les théories, méthodes, et techniques pour faire varier la variabilité.
Concrètement, nous considérons les techniques d'apprentissage et de génie logiciel pour réduire l'espace des configurations possibles en une approximation qui satisfait les besoins des utilisateurs. A l'aide d'un oracle (e.g., test unitaire) qui détermine si une configuration donnée respecte les exigences (e.g., rapidité ou empreinte mémoire), nous exploitons l'apprentissage pour rétrofiter les contraintes apprises dans un modèle de variabilité qui peut être utilisé pour automatiquement spécialiser un système configurable.
En utilisant un échantillon relativement petit de configurations, nous espérons atteindre une haute précision pour différents oracles et systèmes.

Nos résultats préliminaires suggèrent que faire varier la variabilité peut être utile en pratique et efficace. Cependant, bien plus de recherche est nécessaire pour étudier les techniques d'échantillonnage, de test, et d'apprentissage dans une variété de cas et de scénarios.
We prévoyons de collecter davantage de données expérimentales et d'appliquer nos techniques sur des logiciels hautement configurables, libre d'accès, et populaire (comme Linux, Firefox, ffmpeg, VLC, Apache ou JHipster) and sur des générateurs de contenu (comme des vidéos, des modèles pour l'impression 3D, ou des papiers écrits en LaTeX).

Le coordinateur scientifique, Mathieu Acher, est co-responsable du comité de programme de SPLC, la conférence internationale majeure sur le sujet de recherche coeur de ce projet JCJC: les lignes de produits logiciels, et l'ingénierie de la variabilité.
Benoit Baudry, Olivier Barais, Arnaud Blouin, Johann Bourcier, and Jean-Marc Jézéquel (membres de l'équipe DiverSE) apportent leurs très fortes expertises dans le test logiciel, les systèmes dynamique adaptatifs, les techniques d'exploration, et le génie logiciel empirique qui sont des thèmes présents dans cet ANR JCJC. Nous allons également collaborer avec des experts en apprentissage (plus détails sont donnés dans la proposition)

La variation de la variabilité peut impacter des projets réels et populaires et ainsi aider à la fois des utilisateurs finaux et des professionnels du logiciel à exploiter complètement la variabilité.
En complément de notre méthode, nous avons pour but de construire une plateforme ouverte et collaborative pour produire et partager des données expérimentales. Des scientifiques confronteront and inventeront des solutions pour exploiter des données de variabilité fournies collaborativement par des contributeurs.

Partenaires

IRISA Institut de recherche en informatique et systèmes aléatoires

Aide de l'ANR 332 884 euros
Début et durée du projet scientifique - 42 mois

 

Programme ANR : Société de l'information et de la communication (DS07) 2017

Référence projet : ANR-17-CE25-0010

Coordinateur du projet :
Monsieur Mathieu Acher (Institut de recherche en informatique et systèmes aléatoires)

 

Revenir à la page précédente

 

L'auteur de ce résumé est le coordinateur du projet, qui est responsable du contenu de ce résumé. L'ANR décline par conséquent toute responsabilité quant à son contenu.