Vous êtes sur la page 1sur 5

Page 1/5

Unité d’Enseignement en Informatique Année 2014-2015

2 è année ESTIA Étudiants

Examen de Système d’Information – Première Session du 23 Avril 2015 (durée 4:00, aucun document autorisé)

Exercice 1 : Culture générale SI (10 points)

1) Selon l’analyse systémique de l’entreprise, quelles sont les trois composantes de l’entreprise ?

2) Quels sont les deux évènements majeurs qui ont accéléré l’installation de Progiciels de Gestion Intégré (PGI) en l’an 2000, notamment en France ?

3) Qu’est- ce qui permet de déterminer si une application est "1 tiers", "2 tiers", "3 tiers" ou "n tiers" ?

4) Combien de niveaux d’abstraction trouve-t-on dans une architecture n tiers ?

5) Selon Michel Beaudry, formateur québécois et ancien d’IBM, que faut - il faire avant de contac ter des fournisseurs de solutions logicielles pour les Système d’Information ? a. Lister les serveurs et ordinateurs de l’entreprise (et les systèmes d’exploitation présents) b. Cartographier les processus de l’entreprise

c. Discuter avec les architectes réseaux

d. Lire attentivement les clauses de maintenance

6) Lorsque vous réalisez une architecture logicielle, quels sont les avantages que vous voyez à choisir une architecture du type MVC (Modèle-Vue-Controleur) ?

Y voyez-vous des inconvénients ?

7) En vous basant sur votre expérience, quel processus (c’est à dire quelle méthode) proposez vous pour concevoir et réaliser un logiciel ? Vous citerez les différentes étapes et vous les décrirez brièvement.

8) En vous basant sur votre expérience, citez un SGBD.

9) En vous basant sur votre expérience, citez une API pour développer des Interfaces graphiques.

10) En vous basant sur votre expérience, citez une API pour connecter un programme Java à une base de données.

11) Pour développer une interface graphique quel type de programmation doit être utilisé ?

Exercice 2 : Transfert de données (10 points)

Partie 1. Topologie d’infrastructure logicielle (5 points)

Une entreprise utilise 7 progiciels de gestion pour gérer son activité. Cette entreprise hésite entre deux topologies possibles pour moderniser son système d’information. Ces deux topologies sont représentées graphiquement ci-dessous.

Page 2/5

Topologie 1

Gestion de production Gestion des données Conn. techniques Conn. Concentrateur E.A.I. Conn. Gestion de stock
Gestion de
production
Gestion des
données
Conn.
techniques
Conn.
Concentrateur
E.A.I.
Conn.
Gestion de
stock
Conn.
Conn.
E-commerce
Comptabilité, Achats, Paie, Facturation Conn. Conn. Conn.
Comptabilité,
Achats, Paie,
Facturation
Conn.
Conn.
Conn.

ConceptionAchats, Paie, Facturation Conn. Conn. Conn. assistée par ordinateur Conn. Conn. Gestion commerciale

assistée par Comptabilité, Achats, Paie, Facturation Conn. Conn. Conn. Conception ordinateur Conn. Conn. Gestion commerciale

ordinateur

Conn. Conn. Gestion commerciale
Conn.
Conn.
Gestion
commerciale
Topologie 2 Comptabilité, Gestion de Conn. Gestion des Conn. Achats, Paie, production données Conn.
Topologie 2
Comptabilité,
Gestion de
Conn.
Gestion des
Conn.
Achats, Paie,
production
données
Conn.
Facturation
techniques
Conn.
Conn.
Conn.
Conn.
Conn.
Conn.
Conn.
Conn.
Gestion
Gestion de
Conception
Conn.
commerciale
assistée par
stock
ordinateur
Conn.
Conn.
Conn.
E-commerce

1) Avec la topologie 1, combien d’écritures et d e lectures sont nécessaires pour transférer un bon de commande entre le progiciel de E- commerce et le progiciel de Gestion commerciale ? Et avec la topologie 2 ?

2) Avec la topologie 1, combien d’écritures et de lectures sont nécessaires pour transférer un e nomenclature entre le progiciel de Conception assistée par ordinateur et le progiciel de Gestion de production ? Et avec la topologie 2 ?

3) Quelle topologie est la plus efficace entre terme de nombre de calculs pour transférer une donnée ? Justifiez.

4) Quelle topologie est la plus facile à mettre en place ? Justifiez.

5) Quelle topologie est la plus facile à maintenir et à faire évoluer ? Justifiez.

Page 3/5

Partie 2. Connexion à une base de données depuis un programme Java (5 points)

Ci-dessous, vous avez du code écrit en JAVA avec des trous indiqués par des pointillés …………………………… Vous devez compéter ce code sachant que :

- l’objectif est de se connecter à une base de donnée

- le nom de la base de données est « EXAM- SI »

- que l’on veut lire tous les éléments de la table QUESTIONS

- que l’utilisateur qui possède les droits de lecture/écriture sur la base a pour login = « user » et pour mot de passe « estia2015 »

import java. …………………………… ;

public class Test {

public static void …………………………… (String[] args) {

Connection _connection = connect("…………………………… ");

if(…………………………… != null){ try{

Statement req = _connection.createStatement(); ResultSet result = req.executeQuery("SELECT * FROM …………………………… ");

………………………………………………………… { System.out.println(" -->"+res ult.getString(" libelle")) ;

}

req.close();

_connection.close();

}

catch(SQLException e)

{

System.out.println("………………………………………………………… ");

}

}

System.out.println("Bye !");

}

public static Connection connect(String nomDeLaBase){

…………………………………………………………

…………………………………………………………

String …………………………… = "jdbc:mysql://localhost/";

Connection _connection = null;

try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { System.out.println("Impossible de charger le Driver mysql ! Est -il inclus au projet ?"); return null;

}

try { _connection = DriverManager.getConnection(url+nomDeLaBase,nom,pwd); } catch (SQLException e) { System.out.print ln("Impossible de se connecter a la base ! Existe -elle ?"); return null;

}

return ……………………………;

}

}

Page 4/5

Exercice 3 : Notion de connecteur

Partie 1. Développement d’un connecteur (5 points)

Nous souhaitons maintenant créer le connecteur permettant de transférer une donnée entre le progiciel de CAO et le SGDT de l’exercice précédent. Le progiciel de CAO exporter des données dans un fichier CSV et le progiciel de SGDT sait importer des fichiers CSV. En revanche , la description des données est

différente entre ces deux logiciels. Pour une rondelle et une entretoise, les données dans les fichiers CSV sont formatées comme suit dans le progiciel de CAO :

Type = Rondelle Diamètre externe (inches;mm) Diamètre interne (inches;mm) Epaisseur (inches;mm)

Type = Entretoise Diamètre externe (inches;mm) Largeur (inches;mm) Longueur (inches;mm)

externe (inches;mm) Largeur (inches;mm) Longueur (inches;mm) diamètre externe diamètre externe largeur longueur
externe (inches;mm) Largeur (inches;mm) Longueur (inches;mm) diamètre externe diamètre externe largeur longueur

diamètre externe

diamètre externe

largeur longueur entretoise1.csv - Bloc notes entretoise 0.31496062;8.0 0.07874015;2.0 1.57480314;40.0 diamètre
largeur
longueur
entretoise1.csv - Bloc notes
entretoise
0.31496062;8.0
0.07874015;2.0
1.57480314;40.0
diamètre externe
diamètre interne
1.57480314;40.0 diamètre externe diamètre interne centre du cercle interne diamètre interne épaisseur Ce qui
1.57480314;40.0 diamètre externe diamètre interne centre du cercle interne diamètre interne épaisseur Ce qui

centre du cercle interne

diamètre interne

