Vous êtes sur la page 1sur 15

FEDERATION EUROPEENNE DES ECOLES EUROPEAN FEDERATION OF SCHOOLS EUROPISCHER SCHULVERBAND FEDERAZIONE EUROPEA DELLE SCUOLE FEDERACION EUROPEA

DE CENTROS DOCENTES
Organisation Non Gouvernementale dote du statut participatif auprs du Conseil de lEurope NGO enjoying participatory status with the Council of Europe

TECHNIQUES PROFESSIONNELLES

D41.2 DEVELOPPEMENT

Type dpreuve : QCM + Exercices Dure : 3 heures Session : Juin 2010

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010 UC D41.2 MASTER Europen dInformatique Sujet

D41.2 DEVELOPPEMENT

BAREME DE NOTATION POUR LE QCM

Bonne rponse

3 points

Absence de rponse

0 point

Rponse errone

- 1 point

BAREME DE NOTATION POUR LES EXERCICES

Dossier 1 - UML 2 Dossier 2 - ORACLE et PL/SQL Dossier 3 - JAVA et IHM Orthographe et prsentation Total

30 points 55 points 55 points 10 points 150 points

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010 UC D41.2 MASTER Europen dInformatique Sujet

2/15

Premire partie : QCM


1. La fonction "simplexml_load_file" permet de :
a. b. c. d. parser un document XML dans une structure PHP ouvrir et charger un document XML charger en mmoire un fichier XML ouvrir un fichier xml

2. XPath :
a. b. c. d. est un langage non XML pour localiser une portion d'un document XML est un langage XML pour localiser une portion d'un document XML est une variable contenant le chemin d'un document XML est une fonction pour localiser un document XML

3.

En PHP-XML, le parseur fait appel des handlers :


a. b. c. d. pour chaque dbut de balise pour chaque fin de balise pour chaque dbut ou fin de balise pour chaque balise

4. Un flux RSS :
a. b. c. d. est constitu d'un canal et d'un ou plusieurs items, correspondant des articles est constitu juste d'un seul canal est constitu d'un seul item, correspondant un seul article est constitu de plusieurs canaux et d'un ou plusieurs items, correspondant des articles

5.

En langage PHP, l'appel du constructeur de la classe mre partir de la classe drive se fait :
a. b. c. d. super:: construct() super::__construct() parent:: construct() parent::__construct()

6. Les attributs d'une classe abstraite :


a. b. c. d. doivent tre private ou protected doivent tre null ne peuvent tre modifis que par les mthodes des classes drives peuvent tre "static" ou "public"

7. Laquelle de ces fonctions extraie le channel et appelle RSS_Channel ?


a. b. c. d. RSS_Retrieve RSS_Channel RSS_RetrieveLink RSS_Tags

8. Le troisime paramtre de RSS_Display(url, nombre, true) permet en option d'afficher ou non :


a. b. c. d. le nom du serveur du site le titre du site la description du site le titre et la description du site

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010 UC D41.2 MASTER Europen dInformatique Sujet

3/15

9. Utiliser PHP pour afficher un flux RSS :


a. b. c. d. est un avantage car celui-ci sera visible par les moteurs de recherche est un inconvnient car celui-ci sera visible par les moteurs de recherche est un avantage car celui-ci ne sera pas visible par les moteurs de recherche est un inconvnient car celui-ci ne sera pas visible par les moteurs de recherche

10. Le processeur XSLT est cr :


a. b. c. d. partir d'une instanciation de la classe XSLTProcessor; partir de la commande XSLTProcessor create partir de la commande XSLT_ create partir de la fonction XSLT()

11. Quel est le rsultat de <? $str1 = "Fdration europenne des Ecoles" ; print_r(explode(" ", $str1, 2) ?> ?
a. b. c. d. Array ( [1] =>Fdration] Array ( [0] => Fdration Array ([1] =>Fdration] Array ([0] =>Fdration] [2] => europenne des Ecoles) [1] => europenne des Ecoles) [2] => europenne [3] => des [4] => Ecoles) [1] => europenne [2] => des [3] => Ecoles)

