SESSION 2013-14 BTS SIO PPE 3 Coefficient : 5 Forex Description du projet BTS SIO PPE Page 1 / 6 Barème Phase 1 : Etude et analyse 30 points Phase 2 : Développement, tests et correctifs. 50 points Phase 3 : Rédaction du manuel utilisateur. 20 points Total 100 points Introduction Le FOREX est un organisme qui gère les taux d'échanges boursier et de devise. Il offre des outils pour suivre les indices de cotation et pour réaliser des transactions. Le Forex propose ses services au travers de son site Internet http://www.forexpros.fr. Parmis ceux-ci il est possible de suivre en temps réel les cotations des devises. Le sujet de ce PPE est de réaliser une application logicielle qui charge en continue les cotations d'échange entre devise, notamment Euro – Dollard, les stocke dans une base de données SQL de type MySql ou autre, offre un outil de consultation sous la forme de tableau et de graphique et puisse permettre de faire des simulations de transaction. Cette application sera développée en C++ avec l'outil QtCreator, elle sera de type “Application graphique Qt” et portera le nom de “ppe3_trading” Cahier des charges Vous développez une première version de l’application, celle-ci charge, sous l’impulsion d’un timer, toutes les 10 secondes les dernières cotations en devises du Forex, les stocke dans une base de données relationnelle et propose un affichage. Une deuxième version possèdera des fonctionnalités d’analyse financière et de simulation d’achat et vente de devise. Enfin une troisième version comportera un module de transactions réelles en automatique d’achat et de vente de devises en exploitant les services proposés par le Forex. Données à télécharger du Forex et à stocker. Le Forex propose une interface WEB pour afficher les cotations en devise à tout instant. Vous téléchargerez les valeurs d’achat et de vente de certains couples de devise, par exemple Euro – Dollard. Les couples de devise pris en compte par le logiciel seront paramétrables dans un fichier de configuration luimême modifiable par une boite de dialogue proposant une liste de choix des couples de devises visualisables par le Forex. BTS SIO PPE Page 2 / 6 Les cotations téléchargées sont stockées dans une table d’une base de données relationnelle MySql, Oracle ou Postgres. Pour chaque cotation on doit retrouver le nom du couple de devise, la valeur d’achat, de vente et la date et l’heure de celle-ci. Les paramètres de connexion à la base de données, adresse du serveur, nom de la base de donnée et compte seront contenus dans le fichier de configuration et modifiables à partir d’une boite de dialogue du logiciel. Affichage des données de cotations De manière générale le logiciel affiche en temps réel les valeurs de cotations instantanées des couples de devises sélectionnées sous la forme d’un tableau. Vous utiliserez une vue tabulaire ou grille pour afficher les données. Pour chaque couple de devise, la vue doit afficher le nom du couple, la valeur d’achat, la valeur de vente, la date et l’heure de la dernière transaction et le taux de variation en %. La sélection des devises sera faite dans une boite de dialogue proposant une case à cocher par couple de devise. L’utilisateur coche alors les couples de devise qu’il veut voir. La sélection de l’utilisateur doit être enregistrée dans le fichier de configuration. Le logiciel doit permettre d’afficher sous la forme d’une grille les cotations d’un couple de devise comprises entre deux dates limites. Cet affichage se fera dans une nouvelle fenêtre qui proposera une liste de choix des couples de devises permettant le choix de la devise à afficher dans la fenêtre. La fenêtre permet la saisie de deux dates définissant l’intervalle de temps utilisé pour l’affichage. La vue affiche les cotations triée par ordre inverse du temps et fait apparaitre en plus des valeurs d’achat et de vente, la date et heure de transaction et le taux de variation par rapport à l’ancienne cotations. Paramètres du logiciel En plus de paramètres cités ci-dessus, le logiciel dispose d’une boite de dialogue permettant de modifier l’URL du Forex et la liste des couples de devise à télécharger. Ces valeurs sont enregistrées dans le fichier de configuration. Le logiciel dispose d’un fichier de configuration au format XML pour stocker et lire ses paramètres de fonctionnement. Phase 1 : Etude préalable Le développement de ce projet commencera dans un premier temps par une étude technique préalable visant à valider la faisabilité du cahier des charges et à définir des solutions techniques adéquates en conformités avec le cahier des charges. Ou trouver l'information: site Internet du Forex: http://www.forexpros.fr Le site du Forex offre des outils d'affichage WEB 2 pour suivre en temps réel les cotations (menu: Plus – Outils du webmaster). Ces outils peuvent être intégrés directement dans un site Internet tiers et affichent en temps réel les cotations. BTS SIO PPE Page 3 / 6 1.1) Il vous est demandé dans un premier temps de tester l'outil des “Cotations des devises en temps réel” pour les devises Euro-Dollar et Euro Franc suisse. Pour ces deux cotations, vous ferez apparaitre les valeurs d'achat, de vente, d'ouverture de bourse, de fermeture de bourse, le taux le plus haut, le taux le plus bas et l'heure de cotation. 1.2) A partir de cet exemple, il vous est demandé d'étudier et d'expliquer comment il fonctionne, c'est à dire de proposer une explication sur le chargement des données, leur affichage et leur actualisation. Il n'est pas nécessaire d'expliquer le code JS utilisé par Forex. Le but de cette question est d'obtenir une URL à interroger qui nous renvoie un code HTML contenant les valeurs de cotation. En interrogeant cette URL toutes les 10 secondes et en identifiant dans le contenu HTML retourné les champs contenant les valeurs cherchées on peut de cette sorte récupérer les valeurs de cotations en temps réel. Vous donnerez une URL qui fonctionne et expliquerez comment trouver dans le code HTML retourné les valeurs de cotation. Envoyer des requêtes HTTP et récupérer leur résultat en C++ avec Qt L'exemple donné pour Qt dénommé HTTP (/usr/lib/qt4//examples/network/http) qui se trouve dans les exemples de Qt du module Network fourni un code assez simple d'une petite application capable d'envoyer une requête HTTP sur Internet puis de charger et d'enregistrer dans un fichier le résultat HTML renvoyé par le serveur. 1.3) Etudiez l'exemple mentionné ci-dessus et expliquez alors comment avec Qt on peut envoyer une requête HTTP et récupérer le résultat. Vous expliquerez ce que font les classes QnetworkAccessManager, QnetworkReply, QnetworkRequest, Qurl BTS SIO PPE Page 4 / 6 Exploitation des données reçues. La requête HTTP renvoie des données formatées en langage HTML et celles-ci contiennent les informations de cotations qui nous intéressent. Il suffit de les afficher avec un browser Internet pour voir apparaitre le tableau des cotations. 1.4) A partir des données réceptionnées, identifiez les balises HTML qui contiennent les informations utiles ainsi que l'enchaînement des balises à explorer pour arriver aux valeurs intéressantes. Dans le cas présent, nous ne disposons pas de browser Internet et devons parcourir les données nousmême. Pour ceci nous allons utiliser la technologie SAX implémentée par Qt avec la classe QXmlReader qui n'est en fait qu'une classe d'interface. Qt offre la classe QXmlSimpleReader qui implémente les méthodes de l'interface QXmlReader et permet de lire du code XML pleinement qualifié. Cependant le code HTML généré par le site du Forex n'étant pas pleinement qualifié selon la norme XML, la classe QXmlSimpleReader génère des erreurs bloquantes de parsing. Vous allez donc devoir utiliser la classe “maison” XmlMalFormedReader dont vous trouverez le code source dans les pièces jointes. Cette classe qui implémente les méthodes de l'interface QXmlReader permet d'utiliser la technologie SAX de parsing XML sur des fichiers mal formés. 1.5) Analysez l'exemple SAX Bookmarks proposé par Qt et expliquez brièvement le principe de lecture d'un fichier XML. Adaptez l'exemple en utilisant la classe XmlMalFormedReader et comparez le résultat. Enregistrement des données lues dans une base de données. Les données venant du Forex seront lues régulièrement toute les 1 à 10 secondes grâce à l'utilisation d'un timer. Celles-ci sont alors insérées dans une table d'une base de données de type MySql. Qt propose le module QtSql pour interroger des bases de données et y faire des transactions. Elle propose aussi un ensemble de driver pour chaque type de SGBD utilisables sous la forme de “plugging”. Pour afficher des données d'une table ou extraite par une requête SQL SELECT dans une fenêtre ou une boite de dialogue, Qt propose une architecture de classes basée sur l'architecture modèle-vue-contrôleur. L'exemple fourni par Qt : « tablemodel » dans le module SQL met en œuvre tous ces aspects de manière simple et explicite. 1.6) A partir de l'exemple cité ci-dessus étudiez comment avec Qt se connecter à une base de donnée relationnelle, comment créer une table, y faire des transactions et des requête SELECT. Expliquez les classes et méthodes utilisées. BTS SIO PPE Page 5 / 6 1.7) Dans le même exemple, les données sont affichées dans deux fenêtres différentes en utilisant le même modèle. Ces vues permettent aussi de modifier les données au travers de transactions SQL. Expliquez les classes et méthodes utilisées et la manière de les utiliser. 1.8) Adaptez l'exemple ci-dessus à une base de données MySql. Expliquez comment vous avez procédé pour pouvoir accéder à une BD MySql avec Qt. Phase 2 : Analyse Vous fournirez un diagramme UML de classe détaillé et expliqué du logiciel. Les noms de classe respecteront la notation Pascale et les attributs et méthode la notation Camel. Phase 3 : Réalisation et débogage Vous coderez complètement le logiciel, le testerez et corrigerez les éventuelles erreurs. Celui-ci doit être livré fonctionnel et utilisable. Votre code doit être suffisamment commenté afin d’en assurer une maintenance aisée. Chaque prototype de méthode devra comporter un commentaire expliquant le rôle, le traitement réalisé et la fonction des arguments. Phase 4 : Documentation utilisateur Vous fournirez une documentation utilisateur simple et efficace ainsi qu’une notice d’installation du logiciel. BTS SIO PPE Page 6 / 6
© Copyright 2024