Académique Documents
Professionnel Documents
Culture Documents
Ministère de l’Enseignement
Supérieur et de la Recherche
Scientifique Université
Méditerranéenne Libre Tunis
Ecole Polytechnique Méditerranéenne Privée Tunis
RAPPORT PROJET
Par
Bouraoui Ghayeth
Contexte général............................................................................................................ 4
Introduction ............................................................................................................... 5
Conclusion .............................................................................................................. 13
Introduction ............................................................................................................. 15
Conclusion .............................................................................................................. 30
Introduction ............................................................................................................. 32
Conclusion .............................................................................................................. 46
Réalisation .................................................................................................................. 47
Introduction ............................................................................................................. 48
Conclusion .............................................................................................................. 60
Webographie ............................................................................................................... 63
Annexes ...................................................................................................................... 65
Depuis l’antiquité, l’Homme n’a pas cessé de chercher les différents moyens pour faire
véhiculer le message à son correspondant et donc pour communiquer.
Ainsi, l’être humain, à travers ces époques successives, a fourni ses efforts intellectuels
aussi bien que physiques afin de découvrir des méthodes de communications adéquates.
Au début du XXème siècle, une réelle révolution pour les télécommunications s’amorce:
Celle de l’électronique. Cette époque est caractérisée par l’invention des composants et circuits
électroniques de base et de bonne qualité qui ont poussé les télécommunications vers les réseaux
informatiques. Ces évolutions ont donné naissance à d’autres technologies de communications
telles que la radio messagerie, le téléphone mobile et les réseaux de fibre optique et enfin
Internet.
Cependant, l’ensemble de ces réseaux évolués utilise à la base un réseau très important
pour acheminer les données indépendamment du codage et de la nature des signaux : Le réseau
téléphonique commuté ou RTC (réseau d’abonnés) ainsi depuis la création de l’entreprise
Tunisie Télécom, le nombre de demandes d’abonnements téléphoniques ne cesse de sur-croître,
plusieurs cellules de production exercent un travail convenable et spécifique pour accomplir
une tâche bien précise. Cela afin de satisfaire les exigences de sa clientèle.
Tunisie Télécom pour garantir la bonne qualité de service et pour assurer le bon
fonctionnement du travail au sein ses différentes directions et agences utilisent plusieurs
Systèmes d’Informations et chaque système utilise un Système de Gestion de Bases de Données
différent, pour cela ces différents SI rencontrent des problèmes de rejets pendant la
communication entre eux.
2
Introduction Générale
Le rapport se termine par une conclusion générale qui synthétise le travail réalisé et
présente les perspectives futures à envisager.
3
Chapitre 1
CONTEXTE GENERAL
Plan
1 Organisme d’accueil ................................................................................................... 5
2 Contexte du projet ....................................................................................................... 7
3 Étude et critique de l’existant ...................................................................................... 8
4 Problématique ........................................................................................................... 10
5 Solution proposée et objectifs globaux du projet ......................................................... 10
6 Limite exigée par l’entreprise .................................................................................... 10
7 Choix méthodologique .............................................................................................. 11
Chapitre 1. Contexte général
Introduction
Dans ce chapitre nous allons présenter l’organisme d’accueil et ses principales activités.
Ensuite, nous décrirons le contexte du projet. Nous clôturons par une étude de l’existant menant
à une description, une critique de l’existant et la présentation de la solution proposée.
1.1.1 Histoire
C’est une société semi-étatique chargée d’assurer les communications en Tunisie. Elle
a pour mission d’assurer les activités relatives au domaine des télécommunications :
5
Chapitre 1. Contexte général
1.1.2 Activité
Tunisie Télécom propose des services dans le domaine des télécommunications fixes et
mobiles. En juin 2006, il est fort de 1 259 000 abonnés au réseau fixe (RTCP), dont il détient le
monopole, et de 3 265 000 abonnés au réseau GSM, la première ligne ayant été inaugurée le 20
mars 1998. Avec une part de marché de 35,4 % en décembre 2014 sur le marché de la téléphonie
mobile, Tunisie Telecom est le second plus gros opérateur mobile du pays, derrière Ooredoo,
leader avec 45,7 % de part de marché. L’opérateur historique affiche en 2014 un taux de
croissance mensuel moyen de 4,2 %, ce qui lui a permis de franchir la barre des cinq millions
d’abonnements.
Tunisie Télécom est également un fournisseur d'accès à Internet (Frame Relay,
ADSL, X.25, LS, RNIS et WLL pour la téléphonie rurale). [2]
En novembre 2014, Tunisie Télécom signe un partenariat avec le groupe Khechine qui
consiste pour l'entreprise de télécom d'offrir des avantages sur les services du groupe de
tourisme, en échange d'une offre de télécommunication avantageuse pour les établissements
hôteliers et touristiques du groupe Khechine.
6
Chapitre 1. Contexte général
PDG
Directeur
Affaires
Regionale
Gestion
Assurance Planification &
Ventes Actel Moyens previsionelle
qualite clients Ingenerie du personelle
Support
Vente Deploiement
CSC Achats administratif &
des reseaux
sociale
Marketing Optimisation
& qualite Juridique
support materielle
ROCS
Tous les systèmes modernes fournissent les informations sous forme des tableaux de
bord, en anglais « Dashboard », pour aider à gérer des situations anormales et informer
l’utilisateur en temps réel et aussi bien lui donne la possibilité de générer des rapports sous
différents formes.
Le tableau de bord est un outil d’aide à la décision très important et il remplit notamment
les rôles suivants :
C’est un système d’alerte et également d’actions : il permet de prendre les
mesures nécessaires lorsque des écarts sont détectés entre ce qui est prévu et ce qui se passe
réellement,
7
Chapitre 1. Contexte général
C’est un moyen d’apprentissage car nous permet de tirer des conclusions sur les
écarts constatés et les actions mises en place pour corriger le problème,
Enfin, il nous permet également de se projeter en avant et d’avoir ainsi des
informations pour établir ses prévisions.
Le tableau de bord nous permet donc d’être réactif en cas de problème et de prendre des
décisions en s’appuyant sur des éléments objectifs.
Aussi que la génération des rapports à partir des données d’une base de données
relationnelle nous offre la possibilité d’avoir des documents, sous différentes formes, qui
contiennent les informations nécessaires selon des critères bien précises pour guider l’utilisateur
et lui faciliter son travail sans d’être besoin des méthodes classiques pour extraire les données.
Dans ce contexte s’inscrit notre projet qui consiste à concevoir et développer une application
web de statistiques et de reporting des rejets de communication. Il est réalisé dans le cadre
d’un projet en vue de l’obtention du diplôme national d’ingénieur en
informatique.
Comme nous avons dit précédemment que l’entreprise utilise plusieurs SI, chacun d’eux
utilise un SGBD différent, et pour se faire communiquer ensemble ces derniers utilisent des
web services.
8
Chapitre 1. Contexte général
Les différents SI de TUNISIE TELECOM se communiquent entre eux avec des web
services, mais il existe des défaillances lors de la communication pour cela des rejets de
communication se produisent. Ces derniers s’enregistrent dans les fichiers log de chaque SI.
Les fichiers log : Ou encore en français « Les journaux d'évènements » sont des fichiers
textes enregistrant de manière chronologique les évènements exécutés par un serveur ou une
application informatique. Un contenu qu'il faut savoir déchiffrer. Chaque action d'un système
informatique (ouverture d'une session, installation d'un programme, navigation sur Internet...)
produit un fichier log. Ces fichiers textes listent chronologiquement les évènements exécutés.
Ils s'avèrent utiles pour comprendre la provenance d'une erreur en cas de bug.
9
Chapitre 1. Contexte général
1.4 Problématique
10
Chapitre 1. Contexte général
Les méthodes agiles sont une approche de gestion de projet. Elles se basent sur un cycle
de développement qui positionne le client au centre et qui génère un produit de haute qualité
tout en prenant en compte le changement et l’évolution de ses besoins.
Afin de bien expliquer cette notion, nous allons énoncer ces principes, ses objectifs et
ses rapports avec les modèles classiques. La méthode agile favorise :
Les individus et les interactions plutôt que les processus et les outils : les personnes sont
les points forts des méthodes agiles en favorisant largement les interactions. En d’autres termes,
cette approche est menée dans un esprit collaboratif avec le nécessaire de formalisme.
Les fonctionnalités opérationnelles plutôt que la documentation exhaustive : cette
approche recommande que la livraison du produit final doive être à des intervalles définis. Dans
ce sens se manifeste la notion de développement itératif et d’intégration continue. Une itération
n’est terminée que lorsqu’elle réussit tous les tests.
La collaboration et la communication avec le client plutôt que la contractualisation des
relations : Cette valeur est favorisée en tenant compte que le client est essentiel à la réussite et
en établissant une collaboration étroite entre lui et l’équipe de développement.
Le changement et l’évolution plutôt que le suivi et la conformité aux plans : Les
méthodologies agiles accordent une grande importance aux changements réguliers en fonction
des commentaires du client. Elles exploitent les évolutions pour donner un avantage compétitif
au client [4].
1.7.2 2TUP
11
Chapitre 1. Contexte général
Processus Unifié (Unified Process) qui est devenu un standard général réunissant les meilleures
pratiques de développement.
Cette méthode ne se base pas sur un processus linéaire mais bien, sur un développement
itératif et incrémental.
Le processus 2TUP apporte une réponse aux contraintes de changement continuel
imposées aux systèmes d’information de l’entreprise. En ce sens, il renforce le contrôle sur les
capacités d’évolution et de correction de tels systèmes. 2TUP est un processus unifié qui suit
deux chemins.
Il s’agit des « chemins fonctionnels » et « d’architecture technique », qui correspondent
aux deux axes de changement imposés au système d’information. Ces changements peuvent
être traités parallèlement suivant un axe fonctionnel et un axe technique.
Le premier axe vise à capturer des besoins fonctionnels, durant cette phase nous
avons défini la frontière fonctionnelle entre le système et son environnement et les activités
attendues des différents utilisateurs par rapport au système. Ensuite nous avons étudié
précisément les spécifications fonctionnelles de manière à obtenir une idée de ce que va réaliser
le système en termes de métier.
Le second axe vise à capturer des besoins techniques, durant cette phase nous
avons validé nos choix technologiques pour la conception du système. Les outils et le matériel
sélectionnés ainsi que la prise en compte des contraintes d’intégration avec l’existant. Ensuite
nous avons défini les composants nécessaires à la construction de l’architecture technique. Cette
conception est complètement indépendante des aspects fonctionnels. Elle permet de générer le
modèle de conception technique qui définit les Frameworks [5].
Les deux branches se fusionnent ensuite pour obtenir un processus sous forme
Y comme illustré dans la figure 2. [5] :
12
Chapitre 1. Contexte général
En effet, une entreprise qui maintiendrait son modèle fonctionnel comme dans notre cas
elle peut le réaliser sous différentes technologies donc il suffit d’ajouter une nouvelle
architecture technique pour mettre à jour un système existant.
Après avoir présenté le choix de méthodologie de développement, il faut répertorier les
tâches à accomplir suivant les dates auxquelles ces tâches doivent être effectuées afin de mener
notre projet à bien.
Conclusion
13
Chapitre 2
Plan
1 Spécification des besoins........................................................................................... 15
2 Identification des acteurs du système ......................................................................... 16
3 Diagrammes des cas d’utilisation et identification des scénarios ................................ 17
Chapitre 2. Analyse et spécification des besoins
Introduction
Après avoir présenté les différentes notions relatives à notre projet, nous passons dans
ce chapitre à la phase de spécification et d’analyse des besoins qui constitue une étape
déterminante dans la réalisation du notre projet. Nous procédons, tout d’abord, à l’identification
des acteurs. Nous passons, ensuite, aux diagrammes des cas d’utilisation. Nous finirons par
l’identification des scénarios.
Les besoins des utilisateurs sont recueillis et exprimés et seront ensuite regroupés et traduits en
termes de cas d’utilisation. L’ensemble des cas d’utilisation constitue les spécifications du
système.
Ainsi, le système doit permettre de :
Injecter les données : cette phase sert à charger les données dans une base de données
relationnelle depuis un fichier CSV.
Gérer les rejets : cette fonctionnalité consiste à
Consulter la liste des rejets.
Supprimer des rejets
Générer les rapports : cette fonctionnalité a pour but de générer des rapports sous deux
formes PDF et HTML pour les rejets de communication entre les SI selon des critères
bien choisis.
Afficher les statistiques : cette fonctionnalité c’est pour l’affichage des statistiques
pour ces rejets selon des critères. Les résultats seront affichés sous forme des graphes.
Gérer un profil : cette phase a pour but
Consulter un profil
Modifier un profil
15
Chapitre 2. Analyse et spécification des besoins
Les besoins non fonctionnels caractérisent les propriétés de l’application, les contraintes
d’environnement et d’implémentation, les capacités de maintenance, l’extensibilité et la
fiabilité.
Une première analyse des conditions d’exploitation souhaitées nous a permis
d’identifier les besoins non fonctionnels décrits ci-après :
Ergonomie : Assurer la discipline de l’adéquation entre l’utilisateur et l’application
pour que cette dernière soit adaptée aux caractéristiques de l’homme en employant des
icones.
Convivialité : Eliminer la complexité et diminuer le taux d’erreurs afin de faciliter
l’utilisation de l’application en dirigeant l’utilisateur vers l’action qu’il faut faire et les
données qu’il faut fournir à l’application (l’insertion du calendrier des dates, les listes
déroulantes).
Efficacité : Fournir les résultats les plus performants qui répondent aux besoins de
l’utilisateur.
Portabilité : La capacité de fonctionner dans différents environnements sans exiger des
contraintes matérielles spécifiques.
Fiabilité : L’application doit exécuter correctement : toute information qui lui est
retournée doit être certaine (la crédibilité de la source des données).
Pour illustrer les fonctionnalités offertes par notre système, nous avons opté pour le
diagramme des cas d’utilisation. Ce diagramme donne une vue sur les fonctionnalités de notre
système ainsi que les acteurs qui l’utilisent. Un acteur est l’idéalisation d’un rôle joué par une
personne externe, un processus qui interagit avec un système.
Les acteurs de notre application sont :
L’utilisateur qui va afficher des statistiques, générer des rapports, supprimer des
rejets et consulter son profil ainsi que modifier les données de son profil.
16
Chapitre 2. Analyse et spécification des besoins
L’administrateur qui possède les mêmes rôles qu’un simple utilisateur avec la
gestion des utilisateurs et l’injection des données.
Après avoir identifié les différents besoins de notre projet, Il faut les traduire par des
diagrammes des cas d’utilisation. Ces diagrammes permettent de mettre en évidence les
relations fonctionnelles entre les acteurs et le système étudié. En effet, ils permettent de donner
une vue globale sur les fonctionnalités de notre application.
Nous commençons par présenter le diagramme des cas d’utilisation global pour avoir
une vue générale sur notre système. Ensuite, nous passons aux détails avec la description des
principaux cas d’utilisation.
17
Chapitre 2. Analyse et spécification des besoins
Dans ce qui suit, nous allons détailler les différents cas d’utilisation utilisés dans ce
diagramme.
Ce cas permet à l’utilisateur d’afficher des courbes et des graphes qui donnent une vision
sur les données enregistrées dans la table « rejet », afin que ce dernier puisse conclure quelle
est la cause de rejet de communication et lui aide à prendre une décision comment résoudre ces
problèmes, selon des critères bien choisis dès le développement de l’application. Une
description détaillée du déroulement de cette opération est répertoriée dans le tableau suivant :
18
Chapitre 2. Analyse et spécification des besoins
Scénario :
- L’utilisateur s’authentifie.
- Il affiche l’onglet « Accueil ».
- les courbes et les graphes seront affichés automatiquement.
Postcondition(s) :
- Les statistiques sont affichées suivant les critères choisis dès le début.
Exception - Un message d’erreur s’affiche dans le cas où l’utilisateur a saisi des
paramètres d’authentifications incorrectes. Un message s’affiche « Mot
de passe ou login incorrecte ».
Ce cas permet à l’utilisateur de générer des rapports selon des critères bien choisis et
sous des formes différentes.
19
Chapitre 2. Analyse et spécification des besoins
20
Chapitre 2. Analyse et spécification des besoins
Ce cas permet à l’utilisateur de consulter un profil et ses paramètres par la saisie de numéro
CIN de ce compte.
Une description détaillée du déroulement de cette opération est répertoriée dans le tableau
suivant :
21
Chapitre 2. Analyse et spécification des besoins
Postcondition(s) :
- les informations relatives à un profil seront affichées dans une nouvelle
interface.
Exception - Un message d’erreur s’affiche dans le cas où l’utilisateur a saisi des
paramètres d’authentifications incorrectes. Un message s’affiche « Mot
de passe ou login incorrecte ».
- Un message d’erreur s’affiche dans le cas où l’utilisateur a saisi un
N°CIN inexistant. Un message s’affiche « Utilisateur introuvable ».
22
Chapitre 2. Analyse et spécification des besoins
23
Chapitre 2. Analyse et spécification des besoins
- Lancer l’application.
- S’authentifier.
- Charger les rejets enregistrés dans la base de données.
Scénario :
- L’utilisateur s’authentifie.
- Il affiche l’onglet « Rejets ».
- Il affiche la liste des rejets.
Postcondition(s) :
- Les utilisateurs sont affichés dans un tableau.
Exception - Un message d’erreur s’affiche dans le cas où l’utilisateur a saisi des
paramètres d’authentifications incorrectes. Un message s’affiche « Mot
de passe ou login incorrecte ».
Il permet à l’utilisateur de supprimer un rejet de la liste des rejets affichés dans la table
des rejets.
Une description détaillée du déroulement de cette opération est répertoriée dans le tableau
suivant :
Cas d’utilisation « Supprimer un rejet »
Objectif Permettre à l’utilisateur de supprimer un rejet de la liste des rejets
Description Précondition(s) :
- La machine est connectée au réseau local de TUNISIE TELECOM.
- Lancer l’application.
- S’authentifier.
- Charger les rejets enregistrés dans la base de données.
Scénario :
- L’utilisateur s’authentifie.
- Il affiche l’onglet « Rejets ».
- Il affiche la liste des rejets.
- Il choisit le rejet qui va supprimer
- Il clique sur le bouton « Supprimer »
-Il supprime le rejet.
24
Chapitre 2. Analyse et spécification des besoins
Postcondition(s) :
- Le rejet se supprime de la liste des rejets affichés et de la base de
données.
Exception - Un message d’erreur s’affiche dans le cas où l’utilisateur a saisi des
paramètres d’authentifications incorrectes. Un message s’affiche « Mot
de passe ou login incorrecte ».
25
Chapitre 2. Analyse et spécification des besoins
26
Chapitre 2. Analyse et spécification des besoins
27
Chapitre 2. Analyse et spécification des besoins
Une description détaillée du déroulement de cette opération est répertoriée dans le tableau
suivant :
28
Chapitre 2. Analyse et spécification des besoins
Postcondition(s) :
- Un message de réussite de chargement des données du fichier dans la
base de données s’affiche et la liste des rejets sera affiché dans le
tableau.
Exception - Un message d’erreur s’affiche dans le cas où l’utilisateur a saisi des
paramètres d’authentifications incorrectes. Un message s’affiche « Mot
de passe ou login incorrecte ».
- Un message d’erreur s’affiche dans le cas où l’utilisateur a choisi un
fichier sa taille dépasse 1 Mo « Taille du fichier supérieur à 1 Mo ».
29
Chapitre 2. Analyse et spécification des besoins
- S’authentifier.
- Charger les rejets enregistrés dans la base de données.
Scénario :
- L’utilisateur s’authentifie.
- Il affiche l’onglet « Rejets ».
- Il clique sur le bouton « Supprimer tous les rejets ».
Postcondition(s) :
- Un message de réussite de suppression des données s’affiche et la liste
des rejets sera vide.
Exception - Un message d’erreur s’affiche dans le cas où l’utilisateur a saisi des
paramètres d’authentifications incorrectes. Un message s’affiche « Mot
de passe ou login incorrecte ».
Conclusion
30
Chapitre 3
CONCEPTION ET CHOIX
TECHNOLOGIQUES
Plan
1 Conception Détaillée ................................................................................................. 33
2 Conception architecturale .......................................................................................... 42
3 Choix technologiques ................................................................................................ 45
Chapitre 3. Conception et choix technologiques
Introduction
La conception est une étape décisive dans le cycle de développement de tout logiciel.
Son objectif est de définir l’architecture du système qui répond aux besoins et aux exigences
formulés.
Pour garantir ces objectifs, des diagrammes de classes et de séquence seront utilisés afin
de mieux expliquer les besoins déjà identifiés.
Il est temps d’entrer un peu dans les détails. Cette partie vise à représenter une
modélisation statique et dynamique de notre application.
Ce diagramme sera souvent utilisé pour présenter le design pattern, car il montre bien la
structure figée de la solution logicielle. Le diagramme de classes est le diagramme le plus
répandu dans les spécifications d’UML et il constitue un élément très important dans la
modélisation puisqu’il permet d’identifier les composants du système final et permet de
structurer le travail de développement d’une manière efficace. Après l’analyse de l’existant,
nous sommes parvenus à déterminer six classes particulières : Administrateur, Technicien,
Utilisateur, Roles, Rejet, Rapport. Nous présentons Ci-après le diagramme de classes :
32
Chapitre 3. Conception et choix technologiques
33
Chapitre 3. Conception et choix technologiques
Le diagramme précédent représente les classes que nous avons jugé importantes :
Classe « Utilisateur » : Contient toutes les informations et les méthodes nécessaires pour
la gestion des utilisateurs.
Classe « Administrateur » : est une classe fille de la classe « Utilisateur », pour cette
classe nous avons une méthode, qui est l’ajout d’un nouvel administrateur, en plus elle
va hériter tous les attributs et les méthodes de la classe mère.
Classe « Technicien » : elle est aussi bien une classe fille de la classe « Utilisateur »,
elle a de même une méthode pour l’ajout d’un nouvel technicien plus les méthodes de
la classe mère et les attributs de cette dernière.
Classe « Roles » : c’est une qui va associer à chaque utilisateur un rôle.
Classe « Rejet » : cette classe contient tous les attributs d’un rejet et les méthodes
nécessaires pour manipuler les rejets.
Classe « Rapport » : c’est une classe a comme rôle le contrôle de la phase de
« reporting » de notre application par les utilisateurs par ses attributs et ses méthodes.
La modélisation statique permet de définir les attributs et les méthodes qui seront
manipulés au cours du développement de notre outil. Toutefois, elle ne peut pas décrire les
étapes du traitement, ni la logique suivie par chaque action. Dans cet objectif, nous allons
présenter l’aspect dynamique de notre application à travers la description de quelques scénarios.
Nous allons ici nous attarder sur les cas d’utilisation suivants :
S’authentifier
Afficher les statistiques
Gérer les rejets
Injecter les rejets
Générer des rapports
Gérer les utilisateurs
Gérer un profil
34
Chapitre 3. Conception et choix technologiques
Le cas d’utilisation « S’authentifier » est le cas clé de tous les autres cas car c’est le
point d’entrée à notre application. Pour cela nous avons commencé par décrire le scénario de
ce cas d’utilisation avec le diagramme de séquence suivant :
35
Chapitre 3. Conception et choix technologiques
Les rejets enregistrés dans la base de données dans notre application « Rejets Reporting
& Statistics » sont des informations primordiales pour la résolution du problème de rejet de
communication entre les différents SI de l’entreprise. Par conséquent, il est important d’assurer
une bonne gestion de ces rejets. Il s’agit en quelques sortes d’assurer un meilleur affichage au
superviseur et lui donner la main de supprimer le rejet qu’il a été résolu. Pour aboutir à ce
résultat, un enchainement d’actions et de traitements doit être effectué.
Nous présentons ci-après le premier diagramme de séquence « Afficher les rejets » et le
deuxième « Supprimer un rejet ».
Parmi les fonctionnalités de notre application est l’injection des données, c’est une
fonctionnalité qui ne peut le faire qu’un administrateur du système.
La figure suivante c’est la description du scénario « Injecter les données » par le diagramme de
séquence.
37
Chapitre 3. Conception et choix technologiques
La génération des rapports est une fonctionnalité de notre application accessible à tous
les utilisateurs. La figure suivante illustre une description détaillée de ce scénario.
Les utilisateurs se sont les acteurs principaux de notre application, nous avons deux
types d’utilisateurs « Administrateur » et « Utilisateur », seule l’administrateur peut gérer ces
utilisateurs. La figure suivante nous décrire le scénario « Afficher les utilisateurs ».
39
Chapitre 3. Conception et choix technologiques
40
Chapitre 3. Conception et choix technologiques
L’architecture d’une application est une perspective qui dépend du point de vue de son
développeur, en fonction des éléments qu’il recherche à mettre en évidence. La conception
donne une vue globale sur les principaux intervenants de l’application ainsi que la manière dont
ils sont liés. Nous détaillerons à la suite l’architecture adoptée pour notre application.
Un diagramme de déploiement est une vue statique qui sert à représenter l’utilisation de
l’infrastructure physique par le système et la manière dont les composants du système sont
répartis ainsi que les relations entre eux. Pour bien mettre en place notre outil de reporting et
statistics des rejets, nous avons adopté l’architecture représentée dans la figure suivante :
41
Chapitre 3. Conception et choix technologiques
Pour la réalisation de notre application « Rejets Reporting & Statistics » nous avons
choisi de suivre le modèle MVC (Model View Controller) vu qu’il répond le plus à nos besoins.
Ce modèle est un Patron de conception, son principe est de séparer la présentation, les
traitements et les données pour une meilleure cohérence de l’application et une plus grande
facilité de maintenance. La figure suivante montre l’architecture MVC :
42
Chapitre 3. Conception et choix technologiques
Modèle : Il représente les données et les règles métiers. C’est dans ce composant que
s’effectuent les traitements liés au cœur du métier. Les données peuvent être liées à une
base de données, des services web, etc.
Vue : correspond à l’IHM. Elle présente les données et interagit avec l’utilisateur.
Contrôleur : se charge d’intercepter les requêtes de l’utilisateur, d’appeler le modèle
puis de les rediriger vers la vue adéquate. Il ne doit faire aucun traitement. Il ne fait que
de l’interception et de la redirection.
L’approche MVC apporte de réels avantages. En effet, elle permet de transformer une
application en un dossier élaboré maintenable, modulable et rapide. Elaborer les tâches de
l’application en séparant les modèles, les vues et les contrôleurs, ce qui allège notre application.
De nouvelles fonctionnalités sont ajoutées facilement, et les améliorations des anciennes
fonctionnalités se font d’une manière simple et facile. La conception modulable et séparée
permet aussi aux développeurs et designers de travailler simultanément. Les changements
touchent seulement une partie de l’application sans affecter les autres.
Nous avons appliqué le modèle MVC dans notre projet au niveau du « front-end » avec
Bootstrap qui est un framework CSS puisqu’il embarque également des composants HTML et
JavaScript. Ce framework peut communiquer avec le « back-end » en utilisant les points
d’extrémité RESTful implémentés avec le framework Spring MVC.
43
Chapitre 3. Conception et choix technologiques
Dans le coté serveur nous avons développé une application « Spring boot », ce «
framework » est conçu pour simplifier le démarrage et le développement de nouvelles
applications Spring. L’objectif de Spring Boot n’est pas d’apporter de nouvelles solutions pour
les nombreux problèmes qui ont déjà été résolus, mais plus d’influencer la plate-forme en
favorisant une expérience de développement qui simplifie l’utilisation de technologies déjà
existantes. Ceci fait de Spring Boot parmi les choix idéaux pour développer avec l’écosystème
Spring, mais aussi pour les nouveaux développeurs en leur permettant de maîtriser les
technologies de Spring de manière simplifiée. Spring Boot propose un ensemble de "starter"
modules, qui définissent des collections de dépendances qui peuvent être ajoutées au système
de build afin de résoudre les librairies spécifiques nécessaires pour le framework et sa plate-
forme [6].
Les modules utilisés dans notre application Spring Boot sont :
44
Chapitre 3. Conception et choix technologiques
Spring data jpa : est l’un des framework de Spring reposant sur Spring-Data. Spring-
Data-JPA vise à améliorer la mise en œuvre de la couche d’accès aux données en
réduisant considérablement l’effort d’écriture du code d’implémentation en particulier
pour les méthodes CRUD et de recherche. La notion centrale dans Spring-Data-JPA est
la notion "Repository". Le repository est une interface à écrire par le développeur. Il
déclare, dans cette interface, les méthodes utiles d’accès aux données et Spring-Data-
JPA fournit les implémentations nécessaires [6].
45
Chapitre 3. Conception et choix technologiques
Highcharts : Highcharts est une bibliothèque JavaScript qui vous permet de créer des
graphiques interactifs de nature dynamique ou statique. Cette librairie possède des
caractéristiques qui font d’elle un outil indispensable pour la création de graphiques.
Highcharts est simple d’utilisation, compatible tous navigateurs et responsive. C’est un
outil modulable et interactif proposant différents types de graphiques basés sur une
structure en HTML5 [10].
Pour la liaison entre la partie cliente et la partie serveur nous avons utilisé deux
framework :
Spring Data Rest : Il s’appuie sur les référentiels Spring Data, analyse le modèle du
domaine et expose les entités automatiquement en tant que ressources REST via HTTP.
Spring WebSocket : Spring comprend ce module avec un support WebSocket complet
qui fournit une connexion bidirectionnelle, full-duplex, persistante entre un navigateur
Web et un serveur. Une fois qu’une connexion WebSocket est établie, la connexion reste
ouverte jusqu’à ce que le client ou le serveur décide de fermer cette connexion [6].
Conclusion
46
Chapitre 4
REALISATION
Plan
1 Environnement de travail........................................................................................... 49
2 Phase d’implémentation ............................................................................................ 52
Chapitre 4. Réalisation
Introduction
Nous présentons dans cette section l’environnement matériel et logiciels utilisées pour
le développement de notre application « Rejets Reporting & Statistics ».
Ce projet a été réalisé sur notre ordinateur portable personnel. Cet environnement est
constitué principalement de :
Power AMC : est l’un des premiers outils qui permet d’élaborer des modèles de
données que cela soit MERISE, UML ou autre, de manière graphique et de les implémenter
quel que soit le SGBD et ce de manière automatique. De même, l’outil permet de modéliser les
processus métiers. Le lien entre la modélisation des données et la modélisation des processus
peut être effectué, offrant ainsi aux entreprises qui possèdent POWER AMC / AMC Designor
l'opportunité de mettre un œuvre un référentiel unique des développements et des processus que
ceux-ci soient informatisés ou non.
48
Chapitre 4. Réalisation
Aussi Power AMC est une force dans tout nouveau projet d'entreprise car il permet
d'identifier avec précision quels processus, quelles personnes et/ou quelles données seront
impactés. L'estimation et maitrise des coûts en est grandie [11].
Fonctionnalités principales de Power AMC :
Modélisation des processus métiers.
Modélisation des données en MERISE MCD, MLD, MPD ou en UML.
49
Chapitre 4. Réalisation
50
Chapitre 4. Réalisation
SGBD. Les rejets de communication sont enregistrés dans une table d’une BD SQL Server c’est
pour cela nous avons choisi d’utiliser le même SGBD.
SQL Server : Microsoft SQL Server (alias MSSQL) est un système de gestion de base
de données développé par la société Microsoft.
Il permet donc par son interface de créer et lister ses tables, en dessiner les diagrammes, y
exécuter du code SQL appelé Transact-SQL, en visualisant son plan d'exécution, et de
sauvegarder et lancer des procédures stockées et triggers.
Ceci en fait une alternative compétitive avec MySQL et Oracle [13].
51
Chapitre 4. Réalisation
4.2.1 Authentification
« Accueil » : C’est l’onglet où s’affiche les statistiques comme nous avons indiqué
précédemment.
« Rejets » : Dans cet onglet nous gérons les rejets.
« Générer Rapport » : C’est l’onglet où nous générons des rapports selon des critères
bien définis
« Utilisateurs » : Dans cette interface nous gérons les utilisateurs de l’application.
« Paramètres » : Cet onglet nous permettrons de modifier les paramètres du profil d’un
utilisateur.
Et l’option
Après l’authentification nous trouvons dans la première interface qui est l’onglet
« Accueil » où s’affiche les statistiques. Ces statistiques sont générés automatiquement selon
52
Chapitre 4. Réalisation
des critères bien définis dès le début et qui résument la table de rejets pour aider le technicien à
prendre une décision comment résoudre les rejets de communication.
La figure suivante nous montre la première interface.
Le deuxième onglet est l’onglet « Rejets » où nous pouvons gérer les rejets par
l’injection des rejets dans la base de données à partir d’un fichier CSV ou les supprimer tous de
la base de données en un simple clic, ces deux fonctionnalités sont destinées seulement à un
administrateur de l’application, les afficher dans un tableau et supprimer les rejets un à un, ces
deux dernières fonctionnalités sont accessibles à tous les utilisateurs.
53
Chapitre 4. Réalisation
Dans les deux figures suivantes nous allons remarquer la différence de même onglet dans les
deux comptes Admin et User.
Maintenant nous allons montrer comment injecter les rejets à partir d’un fichier CSV par les
figures suivantes. La première figure est de choisir le fichier.
54
Chapitre 4. Réalisation
La deuxième figure nous montre l’onglet après la sélection d’un fichier CSV, son nom s’affiche
dans l’onglet.
La troisième figure nous montre le message qui sera affiché après l’appui sur le bouton
« Ajouter les données », cette action va récupérer les données du fichier CSV et les enregistrer
dans la base de données.
55
Chapitre 4. Réalisation
Cette dernière figure nous montre le message affiché quand nous supprimons un seul rejet
La génération des rapports est parmi les fonctionnalités nécessaires de notre application.
Nous trouvons dans l’onglet « Générer rapport » quatre zones. Ces zones sont associées pour la
génération des rapports selon des critères bien choisis dès le début et chaque rapport peut être
généré sous deux formes différents PDF et HTML.
56
Chapitre 4. Réalisation
Dans cette interface nous pouvons gérer les utilisateurs, de même pour cet onglet nous
avons deux vues ; une vue qui contient toutes les fonctionnalités de gestion des utilisateurs qui
est accessible seulement pour un Admin, qui sont l’affichage de la liste des utilisateurs, l’ajout
d’un nouvel utilisateur et la consultation d’un profil, et une autre vue qui contient seulement la
consultation d’un profil.
La figure suivante nous présente la première qui est accessible seulement à un Admin
57
Chapitre 4. Réalisation
Lors de saisir le CIN d’un utilisateur la recherche nous redirige vers une nouvelle interface
qui contient toutes les informations correspondantes à un utilisateur. La figure suivante est
l’interface qui contient les informations.
En cas de saisir un numéro CIN qui ne se trouve pas dans un message sera affiché comme
nous montre la figure suivante.
Lors de l’ajout d’un nouvel utilisateur par le formulaire qui se trouve à droite de l’utilisateur
dans l’interface associée à un Admin,
Un message d’ajout sera affiché si l’opération est réussie comme nous montre la figure
suivante ou un message d’erreur si l’opération est échouée comme nous montre la figure ci-
après.
58
Chapitre 4. Réalisation
Figure 43. Un message d'erreur si l'un ou tous les champs sont vide
59
Chapitre 4. Réalisation
L’utilisateur a la possibilité de modifier quelques paramètres de son profil com son nom,
son prénom, son adresse mail et son mot de passe. Pour accéder à cette opération de
modification il faut aller à l’onglet « Paramètres ». L’interface qui nous montre ça existe dans
l’Annexe 1.
Conclusion
Dans ce chapitre, nous avons présenté l’environnement du travail ainsi que le choix
technique adopté lors de l’implémentation. Et nous avons également exposé le fonctionnement
de notre système avec des imprimes écrans afin de donner une image réelle sur le travail réalisé.
60
CONCLUSION GENERALE
Annexes
Malgré les contraintes techniques et temporelles rencontrées, nous avons pu délivrer une
preuve de conception fonctionnelle qui répond bien aux objectifs définis au début de ce stage.
En effet ce stage a commencé par spécifier les besoins attendus de cette application.
Ensuite, nous avons consacré une bonne période de temps à concevoir l’architecture optimale
pour notre application. Puis, nous avons réussi à réaliser le cœur de ce projet qui réside dans
l’action d’afficher des statistiques et de générer des rapports sous différents formes qui résument
les rejets de communication. Au final, nous avons réussi de transformer les besoins spécifiés
dès le début du stage en une application web.
Ce stage nous a été très bénéfique non seulement sur le côté technique mais aussi sur le
côté humain et professionnel. Il nous a ainsi donné l’occasion de concrétiser les notions
théoriques acquises: d’approfondir nos compétences et découvrir le milieu professionnel avec
tout ce qu’il implique comme responsabilité et diligence
62