Examen de Programmation Orientée Objet
IUP 3
Janvier 2000
On vous propose de réaliser un éditeur de diagrammes dont la spécification vous est donnée par le texte suivant :
On  appelle diagramme  une collection  de  boîtes et  liens. Un  lien est  une
relation entre deux boîtes. Chaque  lien est constitué de segments horizontaux
ou verticaux  reliés par un point  de jonction. L'édition  d'un diagramme doit
permettre  la création, destruction,  modification des  boîtes et  liens. Pour
cela on doit  disposer d'une sélection. Celle-ci est  constituée d'un ensemble
de boîtes et  liens choisis par l'utilisateur. La  sélection doit permettre la
réalisation  d'opération de  couper/coller.  Il  doit être  aussi  possible de
modifier  interactivement  les  caractéristiques  géométriques des  boîtes  et
liens. De plus à chaque lien est  associé un texte court, et à chaque boîte un
ensemble non  vide de  textes courts. Un  exemple de diagramme  est représenté
schématiquement dans la figure suivante.
Figure 1: Un exemple de diagramme.
\includegraphics[width=5cm]{diagramme.eps}
Répondre aux questions suivantes :
  1. identifiez les objets et classes pertinents du problème en justifiant vos choix.
  2. identifiez les attributs pour chacun des objets et classes.
  3. identifiez les méthodes pour chacun des objets et classes.
  4. si c'est possible et intéressant réalisez des abstractions.
  5. identifiez les relations entre les différentes objets et classes. Pour cela aidez vous d'un schéma à la UML.
  6. écrire le squelette Java des différentes classes/interfaces en choisissant soigneusement les types.
  7. décrire symboliquement (par exemple en utilisant un diagramme temporel) une opération de copier/coller dans l'exemple de la figure précédente : sélection de la Boite1 et du lien1, copier puis coller sur la Boite 3. Il n'est pas demandé de décrire les opérations physiques réalisées (déplacement de souris ou autre) mais simplement d'exhiber l'ordonnancement des interactions entre objets.
  8. identifiez les points qui vous semblent importants dans un tel logiciel et qui ont été oubliés.


Jean-Baptiste Yunès