12. En langage PHP, laquelle des assertions suivantes est vraie ?


a. b. c. d. une classe abstraite est introduite par : abstracted class une classe qui a toutes ses mthodes abstraites doit tre dclare comme interface il est strictement interdit d'instancier une classe abstraite une classe abstraite doit tre implmente

13. Lappel systme fork() permet de :


a. b. c. d. crer un processus par duplication du mme fichier crer un processus partir d'une structure gnrale de processus du noyau crer un processus par recopie d'un autre crer un processus nouveau

14. Comment sait-on que le parent d'un processus est mort ?


a. b. c. d. getppid() retourne 0 getppid() retourne -1 getppid() retourne 1 getpid() retourne -1

15. Dans bind(int sock, struct sockaddr * adresse, socklen_t longueur), quelle proposition est vraie ?
a. b. c. d. longueur est la taille du pointeur sockaddr est le descripteur de la socket sock est un integer qui identifie la socket struct sockaddr est passe par pointeur et ne sert qu'aux sockets TCP

16. Que fait la fonction accept() ?


a. b. c. d. elle accepte un client qui vient d'en faire la demande elle accepte un client qui vient de se connecter et cre une socket pour communiquer avec ce client elle rcupre seulement les informations du client (adresse IP,) elle accepte le message arrivant et le stocke dans la structure passe en argument

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010 UC D41.2 MASTER Europen dInformatique Sujet

4/15

17. Pour raliser une communication non temporaire bidirectionnelle inter processus, il est conseill dutiliser :
a. b. c. d. un tube nomm un seul tube anonyme deux tubes anonymes indpendants deux tubes nomms indpendants

18. La cration des descripteurs peut tre ralise par :


a. b. c. d. fork() fop write pipe()

19. A quoi sert l'appel bind() ?


a. b. c. d. il permet d'identifier/reconnatre extrieurement la socket cre prcdemment dans le code il fait un appel de rsolution DNS sur le rseau bind() n'intervient pas sur les sockets il ouvre la socket un processus condition qu'elle est t cre par l'appel socket()

20. L'ordre CREATE SESSION permet de :


a. b. c. d. se connecter une base crer une session crer une base interroger le dictionnaire des donnes

21. L'ordre ROLLBACK permet de :


a. b. c. d. valider une transaction insrer des donnes supprimer des donnes annuler une transaction

22. L'option WITH GRANT OPTION permet de :


a. b. c. d. transmettre des privilges reus modifier la taille de la base augmenter la taille de la base ajouter des privilges un utilisateur

23. Un ROLE permet de :


a. b. c. d. regrouper des utilisateurs regrouper des privilges faire du cinma aucune des trois rponses prcdentes

24. Sous un SGBD, si on dsire dvelopper avec de la programmation vnementielle, on utilisera :


a. b. c. d. une vue un trigger Visual Basic un index

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010 UC D41.2 MASTER Europen dInformatique Sujet

5/15

25. Une validation de transaction est effectue par :


a. b. c. d. un ordre accept un ordre rollback un ordre commit un ordre validate

26. Un index permet d'amliorer les temps de rponse :


a. b. c. d. des requtes simples des requtes avec jointure des requtes de slection des requtes

27. Quel contrle de transaction interdit deux utilisateurs de mettre jour les donnes en mme temps ?
a. b. c. d. COMMIT ROLLBACK SAVEPOINT LOCK

28. Comment sappelle la mmoire partage par les processus Oracle ?


a. b. c. d. la PGA la SGA la BUFPOOL la MGA

29. Mettez dans l'ordre, suivant la rgle contient ou gre :


a. b. c. d. Instance - Tablespace - Database - Table - Rows Instance - Database - Tablespace - Table - Rows Instance - Database - Table - Tablespace - Rows Database - Instance - Tablespace - Table Rows

30. Une instance Oracle, cest :


a. b. c. d. les processus et les zones mmoires utiles au fonctionnement dune base de donnes lensemble des fichiers utiles au fonctionnement dune base de donnes Oracle la phase d'installation du logiciel Oracle une base de donnes qui ne veut plus dmarrer

