5
Filière: Développement des Systèmes d’Information (2 ème année) Contrôle : Etude de cas U5 : Développement d'Applications Informatiques Page 1 5 INSTITUTION SEMLALI POUR L'EDUCATION ET L'ENSEIGNEMENT PRIVE Centre des Classes de Préparation au BTS - 2011/2012 - Nous considérons ici une entreprise appelée SRC2 qui vend des produits informatiques en ligne. On propose le diagramme de classe en annexe 1 : PARTIE 1 : POO (JAVA) On s’intéresse à la gestion des clients. 1- Un client est défini par : - Un id qui est incrémenté automatiquement pendant la création du client, selon le nombre de clients créés. - Le nom du client - Le prénom du client - Pour créer un client, il faut préciser son nom et son prénom. Son id est défini automatiquement. - La méthode toString() retourne une chaîne de caractères qui contient l’id , le nom et la prénom du client. - Les autres méthodes sont les getters et les setters : getNom(), setNom, getPrenom(), setPrenom(), getNbClients et getId_Client(). - Les Clients crées seront sérialisés. Ecrire le code java permettant d’implémenter la classe Client. 2- On suppose qu’un salarié de l’entreprise SRC2 peut être aussi un client interne, ainsi il sera modélisé par la classe ClientInterne qui héritera de la classe Client. Un ClientInterne est un Client qui a en plus : Le salaire (réel). L’attribut clientFiele qui indique la fidélité du client (true ou false) - Pour créer un ClientInterne, il faut préciser son salaire. Le constructeur de cette classe fait appel au constructeur de la classe parente et puis initialise l’attribut clientFiele à true. - Surcharger la méthode « toString() » de la classe mère Ecrire le code java permettant d’implémenter la classe ClientInterne. 3- On désire afficher la liste des clients enregistrés dans un fichier « Clients.dat », pour cela on utilisera la classe ListeClient qui dérive de JFrame contenant un JTable table. Ecrire les méthodes suivantes de la classe ListeClient : - void initialiserTable() : qui permet de créer le JTable table dans le formulaire. - void charger( ) : qui charge les données des client du fichier vers une collection ArrayList. - void remplirTable() : qui remplit le JTable table depuis la collection.

Etude de cas développementVF

Embed Size (px)

DESCRIPTION

Etude de cas développementVF

Citation preview

Page 1: Etude de cas développementVF

Filière: Développement des Systèmes d’Information (2ème année)

Contrôle : Etude de cas

U5 : Développement d'Applications Informatiques

Page 1 5

INSTITUTION SEMLALI POUR L'EDUCATION ET L'ENSEIGNEMENT PRIVE Centre des Classes de Préparation au BTS - 2011/2012 -

Nous considérons ici une entreprise appelée SRC2 qui vend des produits informatiques en ligne. On propose le diagramme de classe en annexe 1 :

PARTIE 1 : POO (JAVA)

On s’intéresse à la gestion des clients.

1- Un client est défini par :

- Un id qui est incrémenté automatiquement pendant la création du client, selon le nombre de clients créés.

- Le nom du client - Le prénom du client - Pour créer un client, il faut préciser son nom et son prénom. Son id est défini automatiquement. - La méthode toString() retourne une chaîne de caractères qui contient l’id , le nom et la prénom du

client. - Les autres méthodes sont les getters et les setters : getNom(), setNom, getPrenom(), setPrenom(),

getNbClients et getId_Client(). - Les Clients crées seront sérialisés.

Ecrire le code java permettant d’implémenter la classe Client.

2- On suppose qu’un salarié de l’entreprise SRC2 peut être aussi un client interne, ainsi il sera modélisé par la classe ClientInterne qui héritera de la classe Client.

Un ClientInterne est un Client qui a en plus :

• Le salaire (réel). • L’attribut clientFiele qui indique la fidélité du client (true ou false)

- Pour créer un ClientInterne, il faut préciser son salaire. Le constructeur de cette classe fait appel au constructeur de la classe parente et puis initialise l’attribut clientFiele à true.

- Surcharger la méthode « toString() » de la classe mère

Ecrire le code java permettant d’implémenter la classe ClientInterne.

3- On désire afficher la liste des clients enregistrés dans un fichier « Clients.dat », pour cela on utilisera la classe ListeClient qui dérive de JFrame contenant un JTable table.

Ecrire les méthodes suivantes de la classe ListeClient :

- void initialiserTable() : qui permet de créer le JTable table dans le formulaire.

- void charger( ) : qui charge les données des client du fichier vers une collection ArrayList.

- void remplirTable() : qui remplit le JTable table depuis la collection.

Page 2: Etude de cas développementVF

Filière: Développement des Systèmes d’Information (2ème année)

Contrôle : Etude de cas

U5 : Développement d'Applications Informatiques

Page 2 5

INSTITUTION SEMLALI POUR L'EDUCATION ET L'ENSEIGNEMENT PRIVE Centre des Classes de Préparation au BTS - 2011/2012 -

PARTIE 2 : ENVIRONNEMENTS DE DEVELOPPEMENTS INTEGRES (VB.NET)

On désire développer une application pour faciliter la gestion des commandes. Pour cela, on a implémenté la base de données mysql SRC2(voir l’annexe 2).

Sachant que la chaîne de connexion à une base de données mysql est :

Provider=MySQL Provider; Data Source=MySQLServerIP; User ID =MyID; Password=MyPassword; Initial Catalog=DatabaseName;

Avec MySQLServerIP est l’adresse IP de serveur de base de données MySQL example: 127.0.0.1,6306 où 6306 est le port de connexion.

• MyID/MyPassword : nom d’utilisateur et le mot de passe.

• DatabaseName: le nom de la base de données.

L’interface est la suivante :

A. Connexion à la base de données

1) On peut manipuler une base de données en mode connecté ou en mode déconnecté. Quelle est la différence entre les deux ?

2) Ecrire la déclaration des objets nécessaires pour se connecter et manipuler la base de données en mode connecté.

B. Manipulation des données

Ecrire le code VB.NET des procédures suivantes:

1) frm_Saisie_Load() pour remplir le comdo_Id_client(la liste des IDs Clients) puis le combo_id_Produit (la liste des IDs Produits).

2) BTnCom_Click () pour vider les zones de texte et préparer l'ajout d'une nouvelle commande.

3) comb_codClient_SelectedIndexChanged() associer à la liste déroulante(Combox de l’id client) pour rechercher un client suivant l’Id sélectionné dans la liste (combox) puis afficher son nom et son prénom.

Page 3: Etude de cas développementVF

Filière: Développement des Systèmes d’Information (2ème année)

Contrôle : Etude de cas

U5 : Développement d'Applications Informatiques

Page 3 5

INSTITUTION SEMLALI POUR L'EDUCATION ET L'ENSEIGNEMENT PRIVE Centre des Classes de Préparation au BTS - 2011/2012 -

PARTIE 3 : PROGRAMMATION CLIENT/SERVEUR

Cette partie a pour objectif la mise en place un programme pour la gestion de commandes en architecture Client/serveur. Ce programme doit utiliser un protocole de communication bien défini entre les clients et les serveurs. Cette communication entre clients et serveurs doit être basée sur la technologie Java RMI.

Architecture du système informatisé (la figure suivante):

Le vendeur possédant plusieurs boutiques, on souhaite mettre en place un système informatique composé des éléments suivants :

• un serveur central situé dans une zone non accessible au public ;

• des postes clients répartis dans chacune des boutiques.

Les postes clients doivent permettre, grâce à une interface homme-machine appropriée (qui sera simulée ici sous forme d’une zone de saisie en mode caractères), de réaliser les différentes opérations prévues.

Le serveur central a la charge de l’ensemble des données de la boutique (stock et commandes). Les données manipulées par le serveur sont de nature persistante, c’est-à-dire qu’elles doivent survivre à l’exécution de l’application. Pour assurer la persistance de ces données, nous les stockerons dans un fichier. Le principe consiste alors à charger ce fichier en mémoire pour traiter chaque requête client, puis de sauvegarder ces fichiers après chaque mise à jour.

Nous limitons notre étude à la manipulation de la liste des clients enregistrés dans le fichier « Clients.dat » utilisé dans la partie 1.

• Le programme client permettra l’ajout, d’affichage, de modification et la suppression des informations sur un client (acheteur) sur le serveur.

• Le serveur maintient à jour le fichier « Clients.dat ».

Travail à Faire :

1) S’agit-t-il de quel le type d’architecture client/serveur? justifier votre réponse.

2) Quel est l’avantage la technologie RMI par rapport aux sockets?

3) Proposer la classe serveur permettant d’instancier l’objet qui maintient à jour le fichier « Clients.dat », puis mettre cet objet dans l’annuaire RMI.

4) Citer les étapes (algorithmes) à implémenter dans le programme client. Le code correspondant n’est pas à écrire.

Page 4: Etude de cas développementVF

Filière: Développement des Systèmes d’Information (2ème année)

Contrôle : Etude de cas

U5 : Développement d'Applications Informatiques

Page 4 5

INSTITUTION SEMLALI POUR L'EDUCATION ET L'ENSEIGNEMENT PRIVE Centre des Classes de Préparation au BTS - 2011/2012 -

PARTIE 4 : DEVELOPPEMENT WEB

L’entreprise SRC2 souhaite développer son site web de vente. On suppose constituée la base de données MySQL appelée SRC2 comprenant quatre tables : Produits, Clients, Commandes, Lignes_Commandes (Voir l’annexe 2).

1) Faites une fonction connexion chargée de se connecter à la base de données (hôte : localhost, login : root, mot de passe : SRC2PHP) et de sélectionner la base de données SRC2 2) Faites une fonction affiche_clients() qui permet d’afficher, sous forme de tableau HTML, tous les clients entrés dans la base (une ligne par client, une colonne pour l’identifiant, une pour le nom, une pour le prénom). 3) a) Faites une fonction ajout_produit($num,$nom,$prix,$quantite) qui permet d’ajouter un produit

de numéro $num, de nom $nom, de prix $prix et de quantité $quantité dans la base de données.

Voici le code du formulaire qui permet d’ajouter un produit dans la base : <form action="<?php $_SERVER["PHP_SELF"] ?>" method="post"> <fieldset> <legend>Rajouter un produit</legend> <table> <thead> <td>Numéro</td> <td>Nom</td> <td>Prix</td> <td>Quantité</td> <td></td> </thead> <tr> <td><input type="texte" name="numero" value=""></td> <td><input type="texte" name="nom" value=""></td> <td><input type="texte" name="prix" value=""></td> <td><input type="texte" name="quantite" value=""></td> <td><input type="submit" value="Ajouter"/></td> </tr> </table> </fieldset> </form>

b) Dessinez le formulaire comme il apparaît à l’écran.

c) Avec quelles variables faut-il appeler la fonction ajout_produit() pour ajouter le produit que l’utilisateur vient de rentrer dans le formulaire ci-dessus?

Page 5: Etude de cas développementVF

Filière: Développement des Systèmes d’Information (2ème année)

Contrôle : Etude de cas

U5 : Développement d'Applications Informatiques

Page 5 5

INSTITUTION SEMLALI POUR L'EDUCATION ET L'ENSEIGNEMENT PRIVE Centre des Classes de Préparation au BTS - 2011/2012 -

Annexe 1 : Le diagramme de classe

Annexe 2 : La base de données SRC2

La base de données MySQL appelée SRC2 comprenant les quatre tables suivantes: Produits, Clients, Commandes, Lignes_Commandes.

La table Produits a quatre champs : un numéro entier d’identification, id_produit, un nom (ex : clavier) nom, un entier prix, qui représente le prix du produit (ex : 15 euros), et un entier quantité qui donne pour chaque produit la taille du stock (ex : 6 s’il reste 6 claviers en stock). La table Clients a trois champs : id_client, nom, prenom qui représentent respectivement le numéro d’identification du client, son nom, et son prénom. La table Commandes a 4 champs : un numéro d’identification id_commande, un numéro d’identification du client qui passe la commande id_client, la date de la commande date_Comande et le montant de la commande montant. La table Ligne_Commande a trois champs : un numéro d’identification id_commande, un numéro d’identification du client qui passe la commande id_client et la quantité du produit commandé quantite_commande.