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)