31. A propos dun tablespace, indiquez quelle proposition est vraie :


a. b. c. d. un tablespace ne peut pas contenir plus d'une table un tablespace contient soit des tables, soit des index un tablespace peut en mme temps contenir des tables et des index un tablespace a une taille fixe et ne peut pas tre agrandi

32. En tant que simple utilisateur, quelles sont les tables du catalogue que je ne peux pas consulter ?
a. b. c. d. user_tables v$datafile all_tables cat

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010 UC D41.2 MASTER Europen dInformatique Sujet

6/15

33. Dans la phase de conception dune base de donnes relationnelle, au niveau conceptuel, on ne doit pas :
a. b. c. d. dgager les entits et leur identifiant dgager les relations et leur identifiant dterminer les cardinalit des relations attacher les proprits aux relations et aux objets

34. La "normalisation" dun modle de donnes permet de :


a. b. c. d. vrifier que le modle est normalis ISO vrifier que le modle respecte les normes de lentreprise minimiser la redondance de linformation et assurer la cohrence de la base sassurer que le modle sera assez normalis pour pouvoir tre valid par les utilisateurs

35. Pour nafficher que les villes dont le rsultat du count(*) est suprieur 10.000 dans linstruction suivante en SQL SELECT ville, count(*) FROM table_ville GROUP BY ville, on doit ajouter :
a. b. c. d. la clause where count(id_ville)>10000 la clause HAVING count(*)>10.000 aprs de GROUP BY la clause WHERE count(*)>10.000 aprs le GROUP BY la clause count(*)>10.000 aprs le WHERE

36. Lors de l'utilisation des servlets JSP :


a. b. c. d. il peut y avoir plusieurs directives page dans une JSP il ne peut y avoir quune seule directive page dans une JSP il ne peut pas y avoir de directive page dans une JSP la directive page nexiste pas en JSP

37. Combien dinstances de la classe A cre le code suivant ? A x, u, v; x=new A(); A y=x; A z=new A();
a. b. c. d. une deux Trois aucune

38. En Java, quelle assertion est vraie?


a. b. c. d. une classe peut implmenter plusieurs interfaces, mais doit tendre une seule classe une classe peut implmenter plusieurs classes, mais doit tendre une seule interface une classe peut implmenter plusieurs classes et peut tendre plusieurs interfaces une classe doit implmenter une seule interface et tendre une seule classe

39. La liaison tardive est essentielle pour assurer :


a. b. c. d. lencapsulation le polymorphisme lhritage la marginalisation

40. UML est :


a. b. c. d. un langage Objet un langage orient Objet un langage de modlisation oriente Objet une mthode pour la programmation oriente Objet
7/15

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010 UC D41.2 MASTER Europen dInformatique Sujet

41. OCL est :


a. b. c. d. un langage Objet un langage orient Objet un langage de contrainte. une mthode pour la programmation oriente Objet

42. RUP est :


a. b. c. d. un langage Objet un langage orient Objet un langage de contrainte. une mthode pour la programmation oriente Objet

43. En utilisant UML, quelle sont les possibilits pour des paramtres dopration ?
a. b. c. d. in out in, out in, out, in/out

44. Un attribut statique est :


a. b. c. d. un attribut qui nest pas hrit par les classes filles un attribut constant un attribut normal un attribut pass par rfrence

45. Une interface est :


a. b. c. d. une classe abstraite une classe abstraite qui interagit avec lutilisateur une classe dont toute les mthodes sont abstraites une classe imaginaire

46. Une agrgation est :


a. b. c. d. un ensemble dattributs une composition faible une composition forte un ensemble de classes

47. Le symbole ~ reprsente (UML)


a. b. c. d. un lment non visible un lment visible par tous un lment visible seulement par les sous-classes un lment visible seulement par les classes du mme paquetage

48. MDA signifie :


