Previous Up Next

Séance 3 (17/10/2017, 18:00)

CM 2 : Interfaces et généricité

Le CM 2 présente les notions d’interface et de généricité.

TP 5 : Afficher graphiquement les points et les segments

Le TP 5 propose de se familiariser avec un affficheur graphique dont la documentation est donnée puis de l’utiliser pour afficher graphiquement les points et les segments.

Voici les fichiers fournis.

Solution : Voici une solution possible.

TD 4 : Définition et utilisation d’une structure de données générique : l’exemple des ensembles ordonnés

Le TD 4 propose de modéliser un ensemble ordonné utilisé dans la résolution (naïve) du crible d’Ératosthène.

TP 6 : Outils associés à Java Modeling Language (JML)

Le TP 6 présente les outils associés à JML que nous utilisons dans le cadre de la programmation par contrat.

Attention : Nous allons utiliser jml4c qui implante JML. Il est installé dans

    /mnt/n7fs/ens/tp_cregut/jml4c/

qui contient deux scripts jml4c ou jmlc (le compilateur) et jml4 ou jmlrac (le lanceur de la machine virtuelle). Il contient aussi jmldoc qui permet d’engendrer la documentation mais vient d’un ancien projet. Il contient également jmljavac et jmljava pour compiler et exécuter avec la version 7 de Java qui est nécessaire pour faire fonctionner jml4.

Remarque : Il est conseillé d’utiliser d’abord jmljavac pour compiler toutes les classes avec le compilateur classique. En effet, jml4c n’est pas très robuste ! Une fois que le programme compile avec le compilateur java classique, on peut compiler avec jml4c ou jmlrac les classes à instrumenter.

Pour les utiliser de manière plus simple, il faut modifier votre PATH en faisant pour csh/tcsh/... (à mettre dans le fichier $HOME/.cshrc) :

setenv PATH /mnt/n7fs/ens/tp_cregut/jml4c/:$PATH

ou en sh/bash/... (à mettre dans le fichier $HOME/.bashrc)

export PATH=/mnt/n7fs/ens/tp_cregut/jml4c/:$PATH

Si ce n’est pas déjà fait, vous pouvez aussi positionner CLASSPATH pour donner accès aux fichiers d’archive de JUnit (version 3 et 4) ainsi :

setenv CLASSPATH /mnt/n7fs/ens/tp_cregut/junit4.jar:/mnt/n7fs/ens/tp_cregut/junit3.jar:.

ou en sh/bash/...

export CLASSPATH=/mnt/n7fs/ens/tp_cregut/junit4.jar:/mnt/n7fs/ens/tp_cregut/junit3.jar:.

D’autre part, il faut compiler et exécuter à l’extérieur de bluej ou eclipse.

Voici les classes fournies.

TP 7 : Réalisation d’un ensemble d’entiers

Le TP 7 illustre la programmation par contrat sur la réalisation d’un ensemble qui est ensuite utilisé pour trouver des nombres premiers par l’algorithme du crible d’Ératosthène.

Ce sujet montre l’intérêt de la notion d’interface. Deux réalisations de l’ensemble sont demandées. La classe Crible s’appuyant sur l’interface de l’ensemble, elle peut être utilisée avec les deux réalisations sans modification.

Les assertions de la programmation par contrat sont exprimées en JML (Java Modeling Language).

Voici les classes fournies.

Solution : Voici une solution possible.

Merci de signaler toute erreur ou problème concernant ce document à Xavier Crégut <Prenom.Nom@enseeiht.fr>.
Previous Up Next