RenPar’17 / SympA’2006 / CFSE’5 / JC’2006 Canet en Roussillon, 4 au 6 octobre 2006 Apports de la programmation par attributs pour le modèle de composants Fractal Romain Rouvoy, Nicolas Pessemier, Renaud Pawlak, Philippe Merle Projet J ACQUARD – INRIA Futurs LIFL – Université des Sciences et Technologies de Lille 59655 Villeneuve d’Ascq Cédex, France {rouvoy, pessemie, pawlak, merle}@lifl.fr Résumé Cet article introduit FRACLET, une approche pour répondre aux problèmes du mélange de code métier et technique et de redondance des méta-informations lors du développement de composants Fractal. FRA- CLET se propose de réduire la taille du code écrit par le développeur en remplaçant le code technique des composants Fractal par des annotations. Ces annotations expriment la sémantique des concepts Fractal (interface, liaison, attribut, cycle de vie, etc.) sans imposer un modèle de programmation parti- culier. Le code annoté est ensuite analysé pour générer non seulement le code technique des composants Fractal mais aussi les fichiers Fractal ADL qui leur sont associés. Deux implantations de FRACLET sont disponibles à l’heure actuelle. L’une utilise des annotations basées sur les tags Javadoc et le moteur de génération XDoclet. L’autre exploite les annotations Java 5 et le moteur de transformation Spoon. Mots-clés : Programmation par attributs, modèle de composants Fractal. 1. Introduction Le paradigme de programmation par composants est désormais reconnu dans le domaine de l’ingénierie logicielle pour sa capacité à améliorer la productivité, la réutilisation et la composition [20]. Néanmoins, le développement d’un composant logiciel s’avère être généralement très coûteux car il nécessite de compléter le code métier du composant avec du code technique spécifique au modèle de composants utilisé. Ce code technique est non seulement répétitif et verbeux mais il est souvent sujet à de nom- breuses erreurs. Par exemple, lors du développement d’un composant avec le modèle Fractal, le code technique consiste en l’implantation de différentes interfaces de contrôle (liaison, attribut, cycle de vie, etc.). La contribution de cet article réside dans l’utilisation du paradigme de la programmation par attributs afin de simplifier la programmation des composants Fractal. La programmation par attributs permet de marquer le code métier d’une application avec des annotations [15, 22]. Des générateurs interprètent ensuite le code annoté pour produire automatiquement différents artefacts. Avec FRACLET, nous mon- trons qu’il est possible de supprimer tout le code technique d’un composant Fractal en utilisant un jeu de cinq annotations. Ensuite, nous présentons les quatre générateurs associés à ces annotations qui per- mettent de produire automatiquement non seulement le code technique du modèle de composants Frac- tal mais aussi les descripteurs d’assemblage Fractal ADL. Deux implantations différentes de FRACLET sont disponibles. L’une utilise des annotations basées sur les tags Javadoc et le moteur de génération XDoclet [22]. L’autre exploite les annotations Java 5 et le moteur de transformation Spoon [15]. L’article est organisée comme suit. La section 2 présente le modèle de composants Fractal et les principes de la programmation par attributs. La section 3 introduit les principales motivations de ce travail, à savoir le mélange du code métier et technique et la redondance des méta-informations. La section 4 présente notre contribution au modèle de composants Fractal sous la forme d’un jeu d’annotations et d’un ensemble de générateurs des artefacts techniques. La section 5 discute de deux mises en œuvre de notre proposition, l’une utilise des annotations basées sur des tags Javadoc particuliers, l’autre utilise les annotations Java 5. La section 6 compare notre proposition avec des travaux dans le domaine de la