a. b. c. d. que larchitecture est guide par les modles que larchitecture est guide par le code que larchitecture est dcompose en blocs que larchitecture est dcompose en paquetages

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010 UC D41.2 MASTER Europen dInformatique Sujet

8/15

49. En UML, quelle cardinalit nexiste pas ?


a. b. c. d. 0..1 1 N..1 M..N

50. Une relation "extends" pour les use case signifie :


a. b. c. d. peut tre complt par doit tre complt par nest pas complt par est complt par

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010 UC D41.2 MASTER Europen dInformatique Sujet

9/15

Deuxime partie : Exercices


Dossier 1 - UML 2 Modlisation dun suivi de commande et de fret de marchandises Une socit souhaite raliser un systme dinformation de suivi de commande ainsi que de fret de marchandises. En ce qui concerne le suivi de commande, chaque commande mise par un client est effectue une socit de transport. Pour le fret, chaque socit de transport assure le bon acheminement de la commande en utilisant tous les types de transports dont elle dispose (par exemple : camion, bateau, ), ainsi quen mobilisant le personnel conducteur adquat. Un client est identifi par son nom, son prnom, son adresse, son numro de tlphone fixe ainsi que son numro de portable si celui-ci est communiqu. Chaque client est identifi de manire unique par son nom et son adresse. Les clients peuvent passer une ou plusieurs commandes une socit de transport. Une commande est dfinie par un numro de commande, son prix, sa ville de dpart et darrive. Chaque numro de commande est attribu par la socit de transport. Deux socits de transport diffrentes peuvent donc attribuer un mme numro de commande. Une commande est transporte en une seule fois par un seul engin de transport. Une socit de transport est identifie par son nom ainsi que son type dactivit qui peut-tre routier, maritime ou mixte. Enfin, chaque socit de transport est identifie de manire unique par son numro de Siret. Par exemple, la socit de transport Mazet est une socit de transport routier ayant comme numro de siret 321 654 987. Bien videmment une socit de transport routier ne dispose que de camions et une socit de transport maritime ne dispose que de bateaux. Un camion nest associ qu une seule socit de transport et peut transporter plusieurs commandes mais, il nest jamais vide. Celui-ci est identifi par son numro de plaque dimmatriculation (On fera lhypothse simplificatrice que les plaques ont 3 chiffres, 3 lettres et 2 chiffres pour le dpartement. Par exemple, 123 MIR38), sa catgorie de dangerosit de 0 5 selon quil sagit dun camion permettant de charger des matires dangereuses ou non et enfin sa date de dernier contrle technique (pour les vhicules neufs, il faut attendre quelques mois avant le premier contrle). Chaque camion nest conduit que par un ou deux personnels conducteurs. Chaque socit de transport dispose dun ensemble de personnel conducteur. Un personnel conducteur est identifi par son nom, son prnom, son adresse, les diffrents types de permis quil possde (par exemple, permis poids lourd, permis vhicule lger, permis bateau, ), ainsi que les diffrents types damende quil a pu avoir (par exemple, excs de vitesse, surcharge. . . ). Chaque personnel conducteur nest associ qu une seule socit de transport et quun seul type de transport (camion ou bateau). Les bateaux ont chacun un identifiant qui est le nom du bateau. Cet identifiant est une chane de caractres alphanumriques de longueur au plus 20 (par exemple, Queen Mary 2). Chaque bateau comporte galement une catgorie de dangerosit de 0 5, une date de dernier contrle technique ainsi quune capacit maximale de tonnages nexcdant pas 500 tonnes. Un bateau ne ncessite quun seul personnel conducteur et nest associ qu une seule socit de transport. Une marchandise correspond toujours une et une seule commande. Chaque marchandise possde un numro lidentifiant de manire unique celui-ci tant compos de trois parties spares par un "-" : deux lettres identifiant le pays dorigine, quatre chiffres pour lanne de mise en circulation et 10 chiffres didentification. Par exemple, la marchandise numro FR-2005-0123456789 est en provenance de France, mise en circulation en 2005 et dont le numro didentification est le 0123456789. Une marchandise est aussi identifie par le type de son contenu (par exemple liquide, solide, gazeux ou vivant) ainsi que son poids nexcdant pas 1000 kilogrammes. Une commande est compose dau moins une marchandise. Pour chaque marchandise connue, on note galement le transport qui lui est associ. Remarque : Pour les associations ou relations entre classes, seules les multiplicits sont demandes

Question 1 Ralisez le diagramme de classe.

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010 UC D41.2 MASTER Europen dInformatique Sujet

10/15

Modlisation dun logiciel En vue de la mise en en place dun logiciel ddi lindustrie textile, nous tudions tout dabord quelques fonctionnalits requises, ce logiciel sadresse diffrentes catgories dutilisateurs et doit servir principalement a recueillir linformation sur les produits dvelopps dans lentreprise Tous les personnels de lentreprise peuvent consulter le systme. Toute consultation doit tre prcde dune authentification lgre dans laquelle la personne prcise son nom et son service des fins de statistiques ultrieures Les ingnieurs peuvent effectuer diffrentes oprations de gestion relatives aux produits dont ils sont responsables : ajout, retrait, modification. Ces oprations doivent tre prcdes dune authentification plus approfondie lors de laquelle lingnieur prcise son nom, son service et donne un mot de passe qui est vrifi en contactant le systme de gestion des personnels. Toutes les oprations (consultation et gestion) donnent lieu un enregistrement dans le journal des accs (trace de la session)

Question 2 Proposez un diagramme de cas dutilisation correspondant aux besoins dcrits ci-dessus. Question 3 Proposez un diagramme de squence correspondant lajout dune fiche produit.

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010 UC D41.2 MASTER Europen dInformatique Sujet

11/15

Dossier 2 - ORACLE et PL/SQL

Question 1 Ralisez une fonction en langage pl/sql nomme Qtable(PC$Table, PC$ClauseWhere ) - dynamique et totalement gnrique qui permet dinterroger nimporte quelle table (paramtre PC$Table), - avec une clause where passe elle aussi en paramtre (PC$ClauseWhere), - qui renvoie un integer LN$Total donnant le nombre doccurrences correspondantes a cette clause. Donnez un exemple dutilisation. Question 2 Soit la Procdure NDS ci-dessous, rcrivez-la en utilisant le package DBMS_SQL CREATE PROCEDURE insert_into_table ( table_name VARCHAR2, deptnumber NUMBER, deptname VARCHAR2, location VARCHAR2) IS stmt_str VARCHAR2(200); BEGIN stmt_str := 'INSERT INTO ' || table_name || ' values (:deptno, :dname, :loc)'; EXECUTE IMMEDIATE stmt_str USING deptnumber, deptname, location; END;) Question 3 Donnez les avantages et inconvnients du NDS par rapport au package DBMS_SQL. Question 4 Dfinissez OFA , son objectif et ses avantages. Question 5 Vous disposez dun serveur de base de donnes avec 4 disques durs, reprsentez, sur un schma, larchitecture logicielle recommande pour respecter les points dfinis ci-dessus (question 4).

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010 UC D41.2 MASTER Europen dInformatique Sujet

12/15

Question 6 Le schma ci-dessous reprsente un architecture web 3 tiers utilisant ORACLE comme base de donnes, indiquez sur ce schma les vulnrabilits dun tel systme.

Dossier 3 - JAVA et IHM

Question 1
Larchitecture des tches est donne en figure 1 o le dtail des classes TacheElementaire et TacheComplexe nest pas donn. Une tche est caractrise par un nom et un cot. Une tche est soit une tche lmentaire, soit une tche complexe qui est alors compose de sous-tches. Il est ainsi possible dajouter une sous-tche une tche complexe, ajouter(Tache) ou de supprimer une sous-tche, supprimer(Tache). Le cot dune tche complexe est la somme des cots des tches qui la composent.

Indiquez le ou les patrons de conception utiliss dans cette architecture. Le listing 1 donne le code de linterface Tache. crivez en Java la classe Tache Elementaire qui est une ralisation de linterface Tache : Tache { String getNom(); int getCout(); }

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010 UC D41.2 MASTER Europen dInformatique Sujet

