Home > FR > Informations générales > Stages > Analyse de code R

Analyse de code R

Profil Etudiant en stage, fin de bac ou master, de préférence UMons
Prérequis Java, principes de qualité logicielle, une connaissance de base de R est un plus
Durée Minimum 6 semaines, 12 semaine pour bénéficier des conditions du stage des pôles

Contexte

R est un logiciel du traitement de données et de statistique. Il s’agit d’un logiciel libre supporté par le projet GNU. Le langage R est un abus de langage pour nommer le langage de programmation utilisé par R. Ce langage sert à décrire les opérations à réaliser pour traiter et afficher les données.

Depuis quelques années, R tend à être le logiciel le plus utilisé pour l’analyse de données (http://www.pcworld.com/article/2480920/r-programming-language-gaining-ground-on-traditional-statistics-packages.html). Indépendamment de l’analyse de données, R est de plus en plus utilisé (cf. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html). Une explication possible serait l’engouement pour le business intelligence (BI) tend à favoriser l’utilisation de logiciels d’analyse de données. Les analystes BI ne sont pas nécessairement des développeurs. R offre un bon compromis entre les avantages d’un langage de programmation riche et une syntaxe utilisable par des non-développeurs.

En plus d’être performant et succinct, le langage R utilise un système de gestions de paquets (http://cran.r-project.org/web/packages/). Ces paquets étendent les fonctionnalités du langage au même titre que des librairies. Ces paquets couvrent l’interfaçage aux bases de données, la génération de document (open-document), les fonctionnalités de type datamining, etc.

A l’instar de langage de programmation classique, R dispose de bonnes et de mauvaises pratiques (voir références). En particulier, des dépôts telles que le CRAN rassemblent de tels packages et définissent des politiques spécifiques à respecter.

Contrairement à des langages tels que Java, R ne dispose pas d’outils d’analyse de code très évolué. Ce manque d’outil d’analyse de code R est contradictoire avec le besoins de démonter le respect de bonnes pratiques ou politiques pour être intégré dans un dépôt.

Objectif

L’objectif du travail est de développer un outil aisément configurable pour valider un ensemble de règles (bonnes pratiques, politiques spécifiques) pour du code R. Le travail s’appluiera sur la plateforme SonarQube, une plateforme open-source très poplaire pour la gestion de qualité logicielle. Celui-ci se base sur un ensemble de bonnes pratiques et sur la méthode SQALE pour évaluer le risque sur le manque de qualité d’une application. Malgré la couverture de plus de 20 langages, SonarQube ne couvre cependant pas encore le language R.

Travail à réaliser

Concrètement, le travail visera donc à développer et expérimenter avec un plugin SonarQube d’analyse du code R afin de permettre d’aisément valider des règles pertinentes pour plusieurs usages de ce language. Les taches seront les suivantes:

  • prise de connaissance et expérimentation avec le langage R
  • formation sur les concepts liés à analyse de code
  • installation et prise en main de l’environnement de développement
  • développement d’un plugin d’analyse de code R en Java sur base d’Antlr
  • validation sur des cas d’études académique (UMons) ou issus d’entreprises wallonnes (CETIC)

Encadrement du stage

Le stage se fera en intégration avec l’équipe des chercheurs experts en analyse de code du CETIC ainsi que du laboratoire de génie logiciel d’UMons qui sont tous les deux actifs en qualité logicielle. Le CETIC dispose de l’expertise Sonar tandis qu’UMons a déjà investigué le langage R. Des réunions conjointes seront prévues. L’idéal est que ce travail soit intégré au niveau d’un stage ou TFE UMons.

Référence