Identification de Composants Logiciels Réutilisables à
partir d’un Système Orienté Objet
Encadrant :
Abdelhak-Djamel Seriai
Mots clés : Objet, composant, architecture,
réutilisation, rétro ingénierie, qualité, métrique, Java.
Remarque Importante : Le travail de
ce stage peut être poursuivi dans le cadre d’une thèse CIFRE avec la société
Globalliance.
Contexte
Le
logiciel envahit toute l’activité mondiale (télécommunications, transports,
énergie, gestion, transactions financières et administratives, jeux, santé,…) et
sa part devient prépondérante dans l’économie. C’est pourquoi le coût d’un
logiciel doit être maîtrisé (productivité) et son temps de développement
minimisé (réactivité). Par ailleurs, un logiciel doit aussi être d’excellente
qualité, pouvoir s’adapter en permanence aux variations de l’environnement
(évolutivité) et être facilement utilisé dans d’autres applications
(interopérabilité). Les architectures logicielles à base de composants, par la
rupture qu’elles apportent dans le processus de développement, semblent bien
être une réponse à ces exigences [1].
La
vision de l’ingénierie des logiciels s'est alors radicalement changée en passant
de la perspective de développement d'un système "monobloc" vers un système
construit en assemblant des pièces provenant de l'organisme développant le
système ou d'un constructeur différent . Ces pièces sont appelées
composants.
Travail à faire pendant le
stage
L’objectif de ce travail de stage est de proposer une
approche permettant d’identifier des composants logiciels réutilisables à partir
de l’analyse du code source et de la documentation d’un système objet existant.
Deux axes sont à explorer. Le premier axe consiste à identifier les « meilleurs
» composants réutilisables du système. Il s’agit de partitionner le système
objet existant en différentes sous-parties représentant chacune un composant
logiciel. Chaque sous-partie (composant) regroupera un certain nombre de classes
objet. Le deuxième axe consiste à utiliser une spécification fournie de
composant à identifier pour l’extraire du système objet. Dans ce cas, il s’agit
d’identifier les classes objets définissant l’implémentation de cecomposant.
Le
travail de ce stage s’appuiera sur les résultats de l’approche Romantic (développée entre autres par des membres de
l’équipe DOC). L’approche Romantic permet d’extraire
une architecture (abstraite) à base de composants à partir d’un système orienté
objet.

Figure : Exemple d’identification de deux
composants logiciels à partir d’un code objet
Quelques références bibliographiques
1. Extraction of Component-Based Architecture from Object-Oriented
Systems Export by: Sylvain Chardigny, Abdelhak Seriai, Mourad Oussalah, Dalila Tamzalit In WICSA '08:
Proceedings of the Seventh Working IEEE/IFIP Conference on Software Architecture
(WICSA 2008) (2008), pp. 285-288.
2. Sylvain Chardigny, Abdelhak Seriai, Dalila Tamzalit, Mourad Oussalah: Quality-Driven
Extraction of a Component-based Architecture from an Object-Oriented System.
CSMR
2008: 269-273
3.
extraction d’architectures à base de composants à partir d’un système orientés
objets, thèse de doctorat de Sylvain Chardigny,
octobre 2009, université de Nantes.
4. C. Szyperski: Component Software. Beyond Object-Oriented Programming - Addison-Wesley /ACM Press,
1998.
5. K. B. Gallagher and J. R. Lyle: Using program slicing in software
maintenance. IEEE Transactions on Software Engineering, 17(8):751-761, 1991.
6. F. Losavio, L. Chirinos, N. Lévy, and A. Ramdane- Cherif, “Quality
characteristics for software architecture.,” Journal of Object Technology, vol.
2, no. 2, pp. 133–150, 2003.
7. N. Anquetil, C. Fourrier, and T. C. Lethbridge,
“Experiments with clustering as a software remodularization method,” in Proc. of the Sixth Working
Conf. On Reverse Engineering, p. 235, IEEE, 1999.
8. R. Kazman, L. O’Brien, and C. Verhoef, “Architecture reconstruction guidelines,” tech.
rep., 2001. B. Coulange, Software Reuse. Springer-Verlag, 1998.
[1] Extrait du rapport de synthèse du Groupe "Architecture de logiciels et réutilisation de composants" de l'Observatoire Français des Techniques Avancées (Octobre 2000)