13/15

Question 2
Nous nous intressons maintenant la classe TacheComplexe, en particulier sa relation avec linterface Tache. Une tche complexe est compose dun nombre quelconque de tches. On dcide dutiliser linterface java.util.Collection pour stocker les sous-tches. On lutilisera bien entendu, dans sa version gnrique. Comme on souhaite pouvoir parcourir toutes les sous-tches dune tche complexe, la Classe TacheComplexe ralise linterface java.lang.Iterable.

Indiquez quel est le principal intrt de la gnricit. Indiquez quel est le cot de la tche tA construite comme indiqu dans le listing suivant :
public class TestTache1 { public static void main(String[] args) { TacheComplexe tA = new TacheComplexe("A"); tA.ajouter(new TacheElementaire("A1", 10)); tA.ajouter(new TacheElementaire("A2", 20)); System.out.println("Cout de tA = " + tA.getCout()); }}

crivez en Java la classe TacheComplexe.


Interface graphique pour dfinir une tche complexe Nous dfinissons maintenant une interface graphique en Swing minimale qui permet dajouter de nouvelles soustches une tche complexe. Le code partiel de cette classe est donn au listing 3.

Dessinez la fentre (et les composants graphiques quelle contient) telle quelle est affiche quand cette classe est excute. Compltez cette classe pour que les boutons Ajouter et Quitter deviennent actifs.
Le bouton Quitter ferme la fentre. Le bouton Ajouter ajoute une nouvelle sous-tche la tche complexe passe en paramtre du constructeur de cette classe. Le nom et le cot de cette sous tche sont, bien entendu, saisis par lutilisateur dans les zones de saisie prvues, valeurNom et valeurCout. Dans le cas o lutilisateur saisit une information qui nest pas un entier pour saisir le cot, on signalera lerreur en mettant la couleur de fond de la zone de saisie correspondante en rouge (setBackground(Color.RED)). On rappelle que la mthode Integer.parseInt(String) renvoie lentier correspondant la chane de caractre pass en paramtre. Cette mthode lve lexception NumberFormatException si la chane ne correspond pas un entier. Listing 3 La classe TacheComplexeSwing import javax.swing.*; import java.awt.*; import java.awt.event.*; public class TacheComplexeSwing { private TacheComplexe tache;
Fdration Europenne Des Ecoles European Federation of Schools Juin 2010 UC D41.2 MASTER Europen dInformatique Sujet

14/15

final JFrame fenetre = new JFrame("Nouvelle tche"); final private JTextField valeurNom = new JTextField(10); final private JTextField valeurCout = new JTextField(10); final private JButton boutonAjouter = new JButton("Ajouter"); final private JButton boutonQuitter = new JButton("Quitter"); public TacheComplexeSwing(TacheComplexe tache) { this.tache = tache;

Container c = fenetre.getContentPane(); c.setLayout(new BorderLayout()); JPanel informations = new JPanel(new GridLayout(2,2)); informations.add(new JLabel("Nom : ", SwingConstants.RIGHT)); informations.add(valeurNom); informations.add(new JLabel("Cot : ", SwingConstants.RIGHT)); informations.add(valeurCout); c.add(informations, BorderLayout.CENTER);

JPanel boutons = new JPanel(new FlowLayout()); boutons.add(boutonAjouter); boutons.add(boutonQuitter); c.add(boutons, BorderLayout.SOUTH);

fenetre.pack(); fenetre.setVisible(true);}}

Sauvegarde dune tche en XML Soit la DTD pour reprsenter une tche : 1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <!ELEMENT taches (tache*)> 4 <!ELEMENT tache (attribut*, tache*)> 5 <!ELEMENT attribut EMPTY> 6 <!ATTLIST attribut 7 nom CDATA #REQUIRED 8 valeur CDATA #REQUIRED>

Donnez le contenu du fichier XML qui correspond la tche tA.

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010 UC D41.2 MASTER Europen dInformatique Sujet

15/15