Migration d’un système à objets vers un système à base
de composants :
Application à la migration de JAVA vers
SCL
Encadrants :
Abdelhak-Djamel Seriai, Chouki Tibermacine, Christophe
Dony
Contact : seriai@lirmm.fr
Remarque
importante : Le travail de ce stage peut être poursuivi dans le cadre d’une
thèse CIFRE
Mots Clés : Réingénierie, migration, objet, composant, Java, SCL,
ingénierie des modèles.
Contexte du travail :
La réingénierie des logiciels. La réingénierie des logiciels consiste en l’analyse,
la compréhension et la modification d’un système logiciel pour le reconstituer
sous une nouvelle forme. Le processus est le résultat de la combinaison d’autres
processus tels que la retro-ingénierie, la re-documentation, la restructuration et la migration, etc.
L’objectif est de re-concevoir les logiciels existants
(spécification, conception et implémentation) pour améliorer un attribut qualité
particulier (comme la performance ou la maintenabilité) tout en maintenant leurs fonctionnalités
existantes.
Les paradigmes de programmation orientés objet et à
base de composants. La programmation
orientée objet (POO) est un paradigme de programmation qui consiste en la
définition d'un ensemble d'objets qui interagissent pour réaliser un traitement
métier. Un objet est une structure de données valuées
et qui répond à un ensemble de messages. Cette structure de données définit son
état tandis que l’ensemble des messages reçus dictent son comportement.Un composant est une unité de composition dotée
d’interfaces contractuelles et d’uniquement de dépendances explicites du
contexte. Un composant logiciel peut être déployé indépendamment et être sujet à
une composition de sources différentes. La programmation à base de composant
consiste en l’assemblage de composants préexistants par la connexion de leurs
interfaces fournies et requises.
Objectif et travail à
réaliser
L’objectif de ce travail est de proposer une approche
de migration d’un système existant de la technologie objet vers la technologie
des composants logiciels. Cette approche doit s’appuyer sur l’approche Romantic (développée par des membres de l’équipe DOC)
permettant d’extraire l’architecture (niveau modèle) à base de composants à
partir d’un système orienté objet. Différents problèmes seront étudiés tels que
l’identification des ressources partagées entre composants à générer,
l’identification des points d’interaction à transformer en interfaces, la
fragmentation avec maintien de l’intégrité de l’application, etc. Par soucis de
généricité de l’approche, nous souhaitons diriger la migration par les modèles.
Ainsi, l’approche à développer sera applicable pour différents langages OO
(Java, C++, Smalltalk, etc.) ou à base de composants
(CCM, Fractal, EJB, SCL, etc.). Nous souhaitons prendre comme cas d’étude des
applications implémentées en Java (applications sources) pour une migration vers
une implémentation sous forme d’assemblage de composants écrits en SCL
(Simple Component Langage, développé par l’équipe
DOC).

Figure : Exemple de
migration de l’orienté objet vers les composants
Bibliographie
:
1. Software Re-engineering, Linda H. Rosenberg
:http://satc.gsfc.nasa.gov/support/reengrpt.PDF
2. Modèles de composants
logiciels, Kung-Kiu Lau Zheng Wang : http://www2.computer.org/portal/web/csdl/doi/10.1109/TSE.2007.70726
3. Langage SCL, Luc Fabresse, Christophe Dony et
Marianne Huchard : http://hal-lirmm.ccsd.cnrs.fr/lirmm-00175781/en/
4. 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
5. M. Fowler, K. Beck, J. Brant, W. Opdyke,
D. Roberts: Refactoring: Improving the Design of
Existing Code. ISBN 0201485672. (The Addison-Wesley
Object Technology Series) Hit the shelves in mid-June of 1999.
6. K. B. Gallagher and
J. R. Lyle: Using program slicing in software maintenance. IEEE Transactions on
Software Engineering, 17(8):751-761, 1991.