• Aucun résultat trouvé

Chapitre 4 : Méthodologie et analyse des besoins

4.4 Conclusion …

Dans ce chapitre nous avons défini les spécifications du système. La méthodologie à utiliser pour son élaboration ayant été précisée, nous abordons dans le chapitre suivant la modélisation de l’application.

Figure 4.2 : Architecture générale du système

61 Serveur web

Modem GSM

Synchronisation des données

Envoie des messages d’alerte

Communication avec le modem via Kannel

Serveur d’application

Réalisé par Apollinaire Codjo TOGBONON 60

Chapitre 5

Modélisation du Système de Suivi de Maintenance des sites (S-SMS)

5.1. Méthode de modélisation

La phase de conception vise à trouver des solutions informatiques et techniques pour mettre en œuvre l’outil. Elle doit permettre d’élaborer les différentes couches du système et leurs interactions, d’abord au niveau plus général puis à un niveau plus détaillé, tout en tenant compte des contraintes informatiques et techniques : langage, base de données, matériel etc. Pour mener à bien le projet, nous avons choisi d’utiliser le langage UML qui est considéré comme le standard en matière de modélisation objet, capable de faciliter la construction d’applications orientées objet, souples et évolutives.

Par définition, c’est un langage de modélisation graphique et textuel très complet des données et des traitements couvrant les aspects fonctionnels, structurels et comportementales du développement des logiciels. Ce langage est un moyen d'exprimer des modèles objet en faisant abstraction de leurs implémentations, car le modèle fourni par ce dernier sera valable pour n'importe quel langage de programmation.

Ainsi, afin de décrire les besoins fonctionnels, la vue structurelle et comportementale de notre système, nous avons utilisé la norme UML 2.0 (dernière norme éditée) et avons réalisés respectivement:

 le diagramme de cas d’utilisation dont le rôle est de permettre de système : il décrit les classes que le système utilise ainsi que les relations qui existent entre elles.

62

Réalisé par Apollinaire Codjo TOGBONON 61

5.2. Diagramme de cas d’utilisation

Il montre les interactions fonctionnelles entre les acteurs du système et le système lui-même. Dans notre cas, nous distinguons trois acteurs.

5.2.1. Identification des acteurs du système

Un acteur, au sens UML, représente le rôle d'une entité externe (utilisateur humain ou non) interagissant avec le système. Il est représenté sur le diagramme par un bonhomme en fil de fer. Ainsi, les acteurs du système sont les suivants :

 Utilisateur : Ce sont par exemple des techniciens radio, mécanique et énergie qui sont en charge d’un certain nombre de site, qui ont besoin de produire des ordres de travail, des rapports de travail et qui vont sur site chaque fois qu’il y a une action de maintenance à exécuter.

 Superviseur : Ce sont par exemple les superviseurs en charge des techniciens radio, mécanique et énergie. En plus des actions que peuvent effectuées les utilisateurs, le superviseur peut consulter le compte des utilisateurs et également la liste de tous les sites

 Administrateur : En plus des actions qu’effectuent les utilisateurs et les superviseurs l’administrateur peut créer, modifier ou supprimer le compte des utilisateurs et des superviseurs. Il peut aussi créer, modifier et supprimer un site. Il a également le droit de mettre à jour la base de données

5.2.2. Diagramme de cas d’utilisation

L’étude des spécifications nous a permis de dégager les différents cas d’utilisation. Un cas d’utilisation décrit une utilisation du système par un acteur particulier. Ce qui revient à présenter les besoins fonctionnels de façon formelle par la figure 5.1 :

63

Réalisé par Apollinaire Codjo TOGBONON 62 64

Réalisé par Apollinaire Codjo TOGBONON 63 65

Réalisé par Apollinaire Codjo TOGBONON 64

Figure 5.1 : Diagramme de cas d’utilisation du système

66

Réalisé par Apollinaire Codjo TOGBONON 65

5.3. Diagramme de séquence

Ils permettent de décrire de façon détaillée les scénarios de chaque cas d’utilisation en mettant l’accent sur la chronologie des opérations en interaction avec les objets afin d’obtenir une expression précise des besoins.

Nous ne présentons ici que quelques cas d'utilisation du système. Pour chaque cas, nous allons faire une description textuelle puis réaliser le diagramme de séquence associé.

5.3.1. Cas d’utilisation : « S’authentifier »

L’élaboration du diagramme de séquence de ce module a donné le résultat suivant (figure 5. 2) :

Acteurs : Tous les acteurs

Objectifs : Se connecter à l’application pour effectuer diverses opérations.

Pré conditions : Serveur de base de données disponible Scénario nominal :

 Le système présente la page d’authentification.

 L’acteur saisit le nom d’utilisateur et le mot de passe puis valide.

 Le système ouvre la session correspondante selon que l’acteur soit administrateur, superviseur ou simple utilisateur

Scénarios alternatifs :

 Le serveur de base de données a subi un dysfonctionnement.

 Nom d’utilisateur et / ou mot de passe incorrect(s).

Post conditions :

Affichage de la page d’accueil correspondant à l’acteur (succès) ou d'un message d'erreur (échec).

67

Réalisé par Apollinaire Codjo TOGBONON 66

Figure 5.2 : Diagramme de séquence << Authentification>>

5.3.2. Cas d’utilisation << Réception des SMS sur téléphone mobile>>

Ce module permet à l’acteur de recevoir des SMS sur son téléphone mobile. Il pourra donc être prévenir des tâches de maintenance préventive qu’il doit exécuter à une date donnée. Aussi il pourra être alerté d’une tâche de maintenance curative qui lui est assigné ou même d’un ordre de travail qu’il aura à valider en mode In line.

L’élaboration du diagramme de séquence de ce module a donné le résultat suivant (figure 5. 3) :

Acteurs : Tous les acteurs

Objectifs : Prévenir un technicien d’une tâche de maintenance préventive qu’il doit exécuter à une date donnée, alerté un technicien d’une tâche de maintenance curative qui lui est assignée, alerté l’administrateur ou le superviseur d’un ordre de travail qu’il doit valider en mode In line.

68

Réalisé par Apollinaire Codjo TOGBONON 67

Pré conditions : Serveur de base de données disponible, avoir un téléphone portable, avoir un compte

Scénario nominal :

Etre le destinataire d’un message d’alerte Scénarios alternatifs :

 Le serveur de base de données a subi un dysfonctionnement.

 Téléphone portable injoignable.

Post conditions :

Réception d’un message d’alerte sur son téléphone portable.

Figure 5.3 : Diagramme de séquence << Réception de message d’alerte sur téléphone portable>>

5.3.3. Cas d’utilisation : « Création de comptes»

L’élaboration du diagramme de séquence de ce module a donné le résultat suivant (figure 5. 4) :

Acteurs : Administrateur

Objectifs : Créer de nouveaux comptes

69

Réalisé par Apollinaire Codjo TOGBONON 68

Scénario nominal :

 S’authentifier (figure 6.2).

 L’acteur choisit le menu comptes puis après le sous menu création

 Enregistrer une fois les différents champs remplis.

Scénarios alternatifs :

 Le serveur de base de données a subi un dysfonctionnement.

Champs mal remplis

Post conditions : Données envoyées dans la base de données (succès) ou message d’erreur (données incorrectes)

Figure 5. 4 : Diagramme de séquence << Création de comptes >>

70

Réalisé par Apollinaire Codjo TOGBONON 69

5.3.4. Cas d’utilisation : « Consulter l’historique»

L’élaboration du diagramme de séquence de ce module a donné le résultat suivant

Acteurs : Tous les acteurs

Objectifs : Consulter l’historique des OT, RT, alarmes et maintenance préventive effectuée.

Pré conditions : Serveur de base de données disponible.

Scénario nominal :

 S’authentifier (figure 6.2).

 L’acteur choisit le menu site puis après le sous menu historique Scénarios alternatifs :

 Le serveur de base de données a subi un dysfonctionnement.

Post conditions : Affichage de l’historique des OT, RT, alarmes et maintenance préventive effectuée.

Figure 5. 5 : Diagramme de séquence << Consulter l’historique >>

71

Réalisé par Apollinaire Codjo TOGBONON 70

5.3.5. Cas d’utilisation : « Tâche de maintenance préventive»

L’élaboration du diagramme de séquence de ce module a donné le résultat suivant :

Acteurs : Tous les acteurs

Objectifs : Effectué une tâche de maintenance préventive ou générer un OT/RT.

Pré conditions : Serveur de base de données disponible.

Scénario nominal :

 S’authentifier

 L’acteur choisit le menu maintenance puis après le sous menu maintenance préventive

Scénarios alternatifs :

 Le serveur de base de données a subi un dysfonctionnement.

Post conditions : Le système ouvre l’onglet de maintenance préventive sous les différents niveaux (niveau 1, niveau 2, niveau 3) selon que l’acteur soit un simple utilisateur, superviseur ou administrateur.

72

Réalisé par Apollinaire Codjo TOGBONON 71

Figure 5. 6 : Diagramme de séquence << Tâche de maintenance préventive >>

5.3.7. Cas d’utilisation: <<Valider OT>>

L’élaboration du diagramme de séquence de ce module a donné le résultat suivant

Acteurs : Administrateur et superviseur

Objectifs : Permettre à l’acteur de valider les ordres de travail des techniciens même en dehors de l’entreprise pour qu’il puisse aller sur site travailler sans perdre de temps.

Pré conditions : Serveur de base de données disponible, téléphone portable disponible, avoir un navigateur web

Scénario nominal :

73

Réalisé par Apollinaire Codjo TOGBONON 73

 Se connecter au mode In line du système Scénarios alternatifs :

 Le serveur de base de données a subi un dysfonctionnement.

 Téléphone portable indisponible

 Ne dispose pas d’un navigateur web Post conditions :

Validation de l’ordre de travail et archivage dans la base de données 5.4. Diagramme de classe

La figure 5.7 suivante présente le diagramme de classe du système. Les rectangles représentent les classes avec leurs attributs et méthodes. Nous nous baserons sur ces différents éléments pour concevoir la base de données et réaliser l’application.

Figure 5.7 : Diagramme de classe

74

Réalisé par Apollinaire Codjo TOGBONON 73

Chapitre 6

Choix technique

6.1. Environnements de travail choisis

Java est le principal langage de programmation utilisé pour la réalisation de cette application. On a eu recours à PostgreSQL 9.1 pour la manipulation de la base de données, à Visual Paradigm qui est un outil de modélisation UML, à HTML (HyperText Markup Language), à JavaScript et du PHP pour le module connecté.

6.1.2. Langage de programmation

Le choix des bons outils de travail est une tâche critique sur laquelle repose le bon déroulement de l'étape de conception et de développement. Pour la réalisation de ce projet plusieurs alternatives se sont posées.

Pour ce qui est de la plate-forme de programmation nous avons eu le choix entre

JAVA, C++, C# et Visual Basic. Cette sélection est justifiée par le fait que tous ces langages :

 utilisent le concept orienté objet et s'apprêtent parfaitement à notre cas.

 permettent la création d'interfaces graphiques (menus déroulants, boutons, cases à cocher, etc.) essentielles pour la conception de l'interface graphique de notre application.

 incluent le concept du modèle évènementiel.

Une étude comparative entre ces différentes plates-formes nous montre les avantages et inconvénient de ces dernières.

Outre la facilité de la définition des classes de travail, Visual Basic offre un plus grand avantage en délais d’exécution. Mais son plus grand inconvénient est qu’il n'est pas portable et doit être utilisé sur une seule plate−forme : Windows

C++ quant à lui est un langage multi plate-forme. Il se distingue par sa rapidité lors de la compilation ainsi que lors de l'opération de la lecture des fichiers. Son principal défaut reste la complexité de sa structure et la difficulté pour la définition des classes de travail.

Le C#, est un langage multi plate-forme qui s’apprête parfaitement à notre cas. Mais son principal défaut reste la complexité de sa structure.

Pour finir le Java, outre sa robustesse et sa performance présente le grand avantage d'être portable sur plusieurs plates-formes (Windows, Linux,...). Aussi

73

75

Réalisé par Apollinaire Codjo TOGBONON 74

la mémoire, permet l'utilisation de threads qui sont des fils d’instructions correspondant à des processus légers et dispose des API permettant la communication par liaison série (ports série).

Après cette étude comparative nous avons opté pour Java comme plate−forme de programmation.

6.1.3. L’environnement de développement intégré

On dispose de nombreux environnements de développement intégré pour Java. Certains sont commerciaux (JBuilder), et d’autres sont libres (Netbeans, Eclipse). « NetBeans » est développé par Sun Microsystems et téléchargeable gratuitement de son site officiel. Il fonctionne sous Windows, Linux, MacOs X et Solaris. Son architecture est écrite entièrement en Java. La plateforme Netbeans est un outil très puissant et libre qui facilite la réalisation d'application graphique. Il intègre des outils de débogage. Nous avons retenu NetBeans (version 7.0.1) car il est gratuit, extensible et possède des fonctionnalités de développement rapide d’applications.

6.1.4. Système de Gestion de Base de Données

Le SGBD est un système permettant de manipuler les informations ou données contenues dans une base de données : interrogation, mise à jour, gestion de l’intégrité et de la cohérence. Au nombre de ces systèmes, nous pouvons citer : Apache DB, Ingres, MySQL, Oracle, PostgreSQL, SQLite, SQL Server. Son choix est guidé par les critères suivants :

 la politique sécuritaire ;

 la richesse fonctionnelle du SGBD Relationnel ;

 les ressources (disques, mémoire, CPU (Central Processing Unit), nombre de transactions par seconde, nombre de connexions simultanées).

76

Réalisé par Apollinaire Codjo TOGBONON 75

PostgreSQL est le projet de base de données le plus abouti dans le domaine du logiciel libre. Il est un système de gestion de bases de données (SGBD) très performant sous licence BSD (Berkeley Software Distribution) dont les performances sont comparables à Oracle 9.

En ce qui concerne sa richesse fonctionnelle, il dépasse considérablement les autres SGBD libres même s’il est plus complexe à mettre en œuvre. En effet, il :

 offre une grande sécurité au niveau de la gestion des données.

 est multi plateforme. En effet, il était disponible seulement sous la plateforme linux mais depuis 2004, la version Windows existe. Les distributions sont plus résistibles devant les attaques des tiers en permettant d’éviter les failles de sécurité pour le portage Windows. Il s’agit d’un SGBD relationnel et orienté objet. Les concepts comme l’héritage, la composition et l’agrégation y sont intégrés ainsi que d’autres notions de l’orienté objet.

 contient diverses bibliothèques pour plusieurs langages de programmation comme le C, le C++ et Java permettant ainsi à des programmes écrits en ces langages d’accéder facilement aux enregistrements.

 Nous avons donc retenu PostgreSQL 9.1 (la dernière version) comme SGBD pour la réalisation de l’application.

6.1.5. L’application web

Les outils techniques choisis pour la réalisation de l’application sont essentiellement les plus utilisés dans le domaine du Web à cause de leurs efficacités et pour la plupart, leurs licences GPL.

HTML : (HyperText Markup Language) c’est le langage qui permet d’écrire le code de base de tout site Web. Sa dernière version HTML5 a été utilisée parce qu’elle offre assez de fonctionnalités.

CSS : (Cascading Style Sheets, aussi appelées Feuilles de style) il permet de gérer l’apparence des pages web. C’est sa dernière version, CSS3 qui a été utilisée pour l’application.

PHP : c’est le langage serveur que nous avons utilisé pour la dynamisation du site. Il existe plusieurs langages de script serveur dont :

77

Réalisé par Apollinaire Codjo TOGBONON 76

Notre choix s’est porté sur PHP dont les fonctionnalités sont très variées.

Entre autres, PHP permet de coder en Ajax et dispose de nombreuses fonctions permettant d’effectuer la majorité des actions en rapport avec le web. Mais ses capacités ne s’arrêtent pas à la création de simples pages web. Il offre la possibilité de manipuler des images, de créer des fichiers PDF et de se connecter à des bases de données.

SQL : (Structured Query Language), c’est le langage standard pour les systèmes de gestion de bases de données relationnelles. La plupart des entreprises qui produisent des systèmes de gestion de bases de données relationnelles sont compatibles avec SQL. Ce langage a été utilisé pour la définition des données de la base.

WampServer : C’est un logiciel exécutable sous les plateformes Windows de Microsoft. Il renferme les serveurs de page Web Apache, de base de données MySQL et d’application PHP. Cette composition lui a valu son nom WampServer qui signifie Windows Apache MySQL PHP Server. Il a été utilisé pour les tests de l’application en local parce qu’il renferme la plupart des librairies dont nous avons besoin pour la création de l’application. JavaScript : Il permet de dynamiser l’application. C’est un outil très important pour le développement Ajax notamment avec son objet XMLHttpRequest qui permet de faire des requêtes de type asynchrone.

Les tests de l’application ont été faits sous les clients ou navigateurs Explorer, Safari, Mozila FireFox, Google Chrome, Opera. Ce sont les clients Web les plus connus et les plus utilisés à travers le monde.

6.1.5. Les paquetages utilisés

6.1.5.1. API JavaComm et RxTx (Gestion de la communication ports par liaison série)

78

Réalisé par Apollinaire Codjo TOGBONON 73

JavaComm est une librairie open-source permettant la communication entre une application Java et une application distante à travers un lien série ou parallèle. JavaComm supporte deux modes de fonctionnement :

 flux, ou la liaison série est vue « comme un socket » fournissant des flux de lecture/d’écriture binaire d'octets.

 évènementiel, où l'application utilisant la liaison série peut être notifiée d'évènements particuliers.

RxTx est une librairie open-source antérieure à la spécification JavaComm mais qui s’est rendue compatible. L’implémentation fournie par Sun est en réalité identique à RxTx 2.0, mais Sun ne supporte que les implémentations Linux et Solaris.

RxTx inclut la librairie JavaComm et fournit en plus le support d’un très grand nombre de plateformes (environ 40) pour la communication et assure un contrôle plus fin de la communication série.

Les classes de RxTx sont définies dans le paquetage gnu.io. Notre application doit pouvoir communiquer avec un modem GSM via les ports séries. C’est pour cette raison que nous l’avons utilisé.

6.1.5.2. API JAXP

79

Réalisé par Apollinaire Codjo TOGBONON 77

bibliothèque standard Java qui permet d’analyser la structure d’un document XML et d’exploiter les informations qu’il contient. Deux types différents d’analyseur (parser) sont proposés pour effectuer ces opérations :

 SAX (Simple API for XML) et les classes du paquetage org.xml.sax, pour récupérer les informations que contient un document XML au fur et à mesure de sa lecture ;

 DOM (Document Object Model) et les classes du paquetage

org.w3c.dom, pour créer en mémoire une structure arborescente équivalant à celle d’un document XML, afin d’exploiter ensuite les informations.

6.1.5.3. Implémentation

Afin de justifier nos choix techniques, nous avons développé l’application. Le tableau 6.1 récapitule l'ensemble des outils logiciels et API utilisés, décrits de façon détaillée dans la section 6.1.

Tableau 6.1 : Liste des outils logiciels utilisés

80

Réalisé par Apollinaire Codjo TOGBONON 78

OUTILS DESCRIPTION

Logiciels Système d’exploitations Linux (Distribution Debian) Apache Serveur web Version 2 Ajax(HTML, JavaScript Technologie de

CSS, XML) développement web PHP Serveur d’application PHP NetBeans Pour l’édition de code MySQL

Bibliothèques Javacomm Permet la communication port série

AWT Permet de faire le Graphisme

PostgreSQL -9.0-801.jdbc4 Permet de connecter la base de Donnée à l’application

Passerelle de messagerie

kannel Permet l’envoi et la réception Des SMS sur les téléphones Portables

81 78

TROISIEME PARTIE : RESULTATS ET DISCUSSION

Chapitre 7: Tests et Analyse des résultats

Chapitre 8 : Discussion et coût de l’application

Réalisé par Apollinaire Codjo TOGBONON 80

Chapitre 7

Tests et Analyse des résultats

7.1. Tests des fonctionnalités 7.1.1. Menu compte

L’accès à cette fonctionnalité est réservé à l’administrateur:

 Sous menu liste (Figure 7.1)

Pour créer un nouveau compte, l’administrateur renseigne les différents champs et enregistre. Apres avoir enregistré, les données apparaissent automatiquement dans le tableau comportant la liste des comptes. Pour modifier un compte l’administrateur sélectionne le compte ce qui fait afficher automatiquement les informations concernant ce compte dans les champs correspondant que l’administrateur peut modifier ou s’il veut supprimer ce compte il appuie sur le bouton <<supprimer>>.

Toutefois le superviseur a aussi accès à cette fonctionnalité mais en mode lecture seule.

80 83

Réalisé par Apollinaire Codjo TOGBONON 81

Figure 7.1 : Sous menu compte

7.1.2. Menu site

L’accès à cette fonctionnalité est réservé à tous les utilisateurs de S-SMS (administrateur, superviseur et techniciens)

 Sous menu liste des sites

Pour accéder à cette fonctionnalité, l’utilisateur entre dans le menu site puis après dans liste. La création d’un nouveau site est réservée uniquement à l’administrateur du réseau. Ainsi pour créer un nouveau site, l’administrateur clique sur nouveau puis après remplis les champs correspondants puis enregistre. Apres avoir enregistré, les données sont ajoutées à la base de données et apparaissent automatiquement dans la liste des sites.

Pour accéder à cette fonctionnalité, l’utilisateur entre dans le menu site puis après dans liste. La création d’un nouveau site est réservée uniquement à l’administrateur du réseau. Ainsi pour créer un nouveau site, l’administrateur clique sur nouveau puis après remplis les champs correspondants puis enregistre. Apres avoir enregistré, les données sont ajoutées à la base de données et apparaissent automatiquement dans la liste des sites.

Documents relatifs