Exercices UML et Java

Durée2h30

Documents structurés

Objectifs

Les objectifs de ces séances sont :

  • modéliser un cahier des charges simple sous forme d’un diagramme de classes UML,
  • réaliser ce diagramme sous forme de classes Java.

Contexte

Le travail de cette séance sera centré sur les documents structurés.

Documents structurés

Exercice 1 (Conception)

L’objectif de cet exercice est de réaliser un logiciel de manipulation de documents structurés dont voici le cahier des charges :

Un document dispose d’un titre. Il est composé d’un ensemble de sections et connaît la section courante qui est la section en cours de manipulation (c.-à-d. sa position dans la liste des sections). Une section possède un titre et est composée d’un ensemble de paragraphes. Un paragraphe contient du texte qu’il peut renvoyer.

Un document offre des services permettant de naviguer dans les sections (p.ex. changer la section courante par la section qui la précède ou la suit), d’ajouter une section après la section courante et de récupérer la section courante. Il fournit également un service qui renvoit son titre et le contenu des sections (titres et paragraphes) sous la forme d’une chaîne de caractères.

Une section permet d’accéder à son titre et d’ajouter un paragraphe en fin de section. Enfin, son contenu (titre et contenu des paragraphes) peut être obtenu sous forme d’une chaîne de caractères.

Identifier les classes nécessaires et proposer un diagramme de classe détaillé.

Exercice 2 (Classe Paragraph)

Réaliser, en Java, la classe Paragraph.

Exercice 3 (Classe Section)

Réalisez, en Java, uniquement les attributs, les associations et le constructeur de la classe Section. La réalisation des associations à cardinalité multiple doit utiliser la classe LinkedList de Java dont un extrait de la documentation est donné en annexes.

Exercice 4 (Classe Document)

Réalisez, en Java, uniquement les attributs, les associations et le constructeur de la classe Document. Comme pour la question précédente, utilisez la classe LinkedList pour les associations à cardinalité multiple.

Exercice 5 (Réalisation)

Dans la suite de la réalisation, vous êtes invités à compiler le plus souvent possible votre code même s’il n’est pas complètement terminé.

Un projet à importer est disponible sous Moodle.

Importez le projet.
Réalisez en Java et testez la classe Section.
Réalisez en Java et testez la classe Document.

Annexes

Extrait de la javadoc de la classe LinkedList

Class LinkedList<E>

Constructor Summary
LinkedList()        Constructs an empty list.
Method Summary
void add(int index, E element)
Inserts the specified element at the specified position in this list.
boolean add(E o)
Appends the specified element to the end of this list.
E get(int index)
Returns the element at the specified position in this list.
int size()
Returns the number of elements in this list.