40 2 3MB
UNIVERSITÉ JOSEPH KI-ZERBO (UJKZ) ****** INSTITUT BURKINABÈ DES ARTS ET MÉTIERS (IBAM)
RAPPORT DE STAGE POUR L’OBTENTION DE LA LICENCE PROFESSIONNELLE OPTION : Méthodes Informatiques Appliquées à la Gestion (MIAGE) Période de stage : 01 juillet 2021 au 30 septembre 2021
THEME :
MISE EN PLACE D’UN SYSTÈME DE COMMUNICATION BASE SUR LES SMS POUR LES PROFESSIONNELS ET LES PARTICULIERS. Présenté par OUEDRAOGO David Pascal Pawindtaoré Maitre de stage :
Directeur de rapport :
M. DARGA Lael
Dr TRAORE Yaya
Ingénieur de conception IoT
Enseignant à l’IBAM
Année Académique 2020-2021
RAPPORT DE STAGE
SOMMAIRE SOMMAIRE .............................................................................................................................. i DÉDICACE............................................................................................................................... ii REMERCIEMENTS ............................................................................................................... iii LISTE DES SIGLES ET ABREVIATIONS ......................................................................... iv LISTE DES FIGURES GRAPHIQUES ................................................................................ vi LISTE DES TABLEAUX ...................................................................................................... vii INTRODUCTION GÉNÉRALE ............................................................................................ 1 CHAPITRE I : PRÉSENTATION DES STRUCTURES DE FORMATION ET D’ACCUEIL ............................................................................................................................. 2 I. PRÉSENTATION DE LA STRUCTURE DE FORMATION (IBAM) .......................... 2 II. PRÉSENTATION DE LA STRUCTURE D’ACCUEIL(OKABI) ............................. 5 CHAPITRE II : ANALYSE ET CONCEPTION .................................................................. 6 I. ÉTUDE PREALABLE .................................................................................................... 6 II. EXPRESSIONS DES BESOINS ............................................................................... 14 III. CONCEPTION GLOBALE ...................................................................................... 26 IV. RÉALISATION ......................................................................................................... 35 CHAPITRE III : BILAN DU STAGE .................................................................................. 46 I. DÉROULEMENT DU STAGE ET ACTIVITÉS MÉNÉES ......................................... 46 II. OBSERVATIONS ET SUGGESTIONS ................................................................... 47 CONCLUSION GÉNÉRALE ............................................................................................... 48 BIBLIOGRAPHIE ET WEBOGRAPHIE..............................................................................I TABLE DE MATIERES ...................................................................................................... III ANNEXES ................................................................................................................................ V
OUEDRAOGO DAVID PASCAL PAWINDTAORE
i
RAPPORT DE STAGE
DÉDICACE
À Toute ma famille
OUEDRAOGO DAVID PASCAL PAWINDTAORE
ii
RAPPORT DE STAGE
REMERCIEMENTS Nous ne saurons continuer notre travail sans d’abord présenter nos sincères remerciements à tous ceux qui ont contribué de près ou de loin à l’obtention ainsi qu’au bon déroulement de ce stage. Nos remerciements vont aussi à tous ceux qui ont contribué d’une manière ou d’une autre à l’élaboration de ce document. Nous adressons nos remerciements particulièrement à : •
M. Lael DARGA, notre maître de stage, qui n’a ménagé aucun effort, à nous soutenir malgré ses multiples occupations, à nous écouter et à nous orienter vers la bonne direction en apportant des réponses adéquates à toutes nos questions.
•
Dr Yaya TRAORE, le coordonnateur de la filière MIAGE, notre professeur de suivi, qui a joué un rôle primordial dans l’obtention de ce stage et qui nous a témoigné son entière disponibilité à nous assister tout au long de la rédaction de ce document.
•
M. Ilias OUEDRAOGO, Co-fondateur et Ingénieur de conception informatique à OKABI, pour sa collaboration et son apport indispensable à la réussite de ce travail.
•
M. Oumarou KABORE, Co-fondateur gérant de OKABI Technology Services, pour son implication tout au long du travail malgré un calendrier très chargé.
•
Dr Blaise KONE, Directeur de l’IBAM, et tout le corps professoral pour les conseils et la formation de qualité que nous avons reçus au cours de ces trois (3) années.
•
Tous nos proches et amis qui nous ont toujours soutenu et encouragé.
OUEDRAOGO DAVID PASCAL PAWINDTAORE
iii
RAPPORT DE STAGE
LISTE DES SIGLES ET ABREVIATIONS SIGLE/ABREVIATION
SIGNIFICATION Ingénierie Informatique et Organisation et Protection
2IOPSIE
des Systèmes d’Information dans l’Entreprise Ingénierie
2ITIC
Informatique
et
Technologies
l’Information et de la Communication
2TUP
2 Tracks Unified Process
ABF
Assurance Banque Finance
ADB
Assistance de Direction Bilingue
AIB
Antenne informatique de Bobo Dioulasso
API
Application Programming Interface
ARCEP
Autorité de Régulation des Communications Électroniques et des Postes
ATOS
Administratifs, Techniques, Ouvriers, de Service
COCOMO
Constructive Cost Model Chef des Services Administratif,
CSAFC
Financier et
Comptable
CSS
Cascading Style Sheet
CU
Cas d’utilisation
DA
Directeur Adjoint
DESCOGEF
Diplôme d’Études de Comptabilité et Gestion Financière
DESS
Diplôme d’Études Supérieures Spécialisées
DG
Directeur Général
HM
Homme Mois
HTML
HyperText Markup Language
HTTP
HyperText Transfer Protocol
OUEDRAOGO DAVID PASCAL PAWINDTAORE
de
iv
RAPPORT DE STAGE IBAM IUFIC
Institut Burkinabè des Arts et Métiers Institut Universitaire de Formation Initiale et Continue
Java EE
Java Entreprise Environnement
JPA
Java Persistence API
JS
JavaScript
JSON
JavaScript Object Notation
JWT
Json Web Token
LMD
Licence Master Doctorat
LPSAA
Licence Professionnelle en Assistance Administrative
MAGE
Master en Administration de Gestion des Entreprises
MBF
Master en Banque Finance
MCCA
Master en Comptabilité-Contrôle-Audit
MIAGE
Méthodes Informatiques Appliquées à la Gestion
SIM
Subscriber Identity/Identification Module
SGBD
Système de Gestion de Base de Données
SMS
Short Message Service
SQL
Structured Query Language
TIC NTIC
Technologies de l’Information et de la Communication Nouvelles Technologies de l’Information et de la Communication
UJKZ
Université Joseph KI-ZERBO
UML
Unified Modeling Language
WWW
World Wide Web
OUEDRAOGO DAVID PASCAL PAWINDTAORE
v
RAPPORT DE STAGE
LISTE DES FIGURES GRAPHIQUES
Figure 1: Schéma présentant le processus 2TUP ..................................................................... 11 Figure 2: Planning de réalisation du projet .............................................................................. 14 Figure 3: Diagramme de cas d’utilisation ................................................................................ 16 Figure 4 : Diagramme de séquence vue de l’extérieur pour le CU « Authentification » ......... 21 Figure 5: Diagramme de séquence vue de l’extérieur pour le CU « Ajouter un contact » ...... 22 Figure 6 : Diagramme de séquence vue de l’extérieur pour le CU « Envoyer un message » .. 23 Figure 7 : Schéma présentant l’architecture 2 tiers .................................................................. 24 Figure 8 : Schéma présentant l’architecture 3 tiers .................................................................. 25 Figure 9: Diagramme de classes............................................................................................... 31 Figure 10: Diagramme d’activité du CU « Envoyer un message » .......................................... 32 Figure 11 : Diagramme de déploiement ................................................................................... 34 Figure 12: Ecran d’inscription.................................................................................................. 44 Figure 13 : Ecran de connexion................................................................................................ 44 Figure 14 : Ecran Ajout d’un contact ....................................................................................... 45 Figure 15: Ecran d’envoi de message ...................................................................................... 45 Figure 16: Illustration du Token JWT ...................................................................................... VI
OUEDRAOGO DAVID PASCAL PAWINDTAORE
vi
RAPPORT DE STAGE LISTE DES TABLEAUX Tableau 1 :Comparaison des méthodologies de développement ............................................... 9 Tableau 2: Liste des cas d’utilisation ....................................................................................... 16 Tableau 3: Description du CU « Authentification » ................................................................ 17 Tableau 4: Description du CU « Ajouter un Contact » ............................................................ 18 Tableau 5: : Description du CU « Envoyer un message non programmé » ............................. 19 Tableau 6: Description du CU « Envoyer message programmé » ........................................... 20 Tableau 7: Description de la classe « Entreprise »................................................................... 27 Tableau 8: Description de la classe « Utilisateur » .................................................................. 27 Tableau 9: Description de la classe « Destinataire » ................................................................ 28 Tableau 10: Description de la classe « ListeDiffusion » .......................................................... 28 Tableau 11: Description de la classe « ListeDiffusion_Destinataire» ..................................... 29 Tableau 12: Description de la classe « Message » ................................................................... 29 Tableau 13: Description de la classe « Forfait » ...................................................................... 30 Tableau 14: Description de la classe « Promotion » ................................................................ 30 Tableau 15: Description de la classe « Paiement » .................................................................. 30 Tableau 16: Description de la classe « SMS » ......................................................................... 33 Tableau 17: Comparatif des différents SGBD ......................................................................... 38 Tableau 18: Comparatif des différents serveurs d’applications ............................................... 39 Tableau 19: Coût total du projet ............................................................................................... 43 Tableau 20: Formule de calcul COCOMO ........................................................................... VIII
OUEDRAOGO DAVID PASCAL PAWINDTAORE
vii
RAPPORT DE STAGE
INTRODUCTION GÉNÉRALE
U
ne communication efficace doit être effectuée au bon moment et adressée au public cible adéquat. Dans le contexte du Burkina Faso, on utilise différents canaux de
communication tel que : Facebook, WhatsApp à travers les statuts ou le bouche à oreille. Cette situation,
quoi qu’efficace pour
les particuliers, se
trouve
très
limitée
pour
les
entreprises. D’après le rapport du troisième trimestre de l’année 2020 sur les données du marché national de la téléphonie mobile fourni par l’Autorité de Régulation des Communications Électroniques et des Postes (ARCEP), le nombre de cartes SIM actives est estimé à 22 117 218 pour les trois réseaux de téléphonie mobile. Alors que le SMS (acronyme anglais Short Message Service) demeure un canal très utilisé dans les communications quotidiennes, son rôle dans l’expérience client est plus important que jamais. Fort de ce constat, la structure « OKABI Technology Services » s’est donné comme objectif de se positionner dans ce domaine afin de proposer un système de communication basé sur les SMS pour les professionnels et les particuliers. C’est dans ce contexte que nous avons été accueillis au sein de ladite entreprise pour un stage de trois (3) mois afin de mettre en place une plateforme répondant à ce besoin. Cette plateforme web devra permettre aux professionnels et aux particuliers d’envoyer des messages personnalisés à un ou plusieurs contacts. Pour mener à bien cette étude, notre démarche s’articulera autour de trois axes principaux à savoir : v la recherche documentaire ; v la rédaction du rapport ; v la réalisation du système. Le présent document détaille toutes les étapes liées au processus de réalisation de ce projet. Il est reparti sur trois (03) grands chapitres notamment : v La présentation des structures de formation et d’accueil ; v La réalisation d’une plateforme web d’envoi de SMS ; v Le bilan de notre stage à OKABI Technology Services. OUEDRAOGO DAVID PASCAL PAWINDTAORE
1
RAPPORT DE STAGE
CHAPITRE I : PRÉSENTATION DES STRUCTURES DE FORMATION ET D’ACCUEIL
D
ans ce chapitre, nous présenterons successivement notre structure de formation qu’est l’Institut Burkinabè̀ des Arts et Métiers (IBAM) et OKABI Technology Services, notre
structure d’accueil, l’objectif étant de montrer le cadre dans lequel se déroule le projet.
I.
PRÉSENTATION DE LA STRUCTURE DE FORMATION (IBAM)
L’Institut Burkinabè̀ des Arts et Métiers (IBAM) est un établissement d’enseignement professionnel plein de ressources et de formations qualifiantes. Il a été́ créé en janvier 2000 à la faveur de la refondation de l’Université́ de Ouagadougou rebaptisée Université́ Joseph KIZERBO. 1. Historique Sis à Somgandé, l’Institut Burkinabè des Arts et Métiers (IBAM) est un établissement d’enseignement professionnel. Il a été créé en janvier 2000 à la faveur de la refondation de l’Université de Ouagadougou rebaptisée l’Université Ouaga I Pr Joseph KI-ZERBO, le 26 décembre 2015, puis plus simplement « l’Université Joseph KI-ZERBO » depuis le 12 avril 2019. L’IBAM est la matérialisation, la concrétisation dans les faits de l’engagement de l’Université Joseph KI-ZERBO (UJKZ) dans la professionnalisation des filières. Cette nouvelle vision a pour but d’accroître son efficacité externe. 2. Objectif L’objectif principal de l’IBAM est de répondre aux besoins du marché de l’emploi par la mise à disposition d’un potentiel humain de cadres moyens et supérieurs dans les divers secteurs d’activité. Cette nouvelle orientation se justifie par l’incapacité de l’État d’embaucher tous ceux qui sortent de l’université.
OUEDRAOGO DAVID PASCAL PAWINDTAORE
2
RAPPORT DE STAGE
3. Organisation L’IBAM est organisée en une structure hiérarchico-fonctionnelle. Nous avons : •
Le conseil de gestion qui est l’organe suprême regroupant le directeur, le directeur adjoint, les coordonnateurs, les enseignants permanents, le CSAFC, la secrétaire principale et le représentant du personnel ATOS ;
•
Le conseil scientifique qui concerne le directeur, le directeur adjoint, les coordonnateurs et les enseignants de rang A de l’Institut ;
•
Le cabinet du directeur auquel sont rattachés directement le CSAFC, le directeur adjoint, et la secrétaire principale qui coiffe le personnel ATOS. Au directeur adjoint sont rattachés les coordonnateurs de filières et aux coordonnateurs de filières est rattaché le personnel enseignant de l’Institut.
4. Filières de formation En vue d’atteindre les objectifs cités précédemment, l’IBAM offre des formations dans plusieurs filières. Celles-ci sont réparties en trois (03) groupes selon le diplôme ou la période de formation. v Licences professionnelles (Formation initiale) Les filières de formations initiales en licences professionnelles sont : -
Assistant de Direction/Bilingue (ADB) ;
-
Assurance-Banque-Finance (ABF) ;
-
Comptabilité-Contrôle-Audit (CCA) ;
-
Marketing et Gestion (MG) ;
-
Méthodes Informatiques Appliquées à la Gestion (MIAGE).
v Licences professionnelles (Formation continue ou en soir) L’IBAM offre aussi des formations continues ou en soirs dans les filières suivantes : -
Licence Professionnelle en Assistance Administrative (LPAA) ;
v MASTERS En master, l’IBAM offre cinq (05) filières de formation qui sont : OUEDRAOGO DAVID PASCAL PAWINDTAORE
3
RAPPORT DE STAGE -
Master en Administration et Gestion des Entreprises (MAGE) ;
-
Master en Banque-Finance (MBF) ;
-
Master en Comptabilité-Contrôle-Audit (MCCA) ;
-
Master en Informatique, option Ingénierie des Systèmes d’Informations en Entreprise (ISIE) ;
-
Master en Informatique, option Sécurité Informatique.
v DESCOGEF L’IBAM étant toujours dans la recherche de l’innovation, la formation en Master ne sera pas pour lui la fin du marathon. Il poursuit son devoir de citoyenneté en donnant un ouf de soulagement à toute personne désirant désormais avoir une formation en Expertise Comptable au Burkina Faso avec la formation en Diplôme d’Études de Comptabilité et Gestion Financière (DESCOGEF). Cette formation pour l’expertise comptable en partenariat avec d’autres universités comme le CESAG et l’IUFIC a été ouverte à partir de l’année académique 2020-2021. En termes de perspectives, l’IBAM envisage dans les années à venir l’ouverture en formation continue des filières professionnelles en architecture, en publicité et en statistiques appliquées, licence en Multimédia, en Réseaux et Télécoms ainsi que des Masters en Réseaux et Télécoms. La filière MIAGE a été créée dans l’optique de répondre aux besoins croissants des entreprises en cadres compétents dans le domaine des Technologies de l’Information et de la Communication (TIC). Cette filière accueille en première année les bacheliers des séries C, D et E ayant passé avec succès le test de sélection ou ayant été acceptés en tant qu’auditeurs libres. Les étudiants en fin de cycle en MIAGE doivent mettre en pratique les connaissances acquises en classe en effectuant un stage d’une durée d’au moins trois (03) mois suivi d’une soutenance publique. Ce stage a pour objectif de leur permettre de se familiariser avec le monde professionnel et d’appliquer leurs connaissances théoriques acquises au cours de leur formation. Il constitue la partie pratique de la formation à l’issue de laquelle un rapport est rédigé et soutenu par l’étudiant(e) devant un jury. C’est pour répondre à cette exigence académique que nous avons effectué notre stage pratique à OKABI Technology Services que nous présenterons dans les lignes qui suivent.
OUEDRAOGO DAVID PASCAL PAWINDTAORE
4
RAPPORT DE STAGE
II.
PRÉSENTATION DE LA STRUCTURE D’ACCUEIL(OKABI)
1. Histoire OKABI TECHNOLOGY SERVICES est une entreprise de prestation de services informatiques fondée en 2019 par de jeunes ingénieurs audacieux et rêvant d’inventer l’avenir. Son identité repose sur l’audace et l’esprit entrepreneurial et c’est pour cela qu’elle a choisi comme slogan « oser inventer l’avenir avec vous » : en mobilisant ces valeurs essentielles, elle explore sans cesse de nouveaux moyens de faire levier sur les dernières évolutions technologiques pour préparer l’avenir. Elle a eu l’occasion de travailler au sein de grands groupes européens qui lui ont permis de développer des compétences pointues sur les processus de développement applicatifs ainsi que les normes industrielles dans le monde. Ces compétences larges des métiers de l’informatique lui ont permis d’être l’interlocuteur unique pour accompagner les entreprises dans leurs transformations digitales dans tout le Burkina Faso et en Afrique. Elle dispose d’ingénieurs et de techniciens certifiés qui, chaque jour, ne ménagent aucun effort pour apporter leur expertise aux entreprises qui en ont besoin pour être flexibles et efficaces. OKABI travaille avec des entreprises de toutes tailles (3 à 500 utilisateurs) et accorde beaucoup d’importance aux contacts humains : ses clients le savent, elle est un partenaire à leur écoute sur lequel ils peuvent toujours compter. Elle s’adapte aux contraintes budgétaires et stratégiques de ses clients, ce qui lui permet de construire une entreprise de plus en plus performante avec des bases fortes : l’audace, le respect des engagements et l’innovation continue sont les maîtres mots. 2. Vision OKABI a pour vision d’offrir un cadre idéal pour créer une dynamique collective avec ses collaborateurs, afin qu’ensemble ils puissent innover et changer leur quotidien par la technologie. Et pour cela, il faut que l’ensemble de ses collaborateurs partagent les mêmes valeurs qu’elle. 3. Services OKABI offre des services principalement dans les trois domaines ci-après : v Ingénierie logiciel v Digital & Data v Hébergement cloud OUEDRAOGO DAVID PASCAL PAWINDTAORE
5
RAPPORT DE STAGE
CHAPITRE II : ANALYSE ET CONCEPTION
A
près avoir présenté les structures de formation et d’accueil, nous allons dans ce chapitre, traiter le thème soumis à notre analyse qui est « Mise en place d’un système de
communication basé sur les SMS pour les professionnels et les particuliers ». Pour ce faire nous allons d’abord présenter notre thème, la méthode d’analyse et de conception de notre projet, les acteurs impliqués ainsi que le planning de notre étude. Ensuite, suivra l’expression des besoins. Puis, une étude technique et une conception détaillée du futur système seront présentées. Enfin, nous ferons cas des différents éléments entrant dans la réalisation du projet.
I.
ÉTUDE PREALABLE
Dans cette première partie, nous présenterons différentes facettes du thème de notre travail ainsi que les éléments d’analyse et de conception de notre système. 1. Présentation du Thème La présentation du thème s’articulera autour de deux (02) axes principaux à savoir la problématique et les attentes de la solution proposée. a. Problématique Le domaine du marketing a connu une importante évolution depuis le début des années 80. C’est ainsi que le concept de « marketing relationnel » a progressivement pris de l’ampleur tant dans les domaines industriels, que ceux des services. En effet, le marketing relationnel est cette démarche de fidélisation clientèle qui permet d’assurer la croissance continue d’une entreprise sur la durée tout en l’aidant à traverser sereinement les crises économiques et les problématiques posées par la concurrence. Conscientes de cette réalité, bon nombre d’entreprises se sont engagées à conserver de bonnes relations avec leurs clients et ce, en ne restant pas en marge des nouvelles technologies de l’information et de la communication (NTIC). Dans le contexte du Burkina Faso, on utilise différents canaux de communication tel que : Facebook, WhatsApp à travers les statuts ou le bouche à oreille. Cette situation, quoi qu’efficace pour les particuliers, se trouve très limitée pour les entreprises. Selon l’article du 09 mars 2021 du TIC Magazine faisant état des
OUEDRAOGO DAVID PASCAL PAWINDTAORE
6
RAPPORT DE STAGE statistiques sur de l’utilisation d’Internet et des médias sociaux au Burkina Faso en 2021, le taux de pénétration d’Internet est de 25,7%. Au regard de cette situation, plusieurs professionnels se posent cette question : Comment communiquer avec ses clients ne disposant pas forcement d’un accès à internet et ce à coût réduit ? Pour y parvenir, l’entreprise OKABI Technology Services a décidé de mettre en place un outil de communication basé sur les SMS dénommé SMS4All, sigle dérivé de « SMS for all » c’està-dire « SMS pour tous », qui va permettre aux entreprises de maintenir de bonnes relations avec leurs clients et ce à un prix imbattable. C’est dans ce cadre que nous avons été accueillis dans ladite entreprise pour mener une réflexion sur le thème « Mise en place d'un système de communication basé sur les SMS pour les professionnels et les particuliers ». b. Les attentes Au regard des besoins exprimés, les résultats attendus à l’issue de ce projet consistent à créer une plateforme web qui permet : v La création et l’importation des contacts ; v l’envoi de SMS programmés ou non à un ou plusieurs contacts ; v à terme, l’envoi de questionnaires aux différents contacts (extension future); v la génération de données statistiques issues des réponses aux questionnaires (extension future). 2. Méthodologie Une méthode d'analyse et de conception est un procédé dont l’objectif est de permettre une formalisation des étapes préliminaires du développement d'un système afin de rendre ledit développement plus fidèle aux besoins du client. a. Cycle de développement Le cycle de développement constitue la démarche fondamentale permettant d’obtenir un produit logiciel dans un délai raisonnable tout en minimisant les ressources. Le tableau suivant résume une étude comparative entre les principales méthodologies de développement que nous avons choisi vu la diversité de ces méthodes.
OUEDRAOGO DAVID PASCAL PAWINDTAORE
7
RAPPORT DE STAGE Méthodologies Description Ø
Cascade
RUP (Rational Ø
Process)
Distingue clairement les Ø
déroulées d’une
phases du projet.
Ø
Non itératif. Pas de modèles
manière
pour
séquentielle.
documents.
Le RUP est à la Ø une Ø
Ø
Itératif. Spécifie
le
Assez flou dans sa mise en œuvre.
différents Ø
entre
un outil prêt à
intervenants du projet.
phases en amont
Propose des modèles de
et en aval au
documents
développement.
Ø
Cible
des
projets de plus de
les
dialogue
les
méthodologie et l’emploi. Ø
Points faibles
Les phases sont Ø
fois
Unified
Points forts
pour
des
Ne couvre pas les
projets types.
10
personnes. 2TUP
(Two Ø
Truck Unified
autour
Process) Ø
Ø
Ø
S’articule
de Ø
Ø
Itératif.
Plutôt superficiel
Laisse une large place à
sur
les
phases
l’architecture.
la technologie et à la
situées en amont
Propose
un
gestion des risques.
et en aval du
cycle
de Ø
Définit les profils des
développement.
développement
intervenants,
les Ø
Ne propose pas
en Y.
plannings,
les
de
Cible
des
prototypes.
documents
types.
projets de toutes tailles. XP (eXtreme
Ø
Ensemble
des Ø Ø
bonnes
Programming)
pratiques Ø
de
sa
aux aspects techniques.
œuvre.
Innovant
Cible : Moins
programmation en duo.
10
personnes.
Assez flou dans
Donne une importance
développement. Ø de
Ø
Itératif.
: Ø
mise
en
Ne couvre pas les
phases
en
amont et en aval au développement.
OUEDRAOGO DAVID PASCAL PAWINDTAORE
8
RAPPORT DE STAGE Scrum
Ø
Se base sur des Ø
Donne toute confiance Ø
La
itérations dites
aux développeurs et les
œuvre
sprints
laisser faire leur travail.
développement
Chaque itération a un
n’est
objectif bien précis et
précisée.
de
développement Ø
fournit
une Ø
fonctionnalité testée.
mise
en du pas
Développement rapide et répétitif se traduit par une forte pression sur l’ensemble
des
membres
de
l’équipe
de
développement. Tableau 1 :Comparaison des méthodologies de développement L’étude comparative réalisée sur les processus de développement RUP, XP, 2TUP, Cascade et Scrum résumés dans le tableau 3 nous permet de tirer les conclusions suivantes : -
le processus RUP néglige les contraintes techniques qui sont indispensables dans notre projet, nous avons par conséquent choisi de l’écarter,
-
le processus XP néglige la phase de capture de besoins fonctionnels et techniques et la phase de conception et donne une grande importance à la phase de développement, il est par conséquent écarté,
-
CASCADE est un processus séquentiel et non itératif,
-
Scrum quant à lui subdivise les différentes phases du projet en sprint qui en théorie ne dépasse pas 30 jours,
-
le processus 2TUP permet en particulier de séparer les contraintes fonctionnelles des contraintes techniques érigées sous forme de deux branches permettant de les exploiter parallèlement.
Suite à l’étude et à la comparaison des processus de développement et aux fins de contrôler les risques et de mener à bon terme notre projet, nous avons opté pour le processus 2TUP pour plusieurs raisons : -
d’une part, 2TUP donne une grande importance à la technologie ce qui est important pour notre projet ;
OUEDRAOGO DAVID PASCAL PAWINDTAORE
9
RAPPORT DE STAGE -
d’autre part, 2TUP est un processus en Y qui contient une branche technique, une branche fonctionnelle et une branche réalisation. Les deux branches technique et fonctionnelle peuvent être exploitées en parallèle. De ce fait, si la technologie évolue ou, s’il arrive que lors du déroulement du projet, il y a modification d’un besoin technique, la branche technique peut être traitée puis réintégrée dans le projet facilement. De même si une nouvelle fonctionnalité se présente, seule la branche fonctionnelle va être traitée sans toucher à l’autre branche.
Le processus utilisé pour réaliser ce projet est le 2TUP (2 Track Unified Process) qui est un processus de développement logiciel implémentant le processus unifié. Le 2TUP propose un cycle de développement en « Y » (Figure 1), qui dissocie les aspects techniques des aspects fonctionnels. Il commence par une étude préliminaire qui consiste essentiellement à identifier les acteurs qui vont interagir avec le système à construire, à identifier les messages qu'échangent les acteurs et le système, à produire le cahier des charges et à modéliser le contexte. Le processus s'articule autour de trois (3) phases essentielles : ü Une branche fonctionnelle qui comporte : • La capture des besoins fonctionnels, qui produit un modèle des besoins focalisés sur le métier des utilisateurs. Elle qualifie au plus tôt le risque de produire un système inadapté aux utilisateurs. De son côté, la maîtrise d’œuvre consolide les spécifications et en vérifie la cohérence et l’exhaustivité ; •
L’analyse qui consiste à étudier précisément la spécification fonctionnelle de manière à obtenir une idée de ce que va réaliser le système en termes de métier.
Les résultats de l’analyse ne dépendent d’aucune technologie particulière. ü Une branche technique qui comporte : • La capture des besoins techniques, qui recense toutes les contraintes et les choix dimensionnant la conception du système. Les outils et les matériels sélectionnés ainsi que la prise en compte de contraintes d’intégration avec l’existant conditionnent généralement des prérequis d’architecture technique ; •
La conception générique, qui définit ensuite les composants nécessaires à la construction de l’architecture technique. Cette conception est complètement indépendante des aspects fonctionnels. Elle a pour objectif d’uniformiser et de
OUEDRAOGO DAVID PASCAL PAWINDTAORE
10
RAPPORT DE STAGE réutiliser les mêmes mécanismes pour tout un système. L’architecture technique construit le squelette du système informatique et écarte la plupart des risques de niveau technique. L’importance de sa réussite est telle qu’il est conseillé de réaliser un prototype pour assurer sa validité. ü Une phase de réalisation qui comporte : • La conception préliminaire, qui représente une étape délicate, car elle intègre le modèle d’analyse dans l’architecture technique de manière à tracer la cartographie des composants du système à développer ; •
La conception détaillée, qui étudie ensuite comment réaliser chaque composant ;
•
L’étape de codage, qui produit ces composants et teste au fur et à mesure les unités de code réalisées ;
•
L’étape de recette, qui consiste enfin à valider les fonctions du système développé.
Figure 1: Schéma présentant le processus 2TUP Source : https://images.app.goo.gl/3RovscgRg37mduii9
OUEDRAOGO DAVID PASCAL PAWINDTAORE
11
RAPPORT DE STAGE Le processus 2TUP s’appuie sur UML tout au long du cycle de développement, car les différents diagrammes de ce dernier permettent en plus de leur facilité et de leur clarté, de bien modéliser le système à chaque étape. b. Langage de modélisation Un langage de modélisation est un langage artificiel qui peut être utilisé pour exprimer l’information ou la connaissance des systèmes dans une structure qui est définie par un ensemble cohérent de règles. Pour développer une application, il faut d’abord organiser les idées, les documenter avant de commencer la réalisation tout en définissant les modules et les étapes. On appelle cette démarche « modélisation ». Pour réaliser cette modélisation, nous allons utiliser le langage UML (voir ANNEXE 2 : Le langage UML) pour plusieurs raisons. Nous pouvons citer entre autres qu’il : ü présente l'avantage d'être le standard en matière de modélisation objet universellement reconnu ; ü est un langage visuel, car sa notation graphique permet d’exprimer visuellement des solutions objets facilitant ainsi la comparaison et l'évaluation de celles-ci ; ü est un langage formel et normalisé doté d'un gain de précisions et d'un gage de stabilité ; ü sert à formaliser tous les documents techniques d'un projet et permet d'affiner les détails de l'analyse au fur et à mesure de l'avancée du projet ; ü est capable d'utiliser le même atelier de génie logiciel, depuis l'expression des besoins des utilisateurs jusqu'à la génération de tout ou partie du code ; ü est un support de communication performant, car il cadre l'analyse tout en facilitant la compréhension des représentations abstraites complexes. 3. Groupe de travail Les acteurs constituent l’ensemble des personnes nécessaires pour la réalisation de ce projet. On les classe en trois (03) groupes distincts travaillant en synergie. Il s’agit du groupe de pilotage, du groupe de projet et du groupe des utilisateurs.
OUEDRAOGO DAVID PASCAL PAWINDTAORE
12
RAPPORT DE STAGE a. Groupe de pilotage C’est le groupe dirigeant chargé de veiller au bon déroulement du projet. Il planifie les dates clés du projet, examine les propositions du groupe de projet, et décide des orientations stratégiques. Ce groupe est constitué de : ❖ M. Lael DARGA, notre maitre de stage ❖ M. Oumarou KABORE ❖ M. Ilias OUEDRAOGO
b. Groupe de projet Le groupe de projet est l’ensemble des personnes chargées de réaliser le projet. Il est l’intermédiaire entre le groupe de pilotage et le groupe des utilisateurs. Ce groupe est composé principalement de David Pascal Pawindtaoré OUEDRAOGO, étudiant en troisième (3ème) année en Méthodes Informatiques Appliquées à la Gestion (MIAGE) à l’IBAM. c. Groupe des utilisateurs Ce groupe représente l’ensemble de tous ceux qui vont utiliser le futur système. Il participe à la capture des besoins fonctionnels. Il s’agit de notre public cible, c’est-à-dire de l’ensemble des personnes qui se rendront ou seront susceptibles de se rendre sur notre plateforme. d. Planning de réalisation Pour mener à bien notre étude et la réaliser dans les délais, nous avons subdivisé le projet en tâches. Pour cela, nous avons utilisé le diagramme de Gantt qui est un outil utilisé en ordonnancement et en gestion de projet ; il permet de visualiser (à l’aide d’un graphe) dans le temps les différentes tâches liées à un projet. Le planning prévisionnel est résumé dans le tableau ci-dessous :
OUEDRAOGO DAVID PASCAL PAWINDTAORE
13
RAPPORT DE STAGE Figure 2: Planning de réalisation du projet Après cette phase d’étude préalable du système, nous allons passer à la phase d’expressions des besoins.
II.
EXPRESSIONS DES BESOINS
Cette partie consiste à identifier les différents acteurs qui vont interagir avec le futur système ainsi que les différents messages qu’ils échangeront entre eux.
1. Présentation du processus de fonctionnement de la plateforme web SMS4All. Le système SMS4All devra permettre aux professionnels et aux particuliers d’envoyer des SMS à plusieurs contacts. L’utilisation de notre plateforme nécessite, tout d’abord, la création d’un compte pour s’enregistrer. Ensuite, on procèdera à l’ajout de contacts soit un a un, soit de manière groupée à partir d’un fichier. Des lors, l’utilisateur peut envoyer des messages tant qu’il dispose d’un solde suffisant. Ledit solde sera fonction de l’état du forfait choisi parmi les offres proposées par la plateforme. En option, des listes de diffusion peuvent être créées afin de faciliter l’envoi groupé de messages. L’utilisateur peut également programmer l’envoi automatique des messages suivant un horodatage précis. 1. Spécification fonctionnelle La spécification fonctionnelle est la description des fonctions d’un logiciel en vue de sa réalisation. Dans cette partie, nous décrirons dans les détails les exigences du futur système à travers l’identification des acteurs, des cas d’utilisation et les différents diagrammes. a. Identification des acteurs Un acteur définit un ensemble cohérent de rôles qu’un utilisateur ou une entité externe peut jouer en interagissant avec le système. Dans notre cas il s’agit bien : v du gestionnaire : c’est l’agent chargé de la gestion de la plateforme au niveau de OKABI v du client : c’est toute personne physique ou morale ayant souscrit au service de SMS4All v des destinataires : ce sont les personnes à qui sont destinés les messages envoyés depuis la plateforme SMS4All
OUEDRAOGO DAVID PASCAL PAWINDTAORE
14
RAPPORT DE STAGE b. Identifications des cas d’utilisations Les cas d’utilisations désignent l’ensemble des interactions qui vont permettre à l'acteur d'atteindre son objectif en utilisant le système. Le tableau suivant liste les cas d’utilisation de notre futur système. Numéro Cas d’utilisation CU01
S’authentifier
CU02
Gérer forfaits
CU03
Gérer les promotions
CU04
Choisir un forfait
CU05
Gérer les contacts
CU06
Gérer liste de diffusion
CU07
Envoyer un message non programmé
Description Permet aux utilisateurs de se connecter à l’application Permet d’enregistrer, modifier et supprimer les forfaits Permet d’enregistrer, modifier et supprimer les promotions Permet de choisir un forfait afin de pouvoir envoyer des sms Permet d’enregistrer, modifier et supprimer les contacts Permet d’enregistrer, modifier et supprimer les listes de diffusions
Acteurs Gestionnaire, Client Gestionnaire Gestionnaire Client Client Client
Permet d’envoyer un message instantané à une ou plusieurs
Client
listes de diffusions Permet de prévoir l’envoi d’un
CU08
Envoyer un message programmé
message à une ou plusieurs listes
Client
de diffusions CU09
Consulter historique
CU10
Réponse
OUEDRAOGO DAVID PASCAL PAWINDTAORE
Permet d’afficher la liste des messages envoyés Permet de répondre à un message reçu
Client Destinataire
15
RAPPORT DE STAGE Tableau 2: Liste des cas d’utilisation c. Diagramme de cas d’utilisation Le diagramme de cas d’utilisation est un diagramme UML utilisé pour donner une vision globale du comportement fonctionnel d’un système logiciel. Il permet d’une part de modéliser les besoins des utilisateurs en les clarifiant et en les organisant et d’autre part d’identifier les acteurs et les fonctionnalités du système comme le montre la figure ci-dessous :
Figure 3: Diagramme de cas d’utilisation
OUEDRAOGO DAVID PASCAL PAWINDTAORE
16
RAPPORT DE STAGE d. Description textuelle de certains cas d’utilisation Contrairement au diagramme de cas d’utilisation qui décrit les grandes fonctions du système du point de vue des acteurs, la description textuelle permet d’exposer de façon détaillée le dialogue entre les acteurs et le système. Pour faciliter la lecture de notre rapport nous nous limiterons à la description de trois (4) cas d'utilisation. Les cas d’utilisation qui sont décrits dans cette partie sont essentiellement : authentification, ajouter un contact, envoyer un message non programmé et envoyer un message programmé. v CU01 : Authentification Résumé
Ce cas permet à l’utilisateur de de s’authentifier au système
Acteur(s)
Gestionnaire, Client
Préconditions
Disposer d’une connexion internet et de navigateur internet
Scénario Nominal
1. L’utilisateur demande à se connecter 2. Le système l’affiche un formulaire de connexion 3. L’utilisateur rempli le formulaire et soumet au système 4. Le système vérifie les données saisies [A] 5. Le système affiche la page principale
Scénario Alternatif
[A] : L’identifiant et/ou le mot de passe sont incorrects a. Le système notifie l’utilisateur de l’échec de la connexion b. Le système renvoi le formulaire de connexion et le scénario reprend à partir du point 3 du scénario nominal.
Post conditions
L’utilisateur accède à son tableau de bord Tableau 3: Description du CU « Authentification »
OUEDRAOGO DAVID PASCAL PAWINDTAORE
17
RAPPORT DE STAGE v CU05 : Ajouter un contact Résumé
Ce cas permet d’ajouter un contact
Acteur(s)
Client
Préconditions
L’utilisateur est authentifié
Scénario Nominal
1. L’utilisateur demande à ajouter un contact 2. Le système lui envoi le formulaire 3. Il remplit le formulaire d’ajout 4. Le système vérifie les données[A] 5. Le système notifie que le contact a été enregistré
Scénario Alternatif
[A] : Le numéro de téléphone est invalide ou existe déjà 1. Le système notifie une erreur à l’utilisateur 2. Le système renvoi le formulaire de contact et le scénario reprend à partir du point 3 du scénario nominal.
Post conditions
Le nouveau contact est enregistré dans le système. La page des contacts s’affiche
Tableau 4: Description du CU « Ajouter un Contact »
OUEDRAOGO DAVID PASCAL PAWINDTAORE
18
RAPPORT DE STAGE
v CU07 : Envoyer message non programmé Résumé
Ce cas permet d’envoyer un message à une liste de contacts
Acteur(s)
Client
Préconditions
L’utilisateur est authentifié ; Les contacts et au moins une liste de diffusion sont enregistrées
Scénario Nominal
1. Il choisit l’option « envoyer message » du menu 2. Le système affiche le formulaire de message 3. Il remplit le formulaire 4. Vérifier si le solde est suffisant pour envoyer le message [A] 5. Le message est envoyé aux contacts
Scénario Alternatif
[A] : Le solde est insuffisant 1. Le système envoi une notification lui informant de renouveler son abonnement 2. Le message est mis en attente
Post conditions
La page des messages envoyés s’affiche
Tableau 5: : Description du CU « Envoyer un message non programmé »
OUEDRAOGO DAVID PASCAL PAWINDTAORE
19
RAPPORT DE STAGE
v CU08 : Envoyer message programmé Résumé
Ce cas permet de prévoir l’envoi d’un message à une liste de contacts à une date donnée
Acteur(s)
Client
Préconditions
L’utilisateur est authentifié ; Les contacts et au moins une liste de diffusion sont enregistrées
Scénario Nominal
1. Il choisit l’option « envoyer message » du menu 2. Le système affiche le formulaire de message 3. Il remplit le formulaire 4. Vérifier si le solde est suffisant pour envoyer le message [A] 5. Le message est enregistré
Scénario Alternatif
[A] : Le solde est insuffisant 1. Le système envoi une notification lui informant de renouveler son abonnement avant la date d’envoi
Post conditions
La page des messages programmés s’affiche
Tableau 6: Description du CU « Envoyer message programmé »
e. Diagramme de séquence Les diagrammes de séquences représentent les interactions entre le système et les utilisateurs en montrant sous forme de scénarios la chronologie des envois de messages issus d’un cas d’utilisation donné. Les diagrammes de séquences qui sont décrits dans cette partie sont essentiellement : -
Authentification (figure 4)
-
Ajouter un contact (figure 5) et
-
envoyer un message (figure 6).
OUEDRAOGO DAVID PASCAL PAWINDTAORE
20
RAPPORT DE STAGE
Figure 4 : Diagramme de séquence vue de l’extérieur pour le CU « Authentification »
OUEDRAOGO DAVID PASCAL PAWINDTAORE
21
RAPPORT DE STAGE
Figure 5: Diagramme de séquence vue de l’extérieur pour le CU « Ajouter un contact »
OUEDRAOGO DAVID PASCAL PAWINDTAORE
22
RAPPORT DE STAGE
Figure 6 : Diagramme de séquence vue de l’extérieur pour le CU « Envoyer un message » 3. Spécification technique La spécification technique est la description des choix techniques pris pour satisfaire les spécifications fonctionnelles et les besoins. a. Mise à disposition des conditions de travail OKABI Technology Services a mis à notre disposition un serveur et une connexion internet haut débit pour nos recherches.
OUEDRAOGO DAVID PASCAL PAWINDTAORE
23
RAPPORT DE STAGE b. Architecture de développement Une architecture en informatique désigne un mode de communication à travers un réseau entre plusieurs éléments physiques et/ou logiques. Il en existe plusieurs types. Mais nous en présenterons ici les plus répandues que sont les architectures deux (2) tiers et trois (3) tiers. v Architecture deux (2) tiers Cette architecture, aussi appelée architecture client/serveur de première génération, est constituée de deux niveaux : ü un Client qui gère la présentation et la logique applicative ; ü un Serveur qui stocke les données de façon cohérente et éventuellement une partie de la logique applicative. La communication entre ces deux parties se fait en utilisant le langage SQL. Dans ce type d’architecture, on constate une certaine indépendance du client par rapport au serveur. Dans ce contexte, l’application devra être installée sur tous les postes clients c’est-à-dire sur toutes les machines des différents acteurs du système. Quant à la base de données, elle sera sur un serveur de données centralisé. La figure suivante représente cette architecture.
Figure 7 : Schéma présentant l’architecture 2 tiers Source : https://www.geonov.fr/architecture-client-serveur Ø Avantages L’architecture deux (2) tiers présente les avantages suivants : •
elle permet une exploitation multi-utilisateur de l’application : plusieurs utilisateurs peuvent avoir accès à la même base de données ;
•
elle répartit les charges entre les machines : le client s’occupe de l’interface graphique ainsi que des traitements sur les données tandis que le serveur s’occupe de la recherche des données pour satisfaire aux requêtes des clients;
OUEDRAOGO DAVID PASCAL PAWINDTAORE
24
RAPPORT DE STAGE •
elle offre une bonne sécurité des données : la sécurité des données est assurée au niveau du système de gestion de la base de données.
Ø Inconvénients •
le coût de déploiement est élevé : il faut installer l’application sur tous les postes clients et les configurer ;
•
l’évolution du système est difficile à réaliser: à chaque mise à jour de l’application correspond un redéploiement sur tous les postes clients, ce qui entraîne de nouveaux coûts.
v Architecture trois (3) tiers L’architecture trois (3) tiers, aussi appelée client/serveur de seconde génération, comporte trois (3) niveaux dans l’application qui sont : ü le Client léger : encore appelé « niveau présentation » dont le rôle principal est l’affichage des résultats et la transmission des informations saisies par l’utilisateur final vers le tiers suivant. Dans la pratique, le client léger est tout simplement un navigateur Web qu’on aura configuré à cet effet ; ü le Serveur d’application ou serveur applicatif : c’est la pièce maîtresse de l’architecture. En effet, les traitements et les contrôles d’intégrité des données sont effectués à ce niveau ; ü le Serveur de données ou la base de données : C’est la partie qui s’occupe du stockage et de la recherche des données en réponse aux requêtes du serveur d’application. La figure suivante représente cette architecture.
Figure 8 : Schéma présentant l’architecture 3 tiers Source : https://www.geonov.fr/architecture-client-serveur
OUEDRAOGO DAVID PASCAL PAWINDTAORE
25
RAPPORT DE STAGE Ø Avantages Cette architecture se développe très vite grâce à ses multiples avantages que sont : •
une bonne disponibilité et une évolution facile : les applications trois (3) tiers sont caractérisées par une facilité d’exploitation et une grande flexibilité pour l’évolution ; En effet, les mises à jour sont faites au niveau du serveur d’application, ce qui n’entraîne pas le redéploiement sur les postes clients ;
•
un déploiement aisé : l’application n’est déployée que sur le serveur d’application. Les clients n’ont besoin que d’un navigateur web compatible avec l’application ;
•
une sécurité accrue : ces types d’application possèdent une grande sécurité des données. En effet, l’accès à la base de données est effectué uniquement par le serveur d’application contrairement aux applications deux tiers où tous les utilisateurs sont connectés à la base. Il suffit donc de gérer la sécurité au niveau du serveur d’application.
Ø Inconvénients Cette technologie est nouvelle et nécessite un personnel informatique initié pour sa mise en œuvre. De plus, il est recommandé d’exploiter ce type d’architecture dans un réseau haut débit. Solution retenue : A la suite de l’étude comparative que nous avons menée sur les deux (2) types d’architectures, notre choix se porte sur l’architecture trois (3) tiers. En effet, cette dernière se conforme aux standards d’architectures d’applications suivis par OKABI Technology Services.
III.
CONCEPTION GLOBALE
Dans cette partie, nous mettrons en évidence le dictionnaire de données, le diagramme des classes, le diagramme d’activité du CU « Envoyer Message » ainsi que celui du déploiement. 1. Diagramme des classes Dans cette partie nous mettrons en évidence notre dictionnaire de données, puis notre diagramme de classes.
OUEDRAOGO DAVID PASCAL PAWINDTAORE
26
RAPPORT DE STAGE a. Dictionnaire de données Le dictionnaire de données contient l’ensemble des descriptions des attributs de chaque classe qui est utilisé dans le système. Pour faciliter la lecture, nous allons faire la description classe par classe. v Classe : Entreprise Attribut
Description
Type de donnée
IdCompte
Identifiant de l’entreprise
Entier
NomEntreprise
Nom de l’entreprise
Chaine de caractère
Sigle
Sigle de l’entreprise
Chaine de caractère
Téléphone
Numéro de téléphone de l’entreprise
Chaine de caractère
Email
Adresse mail de l’entreprise
Chaine de caractère
Solde
Solde de l’entreprise
Entier
DateCreation
Date de création de l’entreprise
Date
DateModif
Date de la dernière modification
Date
Statut
État de l’entreprise (Actif ou Inactif)
Chaine de caractère
Tableau 7: Description de la classe « Entreprise » v Classe : Utilisateur Attribut
Description
Type de donnée
IdUtilisateur
Identifiant de l’utilisateur
Entier
Pseudo
Nom d’utilisateur
Chaine de caractère
Password
Mot de passe de l’utilisateur
Chaine de caractère
Nom
Nom de l’utilisateur
Chaine de caractère
Prénom
Prénom(s) de l’utilisateur
Chaine de caractère
FlagSuppr
Champ qui vérifie si le compte est Booléen supprimé ou pas
Statut
État de l’utilisateur (Actif ou Inactif)
Chaine de caractère
DateCreation
Date de création de l’utilisateur
Date
DateModif
Date de la dernière modification
Date
Tableau 8: Description de la classe « Utilisateur »
OUEDRAOGO DAVID PASCAL PAWINDTAORE
27
RAPPORT DE STAGE v Classe : Destinataire Attribut
Description
Type de donnée
IdDestinataire
Identifiant du contact
Entier
Nom
Nom du contact
Chaine de caractère
Prénom
Prénom(s) du contact
Chaine de caractère
Statut
État du contact (Actif ou Inactif)
Chaine de caractère
DateCreation
Date de création du contact
Date
DateModif
Date de la dernière modification
Date
DateSuppr
Date de suppression
Date
FlagSuppr
Champ qui vérifie si le contact est Booléen supprimé ou pas
Téléphone
Numéro de téléphone du contact
Chaine de caractère
Tableau 9: Description de la classe « Destinataire » v Classe : ListeDiffusion Attribut
Description
Type de donnée
IdListe
Identifiant de la liste de diffusion
Entier
Nom
Nom de la liste de diffusion
Chaine de caractère
NbDestinataires
Nombre de destinataires dans la liste
Entier
Statut
État de la liste (Actif ou Inactif)
Chaine de caractère
DateCreation
Date de création de la liste de diffusion
Date
DateModif
Date de la dernière modification
Date
DateSuppr
Date de suppression
Date
FlagSuppr
Champ qui vérifie si la liste est supprimé Booléen ou pas Tableau 10: Description de la classe « ListeDiffusion »
OUEDRAOGO DAVID PASCAL PAWINDTAORE
28
RAPPORT DE STAGE v Classe : ListeDiffusion_Destinataire Attribut
Description
Type de donnée
DateAffectation
Date d’affectation du destinataire à la Date liste de diffusion
Tableau 11: Description de la classe « ListeDiffusion_Destinataire» v Classe : Message Attribut
Description
Type de donnée
IdMessage
Identifiant du message
Entier
Titre
Titre du message
Chaine de caractère
Contenu
Contenu du message
Chaine de caractère
FlagProg
Champ qui vérifie si le message est Booléen programmé ou pas
Statut
État du message (Actif ou Inactif)
Chaine de caractère
DateEnvoi
Date d’envoi effective du message
Date
Heure
Heure d’envoi effective du message
Heure
DateEnvoiPrevu
Date d’envoi prévu du message
Date
HeureEnvoiPrevu
Heure d’envoi prévu du message
Heure
DateCreation
Date de création du message
Date
DateModif
Date de la dernière modification
Date
DateSuppr
Date de suppression
Date
FlagSuppr
Champ qui vérifie si le message est Booléen supprimé ou pas Tableau 12: Description de la classe « Message »
OUEDRAOGO DAVID PASCAL PAWINDTAORE
29
RAPPORT DE STAGE v Classe : Forfait Attribut
Description
Type de donnée
CodeForfait
Code du forfait
Chaine de caractère
Montant
Montant ou cout du forfait
Entier
NbSMS
Quantité de sms pouvant être envoyé
Entier
DateCreation
Date de création du forfait
Date
DateModif
Date de la dernière modification
Date
Statut
État du forfait (Actif ou Inactif)
Chaine de caractère
Tableau 13: Description de la classe « Forfait » v Classe : Promotion Attribut
Description
Type de donnée
CodePromotion
Code de la promotion
Entier
Pourcentage
Taux de réduction
Entier
DateDebut
Date de début de la promotion
Date
HeureDebut
Heure de début de la promotion
Heure
DateFin
Date de fin de la promotion
Date
HeureFin
Heure de fin de la promotion
Heure
DateCreation
Date de création de la promotion
Date
Statut
État de la promotion (Active ou Inactive) Chaine de caractère Tableau 14: Description de la classe « Promotion »
v Classe : Paiement Attribut
Description
Type de donnée
DatePaiement
Date de paiement du forfait
Date
Type
Mode de paiement choisi
Chaine de caractère
Agent
Utilisateur ayant effectué le paiement
Entier
Tableau 15: Description de la classe « Paiement » b. Diagramme de classes Le diagramme de classe exprime la structure statique du système en ce qui concerne les classes et la relation entre ces classes. OUEDRAOGO DAVID PASCAL PAWINDTAORE
30
RAPPORT DE STAGE
Figure 9: Diagramme de classes
OUEDRAOGO DAVID PASCAL PAWINDTAORE
31
RAPPORT DE STAGE
2. Diagramme d’activité Le diagramme d’activité permet de faire une représentation graphique du déroulement d’un cas d’utilisation. Le cas d’utilisation mis en exergue ici est « Envoyer un message » avec une vue sur les flots de données.
Figure 10: Diagramme d’activité du CU « Envoyer un message »
OUEDRAOGO DAVID PASCAL PAWINDTAORE
32
RAPPORT DE STAGE NB : L’objet SMS est une instance d’une classe SMS non persistée en base de données destinée à structurer les informations à envoyer au « Microservice 1SMS » pour l’envoi des SMS. Ainsi le tableau ci-dessous décris son contenu : Attribut
Description
Type de donnée
SenderName
Le nom du client qui envoi le message
Chaine de caractères
SenderAdress
Le numéro de téléphone du client
Chaine de caractères
Adress
La liste contenant les numéros de Tableau
Content
de
chaines
téléphones des destinataires du message
caractères
Le contenu du message
Chaine de caractères
de
Tableau 16: Description de la classe « SMS » 3. Diagramme de déploiement Le diagramme de déploiement est un diagramme UML qui montre la configuration physique des différents éléments qui participent à l’exécution du système, ainsi que les instances de composants qu’ils supportent. Il est constitué de « nœuds » connectés par des liens physiques.
1
En informatique, les microservices sont une technique de développement logiciel — une variante du style architectural de
l'architecture orientée services (SOA) — qui structure une application comme un ensemble de services faiblement couplés. Les microservices indépendants communiquent les uns avec les autres en utilisant des API indépendantes du langage de programmation. OUEDRAOGO DAVID PASCAL PAWINDTAORE
33
RAPPORT DE STAGE
Figure 11 : Diagramme de déploiement Notre diagramme de déploiement comprend quatre (4) nœuds qui représentent le serveur de données, le serveur d’application, le poste client et l’API Gateway ou passerelle API. En effet l’API Gateway est tel un annuaire répertoriant tous les microservices disponibles et il est chargé de retrouver le microservice désiré. Ce diagramme de déploiement laisse entrevoir l’architecture logicielle trois (3) tiers qui est utilisée pour ce système. Après cette partie consacrée à la conception globale du système, nous passons maintenant à la réalisation du système en question.
OUEDRAOGO DAVID PASCAL PAWINDTAORE
34
RAPPORT DE STAGE
IV.
RÉALISATION
Dans le cadre de la réalisation de ce système informatisé, nous avons utilisé plusieurs outils et techniques. Ainsi, nous présentons d’abord les outils de développement utilisés et les politiques de test et de sécurité du système. Ensuite, nous évoquons l’estimation financière de la mise en place de la plateforme. Enfin, nous présentons quelques écrans de celle-ci. 1. Présentation des outils de développement Un outil de développement est un logiciel qui aide un développeur dans le déroulement d’une activité de développement. a. Choix du Système de Gestion de Base de Données Nous distinguons plusieurs SGBD dont les plus connus sont : ü Microsoft Office Access; ü Microsoft SQL Server; ü MySQL ; ü Oracle Database ; ü PostgreSQL. La liste comparative de ces SGBD est dans le tableau suivant :
OUEDRAOGO DAVID PASCAL PAWINDTAORE
35
RAPPORT DE STAGE SGBD
Avantages
Inconvénients
Microsoft
ü Très puissant et très ludique
ü Gourmand en ressources réseau
Office
ü Une grande série d'outils de
ü Non
Access
conversion de données ü Une
forte
intégration
convenable
aux
applications
distantes. de
Microsoft Office/VBA,
ü Mono-plateforme (MS Windows) ü Non implémentation complète de la norme SQL.
ü Une possibilité de développer des applications Runtime Microsoft
ü Administration aisée
ü Une licence très couteuse du produit,
SQL Server
ü Fonction d'audit évolué
ü Mono-plateforme (MS Windows)
ü Optimiseur statistique enrichi à
ü Pas de prise en charge du LDAP
flux tendu
ü Toujours pas de cluster (hormis en actifpassif, en se basant sur le cluster OS)
ü Langage T-SQL très convivial, intégration de CLR
ü Pas certifié SQLJ, pas d'intégration
ü Services Web ü Support XML
Java, orientation C# ü Pas de contraintes d'unicité multi null
ü Ordonnanceur intégré MYSQL
✓ Rapide
ü
données
✓ Plus simple à utiliser ✓ Multiplateforme (Windows,
Non convenable aux grosses bases de
ü
Les fonctionnalités limitées
Unix, Linux, etc.)
ü
Présente
✓ gratuit
ü
Ne permet pas la reprise à chaud
une
sécurité moyenne
✓ Facile à installer ✓ S’intègre facilement dans l’environnement Apache
OUEDRAOGO DAVID PASCAL PAWINDTAORE
36
RAPPORT DE STAGE Oracle
ü Fourniture de technologies de haut niveau et des solutions d’affaires intégrées
ü Prix élevé ü Une administration complexe ✓ Porosité entre les schémas
ü Fiabilité
✓ Une gestion des verrous mortels mal
✓ Intègre la technologie flashback
conçue
ü Récupération
✓ Nombreuses failles de sécurités liées à
efficace
données
des
incorrectement
l'architecture elle-même
supprimées ou perdues grâce à flashback d’Oracle ü Fournit des bases de données fiables et compétentes grâce aux quatre
propriétés (Atomicité, cohérence,
isolation et durabilité) PostgreSQL
ü OpenSource et gratuit ü Fiable
et
ü Pas possible de requêter sur plusieurs
relativement
performant,
connexion
ü Supporte la majorité du standard SQL-92 ü Possède
bases à la fois : chaque base nécessite sa ü Sauvegardes peu évoluées ü Supporte
de
nombreuses
les
bases
de
importance
extensions (Java, Ruby, PL-
ü Pas de services Web
SQL)
ü Pas d'ordonnanceur intégré
ü Très riche fonctionnellement, ü Simple
d'utilisation
moyenne
ü Pas de fonctions d'agrégat OLAP et
ü Pas de requêtes récursives
d'administration
OUEDRAOGO DAVID PASCAL PAWINDTAORE
37
RAPPORT DE STAGE ü Héritage de tables Tableau 17: Comparatif des différents SGBD Solution retenue : À travers l’étude comparative que nous venons de mener au Tableau 16 et du contexte de notre système, nous portons notre choix sur le SGBD PostgreSQL version 13. En effet, PostgreSQL est gratuit et open source ; il est facile à déployer et peut également contenir de très grandes quantités de données. Aussi, il offre une interface web, « pgAdmin » pour l’administration de ses bases de données. b. Languages de programmation Un algorithme est un ensemble d’opérations à mener afin d’atteindre un résultat donné. Afin de formuler ces algorithmes, dans le domaine informatique, nous utilisons des langages de programmation. Nous avons utilisé plusieurs langages pour le développement de notre application. Ce sont : ü Java : Java est un langage de programmation orientée objet. (Pour les classes métiers et les entités) ; ü TypeScript : c’est un langage de programmation libre et open source développé par Microsoft qui a pour but d'améliorer et de sécuriser la production de code JavaScript ; ü HTML 5 (HyperText Markup Language) : est un langage de marquage et de balisage servant à écrire des pages pour le World Wide Web. (Pour les pages web); ü CSS 3 (Cascading Style Sheet): le CSS permet de faire la mise en forme des pages web.
c. Serveur d’application Un serveur d’application met à la disposition des utilisateurs les différents services qu’il héberge. Ces applications peuvent être accédées via un navigateur web. Il existe plusieurs serveurs d’application parmi lesquels nous pouvons citer :
OUEDRAOGO DAVID PASCAL PAWINDTAORE
38
RAPPORT DE STAGE
ü Glassfish ; ü Oracle WebLogic Server ; ü Tomcat ; ü Wildfly. La liste comparative de ces serveurs d’applications se trouve dans le tableau ci-dessous. Critères de comparaison
Serveur
d’application Mémoire Démarrage Configuration Communauté Prix
Liste des composants GlassFish est certifié Java EE 5 (EJB3, JPA, JSF,
Glassfish
Légère
Rapide
Facile
Forte
gratuit
JAX-WS 2.x, ...) et Java EE 6 (EJB, CDI, JSF, JAX-RS , ...)
Oracle WebLogic
Légère
Rapide
Très
Très
légère
rapide
Facile
Très forte
Payant
Server
Tomcat
Serveur complet avec tous les composants. Serveur léger. Tomcat est
Très facile
Forte
gratuit
un conteneur de servlet. Composants limités Serveur
Wildfly
Très
Très
légère
rapide
Très facile
Très forte
gratuit
complet,
implémente entièrement l'ensemble des services Java EE
Tableau 18: Comparatif des différents serveurs d’applications Solution retenue : Apache Tomcat. En tant qu'implémentation de référence de plusieurs versions des spécifications servlets, facile à mettre en œuvre et riche en fonctionnalités, Tomcat est quasi incontournable dans les environnements de développement. Les qualités de ses dernières versions lui permettent d'être OUEDRAOGO DAVID PASCAL PAWINDTAORE
39
RAPPORT DE STAGE fréquemment utilisé dans des environnements de production. d. Plateforme de développement (Frameworks) Un framework appelé aussi infrastructure logicielle désigne un ensemble cohérent de composants logiciels structurels, qui sert à créer les fondations ainsi que les grandes lignes de tout ou d’une partie d'un logiciel. Il est conçu en vue d'aider les programmeurs dans leur travail. Les frameworks que nous avons utilisés sont : Ø Spring Boot 2.5.3 : Spring Boot est un framework qui facilite le développement d'applications fondées sur Spring en offrant des outils permettant d'obtenir une application packagée en jar, totalement autonome. Pour la création de nos API, nous l’avons associé au gestionnaire de dépendances Maven et également à Hibernate, qui gère la persistance des objets en base de données relationnelle. Ø Angular 12 : Angular est un Framework open source écrit en JavaScript qui permet la création d’applications Web et plus particulièrement de ce qu’on appelle des « Single Page Applications » : des applications web accessibles via une page web unique qui permet de fluidifier l’expérience utilisateur et d’éviter les chargements de pages à chaque nouvelle action. Ø Bootstrap 4.3.1 : Bootstrap est une boîte à outils open source pour le développement avec HTML et CSS. e. Outils de conception Les outils de conception désignent l’ensemble des outils utilisés depuis la conception jusqu’à la réalisation du projet. Ce sont : ü Adobe XD version 44.1.12 : c’est un outil de prototypage de site web et d’application ; il nous a permis de concevoir les maquettes des différents écrans de notre application ü Power AMC version 15.1 : c’est un outil de conception ; il nous a donc permis de concevoir nos différents diagrammes UML. ü GanttProject : Il a servi à mettre en place notre diagramme de GANTT. ü pgAdmin version 4 : il nous a été utile pour administrer notre base de données. ü Git version 2.22.0 : Git est un logiciel de gestion de versions décentralisé. Il nous a permis de gérer et archiver le code source de la plateforme. ü GitLab : c’est un logiciel web libre offrant un système de suivi des bugs et permettant l’intégration continue et la livraison continue. Présenté comme la OUEDRAOGO DAVID PASCAL PAWINDTAORE
40
RAPPORT DE STAGE plateforme des développeurs modernes, il offre la possibilité de gérer ses dépôts Git et ainsi de mieux appréhender la gestion des versions de vos codes sources. ü Jenkins : c’est un outil open source de serveur d’automatisation. Il aide à automatiser les parties du développement logiciel liées au build, aux tests et au déploiement, et facilite l’intégration continue et la livraison continue. ü Visual Studio Code : c’est un éditeur
de
code extensible
développé par
Microsoft pour Windows, Linux et MacOs. Les fonctionnalités incluent la prise en charge du débogage, la mise en évidence de la syntaxe, la complétion intelligente du code, les snippets, la réfactorisation du code et Git intégrer ü Postman version 8.12.2 : c’est un logiciel devenu très populaire pour tester les micros services. Il nous a permis de tester notre API.
2. Politique de sécurité La politique de sécurité désigne l’ensemble des moyens à mettre en place pour protéger le logiciel. La sécurité de notre plateforme représente un aspect essentiel à prendre en compte. Cette politique s’articule autour de la sensibilisation des utilisateurs, des mesures de sécurité mises en œuvre dans le processus de développement de la plateforme et des mesures à implémenter lors de sa mise en production. v Sensibilisation des utilisateurs
Le facteur humain étant un élément important dans la démarche sécuritaire, il est nécessaire de fournir à nos clients des conseils pratiques pour un meilleur rendement du service fourni par la plateforme. Ainsi, le client peut se prémunir de plusieurs tords en adoptant les démarches suivantes : ü éviter de communiquer ses données d’authentification à un tiers ; ü ne pas céder son ordinateur sans aucune surveillance de l’usage que l’on en fait ; ü se procurer d’un anti-virus régulièrement mis à jour, v Mesures de sécurité pour la phase le développement
L’accès à l’application a été protégé par un nom d’utilisateur et un mot de passe. En outre, un utilisateur qui se connecte ne peut exécuter que les fonctionnalités du système que lui OUEDRAOGO DAVID PASCAL PAWINDTAORE
41
RAPPORT DE STAGE confère son profil. Ainsi un système d’authentification basé sur un token JWT (ANNEXE 1 : Token JWT) a été mis en place afin de protéger l’accès aux différentes ressources de la plateforme. Les mots de passes ont été chiffrés avec la fonction de hachage bcrypt pour les rendre illisibles à toute personne ayant accès à la base de données. Au regard des erreurs que peuvent commettre les utilisateurs lors des saisies des données, nous avons alors mis en place un système permettant de filtrer ces données. A la soumission de données au système, ce système de filtrage détecte automatiquement les données invalides et les signale à l’utilisateur pour qu’il puisse les corriger avant une nouvelle soumission. v Mesures de sécurité à prendre pour l’exploitation
Ø La sécurité SSL Pour notre système, nous préconisons d’ajouter un module supportant les protocoles sécurisés comme SSL (Secure Sockets Layer) afin d’assurer des fonctions de sécurité très élevées. En effet, la technologie SSL est une norme dans le domaine de la sécurisation des transactions Internet. Le certificat SSL est donc une sorte de signature numérique du site Internet. Le certificat va être utilisé pour crypter l’ensemble des transactions entre un ordinateur et le site Internet. En résumé, le certificat SSL assure la confidentialité et empêche l’espionnage ou l’interception de données. Il rend impossible le piratage des informations échangées entre le serveur et le navigateur. Il permet d’authentifier un site et assure au visiteur qu’il s’agit bien du site officiel recherché. Ø Politique de sauvegarde La politique de sauvegarde consiste à prendre des mesures nécessaires pour préserver l’intégrité des données en cas de disfonctionnement du système. Alors nous préconisons : ü des sauvegardes journalières qui ont une durée d’une semaine ; ü des sauvegardes hebdomadaires qui ont une durée d’un mois ; ü des sauvegardes mensuelles qui ont une durée de six (06) mois ; ü des sauvegardes semestrielles qui ont une durée d’un an ; ü des sauvegardes annuelles qui seront conservées définitivement.
OUEDRAOGO DAVID PASCAL PAWINDTAORE
42
RAPPORT DE STAGE 3. Estimation du coût de développement La conception d’un logiciel inclut le plus souvent une phase très importante qui est l’estimation du coût de réalisation. En effet, cette opération permet de connaître les ressources humaines, financières et matérielles nécessaires pour mener à bien le projet. Il existe plusieurs méthodes pour faire cette estimation. Nous utiliserons la méthode COCOMO SIMPLIFIEE (Constructive Cost Model) pour la fiabilité de ces estimations. Les informations concernant cette méthode sont détaillées en Annexe (ANNEXE 3 : La méthode COCOMO). De plus, nous estimons le nombre de lignes de code de notre application à neuf mille (9 000). En supposant que le salaire d’un Ingénieur-informaticien est égal à 200 000 F CFA, on peut alors estimer le coût de développement comme suit : •
Effort = 2,4*(9000/1000) 1,05 = 24.10Homme/Mois
•
TDEV = 2,5*Effort 0,38 = 2,5*24.10 0,38 = 8.37 mois
•
CDEV = 24.10 * X FCFA = 24.10 * 200 000 FCFA = 4 820 000 FCFA
En prenant en considération le coût du développement ainsi que celui du besoin en matériel informatique et logiciels, on obtient le coût total du projet tel que présenté comme suit : Coût unitaire
Disponibilité ou coût total (en
(en FCFA)
FCFA)
Désignation
Quantité
Ordinateur portable
1
300 000
300 000
Serveur de test
1
-
Disponible
GanttProject
1
-
Licence gratuite
Sybase Power AMC
1
4 647 850 / an
Version d’évaluation
PostgreSQL
1
-
Licence gratuite
Visual Studio Code
1
-
Licence gratuite
Développement
-
-
4 820 000
Coût Total
5120000 Tableau 19: Coût total du projet
OUEDRAOGO DAVID PASCAL PAWINDTAORE
43
RAPPORT DE STAGE
4. Présentation de quelques écrans de l’application
Figure 12: Ecran d’inscription
Figure 13 : Ecran de connexion
OUEDRAOGO DAVID PASCAL PAWINDTAORE
44
RAPPORT DE STAGE
Figure 14 : Ecran Ajout d’un contact
Figure 15: Ecran d’envoi de message
OUEDRAOGO DAVID PASCAL PAWINDTAORE
45
RAPPORT DE STAGE
CHAPITRE III : BILAN DU STAGE
A
près avoir présenté les activités à mener dans le cadre de la mise en place d’un système de communication basé sur des SMS, nous faisons dans ce dernier chapitre le bilan de
notre stage. Pour ce faire, nous allons d’abord, présenter le déroulement du stage ainsi que les activités menées au cours de son déroulement. Ensuite, nous apporterons nos critiques et nos suggestions.
I.
DÉROULEMENT DU STAGE ET ACTIVITÉS MÉNÉES
1. Activités menées Notre stage s’est déroulé sur la période allant du premier (1) juillet 2021 au trente (30) Septembre 2021 au sein de l’entreprise OKABI Technology Services. Durant ces trois (3) mois, notre activité était essentiellement basée sur l’étude du thème « Mise en place d’un système de communication basé sur les SMS pour les professionnels et les particuliers » suivant le planning de réalisation du projet présenté plus haut. Nous avons effectué entre autres les activités suivantes : v L’initiation aux outils de télétravail tels que Microsoft Teams v L’initiation au design avec Adobe XD v La sécurisation des données avec un token v L’initiation à l’intégration continue avec l’outil Jenkins
2. Connaissances acquises Ce stage effectué au sein de l’entreprise OKABI Technology Services nous a été bénéfique à plusieurs niveaux. Il nous a permis de : v Mettre en pratique les connaissances académiques engrangées durant les trois (03) ans de formation à l’IBAM ; v Renforcer nos compétences en développement d’application web ; v Renforcer nos compétences en sécurisation de données des API v Renforcer nos compétences en prototypage d’applications v S’imprégner des réalités de la vie professionnelle
OUEDRAOGO DAVID PASCAL PAWINDTAORE
46
RAPPORT DE STAGE
II.
OBSERVATIONS ET SUGGESTIONS
Nous adressons nos remerciements à OKABI Technology Services pour le stage qu’il nous a accordé et qui a été vraiment bénéfique pour nous. Nous apprécions à sa juste valeur l’accueil chaleureux dont nous avons bénéficié de la part du personnel qui par ailleurs, a mis à notre disposition des locaux agréables et conviviaux pour le travail. De plus, avec OKABI Technology Services, l’effort est toujours récompensé. Ainsi, nous avions bénéficié d’une rémunération mensuelle. Au regard des résultats palpables auxquels nous sommes parvenus, nous suggérons à OKABI Technology Services l’organisation de sessions de formations ouvertes et de hackathons afin de détecter des talents qu’elle pourra récupérer pour booster son équipe de développement. Nous encourageons OKABI Technology Services à continuer dans son élan et à être encore plus porteur de valeurs et de bienfaits.
OUEDRAOGO DAVID PASCAL PAWINDTAORE
47
RAPPORT DE STAGE
CONCLUSION GÉNÉRALE
D
ans le cadre de ce projet de fin d’études, nous avons conçu et développé un système de communication basé sur des SMS pour les professionnels et les particuliers.
Afin de traduire les attentes des différents acteurs du projet, nous avons opté pour la méthode 2TUP et le langage de modélisation UML à travers notamment les diagrammes de cas d’utilisation, de séquence, d’activité, de déploiement et de classes avant d’implémenter les différentes fonctionnalités identifiées. Ce travail fut l’occasion pour nous d’approfondir nos connaissances en matière de développement d’applications avec des technologies telles que Angular, Spring Boot et de mettre en pratique nos connaissances théoriques et méthodologiques acquises au cours de notre formation à l’IBAM. Ce stage nous a permis non seulement de nous familiariser avec le monde professionnel, mais aussi de renforcer notre capacité à travailler en équipe grâce au télétravail
OUEDRAOGO DAVID PASCAL PAWINDTAORE
48
RAPPORT DE STAGE
BIBLIOGRAPHIE ET WEBOGRAPHIE 1. Bibliographie ü OUEDRAOGO Inoussa, 2018, « Réalisation d’un système informatisé de suivi des investissements publics au Burkina Faso », Rapport de fin de cycle de Licence, option MIAGE, Ouagadougou, Institut Burkinabè des Arts et Métiers (IBAM), 68 p.
ü ZORE Madi, 2018, « Mise en place d’un système informatique de gestion des immobilisations du Trésor public », Rapport de fin de cycle de Licence, option MIAGE, Ouagadougou, Institut Burkinabè des Arts et Métiers (IBAM), 71 p. ü SOURGOU Franck, 2019, « Mise en place d’une plateforme web de gestion financière et comptable pour les petites et moyennes entreprises au Burkina Faso », Rapport de fin de cycle de Licence, option MIAGE, Ouagadougou, Institut Burkinabè des Arts et Métiers (IBAM), 60 p. ü SAWADOGO Raogo Romaric Sylvain, 2020, « Réalisation d’un système informatisé d’aide à l’établissement du cadre des dépenses à moyen terme », Rapport de fin de cycle de Licence, option MIAGE, Ouagadougou, Institut Burkinabè des Arts et Métiers (IBAM), 67 p.
2. Webographie ü Angular. One framework Mobile & desktop [en ligne] (page consultée plusieurs fois pendant le développement de la plateforme). https://angular.io/
ü Spring. Spring makes Java simple, modern, productive, reactive, cloud-ready [en ligne] (page consultée plusieurs fois pendant le développement de la plateforme). https://spring.io/ ü Developpez. Le club des développeurs informatique [en ligne] (page consultée plusieurs fois pendant le développement de la plateforme). https://developpez.com/ ü Primeng. The Most Powerful Angular UI Component Library [en ligne] (page consultée plusieurs
fois
pendant
le
développement
de
la
plateforme).
https://primefaces.org/primeng/ OUEDRAOGO DAVID PASCAL PAWINDTAORE
I
RAPPORT DE STAGE ü Stackoverflow. Stack Overflow - Where Developers Learn, Share, and Build Careers [en ligne] (page consultée plusieurs fois pendant le développement de la plateforme). https://stackoverflow.com/ ü Wikipédia. L'encyclopédie libre [en ligne] (page consultée plusieurs fois pendant le développement de la plateforme). https://fr.wikipedia.org/ ü Google. Mémoire Online [en ligne] (page consultée plusieurs fois au besoin). https://memoireonline.com/ ü Google. TicMagazine.bf [en ligne] : rapport sur l’utilisation d’Internet et des médias sociaux au Burkina Faso en 2021 https://ticmagazine.bf/ ü Google. arcep.bf [en ligne] ; rapport du troisième trimestre de l’année 2020 sur les données du marché national de la téléphonie mobile https://arcep.bf/
OUEDRAOGO DAVID PASCAL PAWINDTAORE
II
RAPPORT DE STAGE
TABLE DE MATIERES SOMMAIRE .............................................................................................................................. i DÉDICACE............................................................................................................................... ii REMERCIEMENTS ............................................................................................................... iii LISTE DES SIGLES ET ABREVIATIONS ......................................................................... iv LISTE DES FIGURES GRAPHIQUES ................................................................................ vi LISTE DES TABLEAUX ...................................................................................................... vii INTRODUCTION GÉNÉRALE ............................................................................................ 1 CHAPITRE I : PRÉSENTATION DES STRUCTURES DE FORMATION ET D’ACCUEIL ............................................................................................................................. 2 I.
PRÉSENTATION DE LA STRUCTURE DE FORMATION (IBAM) .......................... 2 1. Historique .................................................................................................................... 2 2. Objectif ........................................................................................................................ 2 3. Organisation................................................................................................................. 3 4. Filières de formation .................................................................................................... 3 II. PRÉSENTATION DE LA STRUCTURE D’ACCUEIL(OKABI) ............................. 5 1. Histoire ........................................................................................................................ 5 2. Vision........................................................................................................................... 5 3. Services ........................................................................................................................ 5 CHAPITRE II : ANALYSE ET CONCEPTION .................................................................. 6 I.
ÉTUDE PREALABLE .................................................................................................... 6 1. Présentation du Thème ................................................................................................ 6 a. Problématique .......................................................................................................... 6 b. Les attentes............................................................................................................... 7 2. Méthodologie ............................................................................................................... 7 a. Cycle de développement ........................................................................................... 7 b. Langage de modélisation ....................................................................................... 12 3. Groupe de travail ....................................................................................................... 12 a. Groupe de pilotage ................................................................................................ 13 b. Groupe de projet .................................................................................................... 13 c. Groupe des utilisateurs .......................................................................................... 13 d. Planning de réalisation............................................................................................... 13 II. EXPRESSIONS DES BESOINS ............................................................................... 14 1. Présentation du processus de fonctionnement de la plateforme web SMS4All. ....... 14 1. Spécification fonctionnelle ........................................................................................ 14 a. Identification des acteurs ....................................................................................... 14 b. Identifications des cas d’utilisations ...................................................................... 15 c. Diagramme de cas d’utilisation ............................................................................. 16 d. Description textuelle de certains cas d’utilisation................................................. 17 e. Diagramme de séquence ........................................................................................ 20 3. Spécification technique.............................................................................................. 23 OUEDRAOGO DAVID PASCAL PAWINDTAORE
III
RAPPORT DE STAGE a. b.
Mise à disposition des conditions de travail .......................................................... 23 Architecture de développement .............................................................................. 24 III. CONCEPTION GLOBALE ...................................................................................... 26 1. Diagramme des classes .............................................................................................. 26 a. Dictionnaire de données ........................................................................................ 27 b. Diagramme de classes ........................................................................................... 30 2. Diagramme d’activité ................................................................................................ 32 3. Diagramme de déploiement ....................................................................................... 33 IV. RÉALISATION ......................................................................................................... 35 1. Présentation des outils de développement ................................................................. 35 a. Choix du Système de Gestion de Base de Données................................................ 35 b. Languages de programmation ............................................................................... 38 c. Serveur d’application ............................................................................................. 38 d. Plateforme de développement (Frameworks) ........................................................ 40 e. Outils de conception............................................................................................... 40 2. Politique de sécurité ................................................................................................... 41 3. Estimation du coût de développement ....................................................................... 43 4. Présentation de quelques écrans de l’application ...................................................... 44 CHAPITRE III : BILAN DU STAGE .................................................................................. 46 I.
DÉROULEMENT DU STAGE ET ACTIVITÉS MÉNÉES ......................................... 46 Activités menées ........................................................................................................ 46 Connaissances acquises ............................................................................................. 46 II. OBSERVATIONS ET SUGGESTIONS ................................................................... 47 1. 2.
CONCLUSION GÉNÉRALE ............................................................................................... 48 BIBLIOGRAPHIE ET WEBOGRAPHIE..............................................................................I 1. 2.
Bibliographie ................................................................................................................ I Webographie ................................................................................................................. I
TABLE DE MATIERES ...................................................................................................... III ANNEXES ................................................................................................................................ V ANNEXE 1 : TOKEN JWT ............................................................................................... V ANNEXE 2 : Le langage UML......................................................................................... VI ANNEXE 3 : La méthode COCOMO..............................................................................VII
OUEDRAOGO DAVID PASCAL PAWINDTAORE
IV
RAPPORT DE STAGE
ANNEXES ANNEXE 1 : TOKEN JWT Les JSON Web Token sont particulièrement appréciés pour les opérations d’identification. Les messages courts peuvent être chiffrés et fournissent alors des informations sûres sur l’identité de l’expéditeur et si celui-ci dispose des droits d’accès requis. Les utilisateurs eux-mêmes ne sont qu’indirectement en contact avec les token, par exemple lorsqu’ils entrent un nom d’utilisateur et un mot de passe dans un masque. La véritable communication se fait entre les différentes applications du côté serveur et client. Structure d’un token JWT Un JWT signé se compose de trois parties codées en base64 et séparées par un point: HEADER.PAYLOAD.SIGNATURE 1) En-tête (header) L’en-tête, ou header, est en général composé de deux parties et fournit des informations essentielles sur le token. Il contient le type de token et l’algorithme de signature et/ou de chiffrement utilisé. Un exemple de header de JWT : { "alg": "HS256", "typ": "JWT" } 2) Charge utile (Payload) La charge utile du JSON Web Token est la partie qui contient les informations qui doivent être transmises à l’application. C’est là que sont définis certains standards qui déterminent quelles données doivent être transmises. Les informations sont fournies en paire clé/valeur, les clés sont appelées « claims » dans les JWT. 3) Signature La signature d’un JSON Web Token est créée grâce au codage base64 de l’en-tête et de la charge utile et la méthode de signature/cryptage spécifiée. Pour que la signature fonctionne, il est nécessaire d’utiliser une clé secrète connue uniquement de l’application source. Cette signature vérifie d’une part que le message ne sera pas modifié pendant le transfert. D’autre part, dans le cas d’un jeton signé avec une clé privée, il authentifie également l’expéditeur du JWT. Le cryptage crée une séquence de caractères apparemment aléatoire :
{ 7WK5T79u5mIzjIXXi2oI9Fglmgivv7RAJ7izyj9tUyQ } OUEDRAOGO DAVID PASCAL PAWINDTAORE
V
RAPPORT DE STAGE Il est très aisé de comprendre le fonctionnement d’un JSON Web Token en utilisant l’exemple d’une connexion utilisateur. Une clé secrète est déterminée avant l’utilisation du JWT. Dès qu’un utilisateur a entré avec succès ses données de connexion, le JWT est renvoyé avec la clé et stocké localement. Le transfert se fait par HTTPS afin de mieux protéger les données. Lorsque l’utilisateur veut accéder à des ressources protégées comme une API ou un chemin d’accès protégé, le JWT sera envoyé par l’agent utilisateur comme paramètre (par exemple « jwt » pour les GET-Requests) ou comme en-tête d’autorisation (pour POST, PUT, OPTIONS, DELETE). L’interlocuteur peut déchiffrer le JSON Web Token et si le contrôle est réussi, exécuter la demande.
Figure 16: Illustration du Token JWT ANNEXE 2 : Le langage UML UML est l’acronyme anglais pour « Unified Modeling Langage ». Il se traduit par « Langage de modélisation unifié ». C’est un langage de modélisation graphique à base de pictogrammes conçu pour fournir une méthode normalisée permettant de visualiser la conception d’un système. Ce langage est utilisé pour la spécification, la visualisation, la modification et la construction des documents nécessaires au bon développement d’un logiciel orienté objet. Il offre un standard de modélisation, pour représenter l’architecture logiciel. Grâce à UML, il est possible de générer tout ou une partie du code d’un logiciel à partir des divers documents OUEDRAOGO DAVID PASCAL PAWINDTAORE
VI
RAPPORT DE STAGE réalisés. Ce langage de modélisation nous offre principalement 13 diagrammes (depuis sa deuxième version) pour modéliser un système. Ces diagrammes peuvent être utilisés selon la phase du développement d’un logiciel. En analyse, nous pouvons utiliser des : ü Diagrammes de cas d’utilisation : modélisent les besoins des utilisateurs ; ü Diagrammes de séquences vues de l’extérieur : présentent les scénarios entre les utilisateurs ; ü Diagrammes d’activités : c’est un enchaînement d’actions représentant un comportement du logiciel. ü En phase de conception, le développeur peut utiliser des : ü Diagrammes de classes : pour représenter la structure interne du logiciel ; ü Diagrammes d’objets : pour présenter l’état interne du logiciel à un instant donné ; ü Diagrammes d’états-transitions : pour présenter l’évolution de l’état d’un objet ; ü Diagrammes de séquence vue de l’intérieur : pour montrer les scénarios d’interactions avec les utilisateurs au sein du logiciel ; ü Diagrammes de composants : pour présenter les composants physiques du logiciel ; ü Diagrammes de déploiement : pour l’organisation matérielle du logiciel. Ces diagrammes sont rarement tous implémentés dans le cadre du même projet. Le choix des diagrammes à mettre en œuvre dans la modélisation est généralement fonction de la nature du projet et de sa taille. ANNEXE 3 : La méthode COCOMO Un grand nombre de méthodes est mis à la disposition des développeurs pour estimer le coût de leurs plateformes. Notre choix se porte sur la méthode Constructive Cost Model (COCOMO) pour l’estimation du coût total du développement (CTDEV) de notre application, du fait de sa fiabilité. De plus, cette méthode permet également d’estimer le temps de développement (TDEV) du système correspondant au temps requis pour terminer le projet avec toutes les ressources disponibles. La méthode COCOMO se base principalement sur la complexité de l’application à développer qui correspond à l’un des trois OUEDRAOGO DAVID PASCAL PAWINDTAORE
VII
RAPPORT DE STAGE (03) types suivants : Ø S : Ce sont des applications simples, n’ayant que peu de cas particuliers et de contraintes. Elles sont parfaitement déterministes. Ø P : Ce sont des applications intermédiaires, plus complexes que les applications de type S. Elles restent tout de même déterministes bien que le nombre de leurs cas particuliers et de tests soit plus important que pour les applications de type S. Ø E : Ce sont des applications très complexes, que ce soit au niveau de leurs contraintes, comme un système temps réel, où au niveau des données saisies, comme certaines interfaces graphiques ou l’on ne peut envisager toutes les possibilités utilisateur pourrait effectuer. Elles ne sont pas déterministes.
Complexité
S
P
E
Effort(en
Temps de développement(TDEV en
Homme mois)
mois)
Effort = 2,4 * KLS1,05 Effort = 3 * KLS1,12 Effort = 3,6 * KLS1,2
TDev = 2,5 * Effort0,38
TDev = 2,5 * Effort0,35
TDev = 2,5 * Effort0,32
Tableau 20: Formule de calcul COCOMO NB : HM est le nombre d’« homme mois » nécessaire à la réalisation du projet, et KLS est le nombre de Kilo Lignes Sources. Un homme mois correspond à 152 heures de travail effectif. Le nombre de personnes requis pour réaliser le projet dans cet intervalle de temps est donc : N = HM/TDEV. Étant donné que le salaire moyen d’un informaticien est de X FCFA, le coût total de développement pour ce projet est : CTDEV = HM*X.
OUEDRAOGO DAVID PASCAL PAWINDTAORE
VIII