Intégrer la présentation
Téléchargé 46 fois












![2
CHAPITRE I : CONTEXTE ET PROBLEMATIQUE
I.1) Présentation de l’entreprise
Situé au rond-point Maetur à Bonamoussadi (Douala), Grid Engineering est une
société de services d’ingénierie informatique composée d’une équipe pluridisciplinaire
d’ingénieurs certifiés et de hauts cadres d’entreprises. Présent sur le marché depuis près
d’une décennie, Grid Engineering concilie les besoins des entreprises et les opportunités
du monde technologique pour sophistiquer leurs solutions.
Grid a pour mission d’apporter des solutions technologiques simplifiées et
innovantes au service des objectifs des individus et des entreprises.
I.2) Contexte
GTS Enterprise est une application de géolocalisation et du suivi de terminaux
disponible en version web développé par GEOTelematic®
Solutions. Il est écrit en java,
et utilise les solutions comme Apache Tomcat pour le déploiement des web services
(services web) et MySQL pour le stockage des données.
Figure 1 : Interface de GTS Enterprise (tracé du trajet) [11]](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-13-320.jpg)
![3
I.2.1) Fonctionnalités
Ses principales fonctionnalités sont :
- Authentification basée sur le Web : chaque compte peut supporter plusieurs
utilisateurs et chaque utilisateur a son propre mot de passe et un accès contrôlé
aux sections dans le compte.
- la cartographie : GTS vient avec le support OpenLayers/OpenStreetMap en
plus des supports Google Maps, Microsoft Virtual Earth et Mapstraction. Grâce
à ce module, il est possible de tracer le trajet d’un terminal. En effet, en
recherchant les évènements d’un terminal ou d’un groupe de terminaux dans un
intervalle de temps précis, il est possible de placer chacun de ces évènements
sur une carte, le résultat étant le trajet du terminal dans cet intervalle de temps.
En plus, il est également possible de suivre en temps réel un terminal ou un
groupe (flotte) de terminaux dans son (leur) déplacement.
- la gestion des rapports : ce module offre à l’utilisateur un bref historique des
déplacements d’un terminal. Chaque terminal est configuré pour envoyer à des
intervalles de temps réguliers certaines informations (évènements) au serveur
de GTS. Il s’agit entre autre des coordonnées géographiques (latitude /
longitude), de l’adresse, de la vitesse, du statut (en déplacement, en arrêt), de
l’altitude, de l’odomètre (valeur de la distance parcourue), de la quantité
d’essence, etc. En fonction de la nature de l’équipement suivi, certaines
informations peuvent être activées sur celui-ci.
- la gestion de l’administration : les comptes utilisateurs, les identifiants des
véhicules sont gérés à ce niveau.
Il met à la disposition des utilisateurs un service web qui permet la communication
entre elle et d’autres applications clientes [12].
I.2.2) Plateformes supportées
GTS Enterprise est entièrement écrit en java et utilise les technologies comme
Apache Tomcat pour le déploiement des web services et MySQL pour le stockage
des données. A ce titre, GTS peut fonctionner sur n’importe quel système supportant](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-14-320.jpg)
![4
ces technologies : Linux, Mac OS X, FreeBSD, OpenBSD, Windows (XP, Vista, 7,
8).
I.2.3) Architecture
L’architecture de GTS Enterprise se présente comme suit :
Figure 2 : Architecture de GTS Enterprise src.[11]
Les serveurs de communication et les périphériques distants (périphériques de
suivi GPS) s’exécutent comme des processus séparés au-dessus de java. Les servlets
de track, comme tout servlet, s’exécutent à l’intérieur d’un conteneur de servlet, ici
Apache Tomcat.
I.3) Problématique
GTS Enterprise étant une application pour bureau, limite l’utilisateur dans son
utilisation. Il serait intéressant de permettre à ses utilisateurs de pouvoir utiliser les
fonctionnalités de GTS dans leurs déplacements. La problématique se résume en la
question suivante : comment permettre à l’utilisateur de pouvoir traquer les terminaux
gérés par GTS Enterprise dans sa mobilité ?](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-15-320.jpg)
![5
I.4) Méthodologie
Pour résoudre le problème posé plus haut, nous avons adopté la méthode Scrum.
Il s’agit d’une méthode agile de gestion de projets décrite en 2001 par Schwaber et
Beedle dans le livre «Agile software development with Scrum» (Schwaber et Beedle,
2001) [9]. Cette méthodologie regroupe de développement d’un logiciel en trois phases,
planification + Architecture, développement, test + intégration.
I.4.1) Planification et architecture
La planification consiste à définir les exigences du système et la date de livraison
des fonctionnalités. Cette phase regroupe trois étapes à savoir l’identification des
besoins, la conception et la modélisation.
I.4.1.1) L’identification de besoins :
Il est question ici, de définir les différentes fonctionnalités que devront remplir le
futur système. Ceci se fait par une étude du système principal, c’est-à-dire GTS
Enterprise, en conjonction avec les futurs utilisateurs.
I.4.1.2) La conception et la modélisation
Dans cette phase, nous définissons une architecture pour le futur système, en
produisant une représentation schématique des différentes interactions du système avec
les futurs utilisateurs. Nous utiliserons la notation UML (Unified Modeling Langage)
pour la modélisation du système [15].. Cette phase devra aussi produire une architecture
graphique de l’application. Il s’agit de la modélisation de la navigation entre toutes les
différentes interfaces de l’application.
I.4.2) Le développement
La phase de développement consiste à réaliser, construire, et créer les différents
composants de l’application. L’on utilise différents outils tels les frameworks, API
(Applications Programming Interface), langages de programmations, IDE
(environnement de développement intégré), et approches facilitant le travail,
permettant d’avoir au final les composantes du système.](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-16-320.jpg)

![7
CHAPITRE II : GENERALITES
II.1) L’informatique mobile
La mobilité caractérise tout ce qui peut se mouvoir ou être mû. Cette notion de
l’activité humaine se traduit par trois aspects différents dans le domaine de
l’informatique : le nomadisme, l’ubiquité, les systèmes sensibles au contexte [5].
Nomadisme
La première façon de considérer l'informatique mobile consiste à fournir un
dispositif portable aux utilisateurs. L'utilisation de ces dispositifs requiert toute
l'attention de l'utilisateur et s'applique à tout déplacement, indépendamment de celui-ci.
Cette approche est souvent appelée nomadisme, bien que ce terme puisse prendre
d'autres significations dans d'autres domaines, comme dans les systèmes distribués où
le nomadisme désigne la capacité d'un système à fournir à chaque utilisateur son
environnement de travail sur n'importe quelle station.
L’exemple le plus connu de nomadisme est l’ordinateur portable que nous amenons
avec nous afin d’emporter notre environnement informatique de travail.
Informatique Ubiquitaire
La deuxième façon de considérer l'informatique mobile est de l'inscrire dans une
approche plus globale que constitue l'informatique ubiquitaire. L'informatique
ubiquitaire a pour but de rendre accessible toutes sortes de services, n'importe où, tout
en masquant l'ordinateur. Cette volonté d'affranchir l'utilisateur des contraintes actuelles
d'utilisation d'un ordinateur (être assis devant un clavier, un écran, etc.) lui rend sa liberté
d'actions, notamment sa liberté de mouvement. L'ubiquité permet donc souvent la
mobilité.](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-18-320.jpg)
![8
Systèmes sensibles au contexte
Les systèmes sensibles au contexte sont des systèmes dont l'interaction dépend
de l'environnement physique de l'utilisateur (localisation). Lorsque par exemple un
archéologue désire accéder aux découvertes d'un site, il n'est possible que de lui
présenter les objets à proximité, dans un rayon d'influence qui reste à déterminer (soit à
la conception, soit en option par l'utilisateur, soit par une adaptation automatique du
logiciel). Pour indiquer à l'archéologue les objets à leurs places initiales, il convient de
considérer aussi l'orientation de l'archéologue, information complémentaire à la
localisation. En fonction des moyens techniques mis en œuvre, cette orientation peut
être celle du regard ou celle du dispositif utilisé. Disposant du couple d'information
localisation et orientation, le système peut alors filtrer les informations disponibles selon
la direction du regard de l'utilisateur.
II.2) Les applications mobiles
Une application mobile est un programme conçu pour les appareils électroniques
mobiles (assistant personnel, téléphone portable, baladeur numérique). Elle permet à son
l’utilisateur de jouir des fonctionnalités du monde numérique dans sa mobilité.
L’utilisateur peut avoir accès à son courrier électronique, aux informations
météorologiques tout en restant mobile. Pour une entreprise, les applications mobiles
augmentent la productivité des employés, facilite l’accès à l’information et augmente le
revenu [3].
Bien que trois plateformes dominent le marché des mobiles (Android de Google,
Windows Phone de Microsoft et IOS d’Apple), le système d’exploitation de Google
(Android) arrache la part du lion avec 82,2 % en 2014 d’après l’IDC [10].
On distingue trois grandes familles d’applications mobiles. Les applications
natives, les applications hybrides et les applications web [8].
- Les applications natives
Une application native est unique à une plateforme. Son utilisation nécessite au
préalable une installation dans le terminal. Elles sont disponibles dans le « store » de la](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-19-320.jpg)
![9
plateforme concernée (App store pour Apple, Google play pour Android et Windows
store pour les Windows phone). Le store est comme un magasin géré par les
propriétaires de la plateforme, dans lequel les développeurs d’applications peuvent venir
déposer leurs applications. On choisit en général ce type pour exploiter au maximum les
capacités du système.
- Les applications hybrides
Une application hybride est un mélange d’application native et d’application web.
Avec elle, l’on bénéficie des avantages des applications natives sans développer
l’intégralité du produit dans le langage de chaque plateforme. Les pages développées en
web (pour la partie web de l’application) peuvent être embarquées pour fonctionner hors
ligne mais elles sont statiques et nécessitent une re-soumission pour être mises à jour.
Dans le cas où la page web n’est pas embarquée, elle ne fonctionne pas hors ligne. L’une
des particularités des applications hybrides est qu’elles peuvent être installées sur
plusieurs plateformes différentes et peuvent être disponibles sur leurs stores.
- Les applications web
Une application web se différencie des deux précédentes par son point d’accès.
Elle peut uniquement être lancée depuis un navigateur web. Cette solution est également
basée sur des langages du web. C’est un site web pour appareils mobiles. Les langages
de programmation utilisés sont les mêmes que ceux utilisés pour le web : HTML/CSS
et JavaScript. Les coûts de développement sont limités et il n’y a aucune dépendance
avec le store d’une plateforme.
II.3) La géolocalisation
La géolocalisation est une méthode permettant d’obtenir et éventuellement
transmettre la position géographique d’une personne ou d’une ressource. Elle était à
l’origine destinée pour les besoins de l’armée américaine, et ce n’est qu’en 1993 que le
Président des Etats-Unis (Bill Clinton) décide de le mettre à la disposition du public
[14].](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-20-320.jpg)

![11
II.5) Les méthodes agiles de développement
II.5.1) Définition
Les méthodes agiles reposent sur des cycles de développement itératifs et
adaptatifs en fonction des besoins évolutifs du client. Elles permettent d'impliquer
l'ensemble des collaborateurs ainsi que le client dans le développement du projet [7].
Ces méthodes permettent généralement de mieux répondre aux attentes du client
en un temps limité (en partie grâce à l'implication de celui-ci) tout en faisant monter les
collaborateurs en compétences. Ces méthodes constituent donc un gain en productivité
ainsi qu'un avantage compétitif tant du côté client que du côté du fournisseur.
II.5.2) Les valeurs des méthodes agiles
Les méthodes agiles se reconnaissent toutes dans les valeurs suivantes [1] :
Les individus et leurs interactions plus que les processus et les outils. Dans la vision
agile, l'équipe est bien plus importante que les outils ou les procédures de
fonctionnement. Il est préférable d'avoir une équipe soudée et dont les membres
communiquent entre eux, composée de développeurs de niveaux différents, plutôt
qu'une équipe composée d'experts qui travaillent de manière isolée. La communication
est donc une notion fondamentale dans un contexte de développement agile.
Des logiciels opérationnels plus qu’une documentation exhaustive. Il est primordial
que le projet fonctionne, c'est la priorité avant toute chose. La documentation technique
et les autres outils (de tests, de reporting) constituent une aide précieuse mais ne sont
pas une fin en soi. Il est parfois préférable de simplement commenter abondamment le
code lui-même et surtout de transférer la totalité des compétences et connaissances du
métier à l'ensemble des collaborateurs de l'équipe.
La collaboration avec les clients plus que la négociation contractuelle. Le client doit
être impliqué dans le développement. Le fournisseur ne doit pas se contenter de négocier
un contrat au début du projet puis de refuser l'évolution des besoins du client. Le client](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-22-320.jpg)
![12
doit collaborer avec l'équipe et fournir des comptes rendus réguliers sur l'adaptation du
logiciel à ses attentes.
L’adaptation au changement plus que le suivi d’un plan. La planification initiale et
la structure du projet doivent être flexibles afin de permettre les évolutions attendues par
le client. En effet, les premières livraisons du projet donnent très souvent suite à des
demandes d'évolution.
II.5.3) La méthodologie Scrum
La méthode Scrum est une méthode agile, créée en 2001, dont le nom est un terme
emprunté au rugby qui signifie « la mêlée ». Elle s'appuie sur le découpage des projets
en itérations encore nommées « sprints ». Un sprint peut avoir une durée qui varie
généralement entre deux semaines et un mois [7].
Avant chaque sprint, les tâches sont estimées en temps et en complexité. Ces
estimations permettent à la fois de planifier les livraisons mais aussi d'estimer le coût de
ces tâches auprès du client. Les fonctionnalités (encore appelées « user stories ») qui
font l'objet d'un sprint constituent ce que l'on appelle un « sprint backlog » du produit
éventuellement livrable à la fin du sprint. Le « product backlog » correspond à
l'ensemble des fonctionnalités attendues pour le produit sur l'ensemble des sprints.
La méthode Scrum est aussi caractérisée par une « mêlée » quotidienne, encore
appelée « morning » ou « stand up », dans laquelle les collaborateurs (chefs de projets,
développeurs et responsables fonctionnels) indiquent tour à tour les tâches qu'ils ont
effectuées la veille, les difficultés rencontrées et enfin ce sur quoi ils vont poursuivre
leur travail le jour suivant. Cela permet d'évaluer l'avancement du projet, de mobiliser
des ressources là où cela est le plus nécessaire, mais aussi de venir en aide aux
collaborateurs rencontrant des difficultés lorsque celles-ci ont déjà été rencontrées
auparavant par d'autres membres de l'équipe.](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-23-320.jpg)
![13
Figure 3 : Déroulement d'un projet avec Scrum src.[7]
La méthode Scrum définit trois rôles pour un projet.
1. Le Scrum master. Il s'agit d'une personne chargée de veiller à la mise en
application de la méthode et au respect de ses objectifs. Il ne s'agit pas d'un chef
de projet, mais d'une personne chargée de lever les obstacles éventuels qui
empêcheraient l'avancement de l'équipe et du projet pendant les différents sprints.
2. Le product owner. Il s'agit du représentant officiel du client au sein d'un projet
Scrum. Il est l'interlocuteur principal du Scrum Master et des membres de
l'équipe. Il définit les besoins du produit et rédige les spécifications. Il peut se
faire aider de responsables fonctionnels pour la rédaction des spécifications. Il
est également chargé de définir et définir les priorités des users stories pour
chaque sprint.
3. L'équipe (« team members »). Elle est constituée des personnes chargées de la
réalisation du sprint et d'un produit utilisable en fin de sprint. Il peut s'agir de
développeurs, architectes, personnes chargées de faire des tests fonctionnels…
II.6) Le pattern MVC
Le pattern MVC permet de bien organiser son code source.. Le but de MVC est
justement de séparer la logique du code en trois parties que l'on retrouve dans des
fichiers distincts, comme l'explique la description qui suit.](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-24-320.jpg)

![15
CHAPITRE III : CONCEPTION ET MODELISATION
Nous présenterons dans ce chapitre chaque étape du cycle de vie de notre
application. De la conception à l’implémentation, nous verrons ses différents
diagrammes UML, ainsi que son architecture.
L’ensemble des besoins à satisfaire pour un système est exprimé dans le cahier
des charges [17].
III.1) Expression des besoins
Cette section décrit les besoins fonctionnels (opérations que le système doit
réaliser) et non fonctionnels du système (spécification qui n’exprime pas une fonction
du logiciel). Chaque besoin possède les attributs suivants :
1. un identifiant unique
2. la catégorie du besoin
3. la description
4. une liste de termes le référant
5. la justification
6. la priorité
7. la vérification
Le champ catégorie a deux valeurs possibles : fonctionnel ou non fonctionnel,
tandis que le champ priorité à trois valeurs possibles : haute, moyenne, faible.
III.1.1) Les besoins fonctionnels
- La liste des terminaux
Tableau 1 : Lister les terminaux
Identifiant F1
Catégorie Fonctionnel
Description Le système devra lister tous les terminaux d’un utilisateur. Cette
fonctionnalité permettra à l’utilisateur de choisir parmi les terminaux](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-26-320.jpg)















![31
important d’API, permettant de développer facilement des applications qui interagissent
avec le terminal (caméra, GPS, accéléromètre, messagerie …) [16]. La version utilisée
pour développer aGTS est la 4.2. Les applications Android sont écrites en utilisant le
langage de programmation Java.
III.4.2) Java
Java est un langage de programmation orienté objet et multiplateforme,
développé par Sun Microsystems en 1995. C’est un langage interprété riche en
bibliothèques et en outils qui facilitent le développement de tous les types d’applications
[4]. Nous utiliserons la version 1.7 du JDK (Java Development Kit) fournie par Sun
Microsystems.
III.4.3) Les Google services
Le système d’exploitation Android est détenu par le géant de l’informatique
Google. Ce dernier met à la disposition des développeurs un certain nombre de services.
Ceux-ci ne sont pas inclus dans la plateforme Android mais sont utilisable par la plupart
des terminaux. Parmi ces services, celui qui nous intéresse est le service Google Maps.
Car il permet d’ajouter une carte à notre application, et de gérer son contenu [13].
III.4.4) Les services web ReST
ReST (Representational State Transfert) est un moyen qui permet d’utiliser les
protocoles standards du web pour consommer les services web. C’est un style
d’architecture pour systèmes distribués dont le terme a été introduit par Roy Fielding
dans sa thèse en 2000. La communication entre entités dans un système reparti se fait
en utilisant de simples messages. Avec ReST, les messages sont de simples requêtes
HTTP sans encodages. La conséquence directe de ce fait est que nous pouvons avoir des
entités d’implémentation totalement indépendantes dans un même système [6].
III.4.5) XML
XML est un langage balisé qui dérive de SGML (Standard Generalized Markup
Language) et du HTML (HyperText Markup Language). C’est un format de document
texte et est utilisé aussi bien pour le stockage de données que pour la transmission de
données entre applications [13].](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-42-320.jpg)














