Exercice 1. Définitions Exercice 2. Java Exercice 3. Dériveur

L3 MIME 2006 – Programmation Objets – partiel 1
Exercice 1. D´efinitions
3min/d´ef
45min
5pts
Question 1.1. Programmation objet
D´efinir les mots ci-dessous. Justifiez votre r´eponse `a l’aide d’un exemple.
1. objet
2. classe
3. h´eritage
4. m´ethode
5. m´ethode abstraite
6. attribut
7. interface
8. m´ethode statique
9. protection (public, priv´ee, prot´eg´e,
d´efaut)
Question 1.2. UML
D´efinir et illustrer par un diagramme UML les mots suivants :
1. classe, attribut, m´ethode
2. h´eritage
3. agr´egation
4. composition
5. multiplicit´e
6. r´ealisation d’une interface
Exercice 2. Java
20min
3pts
´
Ecrire, en langage Java, deux classes Aet Btelles que :
La classe Bh´erite de la classe A;
la classe Aposs`ede :
un attribut entier xvisible seulement par ses classes filles ;
un constructeur affectant une valeur `a l’attribut x;
une m´ethode triple renvoyant la valeur de xmultipli´ee par 3 si x6= 0.
La classe Bposs`ede :
un attribut entier yvisible que dans la classe B;
un constructeur affectant une valeur aux attributs xet y;
une m´ethode divise revoyant la valeur de ydivis´ee par le triple de la valeur y
quand cela est possible.
Tous les choix seront justifi´es `a l’aide de commentaires Javadoc.
Exercice 3. D´eriveur symbolique
6pts
Dans cet exercice, nous r´ealisons un d´eriveur symbolique pour la fonction puissance :
(un)0=nun1u0avec uune fonction d´erivable et net n6= 0. 20min
3pts
1. Compl´eter le diagramme de classes UML (figure 1 sur la page 3). Justifier toutes les
r´eponses. 30min
3pts
1pt/classe
2. ´
Ecrire les classes Expression,Symbole et Puissance. Justifier les diff´erents choix.
L3 MIME 2006 – Programmation Objets – partiel 2
Exercice 4. Factory
60min
6pts
Contexte
Une application de bureautique peut manipuler plusieurs formats de fichiers. Chaque
format de fichier est d´ecrit dans une classe distincte. Ces classes h´eritent toutes d’une
classe Document. Par exemple, le format RTF est g´er´e par une classe RtfDocument, le
format MS Word est g´er´e par une classe DocDocument. De plus, l’utilisateur peut installer
de nouvelles classes de formats en faisant des mises `a jour de l’application. Dans ce
contexte, l’application ne peut connaˆıtre de fa¸con d´efinitive tous les formats disponibles.
Se pose alors le probl`eme suivant : Comment instancier la bonne classe lors du char-
gement d’un fichier sachant que l’on connaˆıt le nom de ce dernier ?
Solution
La solution au probl`eme pr´ec´edent est d’utiliser le design pattern Factory (Usine). Ce
pattern permet fabriquer dynamiquement un objet impl´ementant une interface donn´ee en
fonction d’un ou plusieurs param`etres. Par exemple, une DocumentFactory peut fabriquer
un document du bon format si nous lui passons en param`etre le nom d’un fichier. Pour
cela, la factory d´etecte l’extension du fichier puis tente d’instancier une classe dont le nom
est construit en concat´enant l’extension du fichier `a la chaˆıne ((Format)). Par exemple, si le
nom du fichier donn´e en argument est ((unfichier.rtf)) alors la factory renvoie une instance
de classe RtfFormat (((Rtf)) +((Format))).
Question 4.1. Conception
30min
D´ecrire compl`etement le design pattern Factory `a l’aide de diagramme(s) UML. Ne
pas oublier le cas o`u le format n’est pas disponible. Cette description sera justifi´ee.
Question 4.2. Programmation
30min
Programmer, en langage Java, une factory construisant des instances de l’interface
DocumentFormat en fonction d’un chaˆıne codant le format :
DocDocument,RtfDocument,HtmlDocument, ...
Votre programme sera justifi´e.
L3 MIME 2006 – Programmation Objets – partiel 3
+deriver(Symbole variable) : Derivable
Expression
+deriver(Symbole variable) : Derivable
<<interface>>
Derivable
+deriver(Symbole variable) : Derivable
Nombre
+deriver(Symbole variable) : Derivable
+estVariableDeDerivation() : boolean
Symbole
+deriver(Symbole variable) : Derivable
OperationBinaire
+deriver(Symbole variable) : Derivable
Multiplication
+deriver(Symbole variable) : Derivable
Puissance
1
1
1 1 2
1
java.lang.String
1
java.lang.Number
1
1
1
Fig. 1 – Diagramme de classes UML du d´eriveur `a compl´eter. (Ajoutez vos nom, pr´enom
et num´ero d’´etudiant)
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !