Vous êtes sur la page 1sur 3

Institut Universitaire Professionnalis MIAGE DESS Systmes dInformation Multimdias DU Techniques de Base pour le Multimdia

EXAMEN Session de janvier 2005

Code du Module : T3 Intitul du module : Analyse et programmation oriente objet Nom de lenseignant : Gilles Desrocques Dure de lpreuve : 3 heures Nombre de pages : 3

Note : lusage de documents papier est autoris. Aucun matriel (calculatrice, ordinateur, tlphone) nest ncessaire.

Remarques et conseils : parcourir lensemble du sujet avant de commencer. faire des diagrammes trs lisibles, quitte utiliser un crayon effaable. procder mthodiquement, pas pas, en lisant bien la question. Le but de ce sujet est de modliser une Base de Donnes concernant des spectacles. On reprsentera cette analyse sous la forme de diagrammes de classes (notation UML comme en cours). Sauf en I.5 lcriture du code est hors sujet ! Par ailleurs, pour y gagner en clart et en temps, on nvoquera ni les accesseurs (getX(), ni les modificateurs (setX(_x) ) associs aux donnes. Par contre on prcisera avec soin les signatures (enttes) des mthodes ainsi que les qualificatifs (- pour priv, + pour public etc.) et les relations (dpendances, hritage ) selon les normes UML. Il est autoris de passer certaines questions en les considrant comme admises en lindiquant clairement !

Premire partie : modlisation de classes simples


On appelle horaire un ensemble constitu - du nombre (entier) de minutes coules depuis le dbut de la semaine. (0 pour lundi 0h00, 2*24*60+14*60+5 pour mercredi 14h05, 6*24*60+23*60+59 pour dimanche 23h59), - du numro (entier) de la semaine au cours de lanne (0 pour la premire semaine de janvier, 51 pour celle de Nol) 1. Reprsenter une classe Horaire comportant 2 entiers modlisant un tel horaire. 2. Indiquer un constructeur acceptant en paramtres un numro de semaine, numro de jour, une heure et un nombre de minutes. 3. Indiquer les mthodes permettant de rcuprer le jour de la semaine, lheure ainsi que les minutes. 4. Indiquer une mthode statique demo permettant de tester la classe Horaire.

5. Ecrire le code, en Java ou en C++ correspondant au constructeur de la question 2 et la mthode getHeure() permettant de rcuprer lheure. 6. On dispose dune classe String capable de conserver une chane de caractres. (Peu importe son implantation) Modliser une classe Personne possdant un nom et un prnom (de type String) en utilisant des relations (et non pas des champs) avec la classe String 7. On suppose que toutes nos classes seront capables de modifier lensemble de leurs donnes partir dun unique entier appel germe . Par la suite on dira quelles sont generantes . Par exemple si h1 est un lment de la classe Horaire alors h1.generer(3) mettra dans ses champs des valeurs correspondant la semaine numro 3, le jour 4, lheure 5 et le nombre de minutes 6. Si p2 est un lment de la classe Personne alors p2.generer(1) mettra comme valeur 111 Indiquer les modifications effectuer dans la modlisation.

Deuxime partie : modlisation dune liste dlments (demande de lattention et de la


prcision). Peut-tre admise pour la troisime partie. On suppose dsormais que toute classe hrite dune classe appele Object, possdant une mthode toString() renvoyant un lment de la classe String suppos correspondre laffichage de lobjet. On admettra lexistence dun oprateur = permettant daffecter un lment de cette classe ainsi quun oprateur + de concatnation : String s1= Bonjour ; String s2=s1+ Monsieur ; Toutes les classes du modle devront dsormais proposer une mthode toString() renvoyant un lment de type String correspondant leur contenu propre afficher. (attention bien reprsenter toutes les relations entre les classes ( en particulier avec Object et String) !) 1. Reprsenter nouveau les classes Horaire et Personne, en intgrant ces concepts. 2. On suppose lexistence dune classe, dnomme ArrayList, possdant une mthode add(Object) et toString(). La reprsenter en format UML. 3.a. Proposer la modlisation dune classe ListeHoraire1 dHoraire hritant dArrayList. 3.b. Proposer la modlisation dune classe ListeHoraire2 dHoraire compose dune classe ArrayList. 3.c Un logiciel traduit la composition dun ensemble dlments quelconques en utilisant directement un ArrayList comme compos. Prciser cette modlisation dans le cas dune liste dHoraire3 dHoraire. 4. Pour chacune des modlisation prcdentes : 4.a. peut-on utiliser la mthode add de la classe ArrayList pour ajouter un lment de la classe String ? Justifier la rponse en indiquant sommairement les avantages et les inconvnients. 4.b. Proposer une modification pour naccepter lajout que dun lment de la classe Horaire. 5. On rappelle quune classe possdant une mthode generer(int) est dite generante . A laide dune interface indiquer les modifications apporter la modlisation prcdente. Noter quune liste aussi doit tre generante.

Troisime partie : modlisation gnrale.


Afin de simplifier on ne reprsentera plus les classes Object, String ni ArrayList des parties prcdentes. Par ailleurs on ne reprsentera plus non plus les membres (donnes ou mthodes) dj voques dans les parties prcdentes pour les classes Horaire et Personne. Par contre on supposera que toutes les classes sont generantes (cf partie I question 7 et partie II question 5). Dsormais on suppose que lon utilise, chaque fois que ncessaire, une Liste spcialise et generante, nacceptant que les lments du type souhait et possdant les mthodes add(Elt) et toString(). Ranger les classes soit dans un paquetage outil soit dans un paquetage metier Proposer une modlisation dune classe Saison proposant une liste de spectacles, sachant que : Un mot est une chane, non vide, (generante), possdant une mthode nettoyer remplaant tout caractre autre que ceux de lalphabet ou les chiffres par des _. Une phrase est une liste non vide de mots. Un acteur est une personne ayant une liste de rfrences (phrase). Parmi les spectacles on distingue : - Les pices de thtre possdant un titre (phrase), une liste dacteurs et un auteur (personne) - Les films possdant un titre (phrase), une liste dacteurs, un ralisateur (personne) - les confrences possdant un titre (phrase) et un exposant (personne). Chaque spectacle a une liste dhoraires pour lanne. Commenter entirement la classe film : ses donnes et ses mthodes. Donner un exemple de ce que devrait retourner la mthode toString aprs un generer(3).