![46
BIBLIOGRAPHIE
[1] Agile Alliance, Manifeste pour le développement Agile de logiciels. (2014,
Septembre 30, 12 :15). Récupéré sur http://agilemanifesto.org/iso/fr/
[2] Android developers, Google services. (2014, Juillet 22, 16 :15). Récupéré sur
http://developer.android.com/google/
[3] CERFI, Mobilité en entreprise: avantages, inconvénients, nos solutions! (2014,
Aout 29, 17 :10). Récupéré sur http://www.cerfi.ch/fr/CeRFI/Actualites/A-la-
une/Mobilite-en-entreprise-avantages-inconvenients-nos-solutions.html
[4] Claude Delannoy, Programmer en Java, EYROLLES, Paris Cedex 05, France, 5e
édition, 2008
[5] Département Informatique - Université Nice Sophia Antipolis, L’informatique
mobile. (2014, Octobre 1er
, 17:10). Récupéré sur
http://deptinfo.unice.fr/~renevier/corrections/theseHTML/informatiquemobile.html
[6] Developpez.com, Introduction aux services web Rest avec WCF 3.5. (2014, Juillet
20, 15:30). Récupéré sur http://badger.developpez.com/tutoriels/dotnet/web-service-
rest avec-wcf-3-5/
[7] Developpez.com, Présentation des méthodes agiles et Scrum. (2014, Juillet 25,
16 :30). Récupéré sur http://ineumann.developpez.com/tutoriels/alm/agile_scrum/
[8] Ekito, Application mobile : web ou natif ? (2014, Juillet 20, 10 :15). Récupéré sur
http://www.ekito.fr/people/application-mobile-web-ou-natif/
[9] Houda Bagane, Analyse des principes du génie logiciel au niveau du développement
agile, Mémoire présenté comme exigence partielle de la maîtrise en informatique,
Université du Québec, Montréal, Mars 2011. Récupéré à partir du lien :
http://www.archipel.uqam.ca/4010/1/M12003.pdf
[10] IDC, Smartphone Momentum Still Evident with Shipments Expected to Reach 1.2
Billion in 2014 and Growing 23.1% Over 2013, According to IDC. (2014, Août 28,
16:34). Récupéré sur http://www.idc.com/getdoc.jsp?containerId=prUS24857114](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-57-320.jpg)
![47
[11] Mark Phillips, GeoTelematic Tutorial and Guide for the GTS Enterprise, édité et
mis à jour par Martin D. Flynn, 15 Mai 2011. Récupéré à partir du lien
http://www.geotelematic.com/docs/GTSEnterprise_Tutorial.pdf
[12] Martin D. Flynn, GeoTelematic Web Services Guide, 2011. Récupéré à partir du
lien http://www.geotelematic.com/docs/GTSEnterprise_WebService.pdf
[13] Olivier Carton, L’essentiel de XML : Cours XML, Paris, France, 2014
[14] Orange, La géolocalisation : définition, usages et limites. (2014, Juillet 11, 15 :30).
Récupéré sur le lien http://www.orange-business.com/fr/blogs/relation-client/contact-
multicanal/la-geolocalisation-definition-usages-et-limites
[15] Pascal Roques, UML2 par la pratique, EYROLLES, Paris Cedex 05, France, 5e
édition, 2006
[16] Reto Meier, Professional Android Application Development, Wrox, Indianapolis,
Etats-Unis, 2009
[17] Software Engineering Standards Committee. Guide de l'IEEE pour la
Spécification d'Exigences de Système. IEEE-SA Standards Board, 1998](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-58-320.jpg)
Ce document présente la conception et la réalisation d'une application cliente pour GTS Enterprise sur la plateforme Android, visant à rendre les services de suivi GPS disponibles sur des dispositifs mobiles. L'application permet de localiser des terminaux sur une carte, de les contrôler via SMS, et d'accéder à divers paramètres essentiels tels que la vitesse et le trajet. Elle est développée selon un cahier des charges strict pour garantir son efficacité et sa maintenabilité.












![2
CHAPITRE I : CONTEXTE ET PROBLEMATIQUE
I.1) Présentation de l’entreprise
Situé au rond-point Maetur à Bonamoussadi (Douala), Grid Engineering est une
société de services d’ingénierie informatique composée d’une équipe pluridisciplinaire
d’ingénieurs certifiés et de hauts cadres d’entreprises. Présent sur le marché depuis près
d’une décennie, Grid Engineering concilie les besoins des entreprises et les opportunités
du monde technologique pour sophistiquer leurs solutions.
Grid a pour mission d’apporter des solutions technologiques simplifiées et
innovantes au service des objectifs des individus et des entreprises.
I.2) Contexte
GTS Enterprise est une application de géolocalisation et du suivi de terminaux
disponible en version web développé par GEOTelematic®
Solutions. Il est écrit en java,
et utilise les solutions comme Apache Tomcat pour le déploiement des web services
(services web) et MySQL pour le stockage des données.
Figure 1 : Interface de GTS Enterprise (tracé du trajet) [11]](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-13-320.jpg)
![3
I.2.1) Fonctionnalités
Ses principales fonctionnalités sont :
- Authentification basée sur le Web : chaque compte peut supporter plusieurs
utilisateurs et chaque utilisateur a son propre mot de passe et un accès contrôlé
aux sections dans le compte.
- la cartographie : GTS vient avec le support OpenLayers/OpenStreetMap en
plus des supports Google Maps, Microsoft Virtual Earth et Mapstraction. Grâce
à ce module, il est possible de tracer le trajet d’un terminal. En effet, en
recherchant les évènements d’un terminal ou d’un groupe de terminaux dans un
intervalle de temps précis, il est possible de placer chacun de ces évènements
sur une carte, le résultat étant le trajet du terminal dans cet intervalle de temps.
En plus, il est également possible de suivre en temps réel un terminal ou un
groupe (flotte) de terminaux dans son (leur) déplacement.
- la gestion des rapports : ce module offre à l’utilisateur un bref historique des
déplacements d’un terminal. Chaque terminal est configuré pour envoyer à des
intervalles de temps réguliers certaines informations (évènements) au serveur
de GTS. Il s’agit entre autre des coordonnées géographiques (latitude /
longitude), de l’adresse, de la vitesse, du statut (en déplacement, en arrêt), de
l’altitude, de l’odomètre (valeur de la distance parcourue), de la quantité
d’essence, etc. En fonction de la nature de l’équipement suivi, certaines
informations peuvent être activées sur celui-ci.
- la gestion de l’administration : les comptes utilisateurs, les identifiants des
véhicules sont gérés à ce niveau.
Il met à la disposition des utilisateurs un service web qui permet la communication
entre elle et d’autres applications clientes [12].
I.2.2) Plateformes supportées
GTS Enterprise est entièrement écrit en java et utilise les technologies comme
Apache Tomcat pour le déploiement des web services et MySQL pour le stockage
des données. A ce titre, GTS peut fonctionner sur n’importe quel système supportant](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-14-320.jpg)
![4
ces technologies : Linux, Mac OS X, FreeBSD, OpenBSD, Windows (XP, Vista, 7,
8).
I.2.3) Architecture
L’architecture de GTS Enterprise se présente comme suit :
Figure 2 : Architecture de GTS Enterprise src.[11]
Les serveurs de communication et les périphériques distants (périphériques de
suivi GPS) s’exécutent comme des processus séparés au-dessus de java. Les servlets
de track, comme tout servlet, s’exécutent à l’intérieur d’un conteneur de servlet, ici
Apache Tomcat.
I.3) Problématique
GTS Enterprise étant une application pour bureau, limite l’utilisateur dans son
utilisation. Il serait intéressant de permettre à ses utilisateurs de pouvoir utiliser les
fonctionnalités de GTS dans leurs déplacements. La problématique se résume en la
question suivante : comment permettre à l’utilisateur de pouvoir traquer les terminaux
gérés par GTS Enterprise dans sa mobilité ?](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-15-320.jpg)
![5
I.4) Méthodologie
Pour résoudre le problème posé plus haut, nous avons adopté la méthode Scrum.
Il s’agit d’une méthode agile de gestion de projets décrite en 2001 par Schwaber et
Beedle dans le livre «Agile software development with Scrum» (Schwaber et Beedle,
2001) [9]. Cette méthodologie regroupe de développement d’un logiciel en trois phases,
planification + Architecture, développement, test + intégration.
I.4.1) Planification et architecture
La planification consiste à définir les exigences du système et la date de livraison
des fonctionnalités. Cette phase regroupe trois étapes à savoir l’identification des
besoins, la conception et la modélisation.
I.4.1.1) L’identification de besoins :
Il est question ici, de définir les différentes fonctionnalités que devront remplir le
futur système. Ceci se fait par une étude du système principal, c’est-à-dire GTS
Enterprise, en conjonction avec les futurs utilisateurs.
I.4.1.2) La conception et la modélisation
Dans cette phase, nous définissons une architecture pour le futur système, en
produisant une représentation schématique des différentes interactions du système avec
les futurs utilisateurs. Nous utiliserons la notation UML (Unified Modeling Langage)
pour la modélisation du système [15].. Cette phase devra aussi produire une architecture
graphique de l’application. Il s’agit de la modélisation de la navigation entre toutes les
différentes interfaces de l’application.
I.4.2) Le développement
La phase de développement consiste à réaliser, construire, et créer les différents
composants de l’application. L’on utilise différents outils tels les frameworks, API
(Applications Programming Interface), langages de programmations, IDE
(environnement de développement intégré), et approches facilitant le travail,
permettant d’avoir au final les composantes du système.](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-16-320.jpg)