diamètre interne centre du cercle interne diamètre interne épaisseur Ce qui donnera par exemple : rondelle1.csv

épaisseur

Ce qui donnera par exemple :

rondelle1.csv - Bloc notes rondelle 0.31496062;8.0 0.236220472;6.0 0.03937007;1.0
rondelle1.csv - Bloc notes
rondelle
0.31496062;8.0
0.236220472;6.0
0.03937007;1.0

Le format correspondant dans le SGDT sera celui d’un cylindre creux dont le cercle interne est co - centré avec le cercle externe :

Type = CylindreCreux Diamètre cercle externe (mm) Diamètre cercle interne (mm) Hauteur (mm) Centre cercle interne (mm;mm) Code matériau

hauteur

Ce qui donnera, pour les deux exemples précédents, avec le code matériau 105 :

Page 5/5

rondelle1_SGDT.csv - Bloc notes cylindrecreux 8.0 6.0 1.0 0.0;0.0 105
rondelle1_SGDT.csv - Bloc notes
cylindrecreux
8.0
6.0
1.0
0.0;0.0
105
entretoise1_SGDT.csv - Bloc notes cylindrecreux 8.0 6.0 40.0 0.0;0.0 105
entretoise1_SGDT.csv - Bloc notes
cylindrecreux
8.0
6.0
40.0
0.0;0.0
105

Vous noterez que, dans le SGDT, le matériau doit être spécifié. Cette information n’existant pas dans le fichier de CAO , le code 105 sera ajouté par défaut. Notez également qu’un mémento des fonctions PHP pour la manipulation de fichiers, pour la décomposition d’une chaîne de caractères est à votre disposition à la fin de cet énoncé.

Ecrivez le code du script PHP converti r_CAO_vers_DGDT.php qui lit un fichier CSV provenant du logiciel de CAO et écrit le fichier CSV compatible avec le logiciel de SGDT.

MÉMENTO : Voici quelques éléments de PHP pour vous aider à mener à bien ce travail

La fonction fopen permet d’obtenir un descripteur (type resource) d’un fichier $filepath ouvert en lecture quand $mode fopen permet d’obtenir un descripteur (type resource) d’un fichier $filepath ouvert en lecture quand $mode vaut "r" et en écriture quand $mode vaut "w". La valeur retournée par fopen est le desctipteur qui a été ouvert, ou faux si l’ouverture a échoué (par exemple en cas de fichier inexistant). resource fopen ( string $filepath , string $mode ) ;

La fonction fc lose permet de libérer le descripteur de fichier $fid . bool fclose ( resource fc lose permet de libérer le descripteur de fichier $fid. bool fclose ( resource $fid ) ;

La fonction feof permet de tester si le descripteur de fichier $fid a atteint la fin du feof permet de tester si le descripteur de fichier $fid a atteint la fin du fichier. La valeur retournée est vrai si la fin de fichier a été atteinte, faux s inon. bool feof ( resource $fid ) ;

La fonction fgets permet de lire une ligne dans le fichier décrit par le descripteur $fid . fgets permet de lire une ligne dans le fichier décrit par le descripteur $fid. La valeur retournée est une chaîne de caractères contenant la ligne du fichier. string fget s ( resource $fid ) ;

La fonction fputs permet d ’écrire dans le fichier décrit par le descripteur $fid . void f fputs permet d’écrire dans le fichier décrit par le descripteur $fid. void f pu t s ( resource $fid , string $txt) ;

La fonction explode permet de décomposer une chaîne de caractères en plusieurs morceaux dans un tableau selon explode permet de décomposer une chaîne de caractères en plusieurs morceaux dans un tableau selon un délimiteur spécifié. array explo de ( string $delimiter, string $line ) ;

Partie 2. Utilisation d’un connecteur (5 points)

Dans le cadre de vos développe ments en TP, vous avez utilisé le connecteur mysql-connector-java.

1)

qu’est ce que c’est ?

2)

à quoi sert il ?