Upload
otia-oba
View
224
Download
0
Embed Size (px)
Citation preview
7/29/2019 In Fd 412201106 c
1/15
FEDERATION EUROPEENNE DES ECOLESEUROPEAN FEDERATION OF SCHOOLSOrganisation non gouvernementale dote du statut participatif auprs du Conseil de lEurope
NGO enjoying participatory status with the Council of Europe
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2011
UC D41.2 Dveloppement Corrig
UE D - TECHNIQUES PROFESSIONNELLES
Master Europen dInformatique
UC D41.2 Dveloppement
Corrig
Type dpreuve : QCM et Exercice pratique
Dure : 3 heures
Session : Juin 2011
7/29/2019 In Fd 412201106 c
2/15
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2011
UC D41.2 Dveloppement - Corrig
2/15
1/ QCM : 45 minutes
1. En langage PHP, La fonction "var_dump()" retourne :a. les informations structures d'une variable, y compris son typeb. les informations structures d'une variable, y compris son type et sa valeur c. uniquement le type dune variabled. uniquement la valeur dune variable
2. Pour " parser " un document XML, il existe deux diffrentes mthodes utilisant :soit " SAXParser ",
soit " DOM ".
Pour la premire mthode, quelle assertion est correcte ?a. le principe du "SAX parser" consiste parcourir le flux XML du dbut vers la fin sans sarrterb. le principe du "SAX parser" consiste parcourir le flux XML (du dbut vers la fin) et de
"s'arrter" ds qu'un lment particulier est rencontr afin de le traiterc. le principe du "SAX parser" consiste charger tout le flux XML sous la forme d'un arbre (en
mmoire) puis d'aller y piocher l'information qui nous intressed. le principe du "SAX parser" consiste charger tout le flux XML sous la forme d'un tableau (en
mmoire)puis d'aller y piocher l'information qui nous intresse
3. Pour " parser " un document XML il existe deux diffrents moyens utilisant :soit " SAXParser ",soit " DOM ".
Pour la seconde mthode, quelle assertion est correcte ?a. le principe du " DOM " consiste parcourir le flux XML du dbut vers la fin sans sarrterb. le principe du " DOM " consiste parcourir le flux XML (du dbut vers la fin) et de "s'arrter"
ds qu'un lment particulier est rencontr afin de le traiterc. le principe du " DOM " consiste charger tout le flux XML sous la forme d'un arbre (en
mmoire) puis d'aller y piocher l'information qui nous intresse
d. le principe du " DOM " consiste charger tout le flux XML sous la forme d'un tableau (enmmoire) puis d'aller y piocher l'information qui nous intresse4. La norme RSS est base sur le standard XML, la balise racine est une balise :
a. Itemb. XMLc. Titled. RSS
5. Dans un flux RSS, la balise RSS doit obligatoirement contenir un bloc " Channel ", quidoit obligatoirement contenir une balise title et :
a. une balise link, une balise description et au moins un bloc itemb. une balise link, et au moins un bloc itemc. une balise description, et au moins un bloc itemd. une balise link, une balise description, mais pas de bloc item
6. En langage PHP, la fonction xml_set_element_handler( ) :a. admet un seul paramtreb. admet deux paramtresc. admet trois paramtresd. nadmet aucun paramtre
7/29/2019 In Fd 412201106 c
3/15
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2011
UC D41.2 Dveloppement - Corrig
3/15
7. En langage PHP, la fonction xml_set_character_data_handler (P1,P2) admet deuxparamtres :
a. P1 est le parseur XML et P2 la fonction appeler lorsquune balise ouvrante est rencontreb. P1 est le parseur XML et P2 la fonction appeler lorsquune balise fermante est rencontrec. P1 est le parseur XML et P2 la fonction appeler lorsque du texte est rencontrd. P1 est le parseur XML et P2 la fonction appeler lorsquune balise est rencontre
8. Lexemple DTD suivant :
< !ELEMENT chapitre (titre_chapitre, corps_chapitre)>a. indique que llment chapitre, peut tre rpt et que chaque chapitre est constitu des lments
titre_chapitre et corps_chapitre dans cet ordre
b. indique que llment chapitre est obligatoire, peut tre rpt et que chaque chapitre estconstitu des lments titre_chapitre et corps_chapitre dans cet ordre
c. indique que llment chapitre, peut tre rpt et que chaque chapitre est constitu des lmentstitre_chapitre et corps_chapitre dans nimporte quel ordre
d. indique que llment chapitre est obligatoire, peut tre rpt et que chaque chapitre est constitudes lments titre_chapitre et corps_chapitre dans nimporte quel ordre
9. A l'origine le langage PERL a t cr pour UNIX pour manipuler des :a. fichiers et des textesb. processus rseauxc. processus locauxd. fichiers, des processus et des textes
10.Parmi les affirmations suivantes, laquelle est fausse ?a. le langage PERL permet d'intgrer des requtes SQLb. le langage PERL est un langage qui permet la programmation orient objetc. le langage PERL est un langage utilisable sous Windowsd.
le langage PERL est un langage trs diffrent du Langage C
11.En langage PERL, quelle commande ou fonction retourne un tableau dlmentstrouvs ?
a. substr()b. join ()c. splice()d. grep()
12.En langage PERL, comment peut-on dfinir un constructeur de la classe C1 ?a. sub nouvelle { }b. construct ( )c. construct {}d. new C1( )
13.En langage PERL pour crire une classe, on doit crer un fichier :a. .pmb. .plc. .classd. .perl
7/29/2019 In Fd 412201106 c
4/15
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2011
UC D41.2 Dveloppement - Corrig
4/15
14.En langage PERL quest-ce quun champ statique ?a. un champ qui est commun toutes les classesb. un champ qui est commun tous les objetsc. un champ qui est commun tous les objets d'une classed. un champ qui est constant
15.Lappel systme fork() permet de crer :a. deux nouveaux processusb. un processus partir d'une structure gnrale de processus du noyauc. un processus par duplication et un nouveau processusd. un nouveau processus
16.Lappel de la fonction " kill( ) " permet :a. de tuer le nouveau processusb. de tuer le processus dont le " pid " est pass en paramtrec. denvoyer le signal SIG au processus dont le " pid " est pass en paramtred. de crer un processus nouveau
17.Comment sait-on que le parent d'un processus est mort ?a. getppid() retourne 0b. getppid() retourne -1c. getppid() retourne 1d. getpid() retourne -1
18.Linstruction " File *Popen() " :a. ouvre un pointeur sur un fichierb. renvoi un descripteur de fichierc. lance lexcution dune commande et renvoie un descripteur de fichier d. lance une commande
19.La valeur du signal SIGKILL est :a. -1b. 1c. 5d. 9
20.Dans le prototype du " main " : int main( int argc, char *argv[], char *arge[] ), quelleproposition est fausse ?
a. le " main " est toujours typ entierb. " *arge[] " est un tableau de dimension infiniec. on peut dclarer " arge " aussi avec: " char **arge "d. " arge " rcupre lenvironnement mmoire du processus excutant le main()
21.La norme POSIX, prconise de retourner une constante " #define " plutt quun zroen cas de succs de la sortie du main(), pourquoi ?
return(EXIT_SUCESS) ; /* ou bien return(0) */a. parfois le main() ne retourne rienb. *arge[] est un tableau de dimension infiniec. certaine C/Unix/Linux retourne autre chose que 0 pour un retour avec succs (portabilit)d. cela garantit une bonne sortie du code, comme la fonction exit()
7/29/2019 In Fd 412201106 c
5/15
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2011
UC D41.2 Dveloppement - Corrig
5/15
22.Dans ce prototype de la fonction " read ", quest-ce qui nest pas correct ?#include
ssize_t read(int descripteur_fichier, void *ptr, size_t nb_octets);a. un descripteur est un numro index du tableau des ouvertures dun processusb. void *ptr pointe sur un type quelconquec. une opration de lecture se fera sur au plus nb_octetsd. ssize_t nest pas un type
23.Lappel Systme pipe() permet de crer un tube simple entre 2 processus sousUnix/Linux. Trouvez la proposition fausse : int pipe(int p[2]) ;
a. un tube simple pipe() possde 2 ouverturesb. un tube simple est accessible par un nom de lien dans larborescence, comme un fichierc. l(es) ouverture(s) du tube simple est(sont) gre(s) par descripteurd. un processus peut crer un tube seul (pas besoin dtre deux processus)
24.Comment peut-on craser la tche (recouvrir le code) en cours sur le mme processus ?a. fork()b. execlp( ls, ls, -l, NULL)c. les processus Unix/Linux ne peuvent pas changer de tched. WinCreate(pid)
25.Laquelle de ces assertions est fausse ?a. une classe JAVA hrite d'une autre classe par le biais du mot cl " extends "b. une classe JAVA ne peut hriter que d'une seule et unique classec. si nous ne dfinissons pas de constructeur dans nos classes JAVA, la JVM se charge d'en crer un
linterprtation
d. en langage JAVA, une mthode dclare " final " est redfinissable26.Laquelle des assertions suivantes est vrai ?
a. la JFrame est un container intermdiaireb. le JButton est un container intermdiairec. le JPanel est un container intermdiaired. le JLabel est un container intermdiaire
27.Peut-on instancier une interface en JAVA ?a. ouib. nonc. oui, si il ny a pas de mthodes abstraitesd. oui, si il y a uniquement des mthodes abstraites
28.En Langage JAVA, parmi les assertions suivantes, laquelle est fausse ?a. une interface sert dfinir un super type et utiliser le polymorphismeb. par classe, on ne peut implmenter quune seule interfacec. une interface s'implmente dans une classe en utilisant le mot cl " implements "d. toutes les mthodes d'une interface n'ont pas de corps
29.En Langage JAVA, laquelle de ses assertions est fausse ?a. lorsqu'un vnement que la JVM ne sait pas grer apparat, une exception est leveb. la super classe qui gre les exceptions s'appelle : Exceptionc. on ne peut dfinir quune seule exception par mthoded. l'instruction qui permet de capturer des exceptions est le bloc try{ } catch{ }
7/29/2019 In Fd 412201106 c
6/15
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2011
UC D41.2 Dveloppement - Corrig
6/15
30.En Langage JAVA, laquelle de ses assertions est fausse ?a. un ArrayList na pas de taille limiteb. un ArrayList a une taille limitec. un ArrayList peut contenir n'importe quel type de donnesd. la classe ArrayList se trouve dans le package java.util
31.En Langage JAVA, pour lobjet " Hastable ", que fait la mthode " contains(Objectvalue) " ?
a. elle retourne "vrai" si l'objet est videb. elle retourne "vrai" si la valeur est prsentec. elle retourne "null" si l'objet est vided. elle retourne -1 si l'objet est vide
32.En Langage JAVA, qu'est-ce que la gnricit ?a. un concept permettant de ne pas spcifier de type prcis pour une classe, une collection ou une
mthode afin d'avoir du code rutilisableb. la possibilit davoir une classe, une mthode ou une collection fige pour chaque utilisationc. un concept permettant aux classes abstraites de contenir des mthodes non abstraitesd. un concept permettant aux classes abstraites de contenir des mthodes abstraites
33.En Langage JAVA, que fait la mthode suivante :public static InetAddress getLocalHost() throws UnknownHostException ?
a. elle construit un nouvel objet " InetAddress "b. elle renvoie l'adresse IP du site local d'appelc. elle renvoie une exception connued. elle renvoie une exception inconnue du site local d'appel
34.En JDBC, laquelle de ces assertions est fausse ?a. JDBC permet d'appeler une procdure stocke sur la base de donnes depuis une application
crite en Langage JAVAb. la premire tape permettant d'appeler une procdure SQL est de crer un objet" CallableStatement "
c. un objet " CallableStatement " contient l'appel d'une procdure SQLd. un objet " CallableStatement " contient la procdure SQL appeler
35.ORACLE offre une possibilit de se connecter sans fournir explicitement le mot depasse de son compte. Parmi ces assertions, laquelle est fausse ?
a. il faut que lutilisateur, soit authentifi de manire externeb. il faut que le nom du compte ait pour suffixe le nom du compte de lOSc. il faut que le compte ne soit pas protgd. il faut que le nom du compte ait pour prfixe un prfixe gnrique dfini dans le fichier de
paramtrage de la base (init.ora) par la variable "OS_AUTHENT_PREFIX "
36.Une base locale est identifie sur un OS par une variable denvironnementgnralement nomme :
a. ORACLE_IDb. ORACLE_SIDc. ORACLE_VARd. ORACLE_ENR
7/29/2019 In Fd 412201106 c
7/15
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2011
UC D41.2 Dveloppement - Corrig
7/15
37.Pour ORACLE, laquelle de ces assertions est fausse ?a. un tablespace est une partition logique contenant un ou plusieurs fichiersb. un tablespace peut s'tendre par ajout (on-line) d'un fichierc. un tablespace peut s'tendre par auto-extensiond. un tablespace ne peut pas stocker les datas et les index en mme temps
38.Pour ORACLE, laquelle de ces assertions est fausse ?a. un segment est compos d'extentsb. un extent est compos de blocs contigusc. un segment stend dynamiquementd. le segment s'tend dans un seul fichier
39.Une instance ORACLE, cest :a. les processus et les zones mmoires utiles au fonctionnement dune base de donnesb. lensemble des fichiers utiles au fonctionnement dune base de donnes Oraclec. la phase d'installation du logiciel Oracled. une base de donnes sauvegarde
40.Parmi les procdures et mthodes suivantes, laquelle ne fait pas partie du paquetageDBMS_OUTPUT dORACLE ?
a. PUTb. GET_LINEc. IS_OPENd. PUT_LINE
41.Parmi les procdures et mthodes suivantes, laquelle ne fait pas partie du paquetageUTL_FILE (Oracle) ?
a. IS_OPENb. FCLOSEc.
FOPENd. ENABLE
42.Parmi les procdures et mthodes suivantes, laquelle ne fait pas partie du paquetageDBMS_LOB (Oracle)?
a. LOADLOBFROMFILEb. LOADCLOBFROMFILEc. LOADGLOBFROMFILEd. LOADBLOBFROMFILE
43.Quelle commande doit on utiliser pour dmarrer linstance ORACLE etouvrir sa base associe ?
a. SQL> STARTUP XXXb. SQL> STARTUP PFILE initXXX.orac. SQL> STARTUP initXXX.orad. SQL> STARTUP PFILE = $ORACLE_HOME/dbs/initXXX.ora
44.Le processus de dmarrage STARTUP dune base ORACLE passe par :a. un niveaub. deux niveauxc. trois niveauxd. quatre niveaux
7/29/2019 In Fd 412201106 c
8/15
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2011
UC D41.2 Dveloppement - Corrig
8/15
45.Quel privilge systme permet un utilisateur de se connecter une Base ORACLEen mode restreint ?
a. restrictedb. restricted Userc. restricted sessiond. restricted connect
46.Le bloc PL/SQL ORACLE associ un trigger est excut pour chaque ligneaffecte ?
a. toujours dans un triggerb. jamais dans un triggerc. en utilisant " for each row "d. en utilisant " for each "
47.Les fichiers Redo log dORACLE contiennent l'historique des donnes :a. " commites "b. "non- commites "c. " commites " et "non- commites "d. supprimes
48.En UML2, pour les " paquetages " (packages) laquelle de ces assertions est vrai ?a. ils ne possdent pas dinterfacesb. ils regroupent des lments de modlisation logiques et physiquesc. ils regroupent des lments de modlisation logiquesd. ils regroupent des lments de modlisation Physiques
49.Lors du passage du MCD Merise au diagramme de classes UML2, toute :a. entit est transforme en classeb. association est transforme en classec. entit est transforme en compositiond. association est transforme en composition
50.En UML2, laquelle de ces assertions est fausse ?a. les diagrammes de dploiement montrent la disposition physique des matrielsb. les diagrammes de dploiement montrent la rpartition des composants sur les matrielsc. les diagrammes de dploiement montrent la nature des lignes de communicationd. les diagrammes de dploiement montrent la rpartition des activits dans le systme
7/29/2019 In Fd 412201106 c
9/15
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2011
UC D41.2 Dveloppement - Corrig
9/15
2/ Exercice pratique : 2 heures 15
Dossier 1 - Langages de dveloppement
Exercice 1 - Modlisation UML2Question
En partant du diagramme de paquetage suivant, ralisez les diagrammes de cas dutilisationdu systme de contrle et du systme de pilotage :
40 points
7/29/2019 In Fd 412201106 c
10/15
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2011
UC D41.2 Dveloppement - Corrig
10/15
Exercice 2 - Java - swingQuestionDonnez le code JAVA utilisant la bibliothque graphique SWING qui affiche une fentre
" MaFenetre " avec juste un bouton " butQuit " qui sera centr et oprationnel en utilisantlinterface " ActionListener " :
Commentez votre code.
30 points
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MaFenetre extends JFrame implements ActionListener
{
private JButton butQuit; //le bouton butQuit
public MaFenetre () /** Constructeur de MaFenetre */{
super("examen java ");//titre de la fenetre
JPanel pan=new JPanel();
pan.setLayout(new BorderLayout());
butQuit =new JButton("quitter!"); //bouton butQuit
butQuit.addActionListener(this); //ajoute un listener : ici le listener est cette classe
pan.add(butQuit,BorderLayout.CENTER); //ajoute le boutton dans le panel
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setContentPane(pan);
pack(); //permet de mettre une bonne dimension a la fenetre
setVisible(true);
}
/** obligatoire car MaFenetre implmente l'interface ActionListener */
public void actionPerformed(ActionEvent e)
{ System.out.println("quitter !"); MaFenetre.dispose(); //quand on clique sur le bouton ici }
public static void main(String args[]){ new MaFenetre (); }
}
7/29/2019 In Fd 412201106 c
11/15
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2011
UC D41.2 Dveloppement - Corrig
11/15
Exercice 3 - Les sockets - JavaQuestion 1Commentez et dfinissez le morceau de code JAVA suivant :
40 points
public class Main {public static void main(String[] args) throws Exception { // permet de dclencher une
exception traite dans un catch 5 points
String host = "host";
int port = 25;
Socket servSocket = new Socket(host, port); //Cration dun socket machine host et port
5 pointsDataOutputStream os = new DataOutputStream(servSocket.getOutputStream());//La classe
DataOutputStream permet de crer un flux permettant l'criture de donnes de type primitif
Java, etde chanes de caractres. 5 pointsDataInputStream is = new DataInputStream(servSocket.getInputStream());//DataInputStream
permet de lire des type primitifs java. Les constructeurs de ces classes prennent en paramtre un
InputStream, qui est le flux sur lequel les lectures vont tre faites 5 points
if(servSocket != null && os != null && is != null) {os.writeBytes("BONJOUR\r\n");
}
os.writeBytes("Subject:\r\n"); // ecriture dans le flux DataOutputStream5 points
os.writeBytes("body\r\n");
String responseline;
while ((responseline = is.readUTF()) != null) {if(responseline.indexOf("Ok") != -1)
//attente de la rponse ok du serveur pour fermer 5 pointsbreak;
}
}
}
Cest un client SMTP utilisant les sockets 10 points
Question 2
Quelle API pourrait tre utilise pour simplifier ce code ?
10 points
JavaMail, cest une API qui fournit un ensemble de classes afin de dvelopper des clients mails en Java.
Question 3
Quelle solution peut-on proposer ?
10 points
Utiliser des threads .
7/29/2019 In Fd 412201106 c
12/15
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2011
UC D41.2 Dveloppement - Corrig
12/15
Exercice 4 - Programmation JAVA - JDBCQuestion 1
Dfinissez ce quest JDBC.
20 points
JDBC (Java Database connectivity ) :c'est une API (Application Programming Interface) qui permet l'accs
des donnes de type table de bases de donnes SGBD relationnelles, l'API analogue en langage C++ est
ODBC.
Question 2
Ralisez un petit programme dune classe Jconnect en incluant la gestion derreur lors duchargement du pilote et lors dune erreur SQL.
30 points
import java.sql.*;
public class Jconnect {
public Jconnect () {
try {
// Chargement du pilote JDBC
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// URL de connexion
String url = "jdbc:odbc:fede";
// Connexion
Connection con = DriverManager.getConnection(url);
// Cration d'une instruction
Statement statement = con.createStatement();
// Excution d'une requeteString query = "SELECT * FROM QcmM1";
ResultSet resultset = statement.executeQuery(query);
// Traitement des rsultats
while(resultset.next()) { System.out.println(resultset.getString(1) + " " +
resultset.getString(2)); }
// fermeture de la connexion
con.close();
}
catch( ClassNotFoundException e) {System.err.println("Erreur lors du chargement du pilote
: " + e);}
catch(SQLException sqle) { System.err.print("Erreur SQL : " + sqle);}
}
public static void main(String[] args) { Jconnect test = new Jconnect ();}
Question 3
Que signifie le GAP dun resultset ?
10 points
Lors de lexcution de la requte, lobjet ResultSet nest pas positionn sur le premier enregistrement mais
avant, dans une zone que lon nomme le GAP.
7/29/2019 In Fd 412201106 c
13/15
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2011
UC D41.2 Dveloppement - Corrig
13/15
Dossier 2 - Administration bases de donnes
Exercice - Base de donnes ORACLE et PL/SQLQuestion 1
Donnez le code dun trigger PL/SQL qui sassure que le champ " NomEtudiant " de latable Etudiant_M1 sera en majuscule dans la base.
10 points
CREATE OR REPLACE TRIGGER bf_ins_upd_ Etudiant_M1
BEFORE INSERT OR UPDATE
ON Etudiant_M1
FOR EACH ROW
BEGIN
:new.NomEtudiant:=upper(:new.NomEtudiant);
END;
Question 2Donnez le code dune procdure PL/SQL dynamique oracle qui insre le champ
" NomEtudiant " dans la table Etudiant_M1.
10 points
CREATE PROCEDURE insert_into_table (
nom_table VARCHAR2,
nom_champs VARCHAR2,
valeur_champs VARCHAR2) IS
sql_str VARCHAR2(200);
BEGIN
sql_str := 'INSERT INTO ' ||
nom_table || ' ( '|| nom_champs || ' ) '|| ' values
('|| valeur_champs || ')';
EXECUTE IMMEDIATE sql_str;
END;)
Question 3
Expliquez ce quest la pseudo-colonne Level en PL/SQL.
10 points
Dans une hirarchie, on peut avoir un lment A qui a pour enfant un lment B, qui lui-mme a pour enfant
un lment C, etc... On peut alors dire que l'lment. Cest au niveau n+2 par rapport au niveau n de
l'lment A. Afin de mieux voir la profondeur de hirarchie, nous pouvons utiliser la pseudo-colonne
LEVEL, qui permet de savoir quel niveau hirarchique on se trouve.
7/29/2019 In Fd 412201106 c
14/15
7/29/2019 In Fd 412201106 c
15/15
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2011
UC D41.2 Dveloppement - Corrig
15/15
GRILLE DE NOTATION EXERCICES
NOM DU CORRECTEUR__________________________________
Prnom du correcteur___________________________________
N de candidat____________
Question Note attribue Observations obligatoires
Dossier 1 - Langages de
dveloppement/190
Dossier 2 - Administration basede donnes
/110
TOTAL /300
Apprciation gnrale :
Je soussign,____________________, certifie avoir corrig la copie dexamens en suivant le corrig
dexamens en ma possession et en respectant la procdure de correction des examens.
Fait _______________________________________ le ____________
Signature :