![7
CHAPITRE II : GENERALITES
II.1) L’informatique mobile
La mobilité caractérise tout ce qui peut se mouvoir ou être mû. Cette notion de
l’activité humaine se traduit par trois aspects différents dans le domaine de
l’informatique : le nomadisme, l’ubiquité, les systèmes sensibles au contexte [5].
Nomadisme
La première façon de considérer l'informatique mobile consiste à fournir un
dispositif portable aux utilisateurs. L'utilisation de ces dispositifs requiert toute
l'attention de l'utilisateur et s'applique à tout déplacement, indépendamment de celui-ci.
Cette approche est souvent appelée nomadisme, bien que ce terme puisse prendre
d'autres significations dans d'autres domaines, comme dans les systèmes distribués où
le nomadisme désigne la capacité d'un système à fournir à chaque utilisateur son
environnement de travail sur n'importe quelle station.
L’exemple le plus connu de nomadisme est l’ordinateur portable que nous amenons
avec nous afin d’emporter notre environnement informatique de travail.
Informatique Ubiquitaire
La deuxième façon de considérer l'informatique mobile est de l'inscrire dans une
approche plus globale que constitue l'informatique ubiquitaire. L'informatique
ubiquitaire a pour but de rendre accessible toutes sortes de services, n'importe où, tout
en masquant l'ordinateur. Cette volonté d'affranchir l'utilisateur des contraintes actuelles
d'utilisation d'un ordinateur (être assis devant un clavier, un écran, etc.) lui rend sa liberté
d'actions, notamment sa liberté de mouvement. L'ubiquité permet donc souvent la
mobilité.](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-18-320.jpg)
![8
Systèmes sensibles au contexte
Les systèmes sensibles au contexte sont des systèmes dont l'interaction dépend
de l'environnement physique de l'utilisateur (localisation). Lorsque par exemple un
archéologue désire accéder aux découvertes d'un site, il n'est possible que de lui
présenter les objets à proximité, dans un rayon d'influence qui reste à déterminer (soit à
la conception, soit en option par l'utilisateur, soit par une adaptation automatique du
logiciel). Pour indiquer à l'archéologue les objets à leurs places initiales, il convient de
considérer aussi l'orientation de l'archéologue, information complémentaire à la
localisation. En fonction des moyens techniques mis en œuvre, cette orientation peut
être celle du regard ou celle du dispositif utilisé. Disposant du couple d'information
localisation et orientation, le système peut alors filtrer les informations disponibles selon
la direction du regard de l'utilisateur.
II.2) Les applications mobiles
Une application mobile est un programme conçu pour les appareils électroniques
mobiles (assistant personnel, téléphone portable, baladeur numérique). Elle permet à son
l’utilisateur de jouir des fonctionnalités du monde numérique dans sa mobilité.
L’utilisateur peut avoir accès à son courrier électronique, aux informations
météorologiques tout en restant mobile. Pour une entreprise, les applications mobiles
augmentent la productivité des employés, facilite l’accès à l’information et augmente le
revenu [3].
Bien que trois plateformes dominent le marché des mobiles (Android de Google,
Windows Phone de Microsoft et IOS d’Apple), le système d’exploitation de Google
(Android) arrache la part du lion avec 82,2 % en 2014 d’après l’IDC [10].
On distingue trois grandes familles d’applications mobiles. Les applications
natives, les applications hybrides et les applications web [8].
- Les applications natives
Une application native est unique à une plateforme. Son utilisation nécessite au
préalable une installation dans le terminal. Elles sont disponibles dans le « store » de la](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-19-320.jpg)
![9
plateforme concernée (App store pour Apple, Google play pour Android et Windows
store pour les Windows phone). Le store est comme un magasin géré par les
propriétaires de la plateforme, dans lequel les développeurs d’applications peuvent venir
déposer leurs applications. On choisit en général ce type pour exploiter au maximum les
capacités du système.
- Les applications hybrides
Une application hybride est un mélange d’application native et d’application web.
Avec elle, l’on bénéficie des avantages des applications natives sans développer
l’intégralité du produit dans le langage de chaque plateforme. Les pages développées en
web (pour la partie web de l’application) peuvent être embarquées pour fonctionner hors
ligne mais elles sont statiques et nécessitent une re-soumission pour être mises à jour.
Dans le cas où la page web n’est pas embarquée, elle ne fonctionne pas hors ligne. L’une
des particularités des applications hybrides est qu’elles peuvent être installées sur
plusieurs plateformes différentes et peuvent être disponibles sur leurs stores.
- Les applications web
Une application web se différencie des deux précédentes par son point d’accès.
Elle peut uniquement être lancée depuis un navigateur web. Cette solution est également
basée sur des langages du web. C’est un site web pour appareils mobiles. Les langages
de programmation utilisés sont les mêmes que ceux utilisés pour le web : HTML/CSS
et JavaScript. Les coûts de développement sont limités et il n’y a aucune dépendance
avec le store d’une plateforme.
II.3) La géolocalisation
La géolocalisation est une méthode permettant d’obtenir et éventuellement
transmettre la position géographique d’une personne ou d’une ressource. Elle était à
l’origine destinée pour les besoins de l’armée américaine, et ce n’est qu’en 1993 que le
Président des Etats-Unis (Bill Clinton) décide de le mettre à la disposition du public
[14].](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-20-320.jpg)

![11
II.5) Les méthodes agiles de développement
II.5.1) Définition
Les méthodes agiles reposent sur des cycles de développement itératifs et
adaptatifs en fonction des besoins évolutifs du client. Elles permettent d'impliquer
l'ensemble des collaborateurs ainsi que le client dans le développement du projet [7].
Ces méthodes permettent généralement de mieux répondre aux attentes du client
en un temps limité (en partie grâce à l'implication de celui-ci) tout en faisant monter les
collaborateurs en compétences. Ces méthodes constituent donc un gain en productivité
ainsi qu'un avantage compétitif tant du côté client que du côté du fournisseur.
II.5.2) Les valeurs des méthodes agiles
Les méthodes agiles se reconnaissent toutes dans les valeurs suivantes [1] :
Les individus et leurs interactions plus que les processus et les outils. Dans la vision
agile, l'équipe est bien plus importante que les outils ou les procédures de
fonctionnement. Il est préférable d'avoir une équipe soudée et dont les membres
communiquent entre eux, composée de développeurs de niveaux différents, plutôt
qu'une équipe composée d'experts qui travaillent de manière isolée. La communication
est donc une notion fondamentale dans un contexte de développement agile.
Des logiciels opérationnels plus qu’une documentation exhaustive. Il est primordial
que le projet fonctionne, c'est la priorité avant toute chose. La documentation technique
et les autres outils (de tests, de reporting) constituent une aide précieuse mais ne sont
pas une fin en soi. Il est parfois préférable de simplement commenter abondamment le
code lui-même et surtout de transférer la totalité des compétences et connaissances du
métier à l'ensemble des collaborateurs de l'équipe.
La collaboration avec les clients plus que la négociation contractuelle. Le client doit
être impliqué dans le développement. Le fournisseur ne doit pas se contenter de négocier
un contrat au début du projet puis de refuser l'évolution des besoins du client. Le client](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-22-320.jpg)
![12
doit collaborer avec l'équipe et fournir des comptes rendus réguliers sur l'adaptation du
logiciel à ses attentes.
L’adaptation au changement plus que le suivi d’un plan. La planification initiale et
la structure du projet doivent être flexibles afin de permettre les évolutions attendues par
le client. En effet, les premières livraisons du projet donnent très souvent suite à des
demandes d'évolution.
II.5.3) La méthodologie Scrum
La méthode Scrum est une méthode agile, créée en 2001, dont le nom est un terme
emprunté au rugby qui signifie « la mêlée ». Elle s'appuie sur le découpage des projets
en itérations encore nommées « sprints ». Un sprint peut avoir une durée qui varie
généralement entre deux semaines et un mois [7].
Avant chaque sprint, les tâches sont estimées en temps et en complexité. Ces
estimations permettent à la fois de planifier les livraisons mais aussi d'estimer le coût de
ces tâches auprès du client. Les fonctionnalités (encore appelées « user stories ») qui
font l'objet d'un sprint constituent ce que l'on appelle un « sprint backlog » du produit
éventuellement livrable à la fin du sprint. Le « product backlog » correspond à
l'ensemble des fonctionnalités attendues pour le produit sur l'ensemble des sprints.
La méthode Scrum est aussi caractérisée par une « mêlée » quotidienne, encore
appelée « morning » ou « stand up », dans laquelle les collaborateurs (chefs de projets,
développeurs et responsables fonctionnels) indiquent tour à tour les tâches qu'ils ont
effectuées la veille, les difficultés rencontrées et enfin ce sur quoi ils vont poursuivre
leur travail le jour suivant. Cela permet d'évaluer l'avancement du projet, de mobiliser
des ressources là où cela est le plus nécessaire, mais aussi de venir en aide aux
collaborateurs rencontrant des difficultés lorsque celles-ci ont déjà été rencontrées
auparavant par d'autres membres de l'équipe.](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-23-320.jpg)
![13
Figure 3 : Déroulement d'un projet avec Scrum src.[7]
La méthode Scrum définit trois rôles pour un projet.
1. Le Scrum master. Il s'agit d'une personne chargée de veiller à la mise en
application de la méthode et au respect de ses objectifs. Il ne s'agit pas d'un chef
de projet, mais d'une personne chargée de lever les obstacles éventuels qui
empêcheraient l'avancement de l'équipe et du projet pendant les différents sprints.
2. Le product owner. Il s'agit du représentant officiel du client au sein d'un projet
Scrum. Il est l'interlocuteur principal du Scrum Master et des membres de
l'équipe. Il définit les besoins du produit et rédige les spécifications. Il peut se
faire aider de responsables fonctionnels pour la rédaction des spécifications. Il
est également chargé de définir et définir les priorités des users stories pour
chaque sprint.
3. L'équipe (« team members »). Elle est constituée des personnes chargées de la
réalisation du sprint et d'un produit utilisable en fin de sprint. Il peut s'agir de
développeurs, architectes, personnes chargées de faire des tests fonctionnels…
II.6) Le pattern MVC
Le pattern MVC permet de bien organiser son code source.. Le but de MVC est
justement de séparer la logique du code en trois parties que l'on retrouve dans des
fichiers distincts, comme l'explique la description qui suit.](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-24-320.jpg)

![15
CHAPITRE III : CONCEPTION ET MODELISATION
Nous présenterons dans ce chapitre chaque étape du cycle de vie de notre
application. De la conception à l’implémentation, nous verrons ses différents
diagrammes UML, ainsi que son architecture.
L’ensemble des besoins à satisfaire pour un système est exprimé dans le cahier
des charges [17].
III.1) Expression des besoins
Cette section décrit les besoins fonctionnels (opérations que le système doit
réaliser) et non fonctionnels du système (spécification qui n’exprime pas une fonction
du logiciel). Chaque besoin possède les attributs suivants :
1. un identifiant unique
2. la catégorie du besoin
3. la description
4. une liste de termes le référant
5. la justification
6. la priorité
7. la vérification
Le champ catégorie a deux valeurs possibles : fonctionnel ou non fonctionnel,
tandis que le champ priorité à trois valeurs possibles : haute, moyenne, faible.
III.1.1) Les besoins fonctionnels
- La liste des terminaux
Tableau 1 : Lister les terminaux
Identifiant F1
Catégorie Fonctionnel
Description Le système devra lister tous les terminaux d’un utilisateur. Cette
fonctionnalité permettra à l’utilisateur de choisir parmi les terminaux](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-26-320.jpg)















