Accueil > FR > Informations générales > Stages > Elaboration d’un outil d’analyse de dépendances entre code source orienté (...)

Elaboration d’un outil d’analyse de dépendances entre code source orienté objet et base de données relationnelle

Profil Etudiant niveau fin de master (stage et/ou TFE), de préférence UMons
Prérequis Programmation Java, SQL, Connaissances d’un SGBDR (Postgres ou MySQL)
Durée supérieur à 10 semaines

Contexte

Les systèmes de gestion de bases de données relationnelles (SGBDR) sont maintenant bien compris de la plupart des développeurs. De plus, leur utilisation est maintenant facilitée et uniformisée par l’utilisation de frameworks dédiés (ORM) tels qu’Hibernate pour Java ou encore Doctrine pour PHP. Cependant, l’utilisation d’ORM n’est pas toujours optimale, ce qui provoque des pertes de performance voire des plantages.

Il existe à ce jour un grand nombre d’outils capables d’analyser le code source d’une application afin d’y détecter les mauvaises pratiques et des violations de standards et de conventions. Ces outils construisent une représentation du code source qu’ils mesurent et sur lequel ils valident un ensemble de règles. Les règles sont issues de l’expérience de développeurs, d’architectes et des concepteurs des langages et librairies.

Ces dernières années, les analyseurs commencent à inclure des règles sur l’utilisation d’une base de données. Malheureusement, ces règles se focalisent sur le code et ne portent pas sur les interactions et la structure de la base de données.

Objectif

Le travail consiste à développer un plugin pour un outil d’analyse de code existant et extensible (SonarQube). Il vérifiera un ensemble de règles de bonnes pratiques appliquées sur une base de données et sur base des informations sur les interactions avec la base de données dans le code. Il se focalisera sur l’ORM Hibernate développé en Java.

Travail à réaliser

Le travail à réaliser se présente comme suit :

  • le choix d’un ou plusieurs cas d’étude
  • l’inventaire des informations disponibles et des informations calculables
  • l’inventaire des bonnes pratiques existantes et leur formalisation sous forme de règles
  • l’implémentation d’un outil d’analyse de la structure et des dépendances entre le code et la base de données
  • l’implémentation d’un plugin SonarQube et des règles
  • la validation sur le(s) cas d’étude

Le contenu pourra être adapté à la durée du stage et éventuellement couplé à un TFE.

Encadrement

Tout le travail sera encadré, mais nécessitera une bonne dose d’autonomie, de créativité et d’investigation dans la documentation des outils et technologies utilisés.
Le stage se fera en intégration avec l’équipe des chercheurs experts en analyse de code et base de données 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 mène des recherche sur les ORM. Des réunions conjointes seront prévues.

Si disponibles, la validation impliquera des données de missions réalisées par le CETIC avec des entreprises.

L’idéal est que ce travail soit intégré au niveau d’un stage ou TFE UMons.

Références

Contact : Christophe Ponsard email:cp@cetic.be