• Aucun résultat trouvé

Conception et développement d’une application android pour le suivi des objets mobiles

N/A
N/A
Protected

Academic year: 2021

Partager "Conception et développement d’une application android pour le suivi des objets mobiles"

Copied!
80
0
0

Texte intégral

(1)

République Algérienne Démocratique et Populaire

Ministère de L’enseignement Supérieur et de la Recherche

Scientifique

Centre universitaire Abdelhafid Boussouf. Mila Institut Sciences et Technologie

Département Mathématique et Informatique Filière Informatique

Mémoire de Fin d’études

En vue de l’obtention du diplôme de Master en informatique Option STIC

Conception et développement

d’une application android

pour le suivi des objets mobiles

Réalisé par:

Hamimes oussama

Kedadra abdelhak

Encadé par:

Mr.Boukhechem Nadhir

Membres du jury

President: Mr.Guetich Mourad Examinateur: Mr.DIB Abderrahim

(2)

i

Je dédie ce travail à:

Toute ma famille et tous mes amis.

Oussama

Je dédie ce travail à:

Ma famille: Ils vont trouver ici l’expression de mes

sentiments de respect et de reconnaissance pour leur

soutien, encouragements et grands sacrifices.

Mes frères et sœurs.

Tous mes amis et mes collègues.

(3)

ii

Remerciement

Nous tenons tout d’abord à remercier Allah le tout puissant et miséricor-dieux, qui nous a donné la force et la patience d’accomplir ce modeste travail.

En second lieu, nous tenons à remercier notre encadreur Mr: N.Boukhechem, son précieux conseil et son aide durant toute la période du travail.

Nos vifs remerciements vont également aux membres du jury pour l’inté-rêt qu’ils ont porté à notre recherche en acceptant d’examiner notre travail et de l’enrichir par leurs propositions, et à toute l’équipe pédagogique du centre universitaire Abdelhafid Boussouf,Mila.

Enfin, nous tenons également à remercier toutes les personnes qui ont par-ticipé de près ou de loin à la réalisation de ce travail.

(4)

iii

Résumé

Le but de ce travail est de réaliser une application Android pour le suivi en temps réel des objets mobiles, cette application représente une solution utile qui peut être utilisé par les individus pour suivre ses enfants par exemple, ainsi que par les entreprises pour suivre ses ressources humaines et matérielles. En plus de ces fonctionnalités nécessaires, cette application intègre une fonction intelligente permet de facilité la tâche de la surveillance, en effet, et après une tache d’apprentissage, un surveillant intelligent peut remplacer la surveillance humaine.

Notre application se base sur l’architecture MVC (Model, Vue, Contrôleur). Pour la conception, nous avons utilisé le langage UML. Pour l’implémentation, on a choisi Android Studio et Laravel comme des environnements de développe-ment, le système de gestion de bases de données MySQL,la bibliothèque PHP-ML pour l’implémentation des algorithmes de l’apprentissage automatique et l’API de Google Maps.

Mots clés: Géolocalisation, Google Maps, Machine Learning, UML, MVC, Android, Laravel.

Abstract

The aim of this work is to make an Android application for real-time tracking of mobile objects, this application represents a useful solution that can be used by individuals to track his children for example, as well as by companies to track his resources human and material. In addition to these necessary features, this application incorporates an intelligent function makes the task of monitoring easier, indeed, and after a learning task, a smart supervisor can replace human monitoring.

Our application is based on the MVC architecture (Model, View, Control-ler). For the design, we used the UML language. For the implementation, we chose Android Studio and Laravel as development environments, the MySQL database management system, the PHP-ML library for the implementation of the algorithms of the machine learning and the Google Maps API.

Keywords: Geolocation, Google Maps, Machine Learning, UML, MVC, An-droid, Laravel.

(5)

iv

Table des matières

Remerciement ii

Résumé iii

Introduction générale 1

1 Généralités sur la géolocalisation et l’apprentissage

automa-tique 3

1.1 Introduction . . . 3

1.2 Définition de géolocalisation . . . 3

1.3 Techniques de Géolocalisation . . . 3

1.3.1 La géolocalisation par satellite . . . 4

1.3.2 Géolocalisation par GSM . . . 4

1.3.3 Géolocalisation par Wifi . . . 4

1.3.4 Géolocalisation par adresse IP . . . 4

1.3.5 Géolocalisation hybride . . . 5

1.4 Plateformes logicielles de géolocalisation . . . 5

1.4.1 Les composants de la plateforme. . . 5

1.4.2 Le mode de fonctionnement de la plateforme . . . 6

1.5 Applications pratiques de la géolocalisation . . . 7

1.5.1 Applications professionnelles . . . 7

1.5.2 Applications personnelles . . . 8

1.6 L’apprentissage automatique . . . 8

1.6.1 Domaines d’applications de l’apprentissage automatique 9 1.6.2 Données d’apprentissage . . . 9

1.6.3 Types d’apprentissage . . . 9

L’apprentissage supervisé. . . 9

L’apprentissage non-supervisé . . . 10

L’apprentissage par renforcement . . . 10

1.6.4 La classification . . . 10 1.6.5 Quelques algorithmes . . . 10 1.7 Conclusion . . . 11 2 Analyse 12 2.1 Introduction . . . 12 2.2 La méthodologie . . . 12

2.3 Spécification des besoins fonctionnels . . . 12

2.3.1 Identification des acteurs . . . 13

2.3.2 Analyse des besoins fonctionnels . . . 13

(6)

v

2.4.1 Analyse détaillée de cas d’utilisation pour Le visiteur: . . 16

2.4.2 Analyse détaillée de cas d’utilisation pour Client: . . . . 17

2.5 Spécification des besoins non fonctionnels . . . 22

2.5.1 Les contraintes ergonomiques . . . 22

2.5.2 Les contraintes techniques . . . 22

2.5.3 Les contraintes du matériel. . . 22

2.5.4 Les contraintes du déploiement . . . 23

2.6 Conclusion . . . 23

3 Conception 24 3.1 Introduction . . . 24

3.1.1 Diagrammes de séquences . . . 24

Diagrammes de séquences Système . . . 24

Diagrammes de séquence détaillé . . . 31

3.1.2 Diagramme de classes . . . 38 3.1.3 Le modèle relationnel . . . 39 3.1.4 Schémas de navigation . . . 41 3.2 Conclusion . . . 42 4 Réalisation 43 4.1 Introduction . . . 43

4.2 Architecture MVC (Modèle, Vue et Contrôleur) . . . 43

4.3 Environnement du développement de l’application . . . 44

4.3.1 Environnement matériel . . . 45

4.3.2 Environnement logiciel . . . 46

4.3.3 Outils pour le développement web . . . 47

4.3.4 GoogleMaps . . . 48

4.3.5 PHP Machine learning . . . 49

4.4 Implémentation et Test . . . 50

4.4.1 Implémentation de la base de données . . . 50

4.4.2 Les Scénarios d’exécution . . . 50

1.L’application mobile . . . 50

2.L’application Web . . . 53

4.5 Conclusion . . . 55

Conclusion générale et Perspectives 56 A Le GPS 57 A.1 définition . . . 57

A.2 Composants du GPS . . . 57

A.3 Les coordonnées géographiques . . . 58

A.4 Avantages du GPS . . . 59

A.5 Conclusion . . . 60

B ANDROID 61 B.1 Présentation du système d’exploitation ANDROID . . . 61

B.2 Architecture d’ANDROID . . . 62

(7)

vi

B.2.2 Les Bibliothèques . . . 63

B.2.3 Android Runtime . . . 64

B.2.4 Couche Application Framework . . . 64

B.2.5 Couche Applications . . . 65

B.3 Les applications Android . . . 65

B.3.1 Présentation . . . 65

B.3.2 État d’une activité (application) . . . 65

B.3.3 Cycle de vie d’une activité Android . . . 66

(8)

vii

Table des figures

1.1 Logo de l’application Geoloc Sytems . . . 7

1.2 Logo de l’application KidControl . . . 8

2.1 Le diagramme de cas d’utilisation global . . . 15

3.1 Diagramme de séquence système « S’enregistrer » . . . 25

3.2 Diagramme de séquence système « S’authentifier » . . . 26

3.3 Diagramme de séquence système « Afficher sa Position » . . . . 27

3.4 Diagramme de séquence système « Gérer son Compte » . . . 27

3.5 Diagramme de séquence système « Envoyer un Message » . . . . 28

3.6 Diagramme de séquence système « Consulter un Message » . . . 29

3.7 Diagramme de séquence système « Supprimer un Message » . . 30

3.8 Diagramme de séquence détaillé « S’enregistrer » . . . 31

3.9 Diagramme de séquence détaillé « S’authentifier » . . . 32

3.10 Diagramme de séquence détaillé « Créer un groupe » . . . 32

3.11 Diagramme de séquence détaillé « Envoyer le Code » . . . 33

3.12 Diagramme de séquence détaillé « Modifier un groupe » . . . 33

3.13 Diagramme de séquence détaillé « Modifier un groupe » . . . 34

3.14 Diagramme de séquence détaillé « Envoyer un Message » . . . . 34

3.15 Diagramme de séquence détaillé « Consulter un Message » . . . 35

3.16 Diagramme de séquence détaillé « Créer une Zone » . . . 35

3.17 Diagramme de séquence détaillé « Supprimer une Zone » . . . . 36

3.18 Diagramme de séquence détaillé « Gérer le Surveillant intelligent » 36 3.19 Diagramme de séquence détaillé « Suivre les Utilisateurs » . . . 37

3.20 Diagramme de séquence détaillé « Envoyer une Alerte » . . . 37

3.21 Diagramme de classes. . . 38

3.22 Schéma de navigation pour l’application Mobile . . . 41

3.23 Schéma de navigation pour l’application Web . . . 41

4.1 Le schéma de l’architecture MVC . . . 44

4.2 Android Studio . . . 46

4.3 Java Development Kit . . . 46

4.4 framework laravel.png . . . 47

4.5 Le package WampServer . . . 48

4.6 Les tables de la base de données. . . 50

4.7 Interface de la page principale. . . 51

4.8 S’enregistrer et S’authentifier. . . 51

4.9 Créer un groupe et la liste des utilisateurs. . . 52

4.10 Boite des Messages et Lire un message. . . 52

(9)

viii

4.12 Interface liste des groupes. . . 53

4.13 Interface liste des utilisateurs. . . 54

4.14 Interface afficher liste des messages. . . 54

4.15 Interface afficher « afficher sa position » . . . 55

A.1 Composants du GPS . . . 58

A.2 Les coordonnées géographiques . . . 58

B.1 Évolution des versions d’ANDROID . . . 61

B.2 L’architecture ANDROID . . . 63

(10)

ix

Liste des tableaux

2.1 Analyse de cas d’utilisation « afficher sa position » . . . 16

2.2 Analyse de cas d’utilisation « S’enregistrer » . . . 17

2.3 Analyse de cas d’utilisation « S’authentifier » . . . 17

2.4 Analyse de cas d’utilisation « Gérer les messages » . . . 18

2.5 Analyse de cas d’utilisation « Gérer les groupes » . . . 19

2.6 Analyse de cas d’utilisation « Suivre les Utilisateurs » . . . 19

2.7 Analyse de cas d’utilisation « Gérer les Utilisateurs » . . . 20

2.8 Analyse de cas d’utilisation « Gérer les alertes » . . . 21

2.9 Analyse de cas d’utilisation « Gérer l’historique » . . . 21

2.10 Analyse de cas d’utilisation « Gérer le Surveillant intelligent » . 22 A.1 Présentation du GPS selon le milieu. . . 60

(11)

x

Liste des Abréviations

GPS Global Positionning System

GSM Global System for Mobile Communications GPRS General Packet Radio Service

WIFI Wireless Fidelity IP Internet Protocol

UML Unified Modeling Language MVC Model Vue Contrôler AOA Angle Of Arrival

TDOA Time Difference Of Arrival TOA Time Of Arrival

Cell ID Cell Identification

API Application Programming Interface

UMTS Universal Mobile Telecommunications System RSS Received Signal Strength

SSID Service Set IDentifier MAC Media Access Control SMS Short Message Service VM Virtual Machine

URL Uniform Resource Locator

(12)

1

Introduction générale

De nos jours, les Smartphones font partie intégrante de notre société. Ils sont connectés au monde entier grâce aux déférentes technologies, l’une de ces technologies est la géolocalisation. En effet, connaitre la position d’un objet mobile (personne ou machine) à l’instant T devient un véritable atout pour les individus et les entreprises. Cette traçabilité offre de réels avantages permet-tant dans le cas des entreprises de gérer d’une manière centralisée l’ensemble de ses ressources, ceci donne l’occasion par exemple d’améliorer la qualité de prestations, de réduire les couts de déplacement, de garantir la sécurité des conducteurs et de prendre en main le contrôle de ses matériels. Dans le cas des individus, la géolocalisation offre la possibilité de localiser ses biens (véhicule..) et spécialement ses enfants pour éviter les risques de vols et de kidnapping.

Dans cette perspective, notre travail vise à concevoir et à réaliser une appli-cation qui permettra aux entreprises ainsi qu’aux individus de gérer et de suivre en temps réel les différents objets en mouvement sur une carte géographique. L’application offrira de nombreuses fonctionnalités notamment les notifications automatiques grâce à un agent intelligent.

Ce mémoire est organisé en quatre chapitres comme suit:

— Le premier chapitre donne des généralités sur les différentes technologies de géolocalisation comme les (GPS, GSM, WIFI, adresse IP), et présente le principe de fonctionnement des plateformes de géolocalisation. Ainsi que des notions sur le domaine de l’apprentissage automatique (Machine learning).

— Le deuxième chapitre est réservé pour la spécification des besoins qui nous permet de décrire sans ambiguïté l’application à développer à tra-vers le diagramme de cas d’utilisation.

— Le troisième chapitre présente en détail la conception de l’application via le diagramme de classes et les diagrammes de séquences.

— Le quatrième chapitre est dédié à la réalisation, où nous présentons l’en-vironnement de développement ainsi que quelques interfaces de notre application.

Nous terminons notre travail par une conclusion générale en évoquant les différentes perspectives que nous envisageons d’aborder dans le futur.

(13)

2

En plus de ces chapitres, nous avons aussi ajouté deux annexes pour bien éclaircir quelques notions:

— Annexe A: Présente la technologie GPS, ces composants, et nous avons expliqué les notions de coordonnées géographiques essentielles pour la réalisation de notre application.

— Annexe B: Présente la plateforme Android, son évolution, son architec-ture et le cycle de vie d’une application Android.

(14)

3

Chapitre 1

Généralités sur la géolocalisation

et l’apprentissage automatique

1.1

Introduction

L’histoire humaine est pleine d’inventions qui avaient pour but de permettre aux populations mais surtout à leurs gouvernants, de décrire les territoires pour pouvoir mieux les contrôler et éventuellement en chasser les ennemis (La géo-graphie ça sert d’abord à faire la guerre).De l’astrolabe antique, en passant par la boussole, le sextant, le gyroscope et le satellite jusqu’au GPS d’aujourd’hui, grâce à ce développement qui a donné naissance la géolocalisation. Dans ce cha-pitre on va décrire brièvement les différentes techniques utilisées ainsi que les plateformes logicielles de géolocalisation.On va présenter aussi quelque notions sur le domaine de l’apprentissage automatique qui est devenus une approche avantageuse dans le développement des applications.

1.2

Définition de géolocalisation

C’est une technologie permettant de déterminer la localisation d’un objet ou d’une personne avec une certaine précision. La technologie s’appuie générale-ment sur le système GPS ou sur les interfaces de communication d’un téléphone mobile. Les applications de la géolocalisation sont multiples: de l’assistance à la navigation, à la mise en relation des personnes, mais aussi à la gestion en temps réel des moyens en personnel et en véhicules des entreprises,...etc. [5]

1.3

Techniques de Géolocalisation

La géolocalisation existe dans des différentes technologies. Dans la partie suivante, on va visualiser les plus importantes techniques de la géolocalisation.

(15)

Chapitre 1. Généralités sur la géolocalisation et l’apprentissage automatique 4

1.3.1

La géolocalisation par satellite

La géolocalisation par satellite permet de situer, sur la face terrestre, un terminal équipé d’une puce. Cette puce doit être compatible avec les signaux émis par une constellation de satellites prévue à cet effet. La position détec-tée et traduite en termes de latitude, longitude et parfois altitude peut alors être représentée physiquement sur une carte. L’utilisation la plus connue de cette technique est le système américain GPS (Global Positioning System)[Voir Annexe A]. On trouve aussi le système russe GLONASS, le système chinois BEIDOU et le système européen GALILEO dont le déploiement doit s’achever vers 2020.

1.3.2

Géolocalisation par GSM

Le GSM (Global System for Mobile communication) est un standard pour les communications de téléphonie mobile .Le GSM permet de transmettre numéri-quement non seulement la voix, mais aussi des données informatiques (connexion possible à internet, transmission de fax ou de messages électroniques). Les ap-plications de localisation à l’aide du réseau GSM sont apparues au début des années 2000. Plusieurs techniques de localisation existent. On trouve des mé-thodes d’identification de la cellule dans laquelle se trouve le mobile (méthode de Cell ID ou Cell Identification), puis des méthodes plus complexes basées sur des mesures temporelles (estimation de la distance entre chacune des stations de base et le mobile) comme TOA (Time Of Arrival) ou TDOA (Time difference Of Arrival). Enfin, l’utilisation des directions d’arrivée avec la méthode AOA (Angle Of Arrival) conduit aussi à l’identification de la position occupée par le mobile. Chacune de ces méthodes est développée par la suite car elles sont aussi proposées pour les réseaux de nouvelle génération de type UMTS. [7]

1.3.3

Géolocalisation par Wifi

La géolocalisation Wi-Fi est utilisé pour déterminer la position d’un ter-minal possédant une balise active. Cette localisation repose sur le mécanisme classique de triangulation, la mesure de l’intensité du signal reçu (Received Signal Strength ou RSS)du point d’accès. [12]

1.3.4

Géolocalisation par adresse IP

Cette méthode permet de déterminer la position géographique d’un ordi-nateur ou de n’importe quel terminal connecté à internet en se basant sur son adresse IP. Les adresse IP sont gérées par l’IANA (Internet Assigned Numbers

(16)

Chapitre 1. Généralités sur la géolocalisation et l’apprentissage automatique 5

Authorit), une organisation qui s’occupe de découper les blocs d’adresse IP dis-ponibles et de les distribuer de façon très contrôlée aux pays qui en demandent [12].

Le principe est d’identifier à partir de l’adresse IP utilisée par un Internaute pour la comparer en temps réel à un référentiel d’adresses IP comprenant leur localisation. C’est le point d’accès technique de l’internaute qui est géolocalisé. Avec les meilleurs référentiels d’adresses IP, la précision de la géolocalisation IP permet une précision fiables à l’échelle de la ville.

1.3.5

Géolocalisation hybride

Aucune technique n’est absolue, chacune a son propre défaut, généralement accordée à leur dépendance à un certain réseau.

— La dépendance au réseau GPS: l’incapacité de l’utiliser en intérieur; — La dépendance au réseau GSM: sa couverture géographique, l’accès au

réseau GPRS pour exploiter l’information;

— La dépendance à la présence de bornes d’accès Wi-Fi: en zone rurale par exemple.

Dans certain système de localisation, différentes technologies ou métriques sont combinée pour améliorer la précision de la localisation et réduire la consom-mation de l’énergie.

La plus part des Smartphones actuels sont capables d’utiliser une méthode hybride de géolocalisation grâce à ses interfaces GSM/UMTS, Wi-Fi et à son récepteur GPS.

1.4

Plateformes logicielles de géolocalisation

1.4.1

Les composants de la plateforme

Les composants essentiels d’une plateforme de géolocalisation sont les sui-vants:

1. Terminal communicant: c’est le terminal qui reçoit les coordonnées géo-graphiques (via GPS ou tout autre moyen) et qui les envoie via un réseau de télécommunications à la plateforme;

2. Système informatique: capable de recevoir, stocker et traiter les informa-tions: il s’agit des serveurs informatiques qui hébergent l’infrastructure et qui reçoivent et traitent les données envoyées par les terminaux. Ce sont les mêmes serveurs qui mettront à disposition l’information aux utilisateurs (via une interface web par exemple);

(17)

Chapitre 1. Généralités sur la géolocalisation et l’apprentissage automatique 6

3. Module cartographique: c’est le module intégré au système informatique qui va permettre d’afficher la position des terminaux sur un fond carto-graphique adapté. Ce module prend en charge les calculs de distances et d’itinéraires, détecte l’interaction avec les zones et permet d’avoir accès à des informations sur le terrain (sens interdits, restrictions pour les poids lourds, vitesses autorisées...).

1.4.2

Le mode de fonctionnement de la plateforme

La position géographique d’un terminal géolocalisé reste néanmoins une in-formation brute qui peut être exploitée et couplée à d’autres données afin de créer une vaste quantité de services à forte valeur ajoutée.

Afin d’exploiter cette information, la donnée (position) générée par un ter-minal qui se trouve sur le terrain doit être transmise à une plateforme logicielle qui la traite, la présente graphiquement à l’utilisateur et l’associe à d’autres données afin d’enrichir les informations relatives à l’état du terminal ou de la flotte de terminaux.

Voici les étapes de la chaîne de traitement:

1. Le terminal détermine sa position géographique grâce à une des tech-niques de géolocalisation citées précédemment (de préférence GPS, GSM et/ou Wi-Fi);

2. Il envoie ces données vers une plateforme logicielle, soit par le réseau GSM/GPRS, soit par un réseau satellitaire;

3. La plateforme logicielle de géolocalisation traite la donnée et positionne le terminal géographiquement sur une carte moyennant la précision of-ferte par la technique de géolocalisation utilisée. De plus, en combinant plusieurs informations, notamment récupérées via un système de télé-relève (trafic routier, autonomie du véhicule, points à visiter, etc.), des calculs d’itinéraires ou de tournées peuvent par exemple être générés; 4. La carte ainsi que tous les traitements effectués sont mis à disposition de

l’utilisateur par le biais d’un portail web hébergé sur un serveur accessible depuis Internet ou par l’entremise d’une application métier installée sur le poste de travail.

(18)

Chapitre 1. Généralités sur la géolocalisation et l’apprentissage automatique 7

1.5

Applications pratiques de la géolocalisation

Les applications de la géolocalisation sont en plein développement, tant sur le plan privé que sur le plan professionnel. De plus, couplées à des systèmes de télérelève intégrés et sur mesure, de vraies applications métier ont rapidement vu le jour.

1.5.1

Applications professionnelles

La géolocalisation dans le milieu professionnel est presque toujours syno-nyme de gain de productivité, d’économies de carburant, d’économies de com-munications et de sécurité accrue. De plus, ces solutions offrent aux responsables de l’exploitation du parc une vision globale et un meilleur temps de réactivité en cas d’incident. Cela permet à l’entreprise utilisant un système de géolocali-sation d’améliorer son service client et de réduire ses coûts afin d’accroître sa compétitivité.

Quelques domaines dans lesquels la géolocalisation est communément utili-sée sont listés ci-dessous:

— Transport de marchandises et logistique; — Transport de passagers;

— Suivi et protection de personnes;

— Protection de marchandises, véhicules et antivol.

Exemple

Geoloc Sytems est une solution pour géolocalisation des conducteurs, elle aide à connaître la position précise des véhicules de l’entreprise. Afin d’anticiper les coûts, l’entreprise possède une visibilité sur les horaires de ses employés mais également sur les frais de carburant.

(19)

Chapitre 1. Généralités sur la géolocalisation et l’apprentissage automatique 8

1.5.2

Applications personnelles

Sur le plan personnelle, les applications de géolocalisation offrent des fonc-tionnalités tel que:

— Suivi et sécurité des personnes; — Sécurité des animaux.

Exemple

KidControl Cette application gratuite est très complète: elle permet de géo-localiser le téléphone de vos proches, de consulter l’historique de leurs déplace-ments, de recevoir une alerte si votre enfant entre dans une zone que vous aurez définie (l’école, la maison, ou bien un endroit dangereux où il n’a pas le droit d’aller) ou quand la batterie du téléphone de votre enfant est faible, d’échanger des messages.

Figure 1.2 – Logo de l’application KidControl.

1.6

L’apprentissage automatique

L’apprentissage automatique fait référence au développement, l’analyse et l’implémentation de méthodes qui permettent à une machine (au sens large) d’évoluer et de remplir des tâches associées à une intelligence artificielle grâce à un processus d’apprentissage. Cet apprentissage permet d’avoir un système qui s’optimise en fonction de l’environnement, les expériences et les résultats observés [1].

(20)

Chapitre 1. Généralités sur la géolocalisation et l’apprentissage automatique 9

1.6.1

Domaines d’applications de l’apprentissage

auto-matique

L’apprentissage automatique s’applique à un grand nombre d’activités hu-maines et convient en particulier au problème de la prise de décision automati-sée. Il s’agira, par exemple:

— D’établir un diagnostic médical à partir de la description clinique d’un patient;

— De donner une réponse à la demande de prêt bancaire de la part d’un client sur la base de sa situation personnelle;

— De déclencher un processus d’alerte en fonction de signaux reçus par des capteurs;

— De la reconnaissance des formes;

— De la reconnaissance de la parole et du texte écrit;

— De contrôler un processus et de diagnostiquer des pannes.

1.6.2

Données d’apprentissage

Les données d’apprentissage sont, souvent, réparties en 3 catégories: [21]

L’ensemble d’apprentissage ou population d’entrainement: constitue

l’ensemble des candidats ou exemples (images, attributs, DB, ...) utilisés pour générer le modèle d’apprentissage.

L’ensemble de Test: est constitué des candidats sur lesquels sera appliqué

le modèle d’apprentissage (pour tester et corriger l’algorithme).

L’ensemble de validation: peut être utilisé lors de l’apprentissage (comme

sous population de l’ensemble d’apprentissage) afin de valider (intégrer) le modèle et d’éviter le sur-apprentissage.

NB: Selon les domaines, les données d’apprentissage peuvent être de diverses formes: mots, phrases, variables ou attributs, des vecteurs de valeurs: définissant un ensemble de propriétés d’un objet,...etc

1.6.3

Types d’apprentissage

Les algorithmes d’apprentissage peuvent se catégoriser selon le mode d’ap-prentissage qu’ils emploient:[21]

L’apprentissage supervisé

Si les classes sont prédéterminées et les exemples connus, le système apprend à classer selon un modèle de classement; on parle alors d’apprentissage supervisé (ou d’analyse discriminante).

(21)

Chapitre 1. Généralités sur la géolocalisation et l’apprentissage automatique10

L’apprentissage non-supervisé

Quand le système ou l’opérateur ne dispose que d’exemples, mais non d’éti-quettes, et que le nombre de classes et leur nature n’ont pas été prédéterminés, on parle d’apprentissage non supervisé (ou clustering). Aucun expert n’est dis-ponible ni requis. L’algorithme doit découvrir par lui-même la structure plus ou moins cachée des données.

L’apprentissage par renforcement

L’algorithme apprend un comportement étant donné une observation. L’ac-tion de l’algorithme sur l’environnement produit une valeur de retour qui guide l’algorithme.

1.6.4

La classification

Nous dénotons x l’espace d’entrée, c’est-à-dire l’ensemble contenant les des-criptions du problème à résoudre, et y l’espace de sortie,c’est-à-dire l’ensemble contenant toutes les solutions possibles.

La classification consiste à catégoriser des exemples parmi un ensemble de classes possibles. Le cadre de classification le plus étudié est la classification binaire, où un algorithme doit apprendre à distinguer parmi deux différentes classes, couramment appelées les classes positive et négative. On a donc y =

{−1, 1}. Certains types de problèmes n’ont qu’une seule classe, qui peut être

considérée comme la classe « normale ». On parle alors de détection d’anomalie, où l’on tente de détecter les exemples qui sortent de l’ordinaire. La classification multi-classe consiste simplement à la situation où chaque exemple appartient à une catégorie parmi un ensemble de k > 2 catégories. Dans cette situation, nous avons y =1, 2, ..., k. Finalement, la classification multi-étiquette correspond à la situation où chaque exemple peut appartenir à zéro, une ou plusieurs catégories à la fois, parmi un ensemble de k catégories possibles.L’espace de sortie y est donc un vecteur de k éléments {0, 1}k, où chaque position correspond à une catégorie, et où on observe un 1 si l’exemple appartient à cette catégorie et 0 autrement.[19]

1.6.5

Quelques algorithmes

k Nearest Neighbors

KNN (k plus proches voisins) est une approche de classification supervisée intuitive, elle a pour but de classifier des points cibles (classe méconnue) en fonction de leurs distances par rapport à des points constituant un échantillon

(22)

Chapitre 1. Généralités sur la géolocalisation et l’apprentissage automatique11

d’apprentissage (c’est-à-dire dont la classe est connue a priori). Les k-PPV né-cessitent seulement un entier k, une base d’apprentissage et une métrique pour la proximité.

Naïve Bayes

est un algorithme probabiliste d’apprentissage automatique basé sur le théo-rème de Bayes. Un classifieur bayésien naïf suppose que l’existence d’une carac-téristique pour une classe, est indépendante de l’existence d’autres caractéris-tiques.

Réseaux de Neurones

Le neurone artificiel, reprend le fonctionnement du neurone biologique.Il reçoit des entrées et fournit une sortie, grâce à différentes caractéristiques:

— Des poids accordés à chacune des entrées, permettant de modifier l’im-portance de certaines par rapport aux autres;

— Une fonction d’agrégation, qui permet de calculer une unique valeur à partir des entrées et des poids correspondants;

— Un seuil (ou biais), permettant d’indiquer quand le neurone doit agir; — Une fonction d’activation, qui associe à chaque valeur agrégée une unique

valeur de sortie dépendant du seuil.[13]

1.7

Conclusion

Dans ce chapitre nous avons présenté les différentes méthodes de la géolo-calisation qui permettent d’obtenir la position géographique d’une personne ou d’une ressource, on a expliqué les composants de la plateforme logicielle et son mode de fonctionnement. on a présenté aussi quelques exemples d’applications basées sur la géolocalisation, ainsi que des brèves descriptions sur le domaine de l’apprentissage automatique, ce qui nous a donné une idée très claire des technologies et de l’équipement à utiliser pour réaliser notre travail.

(23)

12

Chapitre 2

Analyse

2.1

Introduction

La spécification des besoins représente la première phase du cycle de déve-loppement d’une application. En effet, elle doit décrire sans ambiguïté l’applica-tion à développer. Dans ce chapitre nous allons spécifier l’ensemble des besoins fonctionnels et non fonctionnels liés à notre application. Ensuite, nous allons là modéliser à l’aide des diagrammes de cas d’utilisation.

2.2

La méthodologie

La première étape de ce projet consiste à définir les besoins fonctionnels de l’application à développer. Pour ce cela, nous avons opté pour une méthode gé-nérique personnel (analyse, conception, réalisation) qui utilise un sous-ensemble du langage de modélisation UML, nous avons trouvé ce sous ensemble suffisant pour atteindre notre objectif; Pour l’analyse et la conception on a utilisé res-pectivement le diagramme de cas d’utilisation, le diagramme de classe et le diagramme de séquence système détaillé.

2.3

Spécification des besoins fonctionnels

La partie fonctionnelle du modèle UML d’une application permet de spécifier les fonctionnalités offertes par l’application sans pour autant spécifier la façon dont ces fonctionnalités sont réalisées par les objets de l’application.[4]

Dans cette partie nous identifions les acteurs de notre future application afin de pouvoir dégager ces besoins fonctionnels.

(24)

Chapitre 2. Analyse 13

2.3.1

Identification des acteurs

L’application doit fournir un ensemble de fonctionnalités aux clients, qui permettrons aux clients de localiser et de suivre des objets sur une carte géo-graphique. Nous allons énumérer, dans ce qui suit, les acteurs susceptibles d’in-teragir avec le système.

Un acteur représente l’abstraction d’un rôle joué par des entités externes (utilisateur, dispositif matériel ou autre système) qui interagissent directement avec le système étudié[17]. Les acteurs de notre application sont:

1- Le Visiteur

Toute personne qui bénéfice des fonctionnalités minimales de l’application après l’avoir installer sur son terminale sans avoir besoin de s’enregistrer ou de s’authentifier.

2- Le Client

Toute personne inscrit dans l’application, et qui peut utiliser des fonction-nalités plus avancées de l’application.

3- L’administrateur

C’est le superviseur qui contrôle, et exploit les données et qui doit gérer le bon fonctionnement du système.

4- Le Surveillant intelligent

C’est un acteur artificiel intelligent qui sert au suivi automatique des objets mobiles.

2.3.2

Analyse des besoins fonctionnels

Dans la suite, nous désignons les différents services offerts par notre appli-cation aux différents acteurs:

1-Coté Visiteur

Une fonctionnalité minimale est offerte au visiteur, il a la possibilité de:

Afficher sa position: Localiser et suivre son terminal sur une carte

géo-graphique, et déterminer sa vitesse de mouvement.

(25)

Chapitre 2. Analyse 14

2- Coté Client

Les fonctionnalités offertes au client:

S’authentifier: Après l’inscription, Un compte est attribué à chaque client

inscrit. Le système doit permettre au client qui est déjà inscrit de passer à l’étape de l’authentification.

Gérer son compte: Le client a la possibilité de modifier les données de

son compte.

Gérer les groupes: Le client a la possibilité de créer des groupes de suivi

et d’inviter d’autres utilisateurs à rejoindre ses groupes.

Rejoindre un groupe: Le client peut recevoir une demande de suivi

en-voyé par d’autre client pour devenir un objet suivi, il peut répondre par accepter ou refuser (il donne sa permission).

Suivre les utilisateurs: Le client peut localiser et suivre en temps réel les

utilisateurs ajoutés à un groupe sur une carte Google Maps.

Gérer les messages: Le client peut envoyer et recevoir des messages

de-puis et vers les utilisateurs du même groupe, et aussi consulter ses mes-sages ou bien les supprimer.

Gérer les utilisateurs: Le client a la possibilité de supprimer un

utilisa-teur, et de créer des zones de surveillance.

Gérer les alertes: Le client peut envoyer ou de recevoir des alertes. Gérer l’historique: Le client a la possibilité de consulter, supprimer et

d’exporter l’historique des utilisateurs.

Créer les rapports: Le client a la possibilité de générer des rapports. Gérer le surveillant intelligent: le client peut activer ou désactiver le

surveillant intelligent.

3- Coté administrateur

Les fonctionnalité offerte à l’administrateur:

Contrôler les Utilisateurs: Pour des raison de sécurité et de bon

fonc-tionnement, l’administrateur peur supprimer des utilisateurs ou des groupes.

4- Coté Surveillant intelligent

Envoyer des notifications automatiques: Le surveillant intelligent peut

envoyer des notifications automatiques à l’utilisateur suivi et au proprié-taire de groupe.

(26)

Chapitre 2. Analyse 15

2.4

Diagramme de cas d’utilisation global

La figure suivante désigne le diagramme de cas d’utilisation global Administrateur-Client-Visiteur-Surveillant intelligent dans lequel nous allons mettre en évidence les fonctionnalités offerts par l’application.

(27)

Chapitre 2. Analyse 16

2.4.1

Analyse détaillée de cas d’utilisation pour Le

visi-teur:

Nous allons décrire le diagramme de cas d’utilisation pour Le visiteur.

1. Cas d’utilisation (afficher sa position):

Sommaire: Titre: afficher sa position

But: trouver sa position sur une carte

Résumé:

Le visiteur demande de voir sa position géographique et consulter sa vitesse.

Acteur: Le visiteur

Description des enchainements:

Pré Conditions: Post Conditions:

Le visiteur doit installer

l’application accéder à la carte et voir sa position

Scénario nominale:

1. démarrer l’application. 2. demander sa position.

3. accéder à la carte et voir sa position.

4. afficher la vitesse de mouvement sur la carte.

Table 2.1 – Analyse de cas d’utilisation « afficher sa position »

2. Cas d’utilisation (S’enregistrer):

Sommaire: Titre: S’enregistrer

But: Créer un compte

Résumé: Le visiteur introduit ses données et valider

Acteur: Le visiteur

Description des enchainements:

Pré Conditions: Post Conditions:

Le visiteur doit installer

(28)

Chapitre 2. Analyse 17

Scénario nominale:

1. démarrer l’application. 2. demander de s’enregistrer.

3. entrer les données requises et valider.

Enchainement alternatif:

1. Si les données ne sont pas valides ou incomplètes, le système affiche un message d’erreur.

Table 2.2 – Analyse de cas d’utilisation « S’enregistrer »

2.4.2

Analyse détaillée de cas d’utilisation pour Client:

Nous allons décrire le diagramme de cas d’utilisation pour le client.

1. Cas d’utilisation (S’authentifier):

Sommaire: Titre: S’authentifier

But: S’authentifier

Résumé: Le client introduit son login et mot de passe

Acteur: Le client

Description des enchainements:

Pré Conditions: Post Conditions:

le client doit avoir un compte Donne accès à la page principale

Scénario nominale:

1. démarrer l’application. 2. demande de login.

3. entrer son e_mail et mot de passe et valider.

Enchainement alternatif:

1. Si les données ne sont pas valides ou incomplètes, le système affiche un message d’erreur.

(29)

Chapitre 2. Analyse 18

2. Cas d’utilisation (Gérer les messages):

Sommaire: Titre: Gérer les messages

But: Gestion des messages

Résumé: envoyer, consulter et supprimer des messages

Acteur: Le client

Description des enchainements:

Pré Conditions: Post Conditions:

le client est authentifié

fonctionnalités de gestion de messages Scénario nominale: 1. sélectionner le destinataire. 2. rédiger le message. 3. envoyer le message. Enchainement alternatif:

1. le client peut supprimer les messages.

Table 2.4 – Analyse de cas d’utilisation « Gérer les messages »

3. Cas d’utilisation (Gérer les groupes):

Sommaire: Titre: Gérer les groupes

But: Gestion des groupes de suivis

Résumé:

Créer, modifier et supprimer des groupes de suivis, Générer et envoyer les Codes

Acteur: Le client

Description des enchainements:

Pré Conditions: Post Conditions:

le client est authentifié

fonctionnalités de gestion des groupes

(30)

Chapitre 2. Analyse 19

Scénario nominale:

1. créer un groupe.

2. générer un code unique.

3. choisir la méthode d’envoi du code et Envoyer.

Enchainement alternatif:

1. Si le client récepteur de code ne confirme pas, il ne sera pas membre de groupe

2. le client peut modifier ou supprimer le groupe

3. le client peut régénérer et envoyer un autre code pour des raisons de sécurité

Table 2.5 – Analyse de cas d’utilisation « Gérer les groupes »

4. Cas d’utilisation (Suivre les Utilisateurs):

Sommaire: Titre: Suivre les Utilisateurs

But: Localiser et suivre des utilisateurs sur carte

Résumé:

le client localise et suivre en temps réel des utilisateurs sur carte

Acteur: Client

Description des enchainements:

Pré Conditions: Post Conditions:

le client est authentifié Suivre les utilisateurs sur carte

Scénario nominale:

1. choisir un groupe de suivi.

2. choisir de localiser des utilisateurs. 3. suivre les utilisateurs sur la carte.

Table 2.6 – Analyse de cas d’utilisation « Suivre les Utilisa-teurs »

(31)

Chapitre 2. Analyse 20

5. Cas d’utilisation (Gérer les Utilisateurs):

Sommaire: Titre: Gérer les Utilisateurs

But: Gérer les utilisateurs suivis

Résumé:

affecter un utilisateur à une zone, supprimer des utilisateurs

Acteur: Le Client

Description des enchainements:

Pré Conditions: Post Conditions:

le client est authentifié zone crée pour un utilisateur

Scénario nominale:

1. sélectionner un utilisateur. 2. créer une zone.

3. définir ses paramètres et valider.

Enchainement alternatif:

1. Le client peut supprimer une zone 2. Le client peut supprimer un utilisateur

Table 2.7 – Analyse de cas d’utilisation « Gérer les Utilisa-teurs »

6. Cas d’utilisation (Gérer les alertes):

Sommaire: Titre: Gérer les alertes

But: Gérer les alertes

Résumé: consulter et envoyer les alertes

Acteur: Le Client

Description des enchainements:

Pré Conditions: Post Conditions:

(32)

Chapitre 2. Analyse 21

Scénario nominale:

1. sélectionner un utilisateur. 2. envoyer une alerte.

Table 2.8 – Analyse de cas d’utilisation « Gérer les alertes »

7. Cas d’utilisation (Gérer l’historique):

Sommaire: Titre: Gérer l’historique

But: Gérer l’historique

Résumé: consulter, exporter et supprimer l’historique

Acteur: Le Client

Description des enchainements:

Pré Conditions: Post Conditions:

Le Client est authentifié affichage de l’historique

Scénario nominale:

1. sélectionner un utilisateur. 2. consulter l’historique.

3. choisir les paramètres de l’historique. 4. exporter l’historique.

Table 2.9 – Analyse de cas d’utilisation « Gérer l’historique »

8. Cas d’utilisation (Gérer le Surveillant intelligent):

Sommaire: Titre: Gérer le Surveillant intelligent

But: Gérer le Surveillant intelligent

Résumé: activer ou désactiver le Surveillant intelligent

Acteur: Le Client

Description des enchainements:

Pré Conditions: Post Conditions:

Le Client est authentifié

Surveillant intelligent activé ou désactivé

(33)

Chapitre 2. Analyse 22

Scénario nominale:

1. sélectionner un groupe ou un utilisateur. 2. activer le Surveillant intelligent.

Enchainement alternatif:

1. désactiver le Surveillant intelligent.

Table 2.10 – Analyse de cas d’utilisation « Gérer le Surveillant intelligent »

2.5

Spécification des besoins non fonctionnels

Les besoins non fonctionnels spécifient les propriétés du système telles que les contraintes d’environnement et d’implémentation, la performance, la main-tenance, l’extensibilité et la flexibilité.

2.5.1

Les contraintes ergonomiques

Les contraintes ergonomiques sont les contraintes liées à l’adaptation entre les fonctionnalités de l’application, leurs interfaces et leur utilisation.

Pour notre application, nous devons obéir aux contraintes ergonomiques suivantes:

— Permettre un accès rapide à l’information; — Interface simple et compréhensible;

— L’application doit être développée avec un langage compréhensif par l’utilisateur, présenter les informations d’une façon simple et claire.

2.5.2

Les contraintes techniques

— Il faut que toute interface de l’application soit homogène, en effet, les différentes pages doivent suivre le même modèle de représentation (cou-leurs, images, textes,...etc);

— Le code doit être extensible et maintenable pour faciliter toute opération d’amélioration ou d’optimisation.

2.5.3

Les contraintes du matériel

L’application sera installée sur un terminal (téléphone ou tablette) mobile doté d’un système d’exploitation ANDROID.

(34)

Chapitre 2. Analyse 23

2.5.4

Les contraintes du déploiement

L’application client peut être téléchargeable à partir de google play store (https://play.google.com), ou d’autre alternatif comme https://fr.uptodown.com.

2.6

Conclusion

La spécification des besoins nous a permis de définir les fonctionnalités de notre application, ce qui nous mène à entamer la phase de la conception (tech-nique et graphique) pour assurer une bonne mise en œuvre d’un système fonc-tionnel répondant aux besoins cités.

(35)

24

Chapitre 3

Conception

3.1

Introduction

Ce chapitre sera consacré à conception de la future application avec la réali-sation des diagrammes UML; le diagramme de classe pour définir la vue statique, et les diagrammes de séquence (système et détaillé) pour définir les interactions entres les défirent composants de notre application.

3.1.1

Diagrammes de séquences

Dans cette partie, nous avons établi les diagrammes de séquence système et les diagrammes de séquence détaillé pour les cas d’utilisations précédents:

Diagrammes de séquences Système

Chaque cas d’utilisation est décrit textuellement de façon détaillée, mais donne également lieu à un diagramme de séquence simple représentant gra-phiquement la chronologie des interactions entre les acteurs et le système vu comme une boîte noire, dans le cadre du scénario nominal. Nous appellerons ce diagramme« diagramme de séquence système ».[17]

Nous allons présenter les diagrammes de séquence système des cas d’utilisation que nous avons déjà cité dans le chapitre précédent.

(36)

Chapitre 3. Conception 25

1. Diagramme de séquence système « S’enregistrer »

Figure 3.1 – Diagramme de séquence système « S’enregistrer »

L’utilisateur demande de S’enregistrer sur l’application, le système lui affiche un formulaire où il doit saisir ses données, il peut choisir de les envoyer, le système lui transmettre une confirmation, si les données sont valides, sinon un message d’erreur est affiché. il peut également choisir d’annuler l’opération d’enregistrement, le system retourne à la page précédente.

(37)

Chapitre 3. Conception 26

2. Diagramme de séquence système « S’authentifier »

Figure 3.2 – Diagramme de séquence système « S’authentifier »

L’utilisateur demande de connecter à l’application, le système lui affiche une fenêtre où il doit s’authentifier en saisissant son identifiant et mot de passe, puis le système vérifie les informations introduites, si l’une des informations n’est pas valide le système affiche un message d’erreur, sinon il affiche la page principale de l’application.

(38)

Chapitre 3. Conception 27

3. Diagramme de séquence système « Afficher sa Position »

Figure 3.3 – Diagramme de séquence système « Afficher sa Position »

L’utilisateur demande au système d’afficher sa position, le système lui affiche une carte géographique sur laquelle il peut voir en temps réel sa position et sa vitesse.

4. Diagramme de séquence système « Gérer son Compte »

Figure 3.4 – Diagramme de séquence système « Gérer son Compte »

(39)

Chapitre 3. Conception 28

Pour que le client puisse afficher les données de son compte, il doit d’abord s’authentifier, ensuite il demande de voir son profil où il peut mettre à jour ses données, alors le système lui transmettre une confirmation si les données sont valide, sinon un message d’erreur est affiché. Il peut également annuler les modifications, donc le système lui affiche la page précédente.

5. Diagramme de séquence système « Envoyer un Message »

Figure 3.5 – Diagramme de séquence système « Envoyer un Message »

Pour que le client puisse envoyer un message, il doit d’abord s’authentifier, il rédige son message et l’envoi, le système lui affiche un message de confirmation. Un retour vers la page précédente lui permet de choisir d’autres fonctionnalités.

(40)

Chapitre 3. Conception 29

6. Diagramme de séquence système « Consulter un Message »

Figure 3.6 – Diagramme de séquence système « Consulter un Message »

Pour que le client puisse consulter le contenu d’un message reçu, il doit d’abord s’authentifier, il demande d’ouvrir la boite des messages qui peut être vide, sinon une liste des messages est affichée. Il peut sélectionner un message pour l’ouvrir, il peut également choisir par la suite de le de supprimer.

(41)

Chapitre 3. Conception 30

7. Diagramme de séquence système « Supprimer un Message »

Figure 3.7 – Diagramme de séquence système « Supprimer un Message »

Pour que le client puisse supprimer un message reçu, il doit d’abord s’au-thentifier. Puis, il demande d’ouvrir la boite des messages, et sélectionne un message pour le supprimer, le système demande une confirmation, si le client répond par oui, le système affiche un message de suppression, si le client annule l’opération, le système retourne à la page précédente.

(42)

Chapitre 3. Conception 31

Diagrammes de séquence détaillé

En remplaçant le système vu comme une boîte noire par un ensemble choisi d’objets de conception, nous décrirons l’attribution des responsabilités dyna-miques, tout en conservant une traçabilité forte avec les cas d’utilisation.[17]

Nous allons présenter les diagrammes de séquences détaillés des cas d’utili-sation que nous avons déjà cité dans le chapitre précédent.

1. Diagramme de séquence détaillé « S’enregistrer »

(43)

Chapitre 3. Conception 32

2. Diagramme de séquence détaillé « S’authentifier »

Figure 3.9 – Diagramme de séquence détaillé « S’authentifier »

3. Diagramme de séquence détaillé « Créer un groupe »

Figure 3.10 – Diagramme de séquence détaillé « Créer un groupe »

(44)

Chapitre 3. Conception 33

4. Diagramme de séquence détaillé « Envoyer le Code »

Figure 3.11 – Diagramme de séquence détaillé « Envoyer le Code »

5. Diagramme de séquence détaillé « Modifier un groupe »

Figure 3.12 – Diagramme de séquence détaillé « Modifier un groupe »

(45)

Chapitre 3. Conception 34

5. Diagramme de séquence détaillé « Rejoindre un Groupe »

Figure 3.13 – Diagramme de séquence détaillé « Rejoindre un Groupe »

6. Diagramme de séquence détaillé « Envoyer un Message »

Figure 3.14 – Diagramme de séquence détaillé « Envoyer un Message »

(46)

Chapitre 3. Conception 35

7. Diagramme de séquence détaillé « Consulter un Message »

Figure 3.15 – Diagramme de séquence détaillé « Consulter un Message »

8. Diagramme de séquence détaillé « Créer une Zone »

Figure 3.16 – Diagramme de séquence détaillé « Créer une Zone »

(47)

Chapitre 3. Conception 36

9. Diagramme de séquence détaillé « Supprimer une Zone »

Figure 3.17 – Diagramme de séquence détaillé « Supprimer une Zone »

10. Diagramme de séquence détaillé « Gérer le Surveillant intelligent »

Figure 3.18 – Diagramme de séquence détaillé « Gérer le Sur-veillant intelligent »

(48)

Chapitre 3. Conception 37

11. Diagramme de séquence détaillé « Suivre les Utilisateurs »

Figure 3.19 – Diagramme de séquence détaillé « Suivre les Utilisateurs »

12. Diagramme de séquence détaillé « Envoyer une Alerte »

Figure 3.20 – Diagramme de séquence détaillé « Envoyer une Alerte »

(49)

Chapitre 3. Conception 38

3.1.2

Diagramme de classes

Le diagramme de classes est considéré comme le plus important de la mo-délisation orienté objet. Il s’agit d’une vue statique du fait qu’on ne tient pas compte du facteur temporel dans le comportement du système. Le diagramme de classes permet de modéliser les classes du système et leurs relations indépen-damment du langage de programmation. Le diagramme de classes retenu à la fin de la conception est le suivant:

(50)

Chapitre 3. Conception 39

3.1.3

Le modèle relationnel

est le modèle logique de donnée qui correspond à l’organisation des données dans les bases de données relationnelles. Un modèle relationnel est composé de relations, encore appelée table. Ces tables sont décrites par des attributs aux champs. Pour décrire une relation, on indique tout simplement son nom, suivi du nom de ses attributs entre parenthèses. L’identifiant d’une relation est composé d’un ou plusieurs attributs qui forment la clé primaire. Une relation peut faire référence à une autre en utilisant une clé étrangère, qui correspond à la clé primaire de la relation référencée.[16]

Règles de passage au modèle relationnel

Cette section présente les règles permettant de décrire un schéma logique dans les modèles relationnel et objet-relationnel à partir d’un diagramme de classe UML.

Nous donnons ci-après quatre règles (de R1 à R4) pour traduire un schéma UML en un schéma relationnel équivalent. Il existe d’autres solutions de trans-formation, mais ces règles sont les plus simples et les plus opérationnelles.[20]

Transformation des classes (R1): Chaque classe du diagramme UML

devient une relation. Il faut choisir un attribut de la classe pouvant jouer le rôle d’identifiant. Si aucun attribut ne convient en tant qu’identifiant, il faut en ajouter un de telle sorte que la relation dispose d’une clé primaire (les outils proposent l’ajout de tels attributs).[20]

Transformation des associations: Les règles de transformation que nous

allons voir dépendent des cardinalités/multiplicités maximales des asso-ciations. Nous distinguons trois familles d’assoasso-ciations.

— Association un à plusieurs (R2): Il faut ajouter un attribut de type clé étrangère dans la relation fils de l’association. L’attribut porte le nom de la clé primaire de la relation père de l’association. La clé de la relation père migre dans la relation fils.[20]

— Association plusieurs à plusieurs (R3): L’association (classe-association) devient une relation dont la clé primaire est composée par la concaténation des identifiants des classes connectés à l’associa-tion. Chaque attribut devient clé étrangère si classe connectée dont il provient devient une relation en vertu de la règle R1. Les attributs de l’association (classe-association) doivent être ajoutés à la nouvelle relation. Ces attributs ne sont ni clé primaire, ni clé étrangère.[20] — Association un à un (R4): Il faut ajouter un attribut clé étrangère

(51)

Chapitre 3. Conception 40

à zéro. Dans le cas de UML, il faut ajouter un attribut clé étrangère dans la relation dérivée de la classe ayant la multiplicité minimale égale à un. L’attribut porte le nom de la clé primaire de la relation dérivée de l’entité (classe) connectée à l’association. Si les deux cardi-nalités (multiplicités) minimales sont à zéro, le choix est donné entre les deux relations dérivées de la règle R1. Si les deux cardinalités mi-nimales sont à un, il est sans doute préférable de fusionner les deux entités (classes) en une seule.[20]

Schéma relationnel

En appliquant ces règles de transformation d’un diagramme de classe vers un modèle relationnel, nous avons aboutit au schéma relationnel suivant:

users (user_id,name,lname,birth_date,email,password,device_token,picture, created_at,updated_at) messages (id,title,body,seen,created_at,id_sender,id_receiver) groups (groupe_id,name,description,code,created_at,updated_at) zones (id,lng_center,lat_center,radus,start_date,end_date,start_time, end_time,descripton,created_at,updated_at,user_id) positions (id,lat,lng,alt,speed,created_at,user_id) unusualPositions (id,lat,lng,alt,speed,created_at,user_id) notifications (id,title,body,type,seen,created_at,id_sender,id_receiver) tracks (id,is_ai_agent,created_at,user_id,groupe_id)

(52)

Chapitre 3. Conception 41

3.1.4

Schémas de navigation

1. Application Mobile

Figure 3.22 – Schéma de navigation pour l’application Mobile

2. Application Web

(53)

Chapitre 3. Conception 42

3.2

Conclusion

La phase de conception a été importante pour pouvoir visualiser le fonc-tionnement de notre application d’une façon abstraite. Nous avons utilisé les diagrammes de séquence système et détaillé, ainsi que le diagramme de classes, et nous avons donné un schéma global de navigation. Dans le chapitre suivant, nous allons passer à la phase de réalisation.

(54)

43

Chapitre 4

Réalisation

4.1

Introduction

Ce chapitre est consacré à la présentation de l’architecture de notre ap-plication, ainsi que l’environnement matériel et logiciel utilisés pour le déve-loppement, nous expliquerons éventuellement nos choix techniques relatif aux langages de programmation et des outils utilisés. Nous donnons ensuite une description des résultats aboutis approuvés par quelques captures écrans.

4.2

Architecture MVC (Modèle, Vue et

Contrô-leur)

Nous avons opté pour l’architecture MVC qui est un concept très puissant qui intervient dans la réalisation des applications ou des sites web. Son principal intérêt est la séparation des données (modèle), de l’affichage (vue) et des actions (contrôleur); Il est ainsi facile de mettre à jour le design, sans toucher aux données ni à la façon dont elles sont organisées. Inversement, il est aussi facile de modifier la structure de stockage des données ou la manière dont elles sont gérées sans bouleverser l’affichage.

Le Modèle: représente le comportement de l’application: traitements des

données, interactions avec la base de données, etc. Il décrit les données manipulées par l’application et définit les méthodes d’accès.

(55)

Chapitre 4. Réalisation 44

La Vue: correspond à l’interface avec laquelle l’utilisateur interagit. Les

ré-sultats renvoyés par le modèle sont dénués de toute présentation mais sont présentés par les vues. Plusieurs vues peuvent afficher les informa-tions d’un même modèle. La vue n’effectue aucun traitement, elle se contente d’afficher les résultats des traitements effectués par le modèle, et de permettre à l’utilisateur d’interagir avec elles.

Le Contrôleur: prend en charge la gestion des évènements de

synchroni-sation pour mettre à jour la vue ou le modèle.[23]

Figure 4.1 – Le schéma de l’architecture MVC.

4.3

Environnement du développement de

l’ap-plication

Dans cette section, nous décrirons l’environnement du travail matériel et logiciel.

(56)

Chapitre 4. Réalisation 45

4.3.1

Environnement matériel

a. Développement

L’application été développée sur un ordinateur possédant les caractéristiques suivantes:

— Processeur: intel(R) core(TM) i5 cpu — Fréquence d’horloge: 2.53 ghz.

— RAM: 6 Go — Ecran: 16¨

— Disque dur: 500 Go

— Système d’exploitation: Windows 7 (64 bit)

b. Exécution

L’application mobile a été exécutée et testée sur:

Smartphone:

— Processeur: Kirin 655(octa-core 2.1 Ghz) — RAM: 3 Go

— Ecran: 5.2¨

— Disque dur: 16 Go

— Système d’exploitation: Android 7.0 Nougat

Tablette:

— Processeur: Mediatek MT8735(quad-core 1.3 Ghz) — RAM: 1 Go

— Ecran: 7¨

— Disque dur: 8 Go

— Système d’exploitation: Android 6.0 Marshmallow

L’application web a été exécutée et testée sur une ordinateur possédant les caractéristiques suivantes:

— Processeur: intel(R) core(TM) i5 cpu — Fréquence d’horloge:2.53 ghz.

— RAM: 6 Go — Ecran: 16¨

— Disque dur: 500 Go

— Système d’exploitation: Windows 7 (64 bit)

(57)

Chapitre 4. Réalisation 46

4.3.2

Environnement logiciel

Pour le développement de l’application ANDROID nous avons utilisé les éléments suivants:

1. Android Studio

Figure 4.2 – Android Studio.

C’est l’IDE (environnement de développement intégré) officiel pour le déve-loppement d’applications Android par Google. Il est basé sur le logiciel IntelliJ IDEA de JetBrains et possède de nombreuses fonctionnalités étonnantes qui aident les développeurs à créer une application Android. Android Studio est disponible en téléchargement gratuit sur Windows, Mac OS X et Linux.

2. Java Development Kit

Le JDK est un environnement de développement permettant de créer des applications et des composants utilisant le langage de programmation Java.

Le JDK comprend des outils utiles pour développer et tester des programmes écrits dans le langage de programmation Java et s’exécutant sur la plate-forme Java.[15]

(58)

Chapitre 4. Réalisation 47

4.3.3

Outils pour le développement web

a. Laravel

Figure 4.4 – framework laravel.png.

C’est un framework PHP open-source, robuste et facile à comprendre. Il suit un modèle de conception modèle-vue-contrôleur.[22]

Laravel nous offre les avantages suivants:

Architecture MVC: Respecte le principe Model View Controller(MVC)

et entièrement développé en programmation orienté objet. — Le Model contient les données à afficher

— La vue (View) contient la présentation de l’interface graphique — Enfin le Controller contient la logique concernant les actions effectué

par l’utilisateur.

Eloquent: un moyen extrêmement facile de communiquer avec une base de

données. Chaque table de base de données a un "Modèle" correspondant qui est utilisé pour interagir avec cette table.

Bootstrap: La création de la mise en page est une partie importante de

tout projet, tandis qu’elle prend beaucoup de temps avec le CSS, pour cela Bootstrap est fait pour construire rapidement et facilement des sites web esthétiques et résponsives.

Composer: est un outil écrit en PHP qui permet de gérer les dépendances

d’un projet. Ce qu’il faut comprendre par dépendance, c’est toute librai-rie ou bibliothèque PHP qu’un projet en dépend.

b. WampServer

Le package WAMP est un environnement de développement sous Windows, très utile pour développer un site web dynamique. Cet environnement est com-posé d’Apache, MySQL et PHP(ces éléments composent d’ailleurs l’acronyme WAMP).[11]

Les éléments qui composent WAMP sont les suivants:

Apache: serveur HTTP très populaire

(59)

Chapitre 4. Réalisation 48

Figure 4.5 – Le package WampServer

PHP: langage de développement populaire sur les sites web.

PHPMyAdmin: système de gestion pour MySQL. C’est une interface

pour gérer plus facilement MySQL sans nécessairement avoir de nom-breuses connaissances.

4.3.4

GoogleMaps

Définitions

Google Maps est un service gratuit de cartographie en ligne basé sur le web qui fournit des informations détaillées sur les régions géographiques et des sites dans le monde entier. En plus des cartes routières classiques, Google Maps propose des vues aériennes et par satellite de nombreux endroits.[18]

Api GoogleMaps

L’Api de Google permettant de géolocaliser des adresses sur une carte à l’aide de ses coordonnées (latitude et longitude ); une petite bulle est affichée sur la carte pour indiquer la position du terminal.

Les étapes pour intégrer l’API Google Map à une application Android sont comme suit:

Compte Google developpeur: La première condition pour pouvoir accéder

à l’API c’est d’avoir un compte Google.

SDK Google Play: Pour le développement d’applications utilisant ses API,

Google recommande d’utiliser l’IDE Android Studio, dans lequel il est né-cessaire d’installer et de configurer le SDK des services GooglePlay

Création d’un projet: Dé que tous les packages nécessaires ont été installés

on peut créer une application dont une activité sera une GoogleMap Activity.

Obtenir une clé d’API Google Maps: l’application a besoin d’une clé API

pour accéder aux serveurs Google Maps. Le type de clé dont on a besoin est une clé API avec restriction pour les applications Android. La clé est

Figure

Figure 2.1 – Le diagramme de cas d’utilisation global.
Table 2.6 – Analyse de cas d’utilisation « Suivre les Utilisa- Utilisa-teurs »
Table 2.7 – Analyse de cas d’utilisation « Gérer les Utilisa- Utilisa-teurs »
Figure 3.1 – Diagramme de séquence système « S’enregistrer »
+7

Références

Documents relatifs

• et/ou le déplacement de l’utilisateur est une technique d’interaction avec des données ayant une localisation dans le monde physique, le mouvement des utilisateurs

Ce sont des médecins, aliénistes, précurseurs de la psychiatrie, qui souvent, s'interrogeront sur l'"anormalité" de façon générale et dans les classes de l’école

Sous un volume réduit, l’ouvrage aborde de façon claire et complète l’apport que l’on peut attendre du scanner spiralé, de l’approche endoscopique, de la place de la

– je voudrais tout d’abord souligner l’intérêt que j’ai pris aux efforts d’Antoine Spire et de Nicolas Martin pour réaffirmer la nécessité d’une réflexion laïque

Les parents peuvent en connaissance des alternatives thérapeutiques, accepter ou refuser que leur enfant participe à une recherche biomédicale ; leur refus ne changera rien

Il permet de penser la maladie au-delà du seul patient et il ne fait pas de doute que dans les années à venir cette dimension de la prise en charge connaîtra un fort développement

L’application qui sera présentée dans le chapitre suivant est basée sur deux types d’architecture : 2- tiers pour implémenter les rôles d’Agent et Administrateur

• Une classe qui réalise une interface doit présenter les méthodes publiques qui se conforment à la spécification de l’interface.. • Une classe peut posséder