3 Navigation dans un code inconnu
Pour tester toutes les facilit´ees d’´edition et navigation de code, nous allons
travailler sur un code ext´erieur, la biblioth`eque LASER d´evelopp´ee `a l’Univer-
sit´e de Massachusetts par l’´equipe LASER (laser.cs.umass.edu). LASER est
une biblioth`eque Java pour les automates finis.
Exercice 1: Pr´eparation
Cr´eer deux projets (FSA et FSA Unit Test) dans votre espace de travail et puis
importer dans ces projets les sources qui se trouvent dans les r´epertoires ayant
les mˆemes noms en /ens/sighirea/EDI/tp1/.
A la fin de cette op´eration, vous devez disposer de deux projets avec des
warnings mais pas d’erreurs. Si c’est pas le cas, il faut s’assurer que le JRE
utilis´e est bien la version 1.5 de Sun.
La documentation de ce projet se trouve dans le projet FSA Unit Test.
Exercice 2: Navigation
1. Visualiser tous les ´el´ements de l’unit´e de compilation MutableFSA.java
du paquetage laser.fsa dans le projet FSA Unit Test. Filtrer la vue
ainsi obtenue pour visualiser que les m´ethodes publiques.
2. En utilisant la vue filtr´ee, visualiser la d´efinition de la m´ethode
removeState(). Visualiser les hi´erarchies des appels et des h´eritages de
cette m´ethode. Comment peut-on obtenir la pile d’appels qu’engendre
cette m´ethode, c’est-`a-dire les m´ethodes que removeState() appelle.
3. Dans la mˆeme classe, on s’int´eresse maintenant au champ priv´e
transitions. Quelle est la classe de d´eclaration de ce champ ? Le type de
ce champ est un ensemble ordonn´e de transitions ´etiquet´ees. Quelles sont
les classes non-abstraites qui peuvent ˆetre utilis´ees comme transitions ?
4. Faire la mˆeme ´etude pour les champs _states et _alphabet.
5. Quelles sont les diff´erences entre l’unit´e de compilation MutableFSA.java
du projet FSA Unit Test et celle du projet FSA ?
Exercice 3: Edition pour la correction
Les fichiers AbstractFSA.java et MutableFSA.java arrivent avec des war-
nings concernant principalement les importations et les types g´en´eriques.
1. Eliminer les warnings concernant les importations en utilisant l’assistant
de code de JDT. Comparer la version obtenue avec celle de l’histoire
locale.
2. Eliminer les warnings concernant les cast (3) vers de types g´en´eriques
dans le fichier MutableFSA.java. Utiliser l’assistant de code pour cela.
3. Eliminer le warning concernant la variable non lue dans le fichier
MutableFSA.java.