Mémoire 3
Mémoire 3
Promotion : BAC3 IG
Matricule : 2020022130
Octobre 2023
REPUBLIQUE DEMOCRATIQUE DU CONGO
ENSEIGNEMENT SUPERIEUR ET UNIVERSITAIRE
Promotion : BAC3 IG
Matricule : 2020022130
Octobre 2023
III
DEDICACE
Je dédie ce travail.
Ce travail est le résultat de multiples études et efforts scientifiques et donc des couts de
mains nous étaient vraiment indispensable. Cependant, nous exprimons notre gratitude et nos
remerciements à notre Dieu, le Maître du temps et des circonstances, pour sa grâce et sa
fidélité envers nous.
Merci à mon codirecteur l’assistant Jose Malaba qui a accepté de diriger ce travail
malgré ses multiples occupations.
A mes très chers parent Rodin Mupapa et Mamy Nkulu, 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 tous mes frères et sœurs : Christelle Mupapa, Rommy Mupapa, Doee Mupapa et
Mirck Mupapa ; pour vos encouragements, votre disponibilité ainsi que votre amour.
A mes amis : Sylvain Kabyombwa, Chaty Ilunga, Philomène Kapend, Elicha Frecher,
Elijah Honour. Vous me remplissez toujours de joie
À vous ma seconde famille, Prince Kiwele, Claudine Kabuya, Dorcas Ngoy, Gregory
Kayembe ; merci mes amis pour tout
Et à tous ceux qui nous ont contribués de loin ou de près participer à la rédaction de ce
Travail.
Page|V
INTRODUCTION GENERALE
Avec l'apparition de l'outil informatique, nous avons constaté une grande révolution
de la technologie. Elle est omniprésente dans notre vie quotidienne, que ce soit dans les
ordinateurs, voitures, avions, bus etc…L’informatique a révolutionné la façon dont nous
communiquons, travaillons, apprenons et nous divertissons. Les systèmes informatiques sont
utilisés dans de nombreuse domaine tels que la finance, la sante, l’éducation, les transports etc.
cependant en République Démocratique du Congo « RDC en sigle » beaucoup d’entreprises
tant privées que publiques tentent d’optimiser leurs services dans le but de retrouver la mutation
mondiale qui tend à rejoindre les innovations au travers les nouvelles technologies de
l’information et de la communication « NTIC en sigle ».
Comme entre autres difficultés dans la distribution des services aux clients constitue de
plus en plus une préoccupation des dirigeants d’entreprise. Celles-ci sont astreintes à
l’élaboration des stratégies leurs, permettant d’atteindre leurs objectifs à travers une distribution
régulière et croissante de leurs produits et services.
Les entreprises doivent être de plus en plus réactives face aux nouveaux enjeux qui se
présentent à elles. Les orientations stratégiques et le Système d’Information doivent être pensés
de manière simultanée afin que celui-ci soutienne au mieux la prise de décision.
Nous en tant que chercheur en sciences informatiques, nous avons pensé que la
Proposition d’un logiciel informatique serait la meilleure solution car celle-ci permettra de
retrouver dans le temps record de produire une bonne réservation et ainsi faire gagner en temps
et souplesse. Ainsi notre problématique porte autour des questions suivantes :
1. Quelle démarche méthodologique peut-on utiliser pour aboutir à la conception d’un
système d’e-business compatible aux besoins de l’entreprise ?
2. Quelle architecture logicielle pouvons-nous mettre en place pour la conception de
notre système ?
Voilà les interrogations qui constitueront la charpente de notre recherche. En guise des
solutions à la problématique soulevée ci-haut nous retenons les hypothèses suivantes :
Pour mener à bien faire notre étude nous allons utiliser la méthode UP7 (« Unified
process 7 » processus unifié 7 en français).
La méthode UP7 adoptée dans ce travail est une démarche d’analyse et de conception
des systèmes informatiques centrée sur la notation UML et développé par Pascal Roques dans
son ouvrage intitulé : “UML pour le web ».
3
Nous ne prétendons pas être les premiers à vouloir aborder les contours ou les aspects de
réservation des billets dans une entreprise de transport dans la mesure où beaucoup de nos
prédécesseurs s’y sont intéressé mais sous un aspect différent.
En effet, Le choix de ce sujet n’est pas le fruit du hasard ; c’est après un long moment
d’observation lors d’un voyage ou déplacement que cela a suscité notre curiosité et a nous
poussé à travailler dans ce domaine, afin d’apporter une connaissance et améliorer le système
leurs bureaux qui se situe à l’entrée de la ville.
Cette démarche s’articule suivant deux axes[2] : 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.
Activité 5 : Conception
Diagramme d’interaction
- Diagramme de séquence
Conception détaillée
- Diagramme de classe
Activité 6 : Implémentation
Modèles issus de l’analyse et de la conception
- Technologies de programmation
- Produit logiciel sous forme des composants de bibliothèque
Activité 7 : Test
Vérification implémentation (présentation du résultat)
- Présentation interfaces
- Présentation de l’application
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.
Pour la conception de notre application nous allons nous servir de l’architecture
Logicielle 3 tiers. Et les techniques suivantes :
- La Technique de conception : elle nous permet d’analyser les systèmes pour
produire des modèles.
- La Technique de prototypage : est la démarche qui consiste à réaliser un prototype.
Ce prototype est un exemplaire incomplet et non définitif de ce que pourra être le
produit ou objet final.
7
La rigueur scientifique nous exige de Limiter notre champ d’investigation. C’est ainsi que
notre recherche est centrée sur MULYKAP. Nous ne nous baserons que sur la réservation des
billets et la production des rapports.
1.0. Introduction
Ce chapitre introduit principalement la revue de la littérature sur la vente en ligne de
ticket ainsi que la théorie de conception et technologie Web.
Avec le web dynamique, nous allons avoir des pages qui pour une même adresse peuvent
prendre des formes différentes selon les actions de l’utilisateur. C’est à dire, pour
obtenir une page changeante, nous disposons de deux techniques :
C’est le serveur qui construit une nouvelle page, qu’il envoie au client (scripts cote serveur)
C’est le client qui reçoit une page fixe, et il modifie cette page (scripts cote client)
Fonctionnement des sites web dynamiques
Contrairement au site statique, le fonctionnement d’un site web dynamique se passe en
trois temps :
1. Le client demande une page web au serveur
2. Le serveur prépare la page spécialement pour le client
3. Le serveur lui envoie la page qu’il vient de générer.
La page web est générée à chaque fois qu’un client la réclame. C’est précisément ce qui
rend les sites dynamiques vivants, le contenu d’une même page peut changer d’un instant à
l’autre.
L'architecture à deux niveaux (aussi appelée architecture 2-tier, tier signifiant rangée en
anglais) caractérise les systèmes clients/serveurs pour lesquels le client demande une ressource
et le serveur la lui fournit directement, en utilisant ses propres ressources.
L'architecture à N niveaux permet de spécialiser les serveurs dans une tache précise :
avantage de flexibilité, de sécurité et de performance. L'architecture peut être étendue sur un
nombre de niveaux plus important : on parle dans ce cas d'architecture à N- niveaux (ou multi-
tier).
servent de base à la construction d'un document composite, par combinaison de divers types de
ressources annexes :
Des images
Des feuilles de style
Des scripts clients attachés
L’un des plus importants avantages du protocole http est de « découper » les documents
à transférer en blocs. Ces blocs peuvent être acheminés de manière indépendante du serveur
vers le client. Ils seront ensuite assemblés au niveau du récepteur.
Les données. Les SGBD les plus couramment utilisés sont MySQL, Oracle, Microsoft SQL
Server et PostgreSQL.
Les bases de données sont largement utilisées dans de nombreux domaines, tels que les
applications web, les systèmes d'information, la gestion des stocks, les systèmes de réservation,
etc. Elles offrent une solution efficace pour stocker et gérer de grandes quantités de données de
manière sécurisée et fiable.
II.2.3. Types de SGBD
Il existe différents types de SGBD, tels que les SGBDR (Systèmes de Gestion de Bases de
Données Relationnelles), qui sont basés sur le modèle relationnel et utilisent le langage SQL
(Structured Query Language) pour interagir avec la base de données. Les SGBDR sont les plus
couramment utilisés et offrent des fonctionnalités avancées telles que les transactions ACID
(Atomicité, Cohérence, Isolation, Durabilité), les contraintes d'intégrité, les vues, etc.
Il existe également des SGBD orientés objet, qui permettent de stocker des objets complexes
avec leurs attributs et leurs méthodes, des SGBD NoSQL (Not only SQL), qui sont adaptés au
stockage et à la gestion de données non structurées ou semi-structurées, et des SGBD en
mémoire, qui stockent les données en mémoire vive pour des performances optimisées.
Les SGBD offrent également des fonctionnalités avancées telles que la réplication des données
pour assurer la disponibilité et la redondance, la sauvegarde et la restauration des données, la
gestion des droits d'accès pour garantir la sécurité des données, etc.
En résumé, un système de gestion des bases de données est un outil essentiel pour stocker,
organiser et gérer les données d'une entreprise de manière efficace. Il offre des fonctionnalités
avancées pour assurer la sécurité, l'intégrité et la disponibilité des données.
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.
14
1. Analyse et définition des exigences : Une étape qui permet un consensus entre les experts
(développeurs) et les utilisateurs.
Le processus commence lorsque le client désire réserver ou voyager, tel bus est
programmé d’avance par le manager, le client consulte le catalogue livre par le caissier
celui-ci muni de sa carte d’identité effectue sa réservation. Le caissier vérifie alors la
disponibilité. Si celle-ci est confirmée, le caissier établie un billet en sachant que le
formulaire est préalablement imprimé, le client le paie, le caissier quant à lui, encaisse le
billet et le remet au client tout en établissant un rapport a son manager qui le consultera à la
fin de la journée.
16
Le Diagramme de contexte nous permet d'avoir une vue globale du système étudié,
des interactions entre ses activités et le rapport avec l'environnement extérieur.
Client
Caissier
Manager
Personnage, et le cas d’utilisation ou fonctionnalité du système par un ovale, les flèches issues
d’un personnage pointent vers les cas d’utilisation [3].
Reservations Billets
consulterProgramme
etablierBillet
reserverPlace
Client EncaisserPaiement
«include» Caissier
payerBillet
etablirProgramme
etablirRapport
GererProgramme
Manager
consulterRapport
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 :
Pour chaque cas d’utilisation, les sous-activités suivantes de l’activité « Analyse des
cas d’utilisation » sont réalisées :
Un diagramme d’activité est un diagramme UML qui modélise les aspects dynamiques
d’un système. C’est une simplification du diagramme d’état de transition permettant
d’améliorer les flux contrôle des processus informatiques et organisationnels.
Le diagramme d’activité se diffère de celui d’état transition par le fait que le diagramme
d’activité fournit une spécification complète d’un comportement et non, comme les
diagrammes d’interaction, un seul scénario possible. Alors que le diagramme d’état transition
se focalise sur la mise en œuvre des opérations dans lesquelles la plupart des événements
correspondent à la fin de l’activité précédente. Le diagramme d’activité ne fait pas de
distinction entre les activités, les actions et les événements [2].
PublierProgamme
arriver: Client EtablirProgramme
DemanderReservation RemettreCatalogue
ConsulterCatalogue
VerifierDisponibilite
ReserverPlace
Disponible?
Oui Non
EtablirBillet MettreEnAttente
AcheterBillet
Fin
EncaisserPaiement
RecevoirBillet RemettreBillet
EtablirRapport ConsulterRapport
Fin
Client Place
- idClient: int - IdBillet: int
- NomCleint: string 1 1..* - nomClient: string
- prenomClient: string - prenomClient: String
- Telephone: string
1
1
Paiement concerne
1..* Paiement
Catalogue
- destination: string
- JourVoyage: string
Programme : c’est une prévision du trafic voyageurs, un programme est constitué de : le bus,
la date de départ, le vente, l’heure et la destination.
Catalogue : liste descriptive des horaires, destination
Billet : c’est un jeton de réservation que le guichetier fourni au client après sa réservation.
Les critiques ne seront pas que négatives mais positives non plus du fait que dans chaque
chose y a toujours eu les points forts et faibles.
Toute œuvre fait des mains des hommes ne manque pas des imperfections, si un défaut
S’avère utile de trouver une solution alors celui qui le découvre doit proposer une solution.
Voilà le dynamisme qui fonde le progrès scientifique. Nous allons relever les côtés
boiteux dans le système étudié et ce relèvement se fera en deux point : sur le point de vue
organisationnel et informationnel.
Après que nous ayons critiqué le système d’information existant nous allons maintenant
proposer nos solutions aux problèmes soulevés dans les précédentes lignes. Nous proposerons
deux types de solution, solution non informatique et informatique.
Proposition non informatique
22
- Classer les documents dans les rayons pour faciliter la recherche des
informations
Solution informatique
Vu l’urgence et la prolifération des réservations qui ont besoin d’être géré et consulté
nous avons proposé ce qui suit :
La mise en place d’une structure autonome de gestion de réservation des billets. Cette
structure sera hiérarchiquement dépendante de l’envie d’être une structure de coordination de
la gestion de l’information.
Avoir un logiciel qui respecte les principes des Interfaces Homme/Machine (IHM) tels
que l'ergonomie et la fiabilité. Réduire les tâches manuelles qui nous permettraient de gagner
en spatiotemporel, Archiver les informations en toute confidentialité, Restituer rapidement les
données recherchées, Générer les rapports en temps réel Partager simultanément les
informations, Avoir un logiciel évolutif.
Conclusion partielle
3.1. INTRODUCTION
Dans ce chapitre, nous procéderons à la conception de nouveaux systèmes en analysant
la fonctionnalité du système et en identifiant les exigences fonctionnelles et non
fonctionnelles.
Avant de modéliser un système, il est important de saisir les besoins des utilisateurs
exprimés en termes de fonctionnalité du futur système. A cet effet, nous avons réparti ces
besoins en deux catégories, à savoir :
• Modifier un utilisateur
• Supprimer utilisateur
Outre les besoins fondamentaux (fonctionnels), notre application doit répondre aux
Critères suivants :
- La rapidité du traitement : En effet, vu le nombre important des données que nous
pourrons analyser, il est impératif que la durée d'exécution des traitements s'approche
le plus possible du temps réel.
24
- La performance : notre application doit être avant tout performante à travers ses
fonctionnalités, répondre à toutes les exigences des utilisateurs d'une manière
optimale.
- La sécurité : l'application doit être protégée avec une clé ou un mot de passe pour
l’authentification.
Nous avons recensé trois acteurs qui auront à interagir avec le nouveau système. Voici
ci-dessous ces différents acteurs :
- Internaute : rôle de la personne qui n’a pas encore créé de compte dans le système.
consulter programme
Internaute
Creer compte
S'authentifier
EffectuerReservation
Client
Effectuer Payement
Systeme Paiement
Creer compte
«include»
Internaute
gerer programme
«include» s'authentifier
«include»
gerer reservation
Ayant donc identifié chacun des cas d’utilisation de chacun des acteurs du système, il y
a donc lieu de représenter le diagramme cas d’utilisation finale regroupant les trois acteurs du
système.
26
Systeme
ConsulerCatalogue Consulter
Reservation
Créer Compte
Internaute Generer Rapport
«include»
Rechercher Admin
Destination «include»
Generer Rapport
«include»
S'authentifier
«include»
«include»
effectuer
Reservation Gerer Compte
«include»
sd S'authentifier
systeme
user
ref
créer Compte
Demander interface()
interfaceAffichée()
loop
Saisir coordonées()
verifier()
alt
[coordonnées]
break
User authentifier()
[sinon]
Login ou password incorrect()
Pour finir avec ce cas d’utilisation, nous illustrons les classes participantes mise en œuvre
lors de l’authentification de l’utilisateur.
class Use Case Model
• Scénarios alternatifs
- L’application affiche un message d’erreur précisant que le nom ou prénom sont des
chaînes de caractères uniquement. Le cas d’utilisation reprend au point 1.
- L’application affiche un message d’erreur précisant que le nom ou prénom sont des
chaînes de caractères inférieures à 50 caractères. Le cas d’utilisation reprend au point 1.
- L’application affiche un message d’erreur précisant que le mail n’est pas valide. Le cas
d’utilisation reprend au point 1.
sd créer utilisateur
Admin
EcranUtilisateur GestionUtilisateur Utilisateur
ref
S'authentifier
creerUser()
checkNomPrenom()
checkEMail()
genererIdentifiantMotDePasse()
creer()
envoiMail()
message()
Mail de confirmation envoyé à
utilisateur crée avec succès() l"utilisateur pour initialiser le mot de
passe du compte
Infos utilisateur
Valider
Prénom
Modifier
Nom
Mail
Supprimer
Utilisateur
Profil
Admin
<<dialog>>
EcranGestionUtilisateur <<control>> <<entity>>
GestionUtilisateur Utilisateur
-nom: String
-prenom: String -id: int
-email: String +creerUtilisateur() -nom: String
-profil: String +modifierUtilisateur() -email: String
+envoiMail() -prenom: String
+creerUtilisateur() +supprimerUtilisateur() -profil: String
+modifierUtilisateur() +afficherUtilisateur() -motDePasse: String
+supprimerUtilisateur()
+visualiserUtilisateur()
sd Consulter Programme
Systeme
Internaute
Interface affichée()
loop
selectionner Progamme()
break
DetaileProgramme()
Programme de Voyage
Rechercher Réserver
Résultat de la recherche
Internaute
<<dialog>>
EcranConsultation <<entity>>
<<ctrl>> Programme
-numero: int GestionProgramme
-dateVoyage: date -numero: int
-heureVoyage: Time +rechercherProgramme() -dateVoyage: Date
-villeDepart: String +rechercherParDate() -heureVoyage: Time
-destination: String +rechercheParHeure() -villeDepart: String
-prixBillet: float +rechercheParDestination() -villeArrivee: String
+afficherPrixBillet() -prixBillet: float
+consulterParDate()
+reserverPlace()
+consulterParHeure()
+consulterParDestination()
+reserver()
sd Effectuer Reservation
Systeme
client
ref
S'authentifier
interface affichée()
Saisir coordonnée()
valider()
verifier()
alt
[info correct]
break
Reservation Effectuer()
[sinon]
Message erreur()
<<entity>>
Clients Programme
<<dialog>> -numero: int
EcranReservation -dateVoyage: Date
<<ctrl>>
-numero: int GestionReservation -heureVoyage: Time
-dateVoyage: date -villeDepart: String
-heureVoyage: Time +rechercherProgramme() -villeArrivee: String
-villeDepart: String +rechercherParDate() -prixBillet: float
-destination: String +rechercheParHeure()
-prixBillet: float +rechercheParDestination() 1
+afficherPrixBillet()
+consulterParDate()
+reserverPlace()
+consulterParHeure()
liée
+consulterParDestination()
+reserver()
1..*
<<entity>>
<<entity>> Reservation
Client
1 1..* -numero: int
-nom: String -date: Date
appartenir
-age: int -nbre: int
-telephone: int -numPlace: int
sd Confimer reservation
alt
[visiteur]
ref
créer Compte
[Client]
ref
S'authentifier
ref
Consulter Programme
SaisirInfos(nom,telephone)
Recapitulatif saisie()
Infos Paiement(mode)
InfosPaiement(mode)
autorisation()
NouvelleReservationConfiremée()
resservation place()
Ticket de voyage ()
Imprimer Ticket
<<entity>>
Programme
-numero: int
Clients -dateVoyage: Date
-heureVoyage: Time
<<dialog>> -villeDepart: String
EcranConfirmation -villeArrivee: String
<<ctrl>> -prixBillet: float
-numero: int GestionConfirmation
-dateVoyage: date
-heureVoyage: Time 1
+rechercherProgramme()
-villeDepart: String liée 1..*
+rechercherParDate()
-destination: String +rechercheParHeure()
-prixBillet: float <<entity>>
+rechercheParDestination()
-modePaiement: List Reservation
+afficherPrixBillet()
-telephoneClient: int +reserverPlace() -numero: int
-codeSecret: int +confirmerPaiement() -date: Date
+consulterParDate() +imprimerTicket() -nbre: int
+consulterParHeure() -numPlace: int
+consulterParDestination()
+reserver() 1..*
+confirmerReservation()
appartenir
+imprimerTicket() 1
Admin
EcranProgrammeBus ControleurBus List<Programme>Programme
ref
S'authentifier
addProgramme()
afficher()
editerProgramme()
update()
afficher()
opt
annulerProgramme(id)
annulerProgramme(id)
annuler()
afficher()
Gerer Programme
«ctrl» «entité»
- date: date CtrlGererProgramme Programme
- password: int
- annuler: int + date(): void
+ ajouter(): void - valider: int + destination(): void
Admin + annuler(): void + heurDepart(): void
+ modifier(): void
1..*
conserne
1..*
«entité»
destination
- date: date
- description: string
- NomDestination: string
1..* gerer
gerer
Programme user 1..*
1 1
- bus: string - id: int
- dateDepart: string - mail: string Administrateur
- Destination: string - nom: string
- id: int - password: string - matricule: string
- prenom: string
+ ajouter(): void
+ modifier(): void
+ rechercher(): void
+ supprimer(): void
1..*
LigneProgramme consulter Client
Reservation
Place
- dateReserv: date
- id: string demander
- destination: string
- type: string concerner - id: int 1
+ ajouter(): void 1..* 1 - type: string
+ modifier(): void + annuler(): void
+ rechercher(): void + demander(): void
+ supprimer(): void + modifier(): void
Le découpage en catégories constitue la première étape de cette phase qui contient d'un
coup le découpage choisi ainsi que les informations concernant le modèle statique (classes,
attributs, méthodes) et qui va s'affiner de manière itérative au cours du développement du
projet[9].
44
class Use Case Model
progVoyage
AgenceVoyage
InfoArret
- nom
- /duree
- numImpot
- heureArrivee
- siege
- heureDepart
+reference 1
proposer
1..*
depart
VoyageEnBus
Ville 1 0..*
- dateArrivee
- nom - dateDepart
arrivee - /duree
1 0..* - heureArrivee
0..* - heureDepart
0..*
{ordered} + fermerReservation(): void
+ ouvrirReservation(): void
{frozen} 1
concerner
«import»
1..*
ReservationVoyage {frozen}
Passager
- nom
- prenom
Client
visiteur
Consulter Programme
visiteur
Créer compte
gerer
Acceuil reservation
Artifact3
user
S'authebtifier
payer billet
sd S'authentifier
client
accueil form d'authentification ctrl user user
demander authentification()
interface afficher()
loop saisir()
valider()
demande connexion()
verifier()
select *from()
alt
[info correct]
[info incorrect]
donnees non trouvées()
[champ vide]
champ non renseigner()
Systeme Payement
internaute
interface d'accueil formulaire ctrlCompte user
ref
Consulter Programme
demander formulaire()
Demander formulaire()
Afficher formulaire()
loop
saisir formulaire()
verifier()
effectuer payement()
verifier donnees()
verifier()
changer donnees()
alt
[Montant suffisant]
Msg succes()
Internaute
Interface Accueil Formulaire CtrlCompte Client
Demander Formulaire()
formulaire compte()
InterfaceAffichée()
loop
Remplir Formulaire()
Valider()
CreerCompte()
Verifier()
alt
[Info Correct]
User enregistré()
Msg succes()
Msg erreur()
[info incorrect]
[Champ vide]
Msg()
sd Consulter Programme
Client
Accueil InterfaceProgramme CtrlProgamme Programme
Interface Programme()
Select* from()
Recuperer Donnees()
Afficher Interface()
Client
Interface Formulaire CtrlReservation Reservavtion
Programme reservation
ref
Consulter Programme ou catalogue
Formulaire reservation()
ref
S'authentifier
opt
Afficher formulaire()
[Reverver place]
loop
ref
Effectuer reservation
alt
[donnees correct]
break inserer info()
new reservation()
[Annuler Reservation]
annuler reservation()
annuler reservation()
Demander confirmation()
alt
confirmer annulation()
[confirmer]
annuler reservation()
delete*from()
reservation supprimer()
reservation annuler()
[sinon]
annuler confirmation()
annuler()
Msg annulation()
sd Effectuer reservation
client
interface reservation ctrlReservation
Saisir()
valider()
Reserver()
verifier()
«dialogue» programme
CatalogueProgramme «ctrl» - bus: string
ctrlProgramme - dateDepart: date
- programme: int - destination: string
+ annuler(): void
- vente: date
+ annuler(): void + reserver(): void
+ reserver(): void + delete(): void
internaute
+ insert(): void
+ select(): void
+ update(): void
«entité»
Client
- adresse: string
- idClient: int
- nom: string
- password: int
- prenom: string
- telephone: int
«dialogue»
formReserv
- destination: string
- nom: string
- prenom: string
+ annuler(): void
+ valider(): void
«entité»
payement
- code: int
- num: int
«interface»
payement + ajouter(): void
«ctrl» + modifier(): void
- code: int
payement + selectionner(): void
- num: int
- annuler: int
Client + annuler(): void
- valider: int
+ valider(): void
«entité»
Client
- adresse: string
- idClient: int
- nom: string
- password: int
- prenom: string
- telephone: int
AgenceVoyage
- nom Client
- numImpot - adresse
- siege - nom
+reference 1 - numTel
- prenom
proposer {frozen} 1
1..* effectuer
depart 1..*
VoyageEnBus
Ville 1 0..*
- dateArrivee Reservation
- nom - dateDepart {frozen}
arrivee concerner - date
- /duree - numero
1 0..* - heureArrivee 1 1..*
0..* - heureDepart + annuler(): void
0..* + confirmer(): void
{ordered} + fermerReservation(): void
+ ouvrirReservation(): void 0..*
concerne
InfoArret 1
- /duree Passager
- heureArrivee
- heureDepart - nom
- prenom
Client.
Compte.
Passager
- Gestion Catalogue– Paquetage regroupant l’ensemble des classes permettant la
gestion des données relatives aux activités de saisie de programmation :
Catalogue.
Programme
Ville Départ
destination
Gestion Catalogue
Gestion Clients
Dialogue
«import»
Controleur
+ EcranAuthentification
+ EcranCatalogue + CTRLAUthentifications
+ EcranConfirmation «import» + CTRLCatalogue
«import»
+ EcranGestionCompte + CTRLProgramme «import» «import»
+ EcranReservation + CTRReservation
Gestion Réservation
a. Relation 1 à 1
Il existe deux règles pour transformer la relation 1 à 1 :
On crée un nouvel attribut dans la table de transformation pour gérer les deux
relations.
58
Poste-Internaute
«Compo...
Navigateur.exe
http80
Serveur Web
Poste-client «compone...
Web Apache «compone...
API Systeme
«compone... http80 tcp/ip
Paiement
Navigateur
«compone...
PHP
htttp80
poste-Admin tcp/ip
«compone...
Navigateur
Serveur Base de
Données
«compone...
Mysql
BD.SQL
4.1. Introduction
1 – L'éditeur de texte. Tel le marteau d'un ouvrier, l'éditeur de texte est l'outil principal et
indispensable d'un développeur. ...
2 – un serveur Web qui va se charger de la gestion du contenu de notre site Web
3 – Un module PHP pour interpréter les codes dynamiques de notre application
4 – Un serveur de base de données
D’autres outils sont nécessaires à différents niveaux pour la réalisation de certaines
tâches.
avec le site. JavaScript est un langage tout indiqué pour répondre à ce besoin, expliquant
ainsi en partie son succès. Un beau paysage pour JavaScript.
Le CSS : CSS (Cascading Style Sheets) : Son rôle est en quelque sorte de « décorer »
votre site web, lui donner de l’allure. On utilise le CSS en particulier pour réaliser la
mise en page du site, pour définir la police, la taille du texte, la couleur du texte et du
fond.
Pour que la base de données puisse être mise à jour, modifiée, ou que des éléments (nouvel
utilisateur, par exemple) puissent s’intégrer à la base préexistante, le développeur back-end va
utiliser des langages dynamiques, lesquels vont connecter la base de données avec l’application.
PHP
Ruby
Python
Pour nous, le choix traditionnel de PHP sous semble justifié et motivé par la simplicité et
la disponibilité de la documentation et d’aides en lignes.
Le PHP : Le sigle PHP signifiait à l’origine Personal Home Page. Pour Ras mus Elsdorf,
l’auteur de ce qui allait devenir le langage de script côté serveur incorporable dans tout
document XHTML que nous connaissons, il s’agissait alors d’ajouter quelques
fonctionnalités à ses pages personnelles. PHP signifie aujourd’hui Hypertexte
Préprocesseur car il renvoie à un navigateur un document XHTML construit par le
moteur de script Zend Engine 2 de PHP, dont nous allons voir le fonctionnement. Il
permet de créer des pages Web dynamiques et interactives.
Il permet aux propriétaires de sites web de servir du contenu sur le web – d’où le nom
« serveur web » -. C’est l’un des serveurs web les plus anciens et les plus fiables avec une
première version sortie il y a plus de 20 ans, en 1995
63
Cette base de données est généralement placée sous la responsabilité d’un logiciel
spécialisé pour la gestion appelé Système de Gestion de Base de Données (SGBD). Et pour cela
nous avons jeté notre dévolu sur le logiciel MySQL.
MySQL fait partie des Systèmes de Gestion de Bases de Données Relationnelles les plus
populaires. Connu au monde de SGBDR depuis 1994 sous la responsabilité de MySQL, le
logiciel est désormais géré par Oracle Corporation. Le logiciel est distribué sous deux licence
entreprise ou payant et GPL (General Public Licence) gratuit. Une autre version existe
spécialement pour la gestion de bases de données distribuées (MariaDB).
4.3. Discussion
avant d’arriver à l’utilisation réelle. Ainsi par rapport à notre projet, l’implémentation est faite
de manière itérative et incrémentale.
Nous allons donc présenté le travail successif réalisé dans chaque cas d’utilisation.
Eu égard aux objectifs de cette étude, nous confirmons que les hypothèses ont été
confirmées. Le prototype réalisé n’est qu’une première itération de l’application
MULYKAPAPP, et dispose les options suivantes : un module de recherche en ligne de
programme de voyage, une option de sélection de programme pour effectuer sa réservation de
partout où on se trouve ; un module de confirmation de la réservation en ligne incluant une
possibilité de payer par Mobil Money, ou en espèce afin d’entrer en possession de son ticket de
voyage en bonne et due forme dans un bref délai ; un module pour suivre en temps réel
l’évolution de la réservation en cas non confirmation pour une mise à jour automatique selon le
délai; et un module de gestion de programme. Désormais les clients de MULYKAP ne peuvent
plus se soucier de la distance, de la perte du ticket avant le voyage car désormais un espace
client est disponible en ligne pour effectuer ses réservations, imprimer ses tickets.
Signalons aussi que les objectifs fixés se heurtent une résidence technique due à l’accès
refusé à l’API de paiement par les porteurs Mobiles. Néanmoins, une simulation est faite avec
de données d’essai.
a) Page d’accueil
Le programme de voyage est affiché avec les détails comme la date, l’heure, la
destination, le nombre d’escale, le prix, la photo du bus aligné.
65
b) Présentation de l’authentification
CONCLUSION GENERALE
Après ces tournures de langages, nous voici à l’apogée de notre mémoire qui a consisté
sur « la conception par la méthode UP7 d’une application web de réservation des billets de
bus» qui constitue de nos jours un domaine convoité de l’ère du numérique. L’objectif de cette
étude été de solutionner la problématique de réservation de place en ligne en mettant en place
une application web capable de rendre ce genre de service à la population lushoise d’une part
et aux agents de l’agence de rationaliser le processus métier.
Pour y arriver, la méthodologie UP7 (Unified Process en sept étapes) avec le langage
UML (Unified Modelong Language) ont été la cible de cette recherche pour la conception de
note application Web MULYKAPAPP dont la subdivision est la suivante : le premier chapitre
nous avions abordé la revue de la littérature sur la conception Web ; le second chapitre nous a
permis de faire l’analyse métier afin de comprendre l’existant en termes des activités, acteurs,
informations et règles de gestion sur la réservation de place, le mode de paiement, la prise de la
place à bord d’un Bus MULYKAP au moyen de diagrammes UML de cas d’utilisation,
d’activité et de classes du domaines ; le troisième chapitre été pour nous l’application de la
méthode UP7 pour concevoir l’architecture de l’application de réservation de ticket en ligne;
enfin le quatrième chapitre nous avons présenté les résultats de l’étude après l’implémentation
l’architecture logicielle de MULYKAPAPP afin d’avoir une application Web permettant aux
clients de s’en passer de limite géographique pour avoir une place à bord d’un bus.
Ainsi nous confirmons nos hypothèses dans la perspective d’autorisation d’accès aux
APIs de paiement de banques Mobile. Notre étude a suivi une démarche rigoureuse intégrant
les principes du génie logiciel comme la modularité, le faible couplage et une forte cohésion
interne.
Signalons que le domaine d’e-commerce restent complexe pour nous, sur ce, nous
ouvrons une perspective de recherches à venir sur la réservation par QR-Code.
70
BIBLIOGRAPHIE
[1] L. Debrauwer et F. Van Der Heyde, « UML 2.5 », Barcelona: Editions ENI. Obtenido de
https://books. google. com. ec/books, 2016.
[2] D. O. LUKENDO, N. C. AUGUSTIN, et C. Z. KALUMUNA, « Démarche UP7 pour la
conception d’un système de suivi de près du processus de retrait des diplômes et relevés
de notes aux seins des institutions supérieures et universitaires, cas de l’ISP/Bukavu. »,
Revue Internationale du Chercheur, vol. 1, no 4, 2020.
[3] P. G. OPRESCU, « GENERAL E-BUSINESS METHODS IN AGILE CONTEXT ».
[4] I. F. Schlömer, « Agility as a Driver of Digital Transformation-a Literature Review »,
dans Conference on e-Business, e-Services and e-Society, Springer, 2022, p. 238‑253.
[5] M.-R. Yan, N. Tran-Danh, et L.-Y. Hong, « Knowledge-based decision support system
for improving e-business innovations and dynamic capability of IT project management »,
Knowledge Management Research & Practice, vol. 17, no 2, p. 125‑136, avr. 2019, doi:
10.1080/14778238.2019.1601507.
[6] S. Legras, « L’agilité, nouvelle transformation pour l’entreprise », Documentaliste-
Sciences de l’Information, vol. Vol. 51, no 4, p. 4‑6, 2014, doi: 10.3917/docsi.514.0004.
[7] B. Gâteau, D. Khadraoui, et E. Dubois, « Architecture e-business sécurisée pour la gestion
des contrats », dans 3eme Conférence sur la Sécurité et Architectures Réseaux (SAR). La
Londe-France, 2004.
[8] R. N. NYATE et al., « L’AGILITE AU SERVICE DE E-BUSINESS: CONCEPTION
D’UN SYSTEME D’E-COMMERCE DE VENTE EN LIGNE DE TICKETS DE TRAIN
A LA SOCIETE NATIONALE DE CHEMIN DE FER DU CONGO (RDC) », Revue
Internationale du Chercheur, vol. 4, no 1, 2023.
[9] A. da S. Lima, UML 2.5-do Requisito a Solução. Saraiva Educação SA, 2005.