AtlanModels -
Par analogie avec la définition du génie logiciel, nous définissons le génie du code comme l’application d’une approche systémique, disciplinée et quantifiable à la conception au développement, à l’opération et à la maintenance du code source des logiciels, ainsi que l’étude de ces approches.
Les activités principales de l’ingénierie du code sont l’analyse et la modification du code source. L’analyse (statique ou dynamique) consiste à voir le code source d’un ensemble d’applications comme une base de données pour en extraire des informations comme les fonctionnalités, suites d’instructions les plus utilisées, utilisation de variables, etc.
Ces informations sont ensuite utilisées pour permettre la déduction de métriques, les suggestions (complétion) de code, la détection des erreurs par omission de code, l’extraction d’informations plus abstraites comme les politiques de sécurité, les règles-métier, ou le schéma et le protocole implicites utilisés par l’application pour accéder à une base de données et pour communiquer avec d’autres applications.
La modification du code consiste à appliquer des changements au code source, qui ne concernent pas un changement de conception, dans différents contextes, comme l’optimisation de code pour améliorer les performances ou économiser l’énergie, la mise à jour du code source d’une application héritée ou l’amélioration des cas de test. Ces activités sont souvent indépendantes et outillées par des outils ad-hoc, comme Coccinelle ou Spoon.
Notre objectif est d’appliquer l’ingénierie de modèles aux activités d’analyse et de modification de code source, pour permettre à ces activités de passer à l’échelle et de s’attaquer à des problèmes plus complexes.
Ces problèmes sont par exemple : l’analyse ou la modification de systèmes à grande échelle, la réduction de consommation d’énergie, la mise à jour de programmes pour les adapter à une nouvelle version d’un langage ou d’une API, l’extraction d’informations comme le schéma implicite d’une base de données NoSQL, ainsi que la vérification de la fiabilité de ces activités.
Le projet scientifique de l’équipe Atlanmodels est centré sur l’application de l’ingénierie des modèles aux nouvelles approches d’analyse et de modification du code source de logiciels. Les différents défis scientifiques posés par ces approches nécessitent des techniques et des outils adaptés.
Cela implique non seulement la consolidation des techniques et outils actuels de l’équipe, tels que ATL et MoDisco, mais aussi la proposition de nouvelles technologies pour différents défis :
- la gestion globale de modèles ;
- la gestion de version ;
- la traçabilité ;
- la transformation de modèles embarqués ;
- la persistance de modèles ;
- la répartition des transformations.