Assemblage des pièces
Le développement de logiciels basés sur des composants est une discipline émergeante qui promet de faire entrer l'ingénierie en logiciels dans une nouvelle ère, l'âge industriel des technologies de l'information. Le logiciel est envisagé sous la forme d'un assemblage de composants, de la même manière que le matériel est actuellement fabriqué à partir de kits de pièces. Le projet EASYCOMP, financé par le programme Information Society Technologies (IST), a entrepris d'adapter des logiciels pour son usage personnel en développant des outils permettant de créer des architectures logicielles à partir de composants. RECODER est un cadre visant à fournir une infrastructure pour la composition invasive de logiciels sur la base d'une métaprogrammation statique. Dans la mesure où la composition invasive repose sur des langages standard, cette infrastructure complexe prend en charge divers outils d'analyse et de transformation Java, C et C#. Tout d'abord, un modèle de programme extrêmement détaillé (métamodèle) est dérivé grâce à l'analyse des entités rencontrées dans les fichiers de code source et de classe, ainsi que des relations entre les éléments. À cette fin, une analyse de nom et de type est effectuée afin d'identifier des références à des entités logiques tout en préservant les informations des références croisées. Au cours de la phase suivante, les informations du métamodèle sont utilisées par des métaprogrammes statiques pour contrôler les transformations du modèle de code source. Les bibliothèques RECODER constituent une plate-forme puissante pour tous les types de transformation source à source Java, C et C#. Ces transformations des programmes peuvent générer de petites quantités de code nouveau. L'imprimante assure ensuite la reproduction des fichiers sources, en intégrant de manière homogène les fragments de nouveau code tout en préservant le formatage du code. Au cours du processus de réécriture du code source d'un système en vue d'améliorer sa structure et sa lisibilité, le système devient plus facile à maintenir et plus extensible, de sorte que les ressources de développement peuvent être utilisées partout. De plus, si le code est bien structuré, de nouvelles exigences peuvent être introduites de manière plus efficace et avec moins de problèmes. Les fonctionnalités de refactorisation de RECODER offrent la possibilité de mettre à niveau, de manière automatisée et sans impact sur le comportement, des applications reposant sur des composants afin d'utiliser une version plus récente de ces derniers. Il s'agit là d'un outil puissant capable d'accélérer le développement d'applications logicielles en plus de faire face à leur complexité inhérente.