Devoir de programmation objet
Licence d’Informatique & ILOG1

Marc Champesme
Marc.Champesme@lipn.univ-paris13.fr
Departement d’Informatique
Institut Galilée

19 janvier 2004
Tous les devoirs doivent être remis à votre chargé de TD (en main propre, dans son casier ou par e-mail), au plus tard le 13 février 2004. Tout devoir rendu après cette date sera considéré comme non fait.

1 Objectif du devoir

Le but est de mettre en pratique les concepts de la programmation orientée objet et plus particulièrement :

2 Présentation du sujet

Il s’agit de réaliser un logiciel de dessin très simple, en utilisant le travail que vous avez réalisé à l’occasion du devoir de Génie Logiciel. Pour réduire la quantité de travail nécessaire, le code source en JAVA d’une version préliminaire du logiciel vous est fourni (disponible à l’adresse http://marc.champesme.free.fr/POO/devoir/logicielDessin.tar.gz).

3 Travail demandé

Le devoir doit être réalisé individuellement : chaque étudiant devra rendre sa propre version du logiciel sur laquelle il sera évalué. Le travail à réaliser consiste à :

Avertissement La classe FigRectangle, de même que les classes Rectangle ou rectangle2D de la bibliothèque standard JAVA modélisent un cas très particulier de rectangle (i.e. les rectangles dont les côtés sont parallèles aux axes) et ne correspondent pas à la notion de rectangle que vous devez modéliser. La notion de rectangle que vous devez modéliser doit prendre en compte toutes les figures correspondant à la notion géométrique générale de rectangle, c’est-à-dire, toute figure :

4 Evaluation

Compte tenu de l’objectif fixé, ce n’est pas la richesse en fonctionnalité, mais plutôt la qualité de la réalisation qui sera évaluée.

La qualité de la réalisation sera évaluée selon les critères suivants :

5 Documents à rendre par chaque étudiant

Chaque étudiant rend une disquette et un rapport sur papier contenant :

6 Standards de programmation

Commentaires
Les commentaires doivent être rédigés en respectant les règles suivantes :

Choix des identificateurs
Tous les identificateurs doivent être en français. Les seules exceptions admises sont les préfixes get et set pour les méthodes servant à consulter ou modifier un champ particulier.
Assertions
Vous devez définir un invariant pour chaque classe et, sauf cas particulier (qui doit rester rare), toute méthode doit posséder une pré-condition et une post-condition.

Vous devez vous efforcer d’écrire les assertions en JML de façon à ce qu’elles puissent être activées à l’exécution. Cependant certaines assertions ne peuvent être décrites de manière satisfaisante en JML, dans ce cas, les assertions pourront être écrites en français.

Visibilité / masquage d’information
Toutes les classes et les méthodes doivent être déclarées public et tous les attributs doivent être déclarés private. Il est néanmoins admis que les attributs final soient déclarés public.

Toute exception à cette règle devra être clairement justifiée dans les commentaires.

Variables de classe
L’usage de variables de classes devra être réservé à des cas exceptionnels (par exemple variables final).