Note publique d'information : La réutilisation à grande échelle de composants logiciels se révèle être un challenge
pour la conception de nouvelles applications. Dans la grande majorité des cas, pour
être intégrés à une application, les composants disponibles ont besoin d'être adaptés
afin de faire face à la multiplicité des environnements de déploiement dotés de caractéristiques
variables. Ainsi, pour éviter le redéveloppement de nouveaux composants et favoriser
la réutilisation, de nombreuses approches ont proposé des techniques permettant d'adapter
le comportement de composants existants. Cependant, adapter le comportement de composants
n'est pas suffisant pour permettre leur réutilisation : il faut également adapter
leur structure. Or, aucune approche existante ne permet de répondre pleinement à ces
besoins en adaptation structurelle. Ainsi, notre objectif est de proposer une approche,
appelée Scorpio, permettant d'adapter la structure de composants. Nous nous focalisons
plus particulièrement sur des composants existants. Dans un premier temps, nous nous
sommes intéressés à l'adaptation structurelle de composants existants en proposant
un processus permettant leur ré-ingénierie vers de nouvelles structures. Puis, pour
répondre aux besoins liés à une adaptation sans interruption de l'exécution, nous
avons proposé des mécanismes permettant de prendre en charge l'adaptation dynamique
de ces composants. Partant du constat qu'un certain nombre d'environnements, tels
que les environnements ubiquitaires, nécessite une automatisation du processus d'adaptation,
nous avons proposé alors de prendre en charge ces besoins à travers une approche permettant
l'auto-adaptation structurelle de composants logiciels. Enfin, nos propositions ont
été mises en œuvre d'une part par la réalisation du prototype Scorpio-Tool implémenté
en Fractal et d'autre part, par la définition et le développement d'un scénario ubiquitaire
permettant l'expérimentation de ces propositions.
Note publique d'information : Software component re-use is a challenge for designing new applications. In many cases,
the existing components require to be adapted because of the large variety of existing
software and hardware environments. To avoid component redevelopments, many approaches
proposed techniques allowing an administrator to adapt the component behaviors. However,
in certain cases such as in ubiquitous environments, adapting behavior is insufficient
to allow its re-use: it also requires adapting its structure. However, few works propose
approaches allowing us to adapt the component structure and in these works, only composite
component can be adapted. Thus, we aim at defining, in this thesis, an approach for
adapting monolithic and composite component structures in order to increase their
reusability. First, we propose a static structural adaptation technique which is based
on a restructuring process which allows us to transform an existing component into
a component whose structure matches with the new needs. Then, we develop an approach
for runtime structural adaptation which is based on a runtime adaptable component
model. Finally, we introduce self-adaptation mechanisms into our model, dedicated
to components deployed in ubiquitous environments. We experiment our approach by implementing
a prototype called Scorpio-Tool, which allows us to adapt Fractal components and by
creating an ubiquitous scenario where structural adaptation is required.