WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Analyse et conception par la méthode UP7 d'une application web de réservation des titres de voyage par voie ferroviaire: cas de la SNCC


par Daniel MBAYA MUSAKA
Université protestante de Lubumbashi - Licence 2021
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

    EPIGRAPHE

    Ayez le courage de suivre votre Coeur et votre intuition. L'un et l'autre savent ce que vous voulez réellement devenir. Le reste est secondaire

    Steve Jobs

    DEDICACE

    A Pascal & Joséphine KAKANDA. Papa, maman ça y ai, je le fais.

    A toute la communauté scientifique et tous chercheurs dans le domaine informatique.

    Je dédie ce travail.

    Daniel MBAYA MUSAKA

    REMERCIEMENT

    Ce travail est le résultat de plusieurs recherches scientifiques ainsi que puiseurs efforts dont des couts de mains nous étaient vraiment indispensable. Cependant nous tenons à manifester notre gratitude et reconnaissance à notre Dieu,l'Atta-El-Roi, par qui toutes chosesexistent, le maitre de temps et des circonstances, pour sa grâce et sa fidélitéà notre égard.

    Nos remerciements s'adressent aussi au Dr. Msc. Phd, le professeur Blaise FYAMA MWEPU, qui a accepter de diriger ce travail malgré ses multiples occupations.

    Nous remercions également notre co-directeur Ir. Acclamer PETU pour sa disponibilité et son attention porte à ce travail.

    Merci également au collège des assistants de la faculté des sciences informatiques en particulier le doyen de ladite faculté Dr. Msc. Phd, le professeur Blaise FYAMA, pour leurs encadrements et leurs conseils.

    A mes très chers parent Pascal KAKANDA MUTWALE et Joséphine TSHABU KAYEMBE, aucune phrase ne pourrait bien n'exprimer ma reconnaissance envers vous, merci pour vos sacrifices, matériels, spirituels, morals et financiers durant tout mon cursus académique ainsi que pour la confiance faite en ma faveur.

    A vous les IMMORTELS ma plus grande et forte famille, a tous mes frères et soeurs : Gloire ABDY KABONGO la légende, Elie Eliyah KAYEMBE, David Judah KAKANDA, Falonne Nsanga, Chanel Esther MWANZA, Merveille TSHALA et Dimercia NGALULA, pour vos encouragement, votredisponibilité ainsi que votre amour.

    A mes neveux et nièces: Marcel KILUBA, Hilkija KANKOLONGO, Sylvie KILUBA, Hiel KASHINGI, Hilel KAKANDA. Vous me remplissez toujours de joie

    A toi Thalia MBOMBO pour tes conseils, encouragements et ton assistance... et à toi mon ami et frère Elvic NDAY pour ton aide et assistance sur tout le plan.

    À vous ma seconde famille, le Golden Brain : Israël BUNTU, Barthelemy FARIALA, Augustin ABUNDA, François KALALA, Sephora BOTULU, Ornella COUCKE, Tarce MITONGA, Isaac TSHIKUDI, Yan MBONYO, Mirland TSHIKOMB, Bijou NGOIE, Jean-Luc SANGWA, Passy KISANDA, Raïssa IRUNG, merci mes amis pour tout.

    Et à tous ceux qui nous ontcontribués de loin ou de près participer à la rédaction de ce travail.

    Daniel MBAYA MUSAKA

    LISTE DES FIGURES

    Figure 1. 1 Schéma d'ensemble de la démarche UP7 (source Gabay-Uml_2_Analyse_Et_Conception) 3

    Figure 1. 2 Architecture 3-tiers d'une application web 10

    Figure 1. 3 Fonctionnement d'une application web 11

    Figure 2. 1 Logo de la Société Nationale de Chemin de Fer du Congo. 3

    Figure 2. 2 Situation géographique de la SNCC. 17

    Figure 2. 3 Organigramme de la SNCC 18

    Figure 2. 4 Organigramme de la direction MOBIRAIL 20

    Figure 2. 5 Schéma de contexte du domaine d'étude 22

    Figure 2. 6 Diagramme d'activité1 (processus réservation) 23

    Figure 2. 7 Diagramme d'activité 2 (processus conclure contrat) 24

    Figure 2. 8 Diagramme des classes du domaine 27

    Figure 3. 1 Diagramme cas d'utilisation système 1 3

    Figure 3. 2 Diagramme de cas d'utilisation système avec cas d'utilisation informatique 32

    Figure 3. 3 Description textuelle du CU Créer compte 34

    Figure 3. 4 Diagramme de séquence du CU créer compte 35

    Figure 3. 5 Interface IHM du CU Créer compte 35

    Figure 3. 6 Diagramme des classes participantes Créer compte 35

    Figure 3. 7 Diagramme de séquence s'authentifier 37

    Figure 3. 8 Maquette du CU s'authentifier 37

    Figure 3. 9 Diagramme des classes participante s'authentifier 37

    Figure 3. 10 Diagramme de séquence consulter programme 38

    Figure 3. 11 Maquette du CU consulter programme 39

    Figure 3. 12 Diagramme de classe participantes du CU consulter programme 39

    Figure 3. 13 Diagramme de séquence du CU gérer réservation place 41

    Figure 3. 14 Maquette du DCU gérer réservation place 42

    Figure 3. 15 Diagramme des classes participantes du CU gérer réservation place 42

    Figure 3. 16 Diagramme de séquence conclure contrat 44

    Figure 3. 17 Maquette du CU conclure contrat 45

    Figure 3. 18 Diagramme de classes participantes conclure contrat 45

    Figure 3. 19 Diagramme de classe récapitulatif 46

    Figure 3. 20 Matrice de validation 47

    Figure 3. 21 Diagramme d'interaction du CU consulter programme 47

    Figure 3. 22 Diagramme d'interaction conclure contrat 48

    Figure 3. 23 Diagramme d'interaction s'authentifier 49

    Figure 3. 24 Diagramme d'interaction général gérer compte 50

    Figure 3. 25 Diagramme d'interaction saisir info réservation 50

    Figure 3. 26 Diagramme d'interaction sélectionner réservation 51

    Figure 3. 27 Diagramme d'interaction gérer réservation place 52

    Figure 3. 28 Diagramme de classe de conception consulter programme 53

    Figure 3. 29 Diagramme de classe de conception conclure contrat 53

    Figure 3. 30 Diagramme de classe de conception s'authentifier 54

    Figure 3. 31 Diagramme de classe de conception gérer réservation place 54

    Figure 3. 32 Diagramme de classe de conception gérer contrat client 54

    Figure 3. 33 Diagramme de navigation générale 55

    Figure 3. 34 Diagramme de package 57

    Figure 4. 1 IHM du cas d'utilisation s'authentifier 3

    Figure 4. 2 Code d'authentification 65

    Figure 4. 3 IHM du cas d'utilisation créer compte 66

    Figure 4. 4 Codes source créer compte 69

    Figure 4. 5 IHM du cas d'utilisation gérer réservation place (identification) 70

    Figure 4. 6 Codes source gérer réservation place (identification) 72

    Figure 4. 7 IHM du cas d'utilisation gérer réservation place (réservation) 72

    Figure 4. 8 Codes source gérer réservation place (réservation) 79

    LISTE DES TABLEAUX

    Tableau 3. 3 Description textuelle du CU s'authentifier 3

    Tableau 3. 1 Description textuelle CU consulter programme 38

    Tableau 3. 5 Description textuelle du DCU gérer réservation place 39

    Tableau 3. 2 Description textuelle CU conclure contrat 42

    Tableau 4. 1 tableau récapitulatif du modèle logique 3

    Tableau 4. 2 Tableau des requêtes 62

    INTRODUCTION

    Au cours de ces dernières années, les nouvelles technologies de l'information et de la communication ont connu des grandes innovations marquées par l'apparition de l'internet et par sa croissance exponentielle. Cette décennie a aussi été marquées par l'entrée en scène du Web, qui a popularisé internet et qui a fait exploser le nombre de ses utilisateurs.

    Cet ainsi que de nos jours grâce aux nouvelles technologies de l'information et de la communication (NTIC) on peut résoudre certaines difficultés liées à la gestion d'un processus quelconque au sein d'une organisation.

    Par conséquent, le web étant une partie prenante aux NTIC suscite l'intérêt de la majorité des organisations. Etre présent, partager ses services et communiquer sur internet est devenu incontournable actuellement pour les organisations, et cela regroupe plusieurs avantages pouvant contribuer à la bonne visibilité de l'organisation. Ces avantages peuvent être liées à l'accessible de certains services de l'organisation n'importe quand peu importe le milieu, et cela peut jouer également en l'accroissement de la clientèle.

    C'est dans cette même optique d'idée que nous nous sommes intéressés à la société de transport ferroviaire publique, la Société Nationale de Chemin de Fer du Congo (SNCC) en sigle, dans le but d'apporter un plus-value dans gestion de réservation et vente des titres de voyage au travers de ce présent travail que nous reformulons comme suit : « Analyse et conception par la méthode UP7 d'une application web de réservation de titre de transport par voie ferroviaire (Cas de la SNCC) ».

    Le choix de ce sujet a été motivé par le souci de pouvoir mettre en pratique les différentes théories acquises tout au long de nos trois ans d'étude à l'Université Protestante de Lubumbashi en l'Informatique de Gestion en confrontant les connaissances acquise à la réalité sur terrain, car toutes les connaissances acquises durant notre étude nous ont donné non seulement la maitrise, mais aussi la technicité de gérer des grands projets informatiques.

    En dépit de différentes stratégies mises au point pour gérer la réservation de titres de voyage, néanmoins ce processus connait encore quelques difficultés réelles par rapport à la vente du service d'une part et à la réservation d'autre part. Voici quelques difficultés observées :

    Ø La longueur du processus de réservation qui occasionne une forte perte de temps ;

    Ø La distance à parcourir pour l'agence. Le cas de client qui habite les périphéries.

    Ø Certaines erreurs telles que la manque de précision dans l'attribution des numéros, des nombres des places disponibles.

    Ø Manque de notoriété par rapport aux services vendus.

    Partant des réalités observé au sein du processus de réservation et vente des titres de voyage et voulant y remédier en apportant une solution informatique au processus qui demeure encore manuel, nous nous sommes donc pose deux question qui nous guiderons tout au long de notre processus :

    Ø Quelle serait donc l'architecture logicielle qui conviendrait le mieux à permettre aux différents client désirant voyager à bord des trains de pouvoir effectuer leur réservation en ligne ?

    Ø Quelle démarche méthodologique suivre pour parvenir à cette solution ?

    Actuellement avec l'évolution de la technologie, plusieurs processus qui nous demandaient plusieurs mouvements et beaucoup d'énergies peuvent être effectuées en une seule clique, et à distance grâce au web. C'est ainsi nous proposons une solution que nous trouvons idéal qui permettra de palier aux difficultés rencontrées par les utilisateurs et satisfaire le besoin exprimé par ces derniers en permettant d'améliorer d'une part l'accessibilité aux services, de fidéliser le client et en plus de cela augmenter la notoriété de la société en générale d'autre part.

    C'est ainsi que nous proposons comme hypothèse à la problématique posée : Concevoir une application web de réservation des titres de voyage par voie ferroviaire. Qui s'avère une solution idéale pour répondre aux différents problèmes et besoins exprimés.

    Un travail n'est scientifique que par le fait qu'elle emploie une méthode lui permettant d'aborder une certaine démarche bien structurée pour pouvoir aboutir à une solution observable. Dans le cas de notre travail, Nous proposons ici méthode UP7 qui est une démarche d'application d'UML qui prend appui sur UP mais qui s'étale quant à elle sur 7 étapes qui nous permettront par ses d'aller de la modélisation du métier jusqu'à la conception du nouveau système.

    Le recours à la modélisation est depuis longtemps une pratique indispensable au développement logiciel, car modèle est en effet une représentation abstraite et simplifiée d'un système avec un but spécifique : Visualiser le système, mieux comprendre le système, spécifier la structure et le comportement du système, permettre l'analyse, simulation et vérification du système et documenter les décisions importantes(DJUNGU S.-J. , Genie Logiciel, 2017).

    C'est ainsi que pour ce travail nous avons choisi d'utiliser le langage de modélisation UML (Unified Modeling Language) quisedéfinit comme un langage de modélisation graphique et textuel destiné à comprendre et décrire des besoins, spécifier et documenter des systèmes, présenter des architectures logicielles, concevoir des solutions et communiquer des points de vue.

    Le monde de la science avec les technologies n'a cessé d'évoluer et nous avons cette certitude que plusieurs personnes ont abordé la même question que nous nous sommes posée par exemple le cas de Bolide NTUMBA TSHILUMBA de à l'Université Notre Dame du Kasaï en informatique de gestion 2015, qui a parlé sur : « Conception et réalisation d'un site web dynamique pour la réservation. Cas de la SNCC KANANGA », qui a relevé un certain nombre des questions dans sa problématique dont : « Comment un client peut demander une réservation en ligne ? » et « Comment un client peut accéder à des informations concernant les prix des billets des Trains ? »

    Simon TSHIPANGILA NDOMBA de l'Université Protestante de Lubumbashi 2020 qui a parlé dans son travail de fin d'étude de : « Conception et le développement par la méthode MERISE d'une application web de réservation en ligne. Cas de Congo AIRWAYS Le Transit », dont la problématique était : « Quel serai l'apport de l'application de réservation en ligne aux clients de l'agence ? ». Pour ne citer qu'eux.

    Si nous pouvons délimiter ce travail du point des vue spatial, il est conçu pour la Société Nationale de Chemin de fer du Congo, et conserve sa véracité non seulement pour ladite société sachant qu'elle demeure la seule a oeuvré dans le transport ferroviaire mais aussi pour d'autres société des différents pays qui oeuvre dans le transport ferroviaire.

    Hormis l'introduction et la conclusion générale notre travail va s'étendre sur trois chapitres que voici :

    Dans le premier chapitre nous aurons à parler de la méthode UP7 et quelque notion sur les applications web.

    Le deuxième chapitre s'étalera sur l'analyse du système d'information de la SNCC en général et du processus de réservation et vente des titre de voyage en particulier.

    En ce qui concerne le troisième chapitre qui va clore ce travail, nous allons procéderà la conception du nouveau système de réservation et vente des titres de transport que nous avons nommé« Safari.net ».

    CHAPITRE I : METHODE UP7 ET LES APPLICATIONS WEB

    Ce chapitre sera subdivisé en deux sections, nous parlerons dans notre première section des généralités sur la méthode UP7 (Unified Process ou Processus Unifié) ainsi que son usage en mettant un accent particulier sur le langage de modélisation UML (Unified Modeling Language ou Langage de Modélisation Unifié) et dans la deuxième section nous parlerons des généralités sur le web.

    1.1. Méthode UP7

    1.1.1. Présentation de la méthode UP7

    La méthode UP7 (Unifie Process 7) est une démarche d'application d'UML qui prend appui sur UP (Unified Process) mais qui se veut avant tout être pragmatique. Cette démarche est fondée d'une part sur notre vision du processus de développement et d'autre part sur notre propre expérience tirée de la réalisation en entreprise de projets avec UML.

    Cette démarche s'articule suivant deux axes : les quatre phases qui correspondent à celles d'UP (lancement, élaboration, construction et transition) et sept activités ou étapes ayant chacun un pourcentage de temps qu'elle occupe (Modélisation métier, Exigence fonctionnelle, Analyse des cas d'utilisation, Synthèse d'analyse, Conception, Implémentation et Test). Ainsi, nous pouvons présenter dès ce stade un premier schéma d'ensemble de la démarche suivant ces deux axes.

    PHASES

    Transition

    Construction

    Élaboration

    Lancement

    ACTIVITÉS

    3

    Analyse

    -

    des cas d'utilisation

    2

    Exigences

    -

    fonctionnelles

    Modélisation métier

    1-

    Test

    7-

    6

    -

    Implémentation

    5

    Conception

    -

    4

    Synthèse

    -

    de l'analyse

    Figure 1. 1 Schéma d'ensemble de la démarche UP7 (source Gabay-Uml_2_Analyse_Et_Conception)

    Les zones grises dans les différentes phases sur le schéma représentent les proportions de l'effort à consentir pour chaque activité durant les phases d'un projet. Voici donc les différentes phases et leurs proportions évaluées en pourcentage.

    a) Modélisation métier : elle consiste à mieux connaître et comprendre les processus dans lesquels va s'intégrer le futur système informatique. Cette activité aboutit à trois résultats :

    · Au positionnement du système à étudier au sein de l'ensemble des processus de l'entreprise et à la définition du périmètre fonctionnel global du système (diagramme de contexte du domaine d'étude).

    · À la définition des processus métiers concernés par le système à développer et à l'identification des acteurs (diagramme d'activité).

    · À la définition des concepts métiers du domaine sous forme de classe (diagramme de classe métier). Les concepts métiers correspondent aux informations créées, transformées ou manipulées par les experts du domaine. L'expert du domaine y retrouve le vocabulaire de son métier.

    À l'issue de cette activité, le périmètre du système à étudier est défini. Cette étape ne correspond qu'à 5% de proportion.

    b) Les exigences fonctionnelles : elle consiste à définir ce que doit faire le système d'un point de vue métier. Cette activité permet d'obtenir trois résultats :

    · La définition des cas d'utilisation métier et leur description générale (diagramme de cas d'utilisation système).

    · Les scénarios des cas d'utilisation métier (diagramme de séquence système).

    · La navigation générale du système à étudier, c'est-à-dire l'interface homme-machine (schéma de navigation générale).

    Au terme de ces deux premières activités, l'expression des besoins (au sens UP) est couverte. Cette étape ne correspond qu'à 5% de proportion.

    c) Analyse des cas d'utilisation : elle consiste à fournir une vue informatique du système. Cette activité permet d'obtenir cinq résultats :

    · La définition de tous les cas d'utilisation (métiers + informatiques) et leur description détaillée (diagramme des cas d'utilisation).

    · L'identification des scénarios pour chaque cas d'utilisation (diagramme de séquence).

    · Les différents états des objets étudiés (diagramme d'état-transition). Cette partie de l'activité est optionnelle et s'applique selon les systèmes étudiés.

    · Les interfaces utilisateur pour chaque cas d'utilisation.

    · Les classes pour chaque cas d'utilisation (diagramme de classe).

    À l'issue de cette activité, l'analyse des cas d'utilisation est produite mais non encore consolidée ni validée définitivement. Cette activité ne représente que 20% de proportion.

    d) La synthèse d'analyse : elle consiste à consolider et valider toute l'analyse des cas d'utilisation. Cette activité permet d'obtenir deux résultats :

    · Le regroupement de l'ensemble des classes en un seul diagramme (diagramme de classe récapitulatif).

    · La validation de l'analyse de chaque cas par le biais d'une matrice de validation. Celle-ci permet de vérifier que l'analyse des cas est complète, c'est-à-dire que tous les cas d'utilisation métier ont été repris dans l'analyse.

    Au terme des activités 3 et 4, l'analyse (au sens activité UP) est couverte. Elle ne couvre que 5% de la proportion.

    e) La conception : elle se concentre sur le « comment faire ». Elle a pour but de définir et de mettre en place les choix d'architecture technique, et de compléter la description du système sous l'angle technique. Cette activité permet d'obtenir quatre résultats :

    · Les choix techniques retenus.

    · Les scénarios techniques par cas d'utilisation (diagrammes de séquence technique).

    · Les classes techniques par cas d'utilisation (diagrammes de classe technique).

    · Le regroupement sous forme de paquetage de l'ensemble des classes techniques en un seul diagramme (diagramme de paquetage).

    Cette activité couvre la conception (au sens UP) et représente 10%.

    f) L'implémentation : elle se concentre sur l'utilisation des technologies de programmation. Quand on parle de l'implémentation il s'agit donc de mettre en oeuvre les modèles issus de l'analyse et de la conception. Cette activité nous permet donc d'obtenir un produit logiciel sous forme des composants de bibliothèque ou des fichiers(DJUNGU S.-J. , Genie logiciel, 2017). Cette étape comme dans toutes les autres méthodes reste la plus lourde par rapport à toutes les autres et représente 40% de proportion.

    g) Les tests : ne représente quant à elle que 15%. Elle consiste à vérifier la bonne implémentation de toutes les exigences, le fonctionnement correct des interactions entre les objets.

    Le schéma ci-dessous nous présente les différentes étapes qui caractérisent le cycle de développement logiciel qu'exige la démarche UP7 d'une manière simplifiée.

    1.2. Les applications web

    1.2.1. Définition

    Une application web est un ensemble de pages qui interagissent avec les utilisateurs, les unes avec les autres, ainsi qu'avec les différentes ressources d'un serveur web, notamment les bases de données.

    Une application web est aussi un logiciel applicatif hébergé sur un serveur et accessible via un navigateur (Internet Explorer, Mozilla Firefox, Torch, etc.), ou sur un réseau intranet. Une application web est un programme de type client-serveur qui s'exécute sur le web et rend un service. La nature et la complexité de ces applications peuvent être très différentes(Delacroix, 2016).

    L'architecture d'une application web contient un serveur d'application qui rend possible le traitement d'une logique et d'un état applicatif. Tandis que l'architecture d'un site web contient trois composants principaux :

    · Un serveur web.

    · Une connexion réseau.

    · Des navigateurs clients.

    En d'autres termes une application web sert à manipuler l'information et elle est soumise à des contrôles d'accès et de rôles, et un site web sert à exposer l'information.

    1.2.2. L'architecture des applications web

    Une architecture est un modèle générique et conceptuel qui se rapporte à un sujet et qui représente la fonctionnalité, la structure, le positionnement, l'interrelation des différents types d'éléments (hardware, logiciels, infrastructure) qui la composent.

    En règle générale, une application est découpée en 3 niveaux (couches) d'abstraction :

    La couche présentation : c'est la partie de l'application visible par les utilisateurs (nous parlerons d'interface utilisateur). Dans notre cas, cette couche est un navigateur web, qui se présente sous forme de pages HTML, composée de formulaire et de bouton.

    La couche métier : correspond à la partie fonctionnelle de l'application, celle qui implémente la logique, et qui décrit les opérations que l'application opère sur les données, en fonction des requêtes d'un utilisateur effectuées au travers de la couche présentation.

    La couche accès aux données : elle consiste en la partie gérant l'accès à la base de donnéesdu système.

    Il existe divers architectures pour une application web :

    · Architecture 1-tiers

    · Architecture 2-tiers

    · Architecture 3-tiers

    · Architecture n-tiers.

    Dans notre application nous avons utilisé une architecture à 3-tiers qui est illustrée dans la figure ci-dessous :

    Figure 1. 2 Architecture 3-tiers d'une application web

    1.2.3. Le serveur web

    Un serveur web est un logiciel qui fournit des pages web en réponse à des requêtes de navigateurs web. Une requête de page est générée lorsqu'un utilisateur clique sur un lien d'une page web ou saisit une URL (localisateur uniforme de ressources) dans le champ adresse du navigateur.

    1.2.4. Le fonctionnement d'une application web

    Lorsqu'un serveur web reçoit une requête de page web statique, il transmet simplement cette page au navigateur requérant. En revanche, lorsque le serveur web reçoit une requête depage dynamique, il transmet cette page à une extension logicielle spéciale chargée d'achever la page. Ce logiciel spécial est appelé serveur d'application.

    Le serveur d'application lit le code de la page, termine cette page en fonction des instructions figurantes dans le code, puis en retire le code.

    Il en résulte une page statique que le serveur d'application renvoie au serveur web, lequel transmet alors cette page au navigateur requérant.

    Le navigateur reçoit uniquement du code HTML pur lorsque la page lui est transmise.

    Un serveur d'application nous permet de travailler avec des ressources cote serveur telles que les bases de données. Une page dynamique peut, par exemple, ordonner au serveur d'application d'extraire des données de la base de données et de les insérer dans le code HTML de la page.

    L'instruction d'extraction des données de la base est nomméerequête de base de données.

    Une requête est composée de critères de recherches rédigesdans un langage de base de donnéesappelé SQL. La requête SQL est rédigée dans les scripts ou les balises coté serveur de la page.

    Toutes ces actions sont résumées dans le schémaprésenté dans la figure ci-dessous :

    Figure 1. 3 Fonctionnement d'une application web

    Généralement et après la réalisation et l'implémentation d'une application ; une dernière étape reste à accomplir c'est l'hébergement de l'application an qu'elle devienne accessible et manipulable par les utilisateurs.

    1.2.5. L'hébergement d'une application web

    L'hébergement est un service visant à rendre un site ou une application web accessible sur Internet.

    Afin que les pages soient visibles par tout le monde, il faut qu'elles soient stockées sur un ordinateur connecte en permanence à l'internet (serveur).

    Un hébergeur est comme une sociétéspécialisée dans l'hébergement de sites web sur des serveurs, sa principale activité sur internet consiste à installer des serveurs, à les sécuriser, à les tenir à jour en installant les mises à jour de sécurité pour éviter les attaques malveillantes et à les réparer en cas de panne.

    Il existe plusieurs types d'hébergements dont :

    1. Hébergement gratuit : ce type d'hébergement offre un service basique, avec un espace de stockage assez limite, avec une fiabilité qui n'est pas toujours optimale.

    2. Hébergement payant : ce type d'hébergement propose un service de qualité, avec de bonnes capacités de stockage ainsi qu'une grande fiabilité. Le support sera également plus disponible et plus réactif en cas de problème et aidera avec des réponsespersonnalisées.

    Dans la partie suivante nous parlerons des langages utilises pour lacréation des applications.

    1.2.6. Les langages utilisés pour la création des applications web

    Le développement d'une application web nécessite la connaissance des différents langages utilises dans les technologies web : HTML pour la présentation des pages, CSS (CascadingStyle Sheets) pour la charte graphique, JavaScript, Java ou ActionScript pour les automatismesexécutes par le client, ainsi qu'un langage tel que Java, le PHP et d'autre.

    Le PHP est un langage de scripts multi plateformes, oriente-objet trèsrépandu.Il a étéconçu pour permettre la création des applications dynamiques, la génération du code (HTML, XHTML (Extensible HyperText Markup Language), CSS) et des données (JPEG (Joint Photographic Experts Group),PNG(Portable Network Graphics)).Il est le plus souvent couple a un serveur Apache, bien qu'il peut êtreinstallé sur d'autre serveurs Http (HyperText Transfer Protocol).

    Les instructions du PHP sont lues et analysées par le serveur web. Elles ne parviennent jamais jusqu'au navigateur qui ache la page car le serveur web remplace le code PHP par le contenu que le code avait pour but de générer.

    Etant donnes tous ces éléments et les contraintes relatives à ce projet, nous avons choisi d'utiliser le langage PHP, qui présente un bon compromis entre la rapidité de mise en place et les performances.

    D'autre part, une application web avec PHP est très facilement déplorable et fonctionne avec tous les systèmes d'exploitation, que ce soit Mac, Linux ou Windows.

    Conclusion partielle

    Dans ce chapitre il a été question de présenter la méthode UP7 une méthode qui s'appuie sur UP mais qui se veut être pragmatique, et décompose sa démarche en 7 étapes ou activités du cycle de développement logiciel.

    Enfin nous avons conclu ce chapitre en parlant sur les applications web, les types d'architecture ainsi que le fonctionnement d'une application web.

    CHAPITRE II. ANALYSE METIER DU SYSTEME DE LA SNCC

    INTRODUCTION

    Dans ce chapitre nous faisons l'expression des besoins des utilisateurs, dans notre cas ceux du service de réservation et vente des titre de voyage au sein de la Société Nationale de Chemin de Fer du Congo, en présentant l'entreprise d'une manière générale et ledit service d'une manière particulière en y effectuant une modélisation métier afin d'aboutir à une vision globale des processus. Et nous terminerons par une critique ce basant sur le système existant.

    2.1. PRESENTATION DU SYSTEME D'INFORMATION

    Notre champ d'études est la Société Nationale de Chemin de Fer du Congo, S.N.C.C, la S.N.C.C est une société anonyme dont les coordonnées sont les suivants :

    · Nature de la société : société anonyme unipersonnelle S.A

    · Capital sociale : 650 000 000 000 CDF

    · Siege social : Place de la Gare N° 115 Av/ Lumumba commune Kampemba, en RDC BP 297

    · ID. 6-711-N59977 Q

    · Numéro Impôt : A0700227 F

    · E-mail :snccdg@yahoo.fr

    · Enregistrée au greffe du tribunal de commerce de Lubumbashi sous le N° RCCM/14-B.1702 Tel. : 00(243)970058203 ; 00(243)970058560

    Figure 2. 1 Logo de la Société Nationale de Chemin de Fer du Congo.

    Dirigé par un directeur général et assisté par un directeur Adjoint, la S.N.C.C est placée sous la tutelle du ministère de transport et voies de communications et celui ayant le portefeuille dans ses attributions. Active essentiellement de l'est et le sud du pays. La Société Nationale des Chemins de fer du Congo, S.N.C.C en sigle, est une entreprise commerciale chargée de transport public, elle exploite les chemins de fer, les lacs, les routes et les fleuves ; mais le chemin de fer occupe au moins le trois quarts (¾) de son exploitation, car c'est une exploitation basée sur les transports ferroviaires.

    2.1.1. Historique

    Voici un bref historique de la Société Nationale de Chemin de Fer du Congo, S.N.C.C en sigle, allant depuis sa création.

    · 1889 : création de la Compagnie du Chemin de Fer du Congo (CCFC).

    · 1898 : création de la Société des Chemin de fer Vicinaux du Mayombe (CVM).

    · 1902 : création de la Compagnie du Chemin de Fer du Katanga (CFK).

    · 1902 : création de la Compagnie du Chemin de Fer du Congo supérieur aux Grands Lacs Africains (CFL).

    · 1906 : constitution de la Compagnie du Chemin de Fer du Bas-Congo au Katanga (BCK).

    · 1911 : liaison du réseau avec l'Océan Atlantique pour le chemin de fer de Benguela (CFB).

    · 1927 : création de la Société des Chemin de fer Léopoldville-Katanga-Dilolo (LKD).

    · 1952 : fusion du LKD et du CFK pour constituer la Compagnie de Chemin de fer Katanga-Dilolo-Léopoldville (KDL.

    · 1961 : subdivision du BCK en ancienne Compagnie BCK de droit Belge et en nouvelle compagnie BCK de droit Congolais.

    · 1970 : reprise de toutes les activités de la nouvelle BCK par la Société congolaise KDL devenue Compagnie de chemin de fer Kinshasa-Dilolo-Lubumbashi.

    · 1974 : fusion des Sociétés de chemin de fer KDL, CFL (Office congolais des chemins de fer des grands Lacs), CVZ (Chemin de fer vicinaux), CFMK (Chemin de fer Matadi-Kinshasa) et CFM (Chemin de fer du Mayombe) en Société nationale des chemins de fer Zaïrois (SNCZ).

    · 1991 : dissolution de la SNCZ, création de la SNCZ/Holding et des filiales OCS (Office des chemins de fer du sud), SFE (Société de chemins de fer de l'Est) et CFU (Office des Chemin de fer des Uélé).

    · 1995 : en novembre 1995, dissolution de la SNCZ/Holding et de ses filiales et signature d'un accord cadre cédant l'exploitation des chemins de fer a une société privée dénommée SIZARAIL, laquelle a été dissoute en 1997.

    · 1997 : reprise de toutes les activités par la SNCC.

    2.1.2. Situation géographique

    La S.N.C.C est une entreprise commerciale chargée de transport public, elle exploite les chemins de fer, les lacs, les routes et les fleuves ; mais le chemin de fer occupe au moins le trois quarts (¾) de son exploitation, car c'est une exploitation basée sur les transports ferroviaires.

    Voici donc ses différents secteurs d'activité :

    ï Région du Sud (siège à Likasi)

    ï Région du Centre (siège à Kamina)

    ï Région Nord (siège Kananga)

    ï Région de l'Est (siège à Kalemie)

    ï Région du Nord-Est (siège à Kindu)

    ï Circonscription d'exploitation de Lubumbashi

    Figure 2. 2 Situation géographique de la SNCC.

    2.1.3. Organigramme

    Figure 2. 3 Organigramme de la SNCC

    2.1.4. Présentation de la direction MOBIRAIL

    2.1.4.1. Présentation et historique

    En date du 10 aout 2014 suivant l'acte de lois de dépôt N°RC416, la SNCC cesse d'être une SARL, et devient une société anonyme unipersonnelle. En date du 18 aout 2014 la SA a connu un aménagement, réaménagement majeur de son organigramme sous la note de service N°96/DC/2014. Il eut la création de grandes directions et une entité autonome dénommée MOBIRAIL. En date du 17 Octobre MOBIRAIL est transformé en une direction centrale.

    MOBIRAIL est une appellation qui a une sémantique profonde tout différente des autres appelantes précédentes. C'est la combinaison de MOBILITE PAR RAIL.

    2.1.4.2. Mission de la MOBIRAIL

    La mission de MOBIRAIL se résume en des points suivants :

    · Organiser la circulation se train courrier, de train courrier mixte voyageur, marchandise, navire et de bus pour assurer le transport des voyageurs, leurs bagages et leurs marchandises.

    · Définir la politique de transport des passagers et de leurs marchandises

    · Diffuser l'information en rapport avec le voyage, les activités, les réservations et les modes de transport.

    · Améliorer les méthodes d'acceptation, d'embarquement, d'acheminement, des changements et d'accueil,

    · Organiser et coordonner l'activité de la consigne voyageuse sur la vente de titre de voyage, l'acceptation de bagage et le chargement de bagage,

    · Attirer la clientèle vers une mobilité sur le rail par l'établissement de l'horaire rigoureux, les conforts pendant les voyages (sécurité).

    2.1.4.3. Organisation de la MOBIRAIL

    L'organisation structurale et fonctionnelle de MOBIRAIL est composée de :

    Ø La direction centrale Mobirail

    Ø Département d'exploitation Mobirail

    Ø Quatre divisions qui sont :

    · Division administrative et financière

    · Division d'acheminement et litige ;

    · Division promotion voyageur ;

    · Division bagages, colis, billetterie.

    2.1.4.4. Organigramme

    Figure 2. 4 Organigramme de la direction MOBIRAIL

    2.2. MODELISATION METIER

    2.2.1. Analyse du processus de réservation et achat des titres de voyage

    Le processus commence lorsque le client désireux de voyager tel train programmé. Il existe des jours prévus pour la réservation, le client s'amène muni de sa carte d'identité pour demander une réservation.

    Le client est accueilli par les agents marketing qui doivent l'orienter devant le guichet. Le guichetier a besoin des renseignements suivant de la part du client qu'il doit mentionner sur un document appelé manifeste : le nom et le prénom, le sexe, N° carte d'Id, N° cellulaire, destination ; signature, N°INRB, N°d'ordre.

    Apres cette opération on remet au client un jeton d'assurance marquant le n° de sa voiture et classe de préférence. Il se présente ainsi aux agents de marketing pour lui fournir des renseignements utiles concernant la vente des billets, sur le voyage et la franchise, le test COVID 19 et autres renseignement.

    Le jour de la vente, le client se présente muni de ses résultats de COVID 19 en premier lieu auprès de la police de frontière pour le contrôle de la température et du certificat COVID 19, puis passe par les agents marketing qui doivent vérifier sa réservation et ses identités et enfin l'orienté vers le guichet correspondant à sa classe et sa voiture lui réservé.

    Arrivé au guichet, le guichetier lui réclame les mêmes données lui remises le jour de la réservation. Apres la taxation, le client conclut son contrat de transport par le fait de la remise du montant lui exigé. Et le guichetier à son tour lui remet le titre de voyage comme preuve de contrat à la SNCC. Enfin le client est reçu par le service de marketing pour les formalités de départ.

    NB : Ces services demeurent encore manuels.

    2.2.2. Diagramme de contexte

    Conformément à notre démarche UP7, il est souvent recommandé d'établir en premier un schéma de contexte permettant de situer le domaine d'étude par rapport aux autres processus de l'entreprise.

    Cet ainsi que nous observons que notre domaine d'étude est en étroite relation avec deux processus importants tels que : le service de marketing, l'Institut Nationale des Recherches Biomédicales (INRB) et autres.

    Figure 2. 5 Schéma de contexte du domaine d'étude

    2.2.3. Diagramme d'activité

    Le diagramme d'activité est l'un des diagrammes comportementaux UML, il donne une vision des enchaînements des activités propres à une opération ou à un cas d'utilisation. Il permet aussi de représenter les flots de contrôle et les flots de données. Dans cette partie nous allons donner un enchainement général de l'activité menée par chaque acteur et des relations dans le processus étudier.

    2.2.3.1. Identification des acteurs métier

    Nous pouvons identifier les acteurs suivants :

    · Le client : le client est une personne qui a accepté de voyager par le chemin de fer. Il passe sa réservation et conclut un contrat de transport par le remise d'un montant lui exigé.

    · La consigne voyageuse : c'est un agent, travaillant à la consigne voyageur, un service qui s'occupe de la réservation et la vente des titres de transport.

    · La police frontière : c'est aussi un agent chargé de contrôler la température et aussi le certificat COVID 19.

    · Le service marketing : c'est un agent du service de marketing délégué pour être en contact direct avec la clientèle. Attirer les clients, les orienter...

    2.2.3.2. Diagramme d'activité

    Figure 2. 6 Diagramme d'activité1 (processus réservation)

    Figure 2. 7 Diagramme d'activité 2 (processus conclure contrat)

    2.2.4. Diagramme de classe métier

    Les concepts métiers correspondent aux informations créées, transformées ou manipulées par les acteurs du domaine. Ils y retrouvent le vocabulaire de leur métier. Dans cette partie nous allons tout d'abord inventorier les concepts métier utilisés dans le processus de réservation et vente de titre de transport et ensuite élaborer le diagramme de classe métier.

    2.2.4.1. Identification des concepts métier

    Voici donc quelques concepts utilisés dans le métier :

    · Titre devoyage : c'est un document qui prouve le contrat de transport entre le client et la SNCC

    · Contrat de transport : c'est une prévue du contrat de transport du client a la SNCC.

    · Franchise : c'est une location que donne la SNCC à tous ses voyageurs qui veulent emporter des bagages. La franchise est d'au plus 30kg pour les classe de luxe, 1ère classe et 2ème classe et 20 kg pour les voyageurs de 3ème classe.

    · Classe : ce sont des catégories des voitures ayant des particularités différentes. En distingue classes : première de luxe, première ordinaire, deuxième classe, troisième classe compartimentée, quatrième classe ordinaire.

    · Voiture : c'est un compartiment attaché à une locomotive. Il sert à transporter des passagers et autre objet. Les voitures sont reparties en classe.

    · Jeton : c'est une prévue de réservation que le guichetier fourni au client après sa réservation.

    · Guichet : c'est une structure de la consigne voyageuse ou s'effectuent la réservation de place et la vente de titre de transport.

    · Réservation : la réservation est l'attribution écrite d'une place d'un voyageur qui doit acheter son titre de voyage en bonne et due forme.

    · Programme : c'est une prévision du trafic voyageurs, un programme est constitué de : le train, la date de départ, le vente, l'heure et la destination.

    · Train : convoi ferroviaire constitue d'au moins une locomotive et de des voitures.

    · Client : le client est une personne qui a accepté de voyager par le chemin de fer.

    · Guichetier : agent chargé d'enregistrer les clients qui viennent réserver les places et de vendre les TT.

    · Agentmarketing : c'est un agent du service de marketing délégué pour être en contact direct avec la clientèle. Attirer les clients, les orienter...

    · Policefrontalière : c'est aussi un agent chargé de contrôler la température et aussi le certificat COVID 19.

    2.1.1.1. 2.2.4.2. Diagramme de classe métier

    Figure 2. 8 Diagramme des classes du domaine

    2.1.1. 2.2.5. Diagnostique du processus

    Les méthodes employées au sein du service de réservation et vente de titre de de transport à la S.N.C.C, sont aussi des bonnes pratiques de gestion de vente et réservation tels que l'ordonnancement des activités.

    La S.N.C.C ayant des difficultés dans son fonctionnement, avec la vétusté des infrastructures ferroviaires, utilise des stratégies moindre et une vitesse commerciale non conforme, utilise la stratégie des moindres valeurs : la fidélisation de sa clientèle, innovation...

    En outre nous avons constaté quelques failles telles que :

    · Encombrement des archives à la réservation.

    · La longueur du processus qui occasionne parfois d'encombrement des personnes à l'agence.

    · La fraude, tricherie due une manque de précision parfois occasionnée par le nombre exorbitant des clients.

    · La SNCC jusqu'alors demeure archaïque par rapport à l'utilisation des technologies, ce qui rend longs certains processus et ne lui permet pas d'atteindre un grand nombre du public.

    · Le manque de visibilité de notoriété : les feedback de la clientèle ainsi que la visibilité de l'entreprise sont des éléments importants pour la vie de l'entreprise.

    L'informatique dans toutes ses variances est venue à la rescousse pour aider les organisations à augmenter leurs profits tout en minimisant les couts au travers de l'automatisation des processus. C'est ainsi que comme proposition, nous souhaitons l'informatisation du processus de réservation et vente des titres de transport en mettant en place une application pouvant permettre aux clients d'effectuer leur réservation et acheter leur titre de voyage n'importe où et en temps réel, tout comme aux agents d'avoir une vision exacte des clients afin de mieux faire leurs suivi.

    Conclusion partielle

    Dans ce chapitre il a été question de présenter le système d'information étudié. Nous avons présenté la Société Nationale de chemin de fer du Congo d'une manière générale. Ensuite nous avons effectué une modélisation métier sur le processus de réservation et de vente de titre de transport. Et nous avons jeté l'ancre en parlant du diagnostic du système existant et en donner une proposition de solution face aux difficultés rencontrées.

    ANALYSE ET CONCEPTION DU NOUVEAU SYSTEME Safari.net.

    INTRODUCTION

    Dans ce chapitre nous allons procéder à la conception du nouveau système en passant par une analyse des fonctionnalités du système, l'identification des exigences fonctionnelles et non fonctionnelles.

    3.1. EXIGENCES FONCTIONNELLES

    3.1.1. SPECIFICATION DES EXIGENCES FONCTIONNELLES

    Les exigences fonctionnelles sont des contraintes obligatoires pour le fonctionnement du système à implémenter. Voici donc les fonctionnalités issues des besoins informatisables des utilisateurs:

    · Conclure contrat : cette fonctionnalité permettra au client de conclure le contrat de transport par le fait d'un paiement du montant lui exigé.

    · Demander réservation place : cette fonctionnalité permet au client de se réserver une place pour programme donné.

    · Se renseigner : cette fonctionnalité permettra à l'administrateur de modifier, ajouter, supprimer, rechercher un programme.

    · Enregistrer réservation : cette fonctionnalité permettra à l'administrateur comme à un agent de consulter les réservations, d'annuler ou modifier.

    · Enregistrer contrat : cette fonctionnalité permettra à l'administrateur comme à un agent de consulter les contrats des clients, d'annuler ou modifier.

    3.1.2. ELABORATION DU DIAGRAMME DES CAS D'UTILISATIONS

    À partir du diagramme d'activité et de la connaissance des besoins des acteurs, nous élaborons une vision générale des cas d'utilisation du futur système en produisant le un diagramme de cas d'utilisation système.

    3.1.2.1. Identification des acteurs

    Nous avons recensé deux acteurs qui auront à interagir avec le nouveau système. Voici ci-dessous ces différents acteurs :

    · Le client : c'est une personne qui utilise le système pour effectuer une réservation par laquelle il pourra plus tard conclure un contrat de transport moyennant un paiement.

    · La consigne : c'est une personne employé à une des agences. Il pourra donc consulter, modifier, annuler un contrat ou une réservation.

    3.1.2.2. Elaboration du diagramme des cas d'utilisation

    Figure 3. 1 Diagramme cas d'utilisation système 1

    3.2. ANALYSE DES CAS D'UTILISATION

    3.2.1. ELABORATION DU DIAGRAMME DES CAS D'UTILISATION

    À partir du premier diagramme de cas d'utilisation élaboré dans la partie des exigences fonctionnelles qui ne regroupe que des fonctionnalités purement métier, il est possible d'affiner maintenant l'analyse des différents cas. Cette analyse conduit à ajouter d'autres cas d'utilisation informatiques et différents acteurs.

    Figure 3. 2 Diagramme de cas d'utilisation système avec cas d'utilisation informatique

    3.2.2. DESCRIPTION DES CAS D'UTILISATION

    Dans cette partie nous allons poursuivre notre analyse par la description des différents cas d'utilisation. Pour le cadre de ce travail nous allons effectuer la description des cas d'utilisation suivants :

    · Cas 1 : Consulter programme ;

    · Cas 2 : Conclure contrat ;

    · Cas 3 : S'authentifier ;

    · Cas 4 : Gérer réservation place ;

    · Cas 5 : Créer compte ;

    Pour chaque cas d'utilisation, les sous-activités suivantes de l'activité « Analyse des cas d'utilisation » sont réalisées :

    ï Description du cas d'utilisation

    ï Élaboration du diagramme de séquence

    ï Élaboration d'une maquette pouvant représenter la composition des différentes IHM

    ï Élaboration du diagramme de classe

    1. Cas d'utilisation 1 : « Créer compte »

    Figure 3. 3 Description textuelle du CU Créer compte

    Cas d'utilisation 1 : « Créer compte »

    Objectif : permettre à un internaute de pouvoir s'inscrire au système au système.

    Acteur concerné : internaute

    Auteur : Daniel MBAYA MUSAKA

    Date: 28 Septembre 2021 (première version)

    Pré-condition : aucun

    Scenario nominal

    1. L'internaute demande l'interface d'inscription

    2. Le système lui affiche l'interface

    3. L'internaute saisit les informations requises et valide le formulaire

    4. Le système vérifie les données entrées par l'utilisateur

    5. Le système enregistre un nouveau client

    Scenario alternatif

    4. Erreur détectée dans la saisie

    4.1. Le système réaffiche le formulaire de saisie en indiquant les erreurs détectées.

    · Le client corrige les erreurs.

    · Le cas d'utilisation reprend au point 3 du scénario nominal.

    Scenario d'exception

    4. L'utilisateur a validé un formulaire vide

    4.1. Le système réaffiche le formulaire de saisie en indiquant les champs vides détectés.

    · Le cas d'utilisation reprend au point 3 du scénario nominal.

    Post-condition : une session est ouverte au user

    Figure 3. 4 Diagramme de séquence du CU créer compte

    Figure 3. 5 Interface IHM du CU Créer compte

    Figure 3. 6 Diagramme des classes participantes Créer compte

    2. Cas d'utilisation 2 : « S'authentifier »

    Tableau 3. 1 Description textuelle du CU s'authentifier

    Cas d'utilisation 2 : « S'authentifier »

    Objectif : permettre au user (le client, l'administrateur et l'agent) de pouvoir s'authentifier au système.

    Acteur concerné : user

    Auteur : Daniel MBAYA MUSAKA

    Date: 27 Septembre 2021 (première version)

    Pré-condition : l'user a un compte existant

    Scenario nominal

    1. L'user demande l'interface de connexion

    2. Le système lui affiche l'interface

    3. L'user saisit les informations requises et valide le formulaire

    4. Le système vérifie les données entrées par l'user

    5. Le système lui ouvre une session

    Scenario alternatif

    5. Erreur détectée dans la saisie

    5.1. Le système réaffiche le formulaire de saisie en indiquant les erreurs détectées.

    · Le client corrige les erreurs.

    · Le cas d'utilisation reprend au point 4 du scénario nominal.

    Scenario d'exception

    5. L'utilisateur a validé un formulaire vide

    5.1. Le système réaffiche le formulaire de saisie en indiquant les champs vides détectés.

    · Le cas d'utilisation reprend au point 3 du scénario nominal.

    Post-condition : une session est ouverte au user

    Figure 3. 7 Diagramme de séquence s'authentifier

    Figure 3. 8Maquette du CU s'authentifier

    Figure 3. 9 Diagramme des classes participante s'authentifier

    3. Cas d'utilisation 3 : « Consulter programme »

    Tableau 3. 2 Description textuelle CU consulter programme

    Cas d'utilisation 3 : « Consulter programme »

    Objectif : permettre à un internaute ou client de pouvoir consulter le programme

    Acteur concerné : Client

    Auteur : Daniel MBAYA MUSAKA

    Date: 27 Septembre 2021 (première version)

    Pré-condition : aucune

    Scenario nominal

    1. Le client demande le catalogue ou interface des programmes

    2. Le système lui affiche l'interface

    Scenario alternatif : aucun

    Post-condition : programme consulté

    Figure 3. 10 Diagramme de séquence consulter programme

    Figure 3. 11Maquette du CU consulter programme

    Figure 3. 12 Diagramme de classe participantes du CU consulter programme

    4. Cas d'utilisation 4 : « Gérer réservation place »

    Tableau 3. 3 Description textuelle du DCU gérer réservation place

    Cas d'utilisation 4 : « Gérer réservation place »

    Objectif : permettre à un client de réserver ou plusieurs place ou annuler une réservation, par rapport à un programme donné de départ du train.

    Auteur concerné : Client

    Pré-condition : le client a choisi un programme sur le catalogue programme et s'est authentifié

    Scenario nominal

    a) Effectuer réservation

    1. Le client demande l'interface de réservation de place

    2. Le système lui affiche l'interface

    3. Le client saisie les informations requises

    4. Le client valide les informations

    5. Le système vérifie si les informations requises sont correctes

    6. Le système enregistre la réservation et affiche le résultat de la réservation

    b) Annuler réservation

    1. Le client annule la réservation

    2. Le système demande la confirmation

    3. Le client confirme l'annulation

    4. Le système annule la réservation

    Scenario alternatif

    a. 5) Erreur détectée dans la saisie

    · Le système réaffiche le formulaire de saisie en indiquant les erreurs détectées.

    · Le client corrige les erreurs.

    · Le cas d'utilisation reprend au point 4 du scénario nominal.

    1. 3) L'administrateur annule la confirmation

    · Le cas d'utilisation reprend à l'étape 1 du scenario nominale c

    Scenario d'exception

    5. L'utilisateur a validé un formulaire vide

    5.1. Le système réaffiche le formulaire de saisie en indiquant les champs vides détectés.

    · Le cas d'utilisation reprend au point 3 du scénario nominal.

    Post-condition : réservation place effectué

    Figure 3. 13 Diagramme de séquence du CU gérer réservation place

    Figure 3. 14 Maquette du DCU gérer réservation place

    Figure 3. 15 Diagramme des classes participantes du CU gérer réservation place

    5. Cas d'utilisation 5 : « Conclure contrat »

    Tableau 3. 4 Description textuelle CU conclure contrat

    Cas d'utilisation 5 : « Conclure contrat »

    Objectif : permettre au client de pouvoir conclure un contrat de transport moyennant le paiement

    Acteur concerné : Client, système de paiement

    Auteur : Daniel MBAYA MUSAKA

    Date: 27 Septembre 2021 (première version)

    Pré-condition : le client a déjà fait une réservation

    Scenario nominal

    1. Le client demande le formulaire de paiement

    2. Le système lui affiche le formulaire

    3. Le client remplit le formulaire

    4. Le client valide le formulaire

    5. Le système vérifie les informations

    6. Le système interroge le système de paiement pour récupérer  les informations

    7. Le système de paiement renvoie les données au système

    8. Le système enregistre les informations et génère le code au client

    Scenario alternatif 

    5. A) L'utilisateur (client) a inscrit des données incorrectes

    · Le système affiche un message d'erreur

    · Le cas d'utilisation reprend à l'étape 3 du scénario nominal

    6. A) Le système de paiement renvoi un message d'erreur du aux données incorrect

    · Le système affiche un message d'erreur

    · Le cas d'utilisation reprend à l'étape 3 du scénario nominal

    Scenario alternatif 

    5. A) L'utilisateur (client) valide un formulaire vide

    · Le système affiche un message d'erreur

    · Le cas d'utilisation reprend à l'étape 3 du scénario nominal

    Post-condition : programme consulté

    Figure 3. 16 Diagramme de séquence conclure contrat

    Figure 3. 17 Maquette du CU conclure contrat

    Figure 3. 18 Diagramme de classes participantes conclure contrat

    3.3. SYNTHESE D'ANALYSE

    3.3.1. ÉLABORATION DU DIAGRAMME DE CLASSE RECAPITULATIF

    Figure 3. 19 Diagramme de classe récapitulatif

    3.3.2. ÉLABORATION DE LA MATRICE DE VALIDATION

    La matrice de validation permet de vérifier que l'analyse du cas est complète, c'est-à-dire que tous les cas d'utilisation métier ont été intégrés. Elle permet aussi d'établir une correspondance entre les cas d'utilisation métier et les cas d'utilisation d'analyse.

    Matrice de validation

    Cas d'utilisation métier

    Cas d'utilisation d'analyse

    Demander réservation

    Gérer réservation

    Conclure contrat

    Conclure contrat

    Se renseigner

    Consulter programme

    Enregistrer réservation

    Gérer réservation

    Enregistrer contrat

    Conclure contrat

    Créer titre

    Gérer titre

     

    Créer compte

     

    S'authentifier

    Figure 3. 20 Matrice de validation

    3.4. CONCEPTION

    3.4.1. ÉLABORATION DES DIAGRAMMES DE SEQUENCE TECHNIQUE

    1. Cas d'utilisation 1 : « Consulter programme »

    Figure 3. 21 Diagramme d'interaction du CU consulter programme

    2. Cas d'utilisation 2 : « Conclure contrat»

    Figure 3. 22 Diagramme d'interaction conclure contrat

    1. 3. Cas d'utilisation 3 : « S'authentifier»

    Figure 3. 23 Diagramme d'interaction s'authentifier

    4. Cas d'utilisation 4 : « Créer compte»

    Figure 3. 24 Diagramme d'interaction général gérer compte

    5. Cas d'utilisation 5 : «Gérer réservation place»

    Figure 3. 25 Diagramme d'interaction saisir info réservation

    Figure 3. 26 Diagramme d'interaction sélectionner réservation

    Figure 3. 27 Diagramme d'interaction gérer réservation place

    3.4.2. ÉLABORATION DES DIAGRAMMES DE CLASSE TECHNIQUE

    1. Cas d'utilisation 1 : «Consulter programme»

    Figure 3. 28 Diagramme de classe de conception consulter programme

    2. Cas d'utilisation 2 : «Conclure contrat»

    Figure 3. 29 Diagramme de classe de conception conclure contrat

    3. Cas d'utilisation 3 : «S'authentifier»

    Figure 3. 30 Diagramme de classe de conception s'authentifier

    4. Cas d'utilisation 4 : «Gérer réservation place»

    Figure 3. 31 Diagramme de classe de conception gérer réservation place

    5. Cas d'utilisation 5 : «Gérer contrats clients»

    Figure 3. 32 Diagramme de classe de conception gérer contrat client

    3.4.3. ÉLABORATION DU DIAGRAMME DE NAVIGATION GENERALE

    Figure 3. 33 Diagramme de navigation générale

    3.4.4. ÉLABORATION DU DIAGRAMME DE PAQUETAGE

    Un paquetage est un regroupement d'éléments de modèle et de diagrammes. Il permet ainsi d'organiser des éléments de modélisation en groupes. Il peut contenir tout type d'élément de modèle : des classes, des cas d'utilisation, des interfaces, des diagrammes... et même des paquetages imbriqués (décomposition hiérarchique)(AUDIBERT, 2009).

    Un paquetage regroupe des éléments de la modélisation appelés aussi membres, portant sur un sous-ensemble du système. Le découpage en paquetage doit traduire un découpage logique du système à construire qui corresponde à des espaces de nommage homogènes(Gabay, 2008).

    Nous allons catégoriser nos paquetages en regroupant types des classes issues des diagrammes des classes participantes pour chaque cas d'utilisation

    1. Dialogue : paquetage regroupant l'ensemble des classes permettant la gestion des dialogues de l'application :

    · Dialogue Catalogue Programmes.

    · Dialogue Conclure contrat.

    · Dialogue Résultat contrat.

    · Dialogue Accueil.

    · Dialogue Formulaire d'authentification.

    · Dialogue Créer compte.

    · Dialogue Gérer programme.

    · Dialogue Formulaire réservation.

    · Dialogue Résultat réservation.

    · Dialogue Gérer réservations client.

    · Dialogue Gérer contacts client.

    2. Contrôleur : paquetage regroupant l'ensemble des classes permettant la gestion des contrôleurs de l'application :

    · CTRL Catalogue Programmes.

    · CTRL Contrat.

    · CTRL Créer compte.

    · CTRL Gérer programme.

    · CTRL Connexion.

    · CTRL Reserv.

    · CTRL GérerRéserv. client.

    · CTRL GérerContacts client.

    3. Entité : paquetage regroupant l'ensemble des classes métiers de l'application. Et ces classes seront regroupées en 3 :

    a) Gestion des administrés

    · Programme.

    · LigneProgramme.

    · Place.

    b) Gestion des utilisateurs

    · User.

    · Client.

    · Administrateur.

    · Agent.

    c) Gestion des activités

    · Réservation.

    · Contrat_transport.

    Figure 3. 34 Diagramme de package

    3.4.5. ÉLABORATION DU MODELE LOGIQUE

    3.4.5.1. Règles de passage en modèle logique de données (MLD)

    A partir du diagramme des classes récapitulatifs nous pouvons déduire un modeler logique qui est un modèle plus proche de l'implémentation. Le passage du diagramme de classes (entités) en modèle logique se fait sur base de certains réglés, appelées règles de transformations. Voici donc ces différentes règles :

    1. Règles des classes

    · Toutes les classes deviennent des tables en MLD.

    · Les attributs de la classe deviennent des champs de la table.

    · L'identifiant de la classe devient la clé primaire de la table.

    2. Règles des relations

    a. Relation 1 à 1

    Il existe deux règles pour transformer la relation 1 à 1 :

    · La fusion des deux classes qui participent à la relation si et seulement si les deux classes sont issues d'une même fonctionnaliste. Et le nom de la nouvelle classe sera la concaténation de deux classes en relation.

    Avantage : diminution des accès à base des données

    · La clé primaireissue de la classe de la première fonctionnalité migre vers la classe issue de la deuxièmefonctionnalité, elle devient ainsi la cléétrangère dans la nouvelle table.

    b. Relation 1 a plusieurs

    Dans ce type de relation la transformation se fait en migrant la clé primaire issu de la classe parent (àmultiplicité maximal de 1) vers la classe enfant (àmultiplicité maximal de *), l'attribut ainsi ajout joue le rôle de la cléétrangère

    c. Relation plusieurs à plusieurs

    Il existe deux type de relation plusieurs à plusieurs, une relation 2-tiers et une relation N-tiers. Dans les deux cas l'association déduit une classe-association qui aura comme clé primaire la concaténation des clés primaires des classes qu'elle relie. La clé primaire de la nouvelle table issue de la classe-association dérive de la concaténation de deux clés primaire des classes en association.

    d. Règle de la relation réflexive

    On crée un nouvel attribut dans la table de transformation pour gérer les deux relations.

    e. Règle des agrégations

    Elle est transformée comme une classe association. La relation devient la table et la clé primaire est la concaténation des deux clés primaires des classes associations.

    f. Règle de la composition

    Pour la relation de composition on ajoute la clé primaire de la table déduite de la classe composite ou de l'agrégatà la clé primaire déduite de la classe composante. L'attribut ainsi ajouté joue le rôle de la clé primaire et étrangère.

    g. Règles d'héritage

    · Transformation par distinction : on fait appel à l'héritage exclusif dont la classe abstraite n'existe pas.

    · Transformation descendante : elle fait appel à la contrainte de partition. C'est-à-dire l'héritage non complet. On parle de la spécialisation (la surclasse est une classe abstraite. Ses instances migrent dans la sous-classe).

    · La transformation ascendante : elle fait appel à la contrainte de totalité. C'est-à-dire l'héritage complet. On parle de la généralisation.

    3.4.5.2. Transformation en modèle logique

    1) Programme (Id, Date,#Admin, #client)

    2) LigneProgramme (#Idpro, #Idcl, DateDepart, destination, HeureDepart)

    3) Client (Id, N° CI, Contact, Sexe)

    4) Reservation (Id,dateReserv, depart,dest, Classe, nbrpass, #client)

    5) Place (ID, type, #reserv)

    6) User (Id, mail, mdp, nom, prenom, pseudo, #admin,#agent,#client)

    7) Admin (matricule)

    8) Agent (matricule, grade)

    9) ContratTrans (Id, datePaiement, montant, #reserv, #agent, #client)

    CHAPITRE IV : IMPLEMENTATION ET VALIDATION DES EXIGENCES DES UTILISATEURS

    4.1. REALISATION DES CHOIX TECHNIQUES

    Pour répondre aux contraintes de performances du système telles qu'attendus par les utilisateurs, notre choix technique portera ainsi sur une architecture client/serveur, c'est-à-dire d'un cote un client sollicitant des services et de l'autre côté un serveur qui offre des services pour la conception du site web. En effet, comme précisé dans la présentation des architectures, les temps de réponse sont meilleurs du fait de l'abstraction introduite par la couche service. Le coût des appels aux objets métiers à partir de la couche service est très faible.

    4.1.1. Architecture logicielle

    Nous avons opté pour l'architecture de type 3-tiers. Cette architecture vient résoudre les défauts de l'architecture a deux tiers tout en conservant ses avantages, le but était de trouver une architecture plus évoluée, facilitant les forts déploiements moindre cout, ainsi la réponse est apportée par une architecture distribuée, en utilisant un poste client simple communicant avec le serveur par le biais d'un protocole standard.

    L'architecture trois tiers sépare l'application à 3 niveaux de service distincts, et qui s'appuient sur les 3 principes précédents :

    · Niveau de la présentation et des traitements locaux. Qui sont prise en charge au poste du client.

    · Niveau de traitements applicatifs globaux. Ils sont pris en charge par le service ou la logique applicative.

    · Niveau des données (base de données). Ces données sont prises en charge par un SGBD (Système de Gestion des Bases de Données).

    4.1.2. Langage de programme

    Nous avons opté pour l'utilisation des langages et de technologie ci-dessous

    · PHP (Hypertext Preprocessor) pour produire des pages web dynamiques,

    · HTML (HyperText Markup Language) pour produire des pages web statiques, et CSS pour le style,

    · JavaScript pour les pages web interactives,

    · SQL (Structured Query Language) pour l'interrogation de la base de données.

    · Le Framework bootstrap

    4.1.3. Plateforme de développement

    Pour notre cas la plateforme choisie est le XAMPP Control Panel v3.2.4. Elle permet de faire fonctionner localement (sans se connecter à un serveur externe) des scripts PHP. Il est une plateforme de développement Web comprenant deux serveurs (un serveur web Apache et un serveur de bases de données MySQL), un interpréteur de script (PHP), ainsi qu'une administration SQL (PhpMyAdmin). Il permet donc d'installer en une seule fois tout le nécessaire au développement local du PHP.

    4.1.4. Système de gestion des bases des données

    Le système de base de données choisi, MySQL, est l'oeuvre d'une société suédoise MySQL AB. Elle a été fondée par David Axmark, Allan Larsson et Michael Widenius. MySQL est un serveur de bases de données relationnelles SQL, développé dans un souci de performances élevées en lecture. Il fonctionne sur de nombreux systèmes d'exploitation différents incluant Linux, Mac OS X, NetWare, Solaris Windows 95, 98, NT, 2000, XP, Vista, Windows 7-10, etc. Le couple PHP/MySQL est très utilisé par les sites web et proposé par la majorité des hébergeurs.

    4.2. IMPLEMENTATION DE LA BASE DES DONNEES

    4.2.1. MODELE LOGIQUE DES DONNEES

    Tableau 4. 1 tableau récapitulatif du modèle logique

    TABLES

    ATTRIBUTS

    Programme

    Id, Date, #Admin, #client

    LigneProgramme

    #Idpro, #Idcl, DateDepart, destination, HeureDepart

    Client

    Id, N° CI, Contact, Sexe

    Reservation

    Id, dateReserv, depart, dest, Classe, nbrpass, #client

    Place

    ID, type, #reserv

    Admin

    matricule

    Agent

    matricule, grade

    ContratTrans

    Id, datePaiement, montant, #reserv, #agent, #client

    User

    Id, mail, mdp, nom, prenom, pseudo, #admin,#agent,#client

    1.1.1. 4.2.2. REQUETTES DES NOUVELLES TABLES

    Tableau 4. 2 Tableau des requêtes

    TABLES

    ATTRIBUTS

    Programme

    CREATE  TABLE PROGRAMME(ID  INT  NOT NULL PRIMARY KEY AUTO_INCREMENT, DATE_PROG  DATETIME, n_ADMIN  INT  NOT NULL, n_CLIENT  INT  NOT NULL, FOREIGN KEY (n_ADMIN) REFERENCES admin(MATRICULE), FOREIGN KEY (n_CLIENT) REFERENCES CLIENT (ID)) ENGINE=INNODB

    LigneProgramme

    CREATE  TABLE LIGNEPROGRAMME(ID  INT  NOT NULL, programme  INT  NOT NULL, client  INT  NOT NULL, DATE_DEPART  DATETIME, DEST  CHAR(20), HEURE_DEPART  CHAR(10), FOREIGN KEY(programme) REFERENCES programme(ID), FOREIGN KEY(client) REFERENCES client(ID)) ENGINE=INNODB

    Client

    CREATE  TABLE CLIENT(ID  INT  NOT NULL PRIMARY KEY AUTO_INCREMENT, NUM_CARTEID  CHAR(20)  NOT NULL,CONTACT  CHAR(20)  NOT NULL, SEXE  CHAR(1)  NOT NULL) ENGINE=INNODB

    Reservation

    CREATE  TABLE RESERVATION(ID  INT  NOT NULL PRIMARY KEY AUTO_INCREMENT, depart  CHAR (25)  NOT NULL, dest  CHAR (30)  NOT NULL ,SEXE  CHAR(1)  NOT NULL , CLASSE  CHAR (30)  NOT NULL , NOMBRE_PASS  INT  NOT NULL , NOMBRE_ENFANT  INT  NOT NULL , DATE_RESERV  DATETIME  NOT NULL, CLIENT  INT  NOT NULL , FOREIGN KEY (CLIENT) REFERENCES CLIENT(ID)) ENGINE=INNODB

    Place

    CREATE  TABLE PLACE(ID  INT  NOT NULL PRIMARY KEY AUTO_INCREMENT, TYPE  CHAR(10)  NOT NULL, RESERV  INT  NOT NULL, FOREIGN KEY(RESERV) REFERENCES reservation(ID)) ENGINE=INNODB

    Admin

    CREATE  TABLE ADMIN(MATRICULE  INT  NOT NULL PRIMARY KEY AUTO_INCREMENT) ENGINE=INNODB

    Agent

    CREATE  TABLE AGENT(MATRICULE  INT  NOT NULL PRIMARY KEY AUTO_INCREMENT, GRADE  CHAR (15)  NOT NULL UNIQUE) ENGINE=INNODB

    ContratTrans

    CREATE  TABLE CONTRAT(ID  INT  NOT NULL PRIMARY KEY AUTO_INCREMENT, DATE_PAIE  DATETIME, MONTANT  FLOAT  NOT NULL, NUM_CARTE  CHAR(10)  NOT NULL UNIQUE, RESERV  INT  NOT NULL, n_CLIENT  INT  NOT NULL, n_AGENT  INT  NOT NULL, FOREIGN KEY (n_AGENT) REFERENCES agent(MATRICULE), FOREIGN KEY (RESERV) REFERENCES RESERVATION(ID) , FOREIGN KEY (n_CLIENT) REFERENCES CLIENT (ID)) ENGINE=INNODB

    User

    CREATE  TABLE _USER(ID  INT  NOT NULL PRIMARY KEY AUTO_INCREMENT, NOM  CHAR (30)  NOT NULL ,MAIL  CHAR(20)  NOT NULL , PRENOM  CHAR (27)  NOT NULL , MDP  CHAR (50), PSEUDO  CHAR (12)  NOT NULL , admin  INT  NOT NULL, agent  INT  NOT NULL, client  INT  NOT NULL , FOREIGN KEY (admin) REFERENCES admin(MATRICULE), FOREIGN KEY (client) REFERENCES client(ID) , FOREIGN KEY (agent) REFERENCES agent (MATRICULE)) ENGINE=INNODB

    1.1. 4.3. PRESERNTATION DES IHMs

    Dans cette partie nous allons présenter les interfaces hommes-machines des quelques cas d'utilisation ci-dessous :

    · Cas d'utilisation s'authentifier

    · Cas d'utilisation créer compte

    · Cas d'utilisation conclure contrat

    4.3.1. Cas d'utilisation s'authentifier

    Figure 4. 1 IHM du cas d'utilisation s'authentifier

    <?php

    session_start();

    if(isset($_POST['myMail']) &&isset($_POST['myPass']))

    {

    // connexion à la base de données

    include('../Data/DBConnect.php');

    // importation de la classe abonne

    include('../Metier/abonnes.php');

    $mail_user = htmlspecialchars($_POST['myMail']);

    $pass_user = htmlspecialchars($_POST['myPass']);

    if($mail_user !== ""&&$pass_user !== "")

    {

    $user = newabonnes();

    $count = $user->selectAllItem($mail_user,$pass_user);

    if($count!=0) // nom d'utilisateur et mot de passe correctes

    {

    $data_user = $user->selectAll_data_by_Item($mail_user);

    $data_user = $data_user->fetch();

    $username = $data_user["username"];

    $pseudo = $data_user["pseudo"];

    $mail = $data_user["mail"];

    $_SESSION['username'] = $username;

    $_SESSION['pseudo'] = $pseudo;

    $_SESSION['mail'] = $mail;

    header('Location:reservation.identification.php');

    }

    else

    {

    echo'identifiants incorrect';

    }

    }

    else

    {

    echo'Veuillez remplir tous les champs';

    }

    }

    else

    {

    echo'eurreur';

    }

    ?>

    Figure 4. 2 Code d'authentification

    4.3.2. Cas d'utilisation créer compte

    Figure 4. 3 IHM du cas d'utilisation créer compte

    <?php

    include('../Metier/abonnes.php');

    if (isset($_POST['nom']) &&isset($_POST['pseudo']) &&isset($_POST['mail']) &&isset($_POST['mdp']) &&isset($_POST['confir_mdp'])) {

    if(!empty($_POST['nom']) && !empty($_POST['pseudo']) && !empty($_POST['mail']) && !empty($_POST['mdp']) && !empty($_POST['confir_mdp']))

    //les variables

    $nom = htmlspecialchars($_POST['nom']);

    $pseudo = htmlspecialchars($_POST['pseudo']);

    $mail = htmlspecialchars($_POST['mail']);

    $mdp = htmlspecialchars($_POST['mdp']);

    $conf_mdp = htmlspecialchars($_POST['confir_mdp']);

    $max_size = 255;

    $max_size_pass = 8;

    if (mb_strlen($nom) <= $max_size) {

    if (mb_strlen($pseudo) <= $max_size) {

    if (mb_strlen($mdp) <= $max_size_pass&&mb_strlen($conf_mdp) <= $max_size_pass) {

    if (filter_var($mail, FILTER_VALIDATE_EMAIL)) {

    if ($mdp == $conf_mdp) {

    $user1 = newabonnes();

    $recove_mail = $user1->selectItem($mail);

    if ($recove_mail == 0) {

    $hash_mdp = sha1($mdp);

    $user1->addUser($nom,$pseudo,$mail,$mdp);

    $recove_name = $user1->selectItem($nom);

    echo$recove_name;

    // header('location:login.php');

    } else {

    $msg_mail = "Cette adresse est deja utilisé";

    }

    } else {

    $msg_mdp = "Les mots de passe ne sont pas identiques";

    }

    } else {

    $msg_email = "Votre email n'est pas valide!!";

    }

    } else {

    $msg_size_mdp = "Le mot de passe ne peut pas depasser 8 caractères";

    }

    } else {

    $msg_size = "Les caractères nes doivent pas depasser 255";

    }

    } else {

    $msg_size = "Les caractères nes doivent pas depasser 255";

    }

    }

    // else {

    // $msg = "Veuillez remplir tous les champs";

    // }

    ?>

    <!DOCTYPEhtml>

    <htmllang="en"><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">

    <metaname="viewport"content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <metaname="description"content="">

    <metaname="author"content="">

    <linkrel="icon"href="../icon/n.png">

    <linkhref="../style1/bootstrap.min.css"rel="stylesheet">

    <linkrel="stylesheet"href="../style1/style_login.css">

    <title>Nouveau compte</title>

    <linkhref="../style1/signin.css"rel="stylesheet">

    </head>

    <style>

    .msg_erro{

    color: red;

    }

    </style>

    <bodyclass="text-center">

    <formclass="form-signin"method="POST"action="">

    <imgsrc="../icon/n.png"alt=""class="rounded-circle"width="72"height="72"autofocus="">

    <!-- <img class="mb-4" src="style1/bootstrap-solid.svg" alt="" width="72" height="72"> -->

    <h1class="h3 mb-3 font-weight-normal">Créer votre compte</h1>

    <?phpif (isset($msg_mdp)) { echo"<p class='msg_erro'>".$msg_mdp."</p>";}?>

    <divclass="row">

    <divclass="col-md-6 mb-3">

    <labelfor="firstName">Nom</label>

    <inputtype="text"class="form-control"id="firstName"placeholder="Nom"name="nom"value="<?phpif(isset($msg_size)){echo$nom;} ?>"required="">

    <divclass="invalid-feedback">

    <?phpif (isset($msg_size)) { echo"<p class='msg_erro'>".$msg_size."</p>";}

    elseif (isset($msg_caract)) { echo"<p class='msg_erro'>".$msg_size."</p>";}

    ?>

    </div>

    </div>

    <divclass="col-md-6 mb-3">

    <labelfor="lastName">Pseudo</label>

    <inputtype="text"class="form-control"id="lastName"placeholder="Pseudo"name="pseudo"value="<?phpif(isset($msg_size)){echo$pseudo;} ?>"required="">

    <divclass="invalid-feedback">

    <?phpif (isset($msg_size)) { echo"<p class='msg_erro'>".$msg_size."</p>";}

    elseif (isset($msg_caract)) { echo"<p class='msg_erro'>".$msg_size."</p>";}

    ?>

    </div>

    </div>

    </div>

    <divclass="input-mb2">

    <labelfor="inputEmail"class="sr-only">Adresse mail</label>

    <inputtype="email"id="inputEmail"class="form-control"placeholder="Email address"name="mail"required=""value="<?phpif(isset($msg_mail)){echo$mail;} ?>">

    <?phpif (isset($msg_mail)) { echo"<p class='msg_erro'>".$msg_mail."</p>";}?>

    </div>

    <divclass="input-mb2">

    <labelfor="inputPassword"class="sr-only">Mot de passe</label>

    <inputtype="password"id="inputPassword"class="form-control"name="mdp"placeholder="Password"required="">

    <?phpif (isset($msg_size_mdp)) { echo"<p class='msg_erro'>".$msg_size_mdp."</p>";}?>

    </div>

    <divclass="input-mb2">

    <labelfor="inputPassword"class="sr-only">Confimation mot de passe</label>

    <inputtype="password"id="inputPassword"class="form-control"name="confir_mdp"placeholder="Password"required="">

    <?phpif (isset($msg_size_mdp)) { echo"<p class='msg_erro'>".$msg_size_mdp."</p>";}?>

    </div>

    <buttonclass="btn btn-lg btn-primary btn-block"type="submit">Connexion</button>

    <pclass="mt-5 mb-3 text-muted">(c) 2020-2021</p>

    </form>

    </body>

    </html>

    Figure 4. 4 Codes source créer compte

    4.3.3. Cas d'utilisation conclure contrat

    Figure 4. 5 IHM du cas d'utilisation gérer réservation place (identification)

    <?php

    session_start();

    if($_SESSION['username'] !== ""){

    $user = $_SESSION['username'];

    // afficher un message

    require_once('../Metier/Reservation.php');

    require_once('../Metier/Client.php');

    require_once('../Metier/trajet.php');

    require_once('../Metier/Train.php');

    if (isset($_POST['nomClient']) &&isset($_POST['postnomClient']) &&isset($_POST['sexeClient'])

    &&isset($_POST['mailClient']) &&isset($_POST['telClient']) &&isset($_POST['adClient'])

    &&isset($_POST['numCarteClient']) &&isset($_POST['numInrbClient'])) {

    $nom_c = htmlspecialchars($_POST['nomClient']);

    $prenom_c = htmlspecialchars($_POST['postnomClient']);

    $sexe_c = htmlspecialchars($_POST['sexeClient']);

    $mail_c = htmlspecialchars($_POST['mailClient']);

    $tel_c = htmlspecialchars($_POST['telClient']);

    $ad_c = htmlspecialchars($_POST['adClient']);

    $numCarte_c = htmlspecialchars($_POST['numCarteClient']);

    $numInrb_c = htmlspecialchars($_POST['numInrbClient']);

    $max_size = 255;

    $max_size_num = 10;

    $max_size_tel = 20;

    if (mb_strlen($nom_c) <= $max_size) {

    if (mb_strlen($prenom_c) <= $max_size) {

    if (mb_strlen($numCarte_c) <= $max_size_num&&mb_strlen($numInrb_c) <= $max_size_num) {

    if (filter_var($mail_c, FILTER_VALIDATE_EMAIL)) {

    if (mb_strlen($tel_c) <= $max_size_tel) {

    $user1 = newClient();

    $recove_mail = $user1->selectItem($mail_c);

    $custom = newClient();

    $custom->addClient($nom_c,$prenom_c,$sexe_c,$numCarte_c,$tel_c,$mail_c,$ad_c,$numInrb_c);

    $recove_elements = $custom->selectAll_by_Item($mail_c);

    // echo count($recove_elements);

    // print_r($recove_elements);

    for ($i=0; $i<count($recove_elements) ; $i++) {

    $id = $recove_elements[$i]['Id'];

    }

    $_SESSION['ID'] = $id;

    header("location:reservation.info.php");

    } else {

    echo"Le numero ne doit pas depasser ".$max_size_tel." caractères";

    }

    } else {

    echo"Votre email n'est pas valide!!";

    }

    } else {

    echo"Le mot de passe ne peut pas depasser ".$max_size_num." caractères";

    }

    } else {

    echo"Les caractères nes doivent pas depasser ".$max_size;

    }

    } else {

    echo"Les caractères nes doivent pas depasser ".$max_size;

    }

    }

    }

    ?>

    Figure 4. 6 Codes source gérer réservation place (identification)

    Figure 4. 7 IHM du cas d'utilisation gérer réservation place (réservation)

    <?php

    session_start();

    if(isset($_SESSION['username'])){

    if($_SESSION['username'] !== ""){

    $user = $_SESSION['username'];

    require_once('../Metier/Reservation.php');

    require_once('../Metier/Client.php');

    require_once('../Metier/trajet.php');

    require_once('../Metier/Train.php');


    if (isset($_POST['ville']) &&isset($_POST['classe']) &&isset($_POST['nbPass'])

    &&isset($_POST['nbEnfant']) &&isset($_POST['idreserv']) &&isset($_POST['depart'])) {

    $idreserv = htmlspecialchars(isset($_POST['idreserv']));

    $depart = htmlspecialchars($_POST['depart']);

    $ville = htmlspecialchars($_POST['ville']);

    $class = htmlspecialchars($_POST['classe']);

    $nbpass = htmlspecialchars($_POST['nbPass']);

    $nbenf = htmlspecialchars($_POST['nbEnfant']);

    $reserv = newReservation();

    if (isset($_SESSION['ID'])) {

    $id_user_reserv = $_SESSION['ID'];

    // include('reservation.identification.php');

    $reserv->insertItem($depart,$ville,$class,$nbpass,$nbenf,$id_user_reserv);

    header('location:Result.reservation.php');

    }

    }

    }

    }

    ?>

    <!DOCTYPEhtml>

    <!-- saved from url=(0052)https://getbootstrap.com/docs/4.0/examples/checkout/ -->

    <htmllang="en"><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">

    <metaname="viewport"content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <metaname="description"content="">

    <metaname="author"content="">

    <linkrel="icon"href="https://getbootstrap.com/docs/4.0/assets/img/favicons/favicon.ico" rel="nofollow">

    <title>Reservation</title>

    <linkrel="canonical"href="https://getbootstrap.com/docs/4.0/examples/checkout/" rel="nofollow">

    <!-- Bootstrap core CSS -->

    <linkhref="../style1/bootstrap.min.css"rel="stylesheet">

    <!-- Custom styles for this template -->

    <linkhref="../style1/form-validation.css"rel="stylesheet">

    </head>

    <style>.a-width{width:60%; margin-left:20%;}.py-5{margin-top:2%;margin-bottom:2%;background:url("../img/home-bg.jpg"); border-radius:5px}</style>

    <bodyclass="bg-light">

    <navclass="navbar navbar-expand-lg navbar-dark bg-dark">

    <divclass="container-fluid">

    <aclass="navbar-brand"href="#"><iclass="fa fa-train"aria-hidden="true"></i><spanclass="logo"> Safari.net</span></a>

    <buttonclass="navbar-toggler"type="button"data-bs-toggle="collapse"data-bs-target="#navbarSupportedContent"aria-controls="navbarSupportedContent"aria-expanded="false"aria-label="Toggle navigation">

    <spanclass="navbar-toggler-icon"></span>

    </button>

    <divclass="collapse navbar-collapse"id="navbarSupportedContent">

    <ulclass="navbar-nav me-auto mb-2 mb-lg-0">

    <liclass="nav-item">

    <aclass="nav-link active"aria-current="page"href="#">Accueil</a>

    </li>

    <liclass="nav-item dropdown">

    <aclass="nav-link dropdown-toggle"href="#"id="navbarDropdown"role="button"data-bs-toggle="dropdown"aria-expanded="false">

    Destination

    </a>

    <ulclass="dropdown-menu"aria-labelledby="navbarDropdown">

    <li><aclass="dropdown-item"href="#">Action</a></li>

    <li><aclass="dropdown-item"href="#">Another action</a></li>

    <li><hrclass="dropdown-divider"></li>

    <li><aclass="dropdown-item"href="#">Something else here</a></li>

    </ul>

    </li>

    <liclass="nav-item">

    <aclass="nav-link"href="#">Horaire de Train</a>

    </li>

    <liclass="nav-item">

    <aclass="nav-link"href="interfaces/reservation.identification.php">Reservation en ligne</a>

    </li>

    <liclass="nav-item">

    <aclass="nav-link"href="interfaces/login.php">Accès agents</a>

    </li>

    <!-- <li class="nav-item">

    <a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>

    </li> -->

    </ul>

    <aclass="nav-link"href="interfaces/login.php"><inputclass="col-btn-sbm"type="submit"value="Login"></a>

    <divstyle="margin-left:30%">

    <?php

    if (isset($user)) {

    echo'<span style="color: white; font-familly: maiandra">'.$user.' Connecté</span>';

    }

    ?>

    </div>

    </div>

    </div>

    </nav>

    <divclass="container">

    <divclass="py-5 text-center">

    <!-- <img class="d-block mx-auto mb-4" src="../img/home-bg.jpg" alt="" width="1000" height="200"> -->

    <h2>Reserver en ligne</h2>

    <pclass="lead"style="color:white">reserver vos places a bord de nos train selon vos choix.</p>

    </div>

    <?php

    ?>

    <!-- Updating -->

    <divclass="col-md-12 order-md-1 sized">

    <formmethod="POST"action="">

    <divclass=" a-width">

    <h4class="mb-3">Reservation</h4>

    <divclass="row">

    <divclass="col-md-6 mb-3">

    <inputtype="hidden"name="idreserv">

    <labelfor="firstName">Train</label>

    <selectid="disabledSelect"name="depart"class="form-control">

    <?php

    $trajet = newTrain();

    $data = $trajet->selectTrain();

    for ($i=0; $i<count($data) ; $i++) {

    $id = $data[$i]['id'];

    $nom = $data[$i]['nom'];

    $desc = $data[$i]['description'];

    $cat = $data[$i]['categorie'];

    $icon = $data[$i]['icon'];

    echo"<option value='".$nom."'>??".$nom." / ".$cat."</option>";

    }

    ?>

    </select>

    <divclass="invalid-feedback">

    </div>

    </div>

    <divclass="col-md-6 mb-3">

    <inputtype="hidden"name="idreserv">

    <labelfor="firstName">Depart</label>

    <selectid="disabledSelect"name="depart"class="form-control">

    <?php

    $trajet = newtrajet();

    $data = $trajet->selectGare();

    for ($i=0; $i<count($data) ; $i++) {

    $id = $data[$i]['id'];

    $ville = $data[$i]['ville'];

    $titre = $data[$i]['gare'];

    echo"<option value='".$ville."'><b>".$ville."</b> / ".$titre."</option>";

    }

    ?>

    </select>

    <divclass="invalid-feedback">

    </div>

    </div>

    <divclass="col-md-6 mb-3">

    <labelfor="firstName">Destination</label>

    <selectid="disabledSelect"name="ville"class="form-control">

    <?php

    $trajet = newtrajet();

    $data = $trajet->selectGare();

    for ($i=0; $i<count($data) ; $i++) {

    $id = $data[$i]['id'];

    $ville = $data[$i]['ville'];

    $titre = $data[$i]['gare'];

    echo"<option value='".$ville."'><b>".$ville."</b> / ".$titre."</option>";

    }

    ?>

    </select>

    <divclass="invalid-feedback">

    </div>

    </div>

    <divclass="col-md-6 mb-3">

    <labelfor="lastName">Classe</label>

    <selectid="disabledSelect"name="classe"class="form-control">

    <optionvalue="1er classe de luxe">1er classe de luxe</option>

    <optionvalue="1er classe ordinaire">1er classe ordinaire</option>

    <optionvalue="2eme classe">2eme classe</option>

    <optionvalue="3eme classe">3eme classe</option>

    <optionvalue="4eme classe">4eme classe</option>

    </select>

    <divclass="invalid-feedback">

    </div>

    </div>

    <divclass="col-md-6 mb-3">

    <labelfor="lastName">Nombre des passagers</label>

    <selectid="disabledSelect"name="nbPass"class="form-control">

    <optionvalue="1">1</option>

    <optionvalue="2">2</option>

    <optionvalue="3">3</option>

    <optionvalue="3">+3</option>

    </select>

    <divclass="invalid-feedback">

    </div>

    </div>

    <divclass="col-md-6 mb-3">

    <labelfor="lastName">Nombre d'enfants</label>

    <selectid="disabledSelect"name="nbEnfant"class="form-control">

    <optionvalue="0">0</option>

    <optionvalue="1">1</option>

    <optionvalue="2">2</option>

    <optionvalue="+2">+2</option>

    </select>

    <divclass="invalid-feedback">

    </div>

    </div>

    </div>

    <hrclass="mb-4">

    <buttonclass="btn btn-primary btn-lg btn-block"type="submit">Valider</button>

    </form>

    </div>

    </div>

    <footerclass="my-5 pt-5 text-muted text-center text-small">

    <pclass="mb-1">(c) 2017-2018 Company Name</p>

    <ulclass="list-inline">

    <liclass="list-inline-item"><ahref="https://getbootstrap.com/docs/4.0/examples/checkout/#" rel="nofollow">Privacy</a></li>

    <liclass="list-inline-item"><ahref="https://getbootstrap.com/docs/4.0/examples/checkout/#" rel="nofollow">Terms</a></li>

    <liclass="list-inline-item"><ahref="https://getbootstrap.com/docs/4.0/examples/checkout/#" rel="nofollow">Support</a></li>

    </ul>

    </footer>

    </div>

    </form>

    <!-- Bootstrap core JavaScript

    ================================================== -->

    <!-- Placed at the end of the document so the pages load faster -->

    <scriptsrc="../style1/jquery-3.2.1.slim.min.js.télécharger"integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"crossorigin="anonymous"></script>

    <script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery-slim.min.js"><\/script>')</script>

    <scriptsrc="../style1/popper.min.js.télécharger"></script>

    <scriptsrc="../style1/bootstrap.min.js.télécharger"></script>

    <scriptsrc="../style1/holder.min.js.télécharger"></script>

    <script>

    // Example starter JavaScript for disabling form submissions if there are invalid fields

    (function() {

    'use strict';

    window.addEventListener('load', function() {

    // Fetch all the forms we want to apply custom Bootstrap validation styles to

    varforms = document.getElementsByClassName('needs-validation');

    // Loop over them and prevent submission

    varvalidation = Array.prototype.filter.call(forms, function(form) {

    form.addEventListener('submit', function(event) {

    if (form.checkValidity() === false) {

    event.preventDefault();

    event.stopPropagation();

    }

    form.classList.add('was-validated');

    }, false);

    });

    }, false);

    })();

    </script>

    </body></html>

    Figure 4. 8 Codes source gérer réservation place (réservation)

    CONCLUSION GENERALE

    L'objectifs de notre travail était d'analyser un système d'information, la Société Nationale de Chemin de Fer du Congo qui est une entreprise public oeuvrant dans le domaine du transport par voie ferroviaire pour notre cas, ainsi que de concevoir une application web pouvant permettre aux clients désireux de voyager par train d'effectuer leur réservation et achat de titre de transport en ligne. En outre cette application pourra sévirà l'entreprise de rendre ses services accessibles n' importe où et en temps réel, de pousser les limites par rapport au système existant, telles que : la contrainte de temps et d'ordonnancement de processus (activités) et autres.

    Pour atteindre notre objectif qui est purement scientifique nous nous proposer une démarcheméthodologique qui nous a parmi de couvrir les deux étapesclés de notre travail qui sont l'analyse et la conception, la méthode UP7. Unified Process dans son vrai sens est une méthode basée sur l'oriente objet et dérivant de la méthode UP, nous a permis par ses 7 étapes d'analyser et concevoir notre solution.

    Pour mener à bout notre travail, nous l'avons subdivisé en trois chapitres. Dans le premier chapitre nous avons parlé tout d'abord des concepts clés du travail entre autres : laméthode UP7(Unified Process seven), relevant les grands principes, les quatre phases qui correspondent à celles d'UP et sept activités( Figure 1. 1). En outre nous avons parlé des applications web, le fonctionnement d'une application web ainsi que les langages utilisés.

    Dans le deuxième chapitre nous sommes passés à l'analyse métier ou nous avons délimité le processus de réservation et vente des titres de transport par rapport à l'ensemble du système d'information. Nous avons également inventorié les concepts du métier candidats a l'élaboration du diagramme de classe métier ( Figure 2. 8). Le résultat du deuxième chapitre a donc été la formalisation des besoins des utilisateurs.

    Le troisième chapitre a concerné l'analyse et la conception du nouveau système. Par l'analyse nous avons spécifié les exigences fonctionnelles du nouveau système en ressortant 6 cas d'utilisation ( Figure 3. 1). Et après analyse des cas d'utilisation nous avons ajouté des cas d'utilisations informatiques qui nous a permis d'élaborer le diagramme de cas d'utilisation global avec 14 cas d'utilisation ( Figure 3. 2). De ces 14 diagrammes nous avons décrit 5 qu'on a jugés importants. Le résultat du troisième a été la conception du nouveau système de réservation des titres de transport que nous avons nommé « SAFARI.NET ». Et nous avons conclu ce chapitre par la présentation des interfaces homme machine de ladite application.

    L'application ainsi conçue pourra donc répondre au besoin de réserver et acheter le titre voyage, la particularité parmi tant d'autres telles que :

    · La possibilité de réserver en ligne en temps réel en fournissant moins d'effort ;

    · La consultation des programmes de voyage ainsi que de tarif ;

    · Et tant d'autres.

    Nous croyons que ce travail n'a pas traiter de tout ce qui peux concerner la réservation et la vente ce qui peut être un point de départ ou une référence pour d'autres chercheur afin d'aborder et d'y ajouter d'autres idées. Mais pour notre cas nous pouvons prévoirà partir ce travail créer un portail web qui pourra réunir toutes les entreprises de transport ainsi que des hôtels afin d'aider les voyageurs à effectuer leurs réservations et achat des titre de transport sans plus d'effort et en temps réel.

    BIBLIOGRAPHIE

    AUDIBERT, L. (2009). UML2 de l'apprentissage a la pratique.

    Delacroix, A. C. (2016). Développer une application web.Malakoff: Dunod.

    DJUNGU, S.-J. (2013). Outils et langages du we n.0.Kinshasa: Mediaspaul.

    DJUNGU, S.-J. (2017). Genie logiciel. Kinshasa: MediasPaul.

    DJUNGU, S.-J. (2017). Genie Logiciel.

    Gabay, J. &. (2008). UM2 l'analyse et conception. Paris: Dunod.

    Roque, P. (2008). les Cahiers du programmeur UML2 (éd. 4). Paris: Eyrolles.

    TABLE DES MATIERES

    EPIGRAPHE Erreur ! Signet non défini.

    DEDICACE II

    REMERCIEMENT III

    LISTE DES FIGURES V

    LISTE DES TABLEAUX VII

    INTRODUCTION 1

    CHAPITRE I : METHODE UP7 ET LES APPLICATIONS WEB 5

    1.1. Méthode UP7 5

    1.1.1. Présentation de la méthode UP7 5

    1.2. Les applications web 9

    1.2.1. Définition 9

    1.2.2. L'architecture des applications web 9

    1.2.3. Le serveur web 10

    1.2.4. Le fonctionnement d'une application web 10

    1.2.5. L'hébergement d'une application web 12

    1.2.6. Les langages utilisés pour la création des applications web 12

    1.3. Conclusion partielle 13

    CHAPITRE II. ANALYSE METIER DU SYSTEME DE LA SNCC 14

    2.1. INTRODUCTION 14

    2.2. PRESENTATION DU SYSTEME D'INFORMATION 14

    2.2.1. Historique 15

    2.2.2. Situation géographique 16

    2.2.3. Organigramme 18

    2.2.4. Présentation de la direction MOBIRAIL 19

    2.3. MODELISATION METIER 21

    2.3.1. Analyse du processus de réservation et achat des titres de voyage 21

    2.3.2. Diagramme de contexte 21

    2.3.3. Diagramme d'activité 22

    2.3.4. Diagramme de classe métier 24

    2.3.5. Diagnostique du processus 28

    2.4. Conclusion partielle 28

    ANALYSE ET CONCEPTION DU NOUVEAU SYSTEME Safari.net. 30

    3.1. INTRODUCTION 30

    3.2. EXIGENCES FONCTIONNELLES 30

    3.2.1. SPECIFICATION DES EXIGENCES FONCTIONNELLES 30

    3.2.2. ELABORATION DU DIAGRAMME DES CAS D'UTILISATIONS 30

    3.3. ANALYSE DES CAS D'UTILISATION 31

    3.3.1. ELABORATION DU DIAGRAMME DES CAS D'UTILISATION 31

    3.3.2. DESCRIPTION DES CAS D'UTILISATION 32

    3.4. SYNTHESE D'ANALYSE 46

    3.4.1. ÉLABORATION DU DIAGRAMME DE CLASSE RECAPITULATIF 46

    3.4.2. ÉLABORATION DE LA MATRICE DE VALIDATION 46

    3.5. CONCEPTION 47

    3.5.1. ÉLABORATION DES DIAGRAMMES DE SEQUENCE TECHNIQUE 47

    3.5.2. ÉLABORATION DES DIAGRAMMES DE CLASSE TECHNIQUE 53

    3.5.3. ÉLABORATION DU DIAGRAMME DE NAVIGATION GENERALE 55

    3.5.4. ÉLABORATION DU DIAGRAMME DE PAQUETAGE 55

    3.5.5. ÉLABORATION DU MODELE LOGIQUE 57

    CHAPITRE IV : IMPLEMENTATION ET VALIDATION DES EXIGENCES DES UTILISATEURS 60

    4.1. REALISATION DES CHOIX TECHNIQUES 60

    4.2. IMPLEMENTATION DE LA BASE DES DONNEES 61

    4.2.1. MODELE LOGIQUE DES DONNEES 61

    4.2.2. REQUETTES DES NOUVELLES TABLES 62

    4.3. PRESERNTATION DES IHMs 64

    CONCLUSION GENERALE 80

    BIBLIOGRAPHIE 82

    TABLE DES MATIERES 83






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Enrichissons-nous de nos différences mutuelles "   Paul Valery