Rétro-ingénierie de composants `a partir de programmes Java

COLOSS P1–S3
Sujet de master recherche Architectures logicielles distribu´ees 2007–2008
R´etro-ing´enierie de composants `a partir de programmes Java
Encadrant principal : Pascal Andre
courriel : Pascal.And[email protected]
t´el. : 02 51 12 59 65
Co-encadrant(s) : Gilles Ardourel
Cadre du travail
Dans le cadre d’un projet avec des partenaire Europ´eens, nous nous int´eressons `a la R´etro-
ing´enierie de composants `a partir de programmes Java [1, 2, 3].
Un premier probl`eme est que la notion de composant n’existe pas en Java mˆeme s’il existe
des infrastructures ad-hoc pour manipuler des composants (EJB, .NET, CCM). Le processus
d’extraction (d’abstraction) ne peut donc ˆetre simple et direct, il n´ecessite des heuristiques et une
aide de l’utilisateur.
Dans le cadre du projet, on s’int´eresse uniquement `a l’abstraction de structures (composants,
services et connexions) et pour cette partie, nous avons distingu´e diff´erents outils d’aide, comme
le montre la figure 1.
annotation
definition
User
informations
(interactive)
[annotated]
Java code Structural
Abstract Model
CCMM
definition
consistent
External Tools
(parsers, graphs,
XMI…)
i
i
[annotated]
Java code Structural
Abstract Model
consistent
i+1
i+1
Model
from
annotat
ions
Annota
tion
writer
from
model
Cluster
ing tool
Distri-
bution
analy-
ser
Model
transfo
rmation . . .
Input filter
Output filter
Sche-
duler
Fig. 1 – Une vue architecturale du processus d’abstraction de structure
Voici quelques-unes des transformations primitives :
1. Annoter un programme Java `a partir d’informations utilisateur.
2. Construire un mod`ele `a composants `a partir d’un programme Java annot´e.
3. Construire un mod`ele `a composants `a partir d’un programme Java non annot´e.
4. Analyser un programme r´eparti pour etecter des composants (d´eploiement).
5. Extraire des cluster par des outils de graphes (grouper des classes dans des composants, ou
grouper des composants dans des composites).
6. R´ealiser des transformations de mod`eles telles que la fusion, la s´election... sur le couple (code,
mod`ele).
7. ...
Objectif du stage
Contribuer `a la conception et l’implantation de cette boˆıte `a outils collective. Compl´eter la
boˆıte `a outil en r´ealisant une ou plusieurs transformations. Les objectifs pr´ecis seront affin´es en
fonction de l’avancement du projet et des souhaits des ´etudiants.
Travail `a r´ealiser
Le travail se d´eroule en plusieurs ´etapes. Dans un premier temps, l’´etudiant devra se fami-
liariser avec les architectures `a composants, comprendre l’architecture globale de l’application de
etro-ing´enierie, maˆıtriser le m´etamod`ele des composants. Pour cela l’´etudiant pourra se baser
sur les connaissances de l’´equipe COLOSS dans le domaine, et en particulier sur l’environnement
COSTO et le langage Kmelia [4, 5, 6, 7].
Dans un deuxi`eme temps, l’´etudiant se familiarisera avec le m´etamod`ele, le langage d’annotation
et les outils de manipulation de code Java.
Enfin il isolera deux ou trois transformations `a r´ealiser et d´eveloppera compl`etement ces transfor-
mations (conception et implantation) en respectant les interfaces avec les autres processus et les
mod`eles supports. L’implantation effective sera r´ealis´ee en Java.
Mots-cl´es : Composants, Java, Retro-Ingenierie, Transformation de mod`eles, erification.
————
R´ef´erences
[1] Hausi A. M¨
uller, Jens H. Jahnke, Dennis B. Smith, Margaret-Anne Storey, Scott R. Tilley, and
Kenny Wong. Reverse engineering : a roadmap. In ICSE ’00 : Proceedings of the Conference
on The Future of Software Engineering, pages 47–60, New York, NY, USA, 2000. ACM Press.
[2] Pavel Par´ızek, Frantiˇsek Pl´aˇsil, and Jan Kofroˇn. Model checking of software components :
Combining java pathfinder and behavior protocol model checker. In 30th IEEE/NASA Software
Engineering Workshop (SEW-30), pages 133–141. IEEE Computer Society, 2007.
[3] Jean-Marie Favre, Jacky Estublier, Fed´eric Duclos, Remy Sanlaville, and Jean-Jacques Auf-
fret. Reverse engineering a large component-based software product. In CSMR ’01 : Procee-
dings of the Fifth European Conference on Software Maintenance and Reengineering, page 95,
Washington, DC, USA, 2001. IEEE Computer Society.
[4] Christian Attiogb´e, Pascal Andr´e, and Gilles Ardourel. Checking Component Composability. In
5th International Symposium on Software Composition, SC’06, volume 4089 of LNCS. Springer,
2006.
[5] Pascal Andr´e, Gilles Ardourel, and Christian Attiogb´e. Defining Component Protocols with
Service Composition : Illustration withe Kmelia Model. In 6th International Symposium on
Software Composition, SC’07, volume to appear of LNCS, pages –. Springer, 2007.
[6] Pascal Andr´e, Gilles Ardourel, and Christian Attiogb´e. V´erification d’assemblage de compo-
sants logiciels Exp´erimentations avec MEC. In Michel Gourgand and Fouad Riane, editors, 6e
conf´erence francophone de MOd´elisation et SIMulation, MOSIM 2006, pages 497–506, Rabat,
Maroc, April 2006. Lavoisier.
[7] Pascal Andr´e, Gilles Ardourel, and Christian Attiogb´e. Sp´ecification d’architectures logicielles
en Kmelia : hi´erarchie de connexion et composition. In 1`ere Conf´erence Francophone sur les
Architectures Logicielles, pages 101–118. Herm`es, Lavoisier, 2006.
1 / 2 100%

Rétro-ingénierie de composants `a partir de programmes Java

La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !