Dans ce projet on se propose d’étudier les symétries locales (une des propriétés de la théorie des centres de Christopher Alexander) dans le code comme étant un signe d’organisation de la variabilité. Pour ce faire, il s’agira de partir d’un ensemble de systèmes connus pour établir semi-automatiquement les éléments de symétrie. Parallèlement, il s’agira de trouver une visualisation pertinente de ces symétries.

La variabilité est la propriété d’un système (logiciel) à être changé ou customisé en fonction des besoins spécifiques des éléments interagissant avec le système (utilisateurs, clients, plates-formes matérielles). Cette variabilité peut être gérée par des lignes de produits logiciels complètes, des configateurs externes ou des systèmes de paramétrage. Dans la grande majorité des cas, cette variabilité se retrouve dans le code au travers d’une grande diversité de mécanismes d’implémentation: macros, paramètres de classes ou de méthodes, attributs, héritage, patrons de conception… Maîtriser la variabilité de codes existants est alors très complexe, et les techniques d’analyse de similarité de code ou d’annotations ne passent pas à l’échelle pour détecter cette variabilité.

Dans ce projet on se propose d’étudier les symétries locales (une des propriétés de la théorie des centres de Christopher Alexander) dans le code comme étant un signe d’organisation de la variabilité. La symétrie de plusieurs mécanismes d’implémentation a déjà été étudiée et partiellement exploitée, mais dans ce projet, l’objectif est de valider l’hypothèse qu’une majorité des mécanismes d’implémentation de la variabilité peut être considérée comme des éléments déclenchant une symétrie locale à une classe ou un groupe de classes. Pour ce faire, il s’agira de partir d’un ensemble de systèmes connus pour établir semi-automatiquement les éléments de symétrie. Parallèlement, il s’agira de trouver une visualisation pertinente de ces symétries, en s’inspirant des visualisations de structures et métriques de code de l’état de l’art.

Compétences Requises

Génie logiciel, Programmation et conception orientées objets

Besoins Clients

  • Expérimentations (semi-automatiques) de l’identification des symétries sur la base de systèmes
  • Prototype de visualisation des symétries validé sur la base de systèmes

Résultats Attendus

  • Validation (ou invalidation) de la possibilité d’identifier et visusaliser les mécanismes d’implémentation de la variabilité par des symétries

Références

Informations Administratives

  • Contact : Philippe COLLET philippe.collet@unice.fr
  • Identifiant sujet : Y1819-S029
  • Effectif : entre 2 et 2 étudiant(e)s
  • Parcours Recommandés : AL
  • Équipe: SPARKS