Département Informatique: Thème Application Mobile de Transport en Commun

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 45

République Algérienne Démocratique et Populaire

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique

Université des Sciences et de la Technologie Houari Boumediene

Faculté d’Electronique et d’Informatique


Département Informatique
Mémoire de Licence

Filière : Informatique

Spécialité : Informatique Académique

Thème

Application mobile de transport en commun

Sujet Proposé par :


𝑀𝑚𝑒 ZAOUCHE
𝑀𝑚𝑒 MAZOUZ
Présenté par : CHOUAKI Tarek

Devant le jury composé de :

M.BOUKALA Président
𝐌𝐦𝐞 . DOUKHA Membre

Binôme n° : 035 / 2017


Dédicace

Je dédie ce travail à ma très cher mère , toi qui m’a toujours


chéri, toi qui m’a toujours soutenu et encouragé, toi qui m’a
appris à toujours faire de mon mieux et à travailler dur.

Je dédie ce travail à mon très cher père, toi qui a toujours été de
bon conseil, toi qui a toujours fait preuve d’une sagesse et d’un
sang-froid à toute épreuve, toi qui m’a appris à réfléchir.

Si ce projet est le résultat de quelques mois de mon travail et de


l’aide que j’ai reçu, je suis-moi même le tiers du résultat de vingt
ans de votre travail.

Si tous mes enseignants auxquels je dois beaucoup m’ont appris


les concepts fondamentaux de l’informatique, vous, mes parents,
m’avez appris à apprendre.

Je ne vous remercierai jamais assez pour tout. J’espère juste me


montrer digne de vous. Votre fils, Tarek.
Remerciements

Tout d’abord, je tiens à exprimer ma profonde gratitude envers


MADAME ZAOUCHE et MADAME MAZOUZ, non seule-
ment pour m’avoir encadré, guidé et conseillé tout au long de ce
projet, mais aussi pour tous ce qu’elles m’ont appris durant mon
cursus à l’USTHB.

Je remercie aussi les membres du jury, monsieur BOUKALA et


madame DOUKHA pour le temps qu’ils ont consacré à la lecture
de ce document.

Je tient aussi à remercier tous les enseignants qui m’ont tout ap-
pris depuis mon arrivée à l’USTHB en 2014. Ce fut pour moi un
honneur que d’avoir été un de leurs étudiants.
Table des matières

1 Etude Préliminaire 2
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Description du contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 La Société d’Exploitation des Tramway (SETRAM) . . . . . . . . . . 3
1.2.2 La Société Nationale des Transports Ferroviaires (SNTF) . . . . . . . 3
1.2.3 RATP EL DJAZAÏR . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.4 L’Etablissement de Transport Urbain et Suburbain d’Alger (ETUSA) 4
1.2.5 Société de gestion Des Gares Routières d’Algérie (SOGRAL) . . . . . 4
1.2.6 Types de tarification . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Solutions existantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.1 Le site web www.sntf.dz . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.2 Le site web www.setram.dz . . . . . . . . . . . . . . . . . . . . . . . 6
1.4.3 Application mobile SNTF . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5 Solution proposée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2 Conception 9
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 Acteurs et fonctionnalités du système . . . . . . . . . . . . . . . . . . . . . . 10
2.2.1 Acteurs du système . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.1.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.1.2 Acteurs du système . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.2 Cas d’utilisations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.2.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.2.2 Hypothèses de travail . . . . . . . . . . . . . . . . . . . . . 11
2.2.2.3 Diagramme de cas d’utilisation de l’application Mobile . . . 11
2.2.2.4 Diagramme de cas d’utilisation global du site web . . . . . . 12
2.2.2.5 Diagramme de cas d’utilisation de la gestion des stations . . 13
2.2.2.6 Diagramme de cas d’utilisation de la gestion des tronçons . 13
2.2.2.7 Diagramme de cas d’utilisation de la gestion des lignes . . . 14
2.2.2.8 Diagramme de cas d’utilisation de la gestion des horaires . . 14
2.2.2.9 Diagramme de cas d’utilisation de la gestion des alertes . . . 15
2.2.3 Description des fonctionnalités du systèmes . . . . . . . . . . . . . . . 15
2.2.3.1 Definition - Diagramme de séquence . . . . . . . . . . . . . 15
TABLE DES MATIÈRES

2.2.3.2 Diagramme de séquence d’ajout d’une station . . . . . . . . 16


2.2.3.3 Diagramme de séquence d’ajout d’un tronçon . . . . . . . . 16
2.2.3.4 Diagramme de séquence d’ajout d’une ligne . . . . . . . . . 17
2.2.3.5 Diagramme de séquence d’ajout d’une station à une ligne . . 17
2.2.3.6 Diagramme de séquence de suppression d’une station d’une
ligne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.3.7 Diagramme de séquence de suppression d’une ligne . . . . . 18
2.2.3.8 Diagramme de séquence de suppression d’un tronçon . . . . 19
2.2.3.9 Diagramme de séquence de suppression d’une station . . . . 19
2.2.4 Modélisation proposée pour le calcul de l’itinéraire . . . . . . . . . . 20
2.2.5 Diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.5.1 définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.5.2 Description des attributs . . . . . . . . . . . . . . . . . . . . 22
2.2.5.3 Règles de gestion . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3 Passage du diagramme de classes au schéma relationnel . . . . . . . . . . . . 23
2.3.1 Règles de passage du diagramme de classes au schéma relationnel . . 23
2.3.2 Schéma relationnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3 Réalisation 25
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2 Environnement de developpement . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2.1 Langages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2.1.1 HTML (HyperText Markup Language) . . . . . . . . . . . . 26
3.2.1.2 CSS (Cascading Style Sheets ou feuilles de style en cascade) 26
3.2.1.3 JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2.1.4 PHP (PHP : Hypertext Preprocessor) . . . . . . . . . . . . 26
3.2.1.5 SQL (Structured Query Language ou langage de requête struc-
turée) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2.1.6 Le langage JAVA . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.2 bibliothèques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.2.1 JQuery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.3 Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.3.1 Bootstrap . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.3.2 AngularJS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.4 APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.4.1 Maps JavaScript API de Google . . . . . . . . . . . . . . . . 27
3.2.4.2 Maps ANDROID API de Google . . . . . . . . . . . . . . . 27
3.2.5 Outils de développement . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.5.1 IntelliJ IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.5.2 WampServer . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.5.3 Android Studio . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3 Patron de concéption : Modèle-vue-contrôleur . . . . . . . . . . . . . . . . . 28
3.4 Interfaces du système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.4.1 Interfaces du site web . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
TABLE DES MATIÈRES

3.4.1.1 Interface de gestion des horaires . . . . . . . . . . . . . . . . 29


3.4.1.2 Interface de gestion des alertes . . . . . . . . . . . . . . . . 29
3.4.1.3 Interface de gestion du profil . . . . . . . . . . . . . . . . . 30
3.4.1.4 Interface de gestion de l’infrastructure de transport . . . . . 30
3.4.2 Interfaces de l’application mobile . . . . . . . . . . . . . . . . . . . . 31
3.4.2.1 Interface de la carte et de recherche d’itinéraire . . . . . . . 31
3.4.2.2 Interfaces des horaires . . . . . . . . . . . . . . . . . . . . . 31
3.4.2.3 Interfaces des notifications et des réglages . . . . . . . . . . 32
3.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Introduction Générale

Depuis toujours, l’homme n’a eu cesse de vouloir aller plus loin plus vite.
Pour cela, il a conçu des moyens de transport toujours plus rapides et plus sûrs.
L’histoire en témoigne, le transport est un poumon pour la civilisation, son
évolution et sa qualité sont indicateurs d’une société moderne. Le bon fonction-
nement des transports en commun est nécessaire à la productivité de nombreux
autres secteurs tels que : l’industrie, l’enseignement, le tourisme...etc. L’un des
critères de qualité d’un service de transport en commun est la disponibilité de
l’information vis-à-vis des usagers.
D’autre part, l’essor de l’informatique et son développement ont permis son
utilisation dans tous les domaines, elle est aujourd’hui présente dans tous les
aspects de notre vie quotidienne. L’apparition d’Internet et ensuite des smart-
phones ont bouleversé notre quotidien en introduisant une nouvelle manière de
consommer l’information.
Dans le cadre de notre projet de fin d’étude, nous réalisons une application
mobile permettant aux usagers de recevoir des informations concernant diffé-
rents moyens de transport, de consulter des horaires et de trouver des itinéraires
(qui peuvent être intermodaux) pour aller d’un endroit à un autre.
Nous étudierons tout d’abord le domaine des transports en commun en Algé-
rie afin de déceler et de comprendre les problématiques auxquelles nous devons
apporter des solutions. Ensuite, nous concevrons le système qui répond aux be-
soins dégagés dans la première étape. Enfin, nous passerons à la réalisation de
ce système.

1
CHAPITRE 1
Etude Préliminaire

2
CHAPITRE 1. ETUDE PRÉLIMINAIRE 3

1.1 Introduction
Cette étude est d’une importance capitale dans tout type de projet et d’autant plus
dans un projet de développement logiciel car elle permet de comprendre l’environnement du
système à réaliser, de préciser les difficultés qui font de sa réalisation une nécessité et de
le comparer aux solutions existantes. Ainsi, nous décrirons dans ce chapitre le secteur des
transports en commun en Algérie (principalement la capitale Alger), ses principaux acteurs, et
certains problèmes auxquels les usagers font face au quotidien. Ensuite nous illustrerons avec
quelques solutions web et mobiles qui existent déjà et les fonctionnalités qu’elles apportent.
Enfin nous décrirons la solution proposée dans ce projet.

1.2 Description du contexte


En Algérie, le domaine des transports en commun est en plein essor, Les larges réseaux
de bus à travers le pays et dans les grandes villes, la mise en service du métro et du tramway
d’Alger en 2011 et leurs extensions, les travaux de réalisation de tramways dans plusieurs
grandes villes du pays (Setif, Batna, Mostaganem...) et la réalisation d’une voie ferrée reliant
le centre d’Alger à Zeralda ont permis aux usagers d’avoir accès à une multitude de moyens
de transport en commun. Voici un bref aperçu des infrastructures existantes :

1.2.1 La Société d’Exploitation des Tramway (SETRAM)


41 rames couvrant une ligne de 23 km sur Alger. 40 millions de voyageurs transportés
depuis la mise en service en 2011[10].
30 rames couvrant une ligne de 18,7 km à Oran. 25 millions de voyageurs transportés
depuis la mise en service en 2013[11].
27 rames couvrant une ligne de 8 km à Constantine. 16,2 millions de voyageurs transportés
depuis la mise en service 2013[12].

1.2.2 La Société Nationale des Transports Ferroviaires (SNTF)


3750km de lignes exploitées dont 323km électrifiées[15].
36 216 111 de voyageurs transportés[16].

1.2.3 RATP EL DJAZAÏR


Responsable de la mise en service et l’exploitation du métro d’Alger. Ce dernier se consti-
tue de 10 stations sur 8.5 km. L’intervalle entre les rames est de 3 minutes et transporte 20
000 voyageurs par heure[7].
CHAPITRE 1. ETUDE PRÉLIMINAIRE 4

1.2.4 L’Etablissement de Transport Urbain et Suburbain d’Alger


(ETUSA)
Leader du transport public de voyageurs en modes urbain et suburbain dans la Wilaya
d’Alger.
Parc composé de 618 véhicules, 49 lignes exploitées sur Alger et 41 108 613 usagers transportés
en 2009[4].

1.2.5 Société de gestion Des Gares Routières d’Algérie (SOGRAL)


Responsable de la gestion de 19 gares routières à travers le territoire nationale, dont celle
d’Alger (caroubier) regroupant 854 opérateurs desservants 64 grandes lignes, 191 moyennes
lignes et 599 petites lignes[18].

1.2.6 Types de tarification


En général, une entreprise de transport en commun de notre contexte utilise une des trois
tarifications suivante :
— Tarification simple : le prix d’un ticket est déterminé par la station de départ et la
station d’arrivée.
— Tarification à la Durée : le prix du ticket est fixe et sa validité porte sur une période
de temps.
— Tarification fixe : le prix du ticket est fixe quelles que soient les stations de départ et
d’arrivée et sa durée de validité n’est pas limitée.
Ces types de tarification sont utilisés par les entreprises de transport citées précédemment
comme suit :
— La SETRAM utilise une tarification à la durée, un ticket coûte 40DA et est valide
pendant 1h30.
— La SNTF, l’ETUSA et la SOGRAL utilisent une tarification simple.
— La RATP EL DJAZAÏR utilise une tarification fixe.
Certaines entreprises proposent aussi des formules d’abonnement ou des formules spéciales
tel que les tickets interopérables.

1.3 Problématique
Avec tant d’options, certains usagers, les inhabituels surtout, ont du mal à se retrouver.
En effet, une majeure partie des informations concernant les moyens de transport en commun
telles que les stations desservies, les horaires, les tarifs ne sont disponibles que sur les sites
web de leurs opérateurs respectifs. Ces sites web ne sont accessibles que si l’usager à accès
à internet et le taux d’abonnés au réseau 3G est encore faible (37.5 % en 2015 [2]). Aussi,
la dispersion des informations sur les sites web des opérateurs fait que l’établissement d’un
itinéraire intermodal est une tâche fastidieuse pour l’usager qui doit consulter différents sites
CHAPITRE 1. ETUDE PRÉLIMINAIRE 5

web. D’où la nécessité d’avoir à disposition un outil informatique regroupant les informations
de plusieurs moyens de transport.
De plus, étant donné le nombre de personnes dont l’activité quotidienne dépend des trans-
ports en communs, il est primordial de fournir une information à jour, crédible et disponible
pour tous concernant ces transports pour prévenir en cas de panne, grève ou incident. Or,
l’usager est confronté aux différentes rumeurs sur les réseaux sociaux et ne sait pas à qui se
fier. Souvent, ce n’est qu’une fois sur place qu’on apprend qu’un transport n’est pas dispo-
nible, ce qui ne laisse pas de temps pour prévoir une alternative. Ce manque d’information
durant les périodes de perturbation a un impact considérable sur les travailleurs et sur les
étudiants, ceux-ci se retrouvent en retard et épuisés en début de journée, leur productivité
est alors grandement réduite. Il parait donc nécessaire de mettre à disposition des usagers un
moyen de recevoir cette information directement de la part de l’opérateur concerné.

1.4 Solutions existantes


Nous avons choisi d’illustrer avec quelques exemples de solutions existantes traitant sur le
secteur des transports en commun, cette liste est loin d’être exhaustive mais offre néanmoins
un aperçu des moyens disponibles aux usagers.

1.4.1 Le site web www.sntf.dz


Ce site web permet aux usagers de trains de consulter les horaires des trains circulant à
travers le territoire national. Il indique aussi le prix avec les différentes formules. Cependant
ces fonctionnalités ne prennent pas en compte les trajets nécessitant un changement de train.

Figure 1.a – Aperçu d’une recherche d’horaire réussie sur www.sntf.dz[17]


CHAPITRE 1. ETUDE PRÉLIMINAIRE 6

Figure 1.b – Aperçu d’une recherche d’horaire sans résultat sur www.sntf.dz[1]

1.4.2 Le site web www.setram.dz


Ce site web permet aux usagers de tramway de connaitre les horaires et les stations
desservies (celles-ci sont affichées sur une carte), il couvre toutes les villes du pays où il y’a
un tramway en service.

Figure 1.c – Aperçu des horaires sur [13]


CHAPITRE 1. ETUDE PRÉLIMINAIRE 7

Figure 1.d – Aperçu des horaires du tramway d’Alger sur [14]

1.4.3 Application mobile SNTF


Cette application mobile disponible sur ANDROID permet aux usagers de consulter les
horaires de trains et les prix de la même manière que sur www.sntf.dz .Elle fonctionne
même quand aucune connexion à internet n’est disponible. Néanmoins, comme le site web
www.sntf.dz, cette application ne prend pas en considération les cas où il faut changer de
train.

Figure 1.e – Aperçu de l’application mobile SNTF


CHAPITRE 1. ETUDE PRÉLIMINAIRE 8

1.5 Solution proposée


Dans ce projet, nous proposons pour remédier aux problèmes cités précédemment d’offrir
aux usagers une application mobile leur permettant d’accéder aux informations relatives à
plusieurs moyens de transports ainsi qu’un site web destiné aux opérateurs des transports
en commun, ceux-ci pourront gérer toutes les informations les concernant, ainsi il n’y pas
d’intermédiaire entre les usagers et les opérateurs.
L’application mobile devra permettre à l’usager :
— De consulter les horaires.
— De trouver la station la plus proche d’un moyen de transport donné.
— D’établir un itinéraire (celui-ci peut être intermodal) vers un endroit donné suivant des
critères de temps et de transports.
— De recevoir les alertes concernant les moyens de transport qui l’intéressent.
La fonction du site web sera quant à elle d’alimenter le contenu de l’application et ce en
permettant à l’opérateur de transport en commun :
— De gérer les stations, les lignes, les horaires et les tarifications.
— D’envoyer des alertes pour informer les usagers.

1.6 Conclusion
Dans ce chapitre, nous avons étudié le secteur des transports en commun en Algérie, ses
grands acteurs et les difficultés auxquels les usagers font face. Ensuite, nous avons fait un
aperçu des solutions existantes.
Cette étape nous a permis d’avoir une vision globale du travail à réaliser pour résoudre les
problèmes décelés. Dans le chapitre suivant, nous allons concevoir le système devant réaliser
les taches citées précédemment.
CHAPITRE 2
Conception

9
CHAPITRE 2. CONCEPTION 10

2.1 Introduction
Apres avoir étudié le contexte de notre projet et déterminé les problèmes auxquels nous
devons remédier, nous entamons la conception de notre système. Pour cela, nous utilisons le
langage UML.
« Le langage de modélisation unifié, de l’anglais Unified Modeling Language (UML),
est un langage de modélisation graphique à base de pictogrammes conçu pour fournir une
méthode normalisée pour visualiser la conception d’un système. Il est couramment utilisé en
développement logiciel et en conception orientée objet. »[22].
Dans un premier temps, nous identifierons les acteurs du système ainsi que les fonctionna-
lités auxquelles ils auront accès en utilisant des diagrammes de cas d’utilisation. Ensuite nous
détaillerons ces fonctionnalités à l’aide de diagrammes de séquences. Enfin, nous détaillerons
les données que le système devra manipuler à l’aide d’un diagramme de classes.

2.2 Acteurs et fonctionnalités du système


2.2.1 Acteurs du système
2.2.1.1 Définition
« Un acteur représente un rôle joué par une entité externe (utilisateur humain, dispositif
matériel ou autre système) qui interagit directement avec le système étudié. Un acteur peut
consulter et/ou modifier directement l’état du système, en émettant et/ou en recevant des
messages susceptibles d’être porteurs de données. »[8].

2.2.1.2 Acteurs du système


Le système que nous sommes amenés à réaliser doit interagir avec deux acteurs :
— Usager de transport en commun : C’est l’utilisateur de notre application mobile, il devra
avoir accès aux informations concernant les transports en commun, leur localisation,
les horaires...etc.
— Entreprise de transport en commun : L’opérateur d’un transport en commun va utiliser
le site web pour gérer les informations le concernant (stations, lignes, horaires...) et
communiquer avec les usagers via des alertes.
Le système en lui-même sera géré par un administrateur qui s’occupera de la gestion des
comptes des entreprises.

2.2.2 Cas d’utilisations


2.2.2.1 Définition
Un cas d’utilisation «Use Case» représente un ensemble de séquences d’actions qui sont
réalisées par le système et qui produisent un résultat observable intéressant pour un acteur
particulier. Chaque cas d’utilisation spécifie un comportement attendu du système considéré
CHAPITRE 2. CONCEPTION 11

comme un tout, sans imposer le mode de réalisation de ce comportement. Il permet de décrire


ce que le futur système devra faire, sans spécifier comment il le fera [9].

2.2.2.2 Hypothèses de travail


Nous définissons ici des termes qui reviendront souvent.
— Une station désigne le lieu d’arrêt momentané des véhicules de transport pour prendre
ou laisser des voyageurs[21]. Certaines stations sont intermodales 1 . Exemple : la station
de train d’El-Harrach et la station de tramway de Caroubier.
— Un tronçon est un chemin reliant directement deux stations, il peut être emprunté
dans un sens comme dans l’autre. Exemple : le tronçon reliant les stations de train Bab
Ezzouar et Oued Smar.
— Une ligne est un trajet définit par la société de transport en commun, elle relie au moins
deux stations extrémités via au moins un tronçon. Plusieurs lignes peuvent utiliser un
même tronçon, par exemple : le tronçon ferroviaire Caroubier El-Harrach est utilisé
par les lignes Alger-Thenia et Alger-El Affroun. Les tronçons doivent donc être gérés
indépendemment de toute ligne.

2.2.2.3 Diagramme de cas d’utilisation de l’application Mobile


L’acteur «Usager de transport en commun» est l’utilisateur de l’application mobile. Il va
utiliser celle-ci dans les cas décrits dans le diagramme ci-dessous.

Figure 2.a – Diagramme de cas d’utilisation de l’application mobile

Description
— La fonctionnalité "Trouver itinéraires vers un lieu donné" permet à l’usager d’avoir
plusieurs itinéraires (s’il en existe), chacun étant optimal du point de vue d’un critère
bien particulier (temps, coût, correspondance...).
— La fonctionnalité "Suivre ligne" permet à l’usager de recevoir les alertes relatives aux
lignes qu’il empreinte souvent.
1. Une station intermodale est proche d’une autre station gérée par une autre entreprise
CHAPITRE 2. CONCEPTION 12

2.2.2.4 Diagramme de cas d’utilisation global du site web


L’acteur «Entreprise de transport en commun» est l’utilisateur du site. Il va l’utiliser
dans les cas décrits dans le diagramme ci-dessous.

Figure 2.b – Diagramme de cas d’utilisation général du site web

Ce diagramme donne un aperçu de haut niveau des fonctionnalités du système, celles-ci


seront détaillées dans les diagrammes suivants.

Remarque : Il est à noter que l’accès à toutes les fonctionnalités citées dans le diagramme
ci-dessus requiert une authentification.
CHAPITRE 2. CONCEPTION 13

2.2.2.5 Diagramme de cas d’utilisation de la gestion des stations

Figure 2.c – Diagramme de cas d’utilisation de la gestion des stations

2.2.2.6 Diagramme de cas d’utilisation de la gestion des tronçons

Figure 2.d – Diagramme de cas d’utilisation de la gestion des tronçons


CHAPITRE 2. CONCEPTION 14

2.2.2.7 Diagramme de cas d’utilisation de la gestion des lignes

Figure 2.e – Diagramme de cas d’utilisation de la gestion des lignes

Description
— Á la création d’une ligne, après la spécification des stations extrémités, les chemins
possibles entre celles-ci sont calculés. S’il existe un seul chemin, les tronçons qui le
constituent sont pris automatiquement. Sinon, ça sera à l’utilisateur de choisir.
— Une ligne étant une suite de tronçons, l’ajout/suppression d’une station à/d’une ligne
s’effectue en manipulant des tronçons tout en conservant le chainage.

2.2.2.8 Diagramme de cas d’utilisation de la gestion des horaires

Figure 2.f – Diagramme de cas d’utilisation de la gestion des horaires


CHAPITRE 2. CONCEPTION 15

Description À un moment précis de la journée, un transport peut mettre plus ou moins


de temps que d’habitude, c’est pour ça que nous devons permettre à l’entreprise de transport
en commun d’indiquer une durée différente de la durée moyenne du parcours du tronçon.
En indiquant un horaire, il faut préciser si celui-ci est applicable les jours ouvrables, fériés
ou les deux. D’où le cas d’utilisation indiquer classe d’horaire.

2.2.2.9 Diagramme de cas d’utilisation de la gestion des alertes

Figure 2.g – Diagramme de cas d’utilisation de la gestion des alertes

Les alertes servent à l’entreprise de transport en commun à informer les usagers quand il
y a un changement de tarif ou d’horaire. Comme elles peuvent être utilisées lors de situations
exceptionnelles (grèves, incidents...etc).

2.2.3 Description des fonctionnalités du systèmes


2.2.3.1 Definition - Diagramme de séquence
Un diagramme de séquence permet de décrire les scénarios de chaque cas d’utilisation en
mettant l’accent sur la chronologie des opérations en interaction avec les objets[3].
CHAPITRE 2. CONCEPTION 16

2.2.3.2 Diagramme de séquence d’ajout d’une station

Figure 2.h – Diagramme de séquence d’ajout d’une station

2.2.3.3 Diagramme de séquence d’ajout d’un tronçon

Figure 2.i – Diagramme de séquence d’ajout d’un tronçon

L’itinéraire d’un tronçon est défini comme un ensemble de points geographiques ordonnés.
CHAPITRE 2. CONCEPTION 17

2.2.3.4 Diagramme de séquence d’ajout d’une ligne

Figure 2.j – Diagramme de séquence d’ajout d’une ligne

Pour construire une ligne, tous les tronçons doivent être préalablement créés.
Le calcul des chemins entres les extrémités se fait à l’aide d’un parcours en largeur.

2.2.3.5 Diagramme de séquence d’ajout d’une station à une ligne

Figure 2.k – Diagramme de séquence d’ajout d’une station à une ligne

Dans une ligne constituée des stations (S1 , ..., Sn ), on ne peut ajouter une station S entre
deux stations Si-1 et Si que si il existe un tronçon reliant S à Si-1 et un tronçon reliant S à Si .
Cette vérification n’est pas explicitée dans le diagramme ci-dessous car l’utilisateur ne peut
accéder à la fonctionnalité si la condition n’est pas déjà vérifiée.
CHAPITRE 2. CONCEPTION 18

2.2.3.6 Diagramme de séquence de suppression d’une station d’une ligne

Figure 2.l – Diagramme de séquence de suppression d’une station d’une ligne

Dans une ligne constituée des stations (S1 , ..., Sn ), on ne peut supprimer une station Si
se trouvant entre les deux stations Si-1 et Si+1 que si il existe un tronçon reliant celles-ci.

2.2.3.7 Diagramme de séquence de suppression d’une ligne

Figure 2.m – Diagramme de séquence de suppression d’une ligne

La suppression d’une ligne n’entraine pas la suppression ni de ses tronçons ni de ses stations.
CHAPITRE 2. CONCEPTION 19

2.2.3.8 Diagramme de séquence de suppression d’un tronçon

Figure 2.n – Diagramme de séquence de suppression d’un tronçon

Un tronçon ne peut être supprimé que s’il n’apparait dans aucune ligne. En revanche, la
suppression d’un tronçon n’entraine pas la suppression de ses stations extrémités. En effet,
une station peut être utilisée par plusieurs tronçons.

2.2.3.9 Diagramme de séquence de suppression d’une station

Figure 2.o – Diagramme de séquence de suppression d’une station

Une station ne peut être supprimée que si elle n’est contenue dans aucun tronçon.
CHAPITRE 2. CONCEPTION 20

2.2.4 Modélisation proposée pour le calcul de l’itinéraire


La modélisation que nous proposons consiste en une part à construire un graphe étendu
modélisant le réseau de transport inter-entreprises et d’autre part d’associer à ce graphe des
fonctions de pondération correspondant aux critères choisis.
1. Le graphe étendu est construit comme suit :
(a) Associer un graphe GE =< SE , AE > à chaque entreprise E, où SE est l’ensemble
des stations de E et AE ⊆ SE × SE correspond aux tronçons reliant les stations
de E et exploités par au moins une ligne.
S
(b) Construire un graphe global G = GE =< SG , AG > tel que
S S E
SG = SE et AG = AE .
E E
(c) - Rajouter des arêtes représentant des tronçons fictifs entre les stations intermo-
dales. Elles permettent de relier les différents réseaux de transports en se basant
sur les correspondances inter-entreprises.
(d) Rajouter à SG deux stations sd et sa représentant deux stations fictives dont les
emplacements correspondent respectivement à la position de l’usager et celle de
l’endroit à atteindre.
(e) Pour chaque station s de SG proche 2 de sd , rajouter une arête entre s et sd .
(f) Pour chaque station s de SG proche de sa , rajouter une arête entre s et sa .
2. Selon le critère, la fonction de ponderation est définie comme suit :
— Une fonction qui associe à chaque arête du graphe étendu un poids constituant le
temps de parcours du tronçon qu’elle représente.
— Une fonction qui associe à chaque chemin (itinéraire) un poids constituant le
nombre de correspondance à effectuer.
— Une fonction qui associe à chaque chemin (itinéraire) un poids constituant le coût
du voyage.
Par la suite, on applique l’algorithme de Dijkstra [Annexe] sur le graphe étendu pon-
déré.

2.2.5 Diagramme de classes


2.2.5.1 définition
Le diagramme de classes est le point central dans un développement orienté objet. En
analyse, il a pour objectif de décrire la structure des entités manipulées par les utilisateurs.
En conception, le diagramme de classes représente la structure d’un code orienté objet ou à
niveau de détail plus important, les modules du langage de développement[9].
2. Une station s est proche de sd (respectivement sa ) si la distance qui les sépare est inférieur à un certain
seuil.
CHAPITRE 2. CONCEPTION 21

Figure 2.p – Diagramme de classes


CHAPITRE 2. CONCEPTION 22

2.2.5.2 Description des attributs


Classe Attribut description
désignation Désignation de l’entreprise ex : SNTF, SE-
Entreprise TRAM...etc
mail L’adresse email que l’entreprise utilise pour se
connecter.
motDePasseCrypte Le mot de passe que l’entreprise utilise pour se
connecter est stocké sous forme cryptée
Tronçon duréeMoyenne La durée moyenne nécessaire au parcours du tron-
çon.
heureDepart L’heure de départ d’un voyage concernant une
Horaire
ligne à partir de l’une de ses extrémités
classe La catégorie de jours durant lesquels l’horaire
prend effet (jours de semaine, vendredis et jours
fériés, tous les jours)
HoraireTronçon duree Le temps nécessaire au parcours du tronçon pour
un voyage concerné par un 1 horaire particulier.
Intitule Titre donné à l’alerte
texte Description de l’alerte
Alerte
dateEmission Date de création de l’alerte
dateExpiration Date à partir de laquelle l’alerte ne sera plus visible
aux usagers
DureeUnitaire La durée unitaire pour une tarification à la durée
HoraireDuree
tarifUnitaire Le tarif unitaire pour une tarification à la durée

2.2.5.3 Règles de gestion


— Une entreprise de transport en commun gère des stations, des tronçons et des lignes et
utilise une tarification. Tous ces éléments sont relatifs à une seule entreprise.
— Une station concerne un moyen de transport bien particulier et se trouve à un point
géographique donné qui ne peut concerner qu’une station.
— Une station peut être en correspondance avec zéro ou plusieurs stations.
— Un tronçon relie deux stations et est représenté sur la carte par une suite de points reliés
par des segments, d’où la relation entre les classes Tronçon et PointGeographique avec
un attribut indiquant la position du point dans le tracé du tronçon (zéro ou plusieurs
points car les deux points des stations extrémités sont systématiquement pris en compte
dans le tracé). Une station peut apparaitre dans zéro ou plusieurs tronçons.
— Une ligne est une suite d’au moins un tronçon, un tronçon peut apparaitre dans zéro
ou plusieurs lignes.
— Pour certaines entreprises, deux stations peuvent être reliées par plusieurs tronçons
différents. Par contre, un seul tronçon relie deux stations dans une ligne donnée.
— Un horaire concerne une ligne donnée et une station qui est une des extrémités de la
ligne en question. Une ligne est concernée par zéro ou plusieurs horaires. Il en va de
CHAPITRE 2. CONCEPTION 23

même pour une station.


— Une alerte concerne une seule ligne, une ligne peut être concernée par zéro ou plusieurs
alertes
— La tarification utilisée par l’entreprise est soit fixe, à la durée ou simple. Dans le cas
d’une tarification simple, un tarif simple concerne deux stations. Une station peut être
concernée par zéro ou plusieurs tarifs simples.

2.3 Passage du diagramme de classes au schéma relation-


nel
2.3.1 Règles de passage du diagramme de classes au schéma rela-
tionnel
Classes
Chaque classe du diagramme UML devient une relation dont les attributs sont ceux de la
classe. Si aucun des attributs de la classe ne peut jouer le rôle de clé primaire, on ajoute un
à la relation qui jouera ce rôle.

Associations
— Pour les associations avec une cardinalité un à plusieurs, on ajoute à la relation déduite
de la classe avec une cardinalité plusieurs une clé étrangère qui est la clé primaire de
la relation déduite de la classe avec une cardinalité 1.

— Pour les associations avec une cardinalité plusieurs à plusieurs, nous ajoutons une troi-
sième classe dont la clé primaire est la composition des clés primaires des relations
déduites des classes concernées par l’association.

— Pour les associations un-un, on ajoute une clé étrangère dans la relation déduite de la
classe ayant une cardinalités minimale égale à 1. Si les deux cardinalités minimales sont
égales à 1, on fusionne les deux relations en une seule est la clé de l’une d’elle est prise
comme clé primaire.

Héritage
— première méthode : chaque classe concernée par l’héritage va correspondre à une rela-
tion. Une relation déduite d’une sous classe lui est associée une clé étrangère corres-
pondante à la clé primaire de la relation déduite de sa classe mère.
— deuxième méthode : on supprime la relation déduite de la classe mère en faisant migrer
ses attributs dans les relations déduites des classes filles.
— troisième méthode : on supprime les relations déduites des classes filles en faisant migrer
leurs attributs dans la relation déduite de la classe mère. Cette méthode implique une
gestion des nuls pour déterminer la classe de l’objet.
CHAPITRE 2. CONCEPTION 24

2.3.2 Schéma relationnel


Ayant appliquée les règles citées ci-dessus, nous sommes arrivées au schéma suivant :
— Entreprise (code_entreprise, designation_entreprise, mail, motDePasseCrypte, ty-
peTarification)
— Station (code_station, designation_station, latitude_station, longitude_station, moyen-
DeTransport, #code_entreprise )
— Correspondance (#code_station_1, #code_station_1)
— Tronçon (code_tronçon, #code_station_1, #code_station_2, duréeMoyenne)
— Ordonnancement(#code_tronçon, ordre, latitude_point, longitude_point)
— Ligne (code_ligne, designation_ligne)
— LigneTronçon (#code_ligne, #code_tronçon)
— Alerte (code_alerte, intitule, texte, dateEmission, dateExpiration, #code_ligne)
— Horaire (code_horaire, heureDepart, classe, #code_ligne, #code_station)
— HoraireTronçon (#code_horaire, #code_tronçon, duree)
— TarificationDuree (code_entreprise, tarifUnitaire, duréeUnitaire)
— TarificationFixe (code_entreprise, tarif)
— TarifSimple (#code_station_1, #code_station_2, montant)

Les clés primaires sont soulignées et en gras. Les clés étrangères sont en gras et précédées
par un #.

2.4 Conclusion
A la fin de ce chapitre, nous avons une vision claire de notre système et de ses fonction-
nalités. Ayant détaillé les aspects statiques et dynamiques à l’aide d’UML, nous pouvons
maintenant passer à réalisation. Celle-ci sera développée dans le chapitre suivant dans lequel
nous présenterons les plateformes, outils, langages et frameworks que nous avons utilisé pour
réaliser notre système.
CHAPITRE 3
Réalisation

25
CHAPITRE 3. RÉALISATION 26

3.1 Introduction
Dans ce chapitre, nous allons présenter les outils, plateformes, langages, APIs, librairies
et frameworks avec lesquels nous avons réalisé le système. Nous donnerons aussi un aperçu
de celui-ci avec des illustrations du site web et de l’application mobile.

3.2 Environnement de developpement


3.2.1 Langages
3.2.1.1 HTML (HyperText Markup Language)
HTML est le format de données conçu pour représenter les pages web. C’est un langage
de balisage permettant d’écrire de l’hypertexte, d’où son nom. HTML permet également de
structurer sémantiquement et logiquement et de mettre en forme le contenu des pages, d’in-
clure des ressources multimédias dont des images, des formulaires de saisie, et des programmes
informatiques[20].
HTML est actuellement à sa 5ème version, c’est celle que nous utilisons pour notre projet.

3.2.1.2 CSS (Cascading Style Sheets ou feuilles de style en cascade)


Le CSS permet de décrire la manière dont les éléments présents dans le HTML seront
affichés par le navigateur. En effet, HTML n’offre que peu de possibilités de présentation.
Nous utilisons la version la plus récente actuellement (CSS3).

3.2.1.3 JavaScript
JavaScript est un langage de programmation qui est principalement employé dans les
pages web interactives. Il permet de dynamiser une page web en ajoutant des interactions
avec l’utilisateur, des animations, de l’aide à la navigation...etc. Il est devenu incontournable
dans tout projet de développement web.

3.2.1.4 PHP (PHP : Hypertext Preprocessor)


PHP est un langage de programmation libre, principalement utilisé pour produire des
pages Web dynamiques via un serveur HTTP. Selon une étude menée par www.w3techs.com,
PHP est utilisé dans 82.6% des sites web, à l’instar de Facebook, Wikipedia, Twitter...etc.

3.2.1.5 SQL (Structured Query Language ou langage de requête structurée)


SQL est un langage informatique normalisé servant à exploiter des bases de données rela-
tionnelles. Le langage de manipulation des données de SQL permet de rechercher, d’ajouter,
de modifier ou de supprimer des données dans les bases de données relationnelles.
CHAPITRE 3. RÉALISATION 27

3.2.1.6 Le langage JAVA


Le langage Java est un langage de programmation informatique orienté objet dont la
particularité et l’objectif central est que les programmes écrits en JAVA doivent être très
facilement portables sur plusieurs systèmes d’exploitation.
Java offre aussi des environnements de développement intégrés pour mobile. Il est d’ailleurs
le principal langage utilisé pour développer des applications pour le système d’exploitation
libre pour Mobile de Google : Android.

3.2.2 bibliothèques
3.2.2.1 JQuery
jQuery est une bibliothèque JavaScript libre et multi-plateforme créée pour faciliter l’écri-
ture de scripts côté client dans le code HTML des pages web. Il est utilisé par plusieurs fra-
meworks tels que Bootstrap et AngularJS. Selon w3techs.com, 91.9% des sites web utilisent
JQuery.

3.2.3 Frameworks
3.2.3.1 Bootstrap
Bootstrap est une collection d’outils utile à la création du design (graphisme, animation
et interactions avec la page dans le navigateur ...etc.) de sites et d’applications web. C’est un
ensemble qui contient des codes HTML et CSS, des formulaires, boutons, outils de navigation
et autres éléments interactifs, ainsi que des extensions JavaScript en option.

3.2.3.2 AngularJS
AngularJS est un framework JavaScript libre et open-source développé par Google. Il
est fondé sur l’idée que la programmation déclarative doit être utilisée pour construire les
interfaces utilisateurs et les composants logiciels de câblage, tandis que la programmation im-
pérative excelle pour exprimer la logique métier. Il permet une synchronisation automatique
des modèles et des vues.

3.2.4 APIs
3.2.4.1 Maps JavaScript API de Google
Cette API permet d’afficher une carte géographique sur une page web, la personnaliser
et contrôler son comportement vis-à-vis de l’utilisateur. La documentation complète de cette
API peut être consultée sur [5].

3.2.4.2 Maps ANDROID API de Google


Cette API permet d’intégrer une carte dans une application mobile ANDROID. Elle offre
les mêmes fonctionnalités que l’API citée précédemment. La documentation complète de cette
CHAPITRE 3. RÉALISATION 28

API peut être consultée sur [6]

3.2.5 Outils de développement


3.2.5.1 IntelliJ IDEA
IntelliJ IDEA est un IDE Java commercial développé par JetBrains. Il peut cependant
gérer plusieurs autres langages. Nous l’utilisons pour développer notre site web (HTML,
CSS, JavaScript, PHP). Bien que la version complète soit payante, une licence est offerte
gratuitement aux étudiants. Nous avons donc acquis une licence gratuitement à l’aide de
l’adresse mail @etu.usthb.dz.

3.2.5.2 WampServer
WampServer (anciennement WAMP5) est une plateforme de développement Web de type
WAMP, permettant de faire fonctionner localement (sans avoir à se connecter à un serveur
externe) des scripts PHP.
WampServer n’est pas en soi un logiciel, mais un environnement comprenant deux ser-
veurs (Apache et MySQL), un interpréteur de script (PHP), ainsi que phpMyAdmin pour
l’administration Web des bases MySQL [19].

3.2.5.3 Android Studio


Android Studio est un environnement de développement pour développer des applications
Android qui est basé sur IntelliJ IDEA. Android Studio permet principalement d’éditer les fi-
chiers Java et les fichiers de configuration d’une application Android. Il propose aussi d’autres
outils pour gérer le développement d’applications multilingues et permet de visualiser la mise
en page des écrans sur des écrans de résolutions variées simultanément.

3.3 Patron de concéption : Modèle-vue-contrôleur


Modèle-Vue-Contrôleur (abr. MVC) est un motif d’architecture logicielle destiné aux in-
terfaces graphiques lancé en 1978 et très populaire pour les applications web. Le motif est
composé de trois types de modules ayant trois responsabilités différentes : les modèles, les
vues et les contrôleurs.
MVC permet de concevoir des applications de manière claire et efficace grâce à la sé-
paration des intentions. Les opérations de maintenance et de mises à jour sont fortement
simplifiées.
CHAPITRE 3. RÉALISATION 29

3.4 Interfaces du système


3.4.1 Interfaces du site web
3.4.1.1 Interface de gestion des horaires

Figure 3.a – Interface de gestion des horaires

Cette page permet à l’entreprise de transports en commun de gérer les horaires sur ses
différentes lignes. Les horaires sont groupés par ligne. Le formulaire d’ajout permet d’entrer
plusieurs horaires à la fois et de dupliquer un horaire pour plus de souplesse.

3.4.1.2 Interface de gestion des alertes

Figure 3.b – Interface de gestion des alertes

Cette page permet à l’entreprise de transports en commun de gérer ses alertes. Les alertes
affichées peuvent être filtrées par ligne ou par validité.
CHAPITRE 3. RÉALISATION 30

3.4.1.3 Interface de gestion du profil

Figure 3.c – Interface de gestion du profil

Cette page permet à l’entreprise de transports en commun de gérer son profil (modification
du logo affiché aux usagers et du mot de passe d’authentification).

3.4.1.4 Interface de gestion de l’infrastructure de transport

Figure 3.d – Interface de gestion de l’infrastructure de transport

Cette page permet à l’entreprise de transports en commun de gérer ses stations, tronçons
et lignes (ajout, suppression, modification). Nous utilisons une carte qu’on enrichie avec les
données de l’infrastructure propre à l’entreprise en question.
CHAPITRE 3. RÉALISATION 31

3.4.2 Interfaces de l’application mobile


3.4.2.1 Interface de la carte et de recherche d’itinéraire

Figure 3.e – Interfaces de l’application mobile

Au lancement de l’application, une carte est affichée à l’utilisateur (partie gauche de la


figure). Celui-ci peut rechercher une adresse, plusieurs possibilités lui sont alors suggérées.
Si un itinéraire menant à l’adresse sélectionnée a été trouvé, celui-ci est affiché sur la carte
avec une description textuelle en dessous.

3.4.2.2 Interfaces des horaires

Figure 3.f – Interfaces des horaires


CHAPITRE 3. RÉALISATION 32

3.4.2.3 Interfaces des notifications et des réglages

Figure 3.g – Interfaces des notifications et des réglages

3.5 Conclusion
Dans ce chapitre, nous avons décrits l’environnement de travail (outils et langages) qui
nous a permis de réaliser notre système constitué d’un site web et d’une application mobile.
Nous avons aussi donné un aperçu des différentes interfaces du système.
Conclusion Générale

Ce modeste travail avait pour objectif d’aboutir à un système permettant aux usagers des
transports en communs d’avoir accès aux informations les concernant à partir d’un smart-
phone. Pour cela, nous avons d’abord étudié le contexte des transports en communs en Algé-
rie pour en déceler certains inconvénients. Ensuite, nous avons utilisé le langage UML pour
concevoir un système permettant de les résoudre. Enfin nous avons implémenté le système
en une partie web et une partie application mobile.
Ce projet nous a permis de :
— Gagner en expérience en développement web et mobile.
— Acquérir une expérience quant à la réalisation de projets.
— Appliquer les connaissances acquises pour concevoir une solution informatique.
— Appliquer le patron MVC pour un projet de développement.
— Nous initier à la formalisation de problèmes.
— Apprendre à rédiger en LATEX.

Perspectives
Bien évidemment, ce travail est perfectible est plusieurs améliorations peuvent lui être ap-
portées. Nous en citons :
— Prendre en compte d’autres méthodes de tarifications en plus de celles utilisées actuel-
lement tel que les abonnement et les tickets interopérables.
— Prendre en compte les tronçons à sens unique pour mieux répondre aux besoins des
transports à réseau routier.
— Permettre aux entreprises de transport en commun d’avoir accès à des statistiques
concernant l’utilisation de l’application mobile par les usagers.
— Introduire des fonctions de pondération multicritère lors du calcul d’itinéraire.
— Mettre en cache les données de transport sur le smartphone pour éviter de recharger
les données à chaque démarrage et ainsi économiser en ressources réseau.
— Améliorer la sécurité du système.
Bibliographie

[1] 2017. url : https://www.sntf.dz/index.php?gd=122&ga=83&dd=20170428&h1=


0000&h2=2359&o=hd&option=com_sntf&view=train&lang=fr (visité le 17/03/2017).
[2] ARPT. url : https://www.arpt.dz/fr/doc/obs/etude/2015/Observatoire_
Mobile_2015.pdf (visité le 28/04/2017).
[3] Joseph Gabay David Gabay. UML 2 Analyse et Conception - Mise en Oeuvre Guidée
avec Etudes de Cas. Dunod, 2008.
[4] ETUSA. url : http://www.etusa.dz/chiffres.htm (visité le 17/03/2017).
[5] Google. url : https://developers.google.com/maps/documentation/javascript/
3.exp/reference?hl=fr (visité le 02/05/2017).
[6] Google. url : https://developers.google.com/maps/documentation/android-
api/reference?hl=fr (visité le 02/05/2017).
[7] RATP. url : https://www.ratpdev.com/fr/ratp-el-djazair (visité le 17/03/2017).
[8] Pascal Roques. UML 2, Modéliser une application web. Eyrolles, 2007.
[9] Pascal Roques. UML 2 Par la pratique. Eyrolles, 2008.
[10] SETRAM. url : https://www.setram.dz/site/fr/alger (visité le 17/03/2017).
[11] SETRAM. url : https://www.setram.dz/site/fr/oran (visité le 17/03/2017).
[12] SETRAM. url : https : / / www . setram . dz / site / fr / constantine (visité le
17/03/2017).
[13] SETRAM. url : https://www.setram.dz/site/fr/horaires (visité le 17/03/2017).
[14] SETRAM. url : https : / / www . setram . dz / site / fr / tram - alger (visité le
17/03/2017).
[15] SNTF. url : https://www.setram.dz/site/fr/constantine (visité le 17/03/2017).
[16] SNTF. url : https : / / www . sntf . dz / index . php ? option = com _ content & view =
article&id=55&Itemid=61&lang=fr (visité le 17/03/2017).
[17] SNTF. url : https://www.sntf.dz/index.php?gd=37&ga=122&dd=20170428&h1=
0000&h2=2359&option=com_sntf&view=train&lang=fr (visité le 17/03/2017).
[18] SOGRAL. url : http://www.sogral.dz/spip.php?article24 (visité le 17/03/2017).
[19] WampServer. url : http://www.wampserver.com/ (visité le 02/05/2017).
[20] Wikipedia. url : https://fr.wikipedia.org/wiki/Hypertext_Markup_Language
(visité le 02/05/2017).
[21] Wikipedia. Station. url : http : / / en . wikipedia . org / w / index . php ? title =
Station&oldid=773960472 (visité le 28/04/2017).
[22] Wikipedia. UML (informatique). url : https://fr.wikipedia.org/wiki/UML_
(informatique) (visité le 16/05/2013).
Table des figures

1.a Aperçu d’une recherche d’horaire réussie sur www.sntf.dz[17] . . . . . . . . . 5


1.b Aperçu d’une recherche d’horaire sans résultat sur www.sntf.dz[1] . . . . . . 6
1.c Aperçu des horaires sur [13] . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.d Aperçu des horaires du tramway d’Alger sur [14] . . . . . . . . . . . . . . . . 7
1.e Aperçu de l’application mobile SNTF . . . . . . . . . . . . . . . . . . . . . . 7

2.a Diagramme de cas d’utilisation de l’application mobile . . . . . . . . . . . . 11


2.b Diagramme de cas d’utilisation général du site web . . . . . . . . . . . . . . 12
2.c Diagramme de cas d’utilisation de la gestion des stations . . . . . . . . . . . 13
2.d Diagramme de cas d’utilisation de la gestion des tronçons . . . . . . . . . . . 13
2.e Diagramme de cas d’utilisation de la gestion des lignes . . . . . . . . . . . . 14
2.f Diagramme de cas d’utilisation de la gestion des horaires . . . . . . . . . . . 14
2.g Diagramme de cas d’utilisation de la gestion des alertes . . . . . . . . . . . . 15
2.h Diagramme de séquence d’ajout d’une station . . . . . . . . . . . . . . . . . 16
2.i Diagramme de séquence d’ajout d’un tronçon . . . . . . . . . . . . . . . . . 16
2.j Diagramme de séquence d’ajout d’une ligne . . . . . . . . . . . . . . . . . . 17
2.k Diagramme de séquence d’ajout d’une station à une ligne . . . . . . . . . . . 17
2.l Diagramme de séquence de suppression d’une station d’une ligne . . . . . . . 18
2.m Diagramme de séquence de suppression d’une ligne . . . . . . . . . . . . . . 18
2.n Diagramme de séquence de suppression d’un tronçon . . . . . . . . . . . . . 19
2.o Diagramme de séquence de suppression d’une station . . . . . . . . . . . . . 19
2.p Diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.a Interface de gestion des horaires . . . . . . . . . . . . . . . . . . . . . . . . . 29


3.b Interface de gestion des alertes . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.c Interface de gestion du profil . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.d Interface de gestion de l’infrastructure de transport . . . . . . . . . . . . . . 30
3.e Interfaces de l’application mobile . . . . . . . . . . . . . . . . . . . . . . . . 31
3.f Interfaces des horaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.g Interfaces des notifications et des réglages . . . . . . . . . . . . . . . . . . . . 32
ANNEXE
L’algorithme de Dijkstra
En théorie des graphes, l’algorithme de Dijkstra (du nom de son inventeur Edsger Dijks-
tra publié en 1959 sert à résoudre le problème du plus court chemin. Il permet, dans un graphe
pondéré, de calculer les plus courts chemins à partir d’un sommet source.
L’algorithme de Dijkstra associe à chaque sommet son prédécesseur dans le chemin de
poids minimum qui mène à lui et le poids de ce chemin. Il opère ensuite en construisant une
liste de sommets dont la distance depuis la source est minimale.
Dans un premier temps, il considère que le sommet source n’a pas de prédécesseur et lui
associe un poids nul. Les autres ont un poids égale à +∞.
A chaque itération, l’algorithme prend le sommet de poids minimum n’ayant pas été déjà
visité et met à jour les poids de ses voisins si le sommet courant permet de les atteindre de ma-
nière plus optimale. Ce sommet est alors marqué comme étant visité. La conception est faite
selon l’approche orienté objet en utilisant le langage de modélisation UML. L’implémentation
se fera sur la plateforme ANDROID

Pseudo-code :
Fonction Disjkstra(Graphe, source)
— créer Q une liste de nœuds
— pour tout nœud v ∈ Q faire
— dist[v] ← +∞
— prev[v] ← ∅
— ajouter v à Q
— dist[source] ← 0
— tant que Q non vide faire
— u ← nœud dans Q avec dist[u] minimum
— retirer u de Q
— pour chaque voisin v de u
— alt ← dist[u] + poids(u, v)
— si alt < dist[v] alors
— dist[v] ← alt
— prev[v] ← u
— fsi
— fait
— fait
Résumé
Ce projet consiste en la réalisation d’une application mobile permettant aux usagers de
recevoir des informations concernant différents moyens de transport, de consulter des horaires
et de trouver des itinéraires (qui peuvent être intermodaux) pour aller d’un endroit à un autre.
D’où la nécessité d’accompagner l’application d’un site web permettant aux entreprises gérant
ces transports de l’alimenter en données.
Ce projet a débuté par une étude préliminaire du secteur des transports en communs en
Algérie (plus précisément sur Alger). Par la suite, nous avons suivi une phase conceptuelle
durant laquelle nous avons détaillé et décrit les fonctionnalités du système à l’aide du langage
UML. Enfin, nous avons réalisé le site web et l’application mobile en utilisant différents
langages et outils tel que HTML, PHP et JAVA.

Mots clés
UML, Développement ANDROID, Développement web, JAVA, PHP.

Vous aimerez peut-être aussi