Vous êtes sur la page 1sur 5

EXAMEN UML ET JAVA M1 INFO RTEL et IABD

N.B. : La correction sera très rigureuse (soignez votre écriture)

NOM ET PRENOMS : …………………………………………………

NOTE …………………. /20

Exercice N°1 (5Pts)


Completer le diagramme UML suivant conformement au code java

………………………………. ……………………………….
………………………………. ……………………………….

……………………………….
……………………………….

import java.util.HashSet;
import java.util.TreeSet;
import java.util.Iterator;
public class Library {
// ----- Attributes ----------
private TreeSet theLoanStock; (1Pt)
private HashSet theBorrowers; (1Pt)
}

import java.util.LinkedList;
public class BorrowerRecord implements Comparable {
// ----- Attributes ----------
private LinkedList theBorrowedBooks; (1Pt)
}

public class Book implements Comparable {


// ----- Attributes ----------
private final int theCatalogueNumber;
private String theAuthor;
private String theTitle;
// ----- Relations ----------
private BorrowerRecord theBorrower; (1Pt)
}

Page. 1/5
Exercice N°2 (5Pts : 1pt par relation)
Considerons la classe java suivante :

public class Formation extends ElementCatalogue


{
private ArrayList<Session> Sessions = new ArrayList<Session> ();
private HashSet Themes = new HashSet ();
private Contenu Cont;
private Organisme Org;
}

Construire le diagramme UML correspondant (completer le diagramme ci-dessous en


utilisant les notations vues au cours)

Page. 2/5
Exercice N°3 (5Pts)
Considerons le pattern OBSERVER appliqué à un point. Chaque fois que la valeur de l’une
des coordonnées du point est modifiée, les observateurs qui se sont enregistrés auprès de
ce point sont notifiés. Complèter le code suivant pour que le programme fonctionne.
Inscrivez les numéros des méthodes ci-dessous au bon endroit.

(1) enregistreObservateurs
(2) metsAJour
(3) NotifieObservateurs
(4) notifieObservateurs
(5) enregistreObservateurs

package observer;
public interface Observateur {
void metsAJour(String attributModifie, Object nouvelleValeur);
}

package observer;
public class ObservateurCoordonnee implements Observateur {
@Override
public void metsAJour(String attributModifie, Object nouvelleValeur) {
System.out.println("Attribut : " + attributModifie + " Valeur : " +
nouvelleValeur);
}
}

package observer;
import java.util.ArrayList;
import java.util.List;
public class Sujet {
//------------- Attributs -----------------
protected List<Observateur> observateurs;
//------------- Méthodes -----------------
public Sujet() {observateurs = new ArrayList<>();}
public void …………………………..(Observateur electeur)
{
this.observateurs.add(electeur);
}
protected void …………….(String attributModife, Object nouvelleValeur)
{
for(Observateur observateur : observateurs)
{
observateur……………….. (attributModife, nouvelleValeur);
}
}
}

Page. 3/5
package observer;
public class Point extends Sujet{
//------------- Attributs -----------------
protected int x, y;
//------------- Méthodes -----------------
public Point(int x, int y) {super();this.x = x;this.y = x;}
public int getX() {return x;}
public int getY() {return y;}
public void setX(int x) {this.x = x; this……………………… ("x", x);}
public void setY(int y) {this.y = y; this……………………… ("y", y);}
}

package observer;
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
Point unPoint = new Point(10, 15);
String reponse ="";

unPoint………………………. (new ObservateurCoordonnee());


unPoint……………………….. (new ObservateurCoordonnee());
unPoint……………………….. (new ObservateurCoordonnee());

do{
System.out.print("1 - modifier x ; 2 - modifier y ; 3 - sortir :");
reponse = reader.next();
if(reponse.equals("1")){
System.out.print("Entrer la coordonnees x :");
Integer x = reader.nextInt();
unPoint.setX(x);
}else if(reponse.equals("2")){
System.out.print("Entrer la coordonnees y :");
Integer y = reader.nextInt();
unPoint.setY(y);
}
System.out.println("x : " + unPoint.getX() + " y : " + unPoint.getY());
}while (!(reponse.equals("3")));
}
}

Page. 4/5
Exercice N°4 (5Pts)
Complétez le code Java suivant pour la classe Student en donnant des implémentations
pour les corps de méthode.

public class Student {


// ----- Attributes ----------
private String Name;
private String Address;
private String Matriculation;
// ----- Operations ----------
public Student(String N, String A, String M) (1pts)
{
……………………………………………………;
……………………………………………………;
……………..……………………………………..;
}
(2pts)
public String getName() { …………………………………………. }
public String getAddress() { ………………………………….……. }
public String getMatriculation() { ……………………..…………… }
} // class: Student

Développez maintenant une application qui crée une instance S de la classe Student et
affiche ses détails.

public class TestStudent { (3pts)


public static void main(String[] args) {
Student S = new Student("ALI", "ABIDJAN", "001");
System.out.print("NOM :" ………………..…………….. );
System.out.print("ADRESSE : "………………………..);
System.out.print("MATRICULE :" …..…..………);
}

Page. 5/5

Vous aimerez peut-être aussi