![31
important d’API, permettant de développer facilement des applications qui interagissent
avec le terminal (caméra, GPS, accéléromètre, messagerie …) [16]. La version utilisée
pour développer aGTS est la 4.2. Les applications Android sont écrites en utilisant le
langage de programmation Java.
III.4.2) Java
Java est un langage de programmation orienté objet et multiplateforme,
développé par Sun Microsystems en 1995. C’est un langage interprété riche en
bibliothèques et en outils qui facilitent le développement de tous les types d’applications
[4]. Nous utiliserons la version 1.7 du JDK (Java Development Kit) fournie par Sun
Microsystems.
III.4.3) Les Google services
Le système d’exploitation Android est détenu par le géant de l’informatique
Google. Ce dernier met à la disposition des développeurs un certain nombre de services.
Ceux-ci ne sont pas inclus dans la plateforme Android mais sont utilisable par la plupart
des terminaux. Parmi ces services, celui qui nous intéresse est le service Google Maps.
Car il permet d’ajouter une carte à notre application, et de gérer son contenu [13].
III.4.4) Les services web ReST
ReST (Representational State Transfert) est un moyen qui permet d’utiliser les
protocoles standards du web pour consommer les services web. C’est un style
d’architecture pour systèmes distribués dont le terme a été introduit par Roy Fielding
dans sa thèse en 2000. La communication entre entités dans un système reparti se fait
en utilisant de simples messages. Avec ReST, les messages sont de simples requêtes
HTTP sans encodages. La conséquence directe de ce fait est que nous pouvons avoir des
entités d’implémentation totalement indépendantes dans un même système [6].
III.4.5) XML
XML est un langage balisé qui dérive de SGML (Standard Generalized Markup
Language) et du HTML (HyperText Markup Language). C’est un format de document
texte et est utilisé aussi bien pour le stockage de données que pour la transmission de
données entre applications [13].](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-42-320.jpg)














![46
BIBLIOGRAPHIE
[1] Agile Alliance, Manifeste pour le développement Agile de logiciels. (2014,
Septembre 30, 12 :15). Récupéré sur http://agilemanifesto.org/iso/fr/
[2] Android developers, Google services. (2014, Juillet 22, 16 :15). Récupéré sur
http://developer.android.com/google/
[3] CERFI, Mobilité en entreprise: avantages, inconvénients, nos solutions! (2014,
Aout 29, 17 :10). Récupéré sur http://www.cerfi.ch/fr/CeRFI/Actualites/A-la-
une/Mobilite-en-entreprise-avantages-inconvenients-nos-solutions.html
[4] Claude Delannoy, Programmer en Java, EYROLLES, Paris Cedex 05, France, 5e
édition, 2008
[5] Département Informatique - Université Nice Sophia Antipolis, L’informatique
mobile. (2014, Octobre 1er
, 17:10). Récupéré sur
http://deptinfo.unice.fr/~renevier/corrections/theseHTML/informatiquemobile.html
[6] Developpez.com, Introduction aux services web Rest avec WCF 3.5. (2014, Juillet
20, 15:30). Récupéré sur http://badger.developpez.com/tutoriels/dotnet/web-service-
rest avec-wcf-3-5/
[7] Developpez.com, Présentation des méthodes agiles et Scrum. (2014, Juillet 25,
16 :30). Récupéré sur http://ineumann.developpez.com/tutoriels/alm/agile_scrum/
[8] Ekito, Application mobile : web ou natif ? (2014, Juillet 20, 10 :15). Récupéré sur
http://www.ekito.fr/people/application-mobile-web-ou-natif/
[9] Houda Bagane, Analyse des principes du génie logiciel au niveau du développement
agile, Mémoire présenté comme exigence partielle de la maîtrise en informatique,
Université du Québec, Montréal, Mars 2011. Récupéré à partir du lien :
http://www.archipel.uqam.ca/4010/1/M12003.pdf
[10] IDC, Smartphone Momentum Still Evident with Shipments Expected to Reach 1.2
Billion in 2014 and Growing 23.1% Over 2013, According to IDC. (2014, Août 28,
16:34). Récupéré sur http://www.idc.com/getdoc.jsp?containerId=prUS24857114](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-57-320.jpg)
![47
[11] Mark Phillips, GeoTelematic Tutorial and Guide for the GTS Enterprise, édité et
mis à jour par Martin D. Flynn, 15 Mai 2011. Récupéré à partir du lien
http://www.geotelematic.com/docs/GTSEnterprise_Tutorial.pdf
[12] Martin D. Flynn, GeoTelematic Web Services Guide, 2011. Récupéré à partir du
lien http://www.geotelematic.com/docs/GTSEnterprise_WebService.pdf
[13] Olivier Carton, L’essentiel de XML : Cours XML, Paris, France, 2014
[14] Orange, La géolocalisation : définition, usages et limites. (2014, Juillet 11, 15 :30).
Récupéré sur le lien http://www.orange-business.com/fr/blogs/relation-client/contact-
multicanal/la-geolocalisation-definition-usages-et-limites
[15] Pascal Roques, UML2 par la pratique, EYROLLES, Paris Cedex 05, France, 5e
édition, 2006
[16] Reto Meier, Professional Android Application Development, Wrox, Indianapolis,
Etats-Unis, 2009
[17] Software Engineering Standards Committee. Guide de l'IEEE pour la
Spécification d'Exigences de Système. IEEE-SA Standards Board, 1998](https://image.slidesharecdn.com/memoireversionfinalekenfack-150912201547-lva1-app6892/85/Memoire-version-finale-kenfack-58-320.jpg)