IL m'est plaisant, avant d'entamer l'exposition de
ce travail, d'exprimer toute ma gratitude envers les personnes qui ont, de
prés ou de loin, contribué à la réalisation de ce
projet.
J'adresse tout d'abord mes sincères remerciements
aux intervenants professionnels responsables à ma formation au sein de
l'équipe de la société Instance-IT, pour leurs soutiens,
leurs encadrements de qualité et leurs conseils judicieux tout au long
de mon stage.
Mes vifs remerciements vont également aux membres du
jury pour m'avoir accordé leur attention.
Je tiens finalement à exprimer mon adoration et mon
respect profond envers mes chers collègues de l'ENSI.
Table des matiêres
|
Introduction générale
1 Présentation du cadre du projet
1.1 Cadre général du sujet de stage
1.2 Présentation de l'organisme d'accueil
1.3 Méthodologie suivie
2 Etat de l'art
2.1 L'informatique Ubiquiste
2.1.1 Introduction
2.1.2 L'informatique mobile
2.1.2.1 Présentation
2.1.2.2 Les Smartphones
2.2 Le système d'exploitation Android
2.2.1 Définition
2.2.2 Caractéristiques
2.2.3 Architecture
2.2.4 Applications proposées
2.3 Les outils et techniques de géo-localisation et
d'orientation sous Android 2.3.1 Google Maps API
|
8
10 10
10
11
13
13
13
14
14
14 16 16
16
17
18
19 19
|
ENSI
2.3.2 Le GPS 19
2.3.3 Android Radar 20
2.3.4 Android Compass 20
3 Etude de l'existant 21
3.1 Applications de géolocalisation de voiture 21
3.2 Critique de l'existant 22
3.3 Solution proposée 22
4 Analyse et spécification des besoins
24
4.1 Spécification des besoins 24
4.1.1 Les besoins fonctionnels 24
4.1.2 Les besoins non fonctionnels 25
4.2 Analyse des besoins 26
4.2.1 Identification des acteurs 26
4.2.2 Langage de modélisation 26
4.2.3 Diagrammes des cas d'utilisation 26
5 Conception 28
5.1 Conception générale 28
5.1.1 Les composants d'une application Android 28
5.1.2 Conception architecturale 30
5.1.3 Architecture MVC 30
5.1.4 Approche Orientée Objet 32
5.2 Conception détaillée 32
5.2.1 Diagramme de classes 32
5.2.2 Diagrammes de séquences 33
6 Réalisation 37
6.1 Environnement de travail 37
6.1.1 Environnement matériel 37
6.1.2 Environnement logiciel 37
6.2 Les technologiques utilisées 38
6.2.1 Eclipse 38
6.2.2 Le plugin ADT 38
6.2.3 Software Development Kit (SDK) 38
6.2.4 Les langages de programmation 38
6.2.4.1 JAVA 38
6.2.4.2 XML 39
6.3 Interface Homme/Machine 39
6.4 Chronogramme du travail 45
Conclusion générale 48
Bibliographie 49
Netographie 50
Annexe 51
Glossaire 55
Table des figures
|
1.1
|
Cycle de vie d'un projet XP
|
12
|
2.1
|
Les applications d'un Smartphone
|
15
|
2.2
|
Les ventes des Smartphones par système d'exploitation
|
15
|
2.3
|
Architecture d'Android
|
18
|
4.1
|
Diagramme des cas d'utilisation de notre système
|
27
|
5.1
|
Composition d'une application Android
|
30
|
5.2
|
Architecture MVC
|
31
|
5.3
|
Diagramme de classes du système
|
33
|
5.4
|
Diagramme de séquences associé au mode On-Line
|
34
|
5.5
|
Diagramme de séquences associé au mode Off-Line
|
35
|
5.6
|
Diagramme de séquences associé à l'envoie
d'SMS
|
36
|
6.1
|
Fenêtre d'acceuil
|
40
|
6.2
|
La section about
|
41
|
6.3
|
Connexion du PC à l'émulateur
|
41
|
6.4
|
Envoie des coordonnées
|
42
|
6.5
|
Marquage de la voiture
|
42
|
6.6
|
Affichage des positions sur la carte
|
43
|
6.7 Simulation de l'envoie d'SMS 44
6.8 Affichage de la cible en mode Off-Line 45
6.9 Chronogramme du travail 46
6.10 Le cycle de vie d'une activité Android 53
2.1 Les Caractéristiques du système d'exploitation
Android 17
3.1 Comparaison des applications de géolocalisation de
voiture 22
6.1 Arborescence d'un projet Android 52
"Les mobiles sont aussi différents de l'internet
que la télé l'a été de la radio", a
annoncé Tomi Ahonen, meilleur auteur technologique et médiatique
à succès, consultant de stratégie et orateur
motivationnel.
Les téléphones portables sont devenus les
premiers médias de masse dans le monde (on compte 4 milliards
d'abonnés au téléphone mobile). Il n'est pas un PC plus
bête, mais un téléphone portable est
considéré comme un autre support à générer
des formes médiatiques.
Il a subit une évolution à une vitesse
surprenante, passant du premier téléphone portable inventé
par Dr Martin Cooper -un directeur général de Motorola- en 1973
qui a été la première personne à faire un appel
depuis son téléphone portable, aux ordiphones, PDA et Smartphones
qui disposent d'un système d'exploitation adoptant des applications
tierces qui leur sont dédiées.
L'invention du premier PDA au monde, Le PenPad conçu
par Apple, était dans le but de pouvoir prendre des notes, gérer
son agenda, ses adresses, effectuer des calculs, etc, sans avoir à
s'encombrer d'un ordinateur portable ou d'un bloc notes.
Aujourd'hui ces périphériques ont atteint une
puissance de calcul, une taille mémoire ainsi qu'un débit
nécessaire pour faire tourner des applications aussi diverses que
variées qui vont de l'Outlook mobile jusqu'aux applications de
navigation GPS.
Les plates-formes de distribution de ces applications sont en
plein essor, Windows Phone 7 à son magasin d'applications, l'iPhone
à l'App Store, Android à son Market, etc.
Ce qui ne cesse d'inciter beaucoup de développeurs
à l'élaboration des petits logiciels très
prisés en profitant des multiples apports des
plateformes présentes sur le marché et des diverses innovations
technologiques (Wifi, GPS, GPRS, etc.).
En effet, la géolocalisation du GPS des «
téléphones intelligents >> est très utile aux
applications comme les annuaires, portails et autres outils permettant de
trouver ce que l'on cherche autour d'un lieu, répondant par la fin aux
besoins quotidiens de la communauté.
C'est dans ce cadre que s'inscrit notre projet de stage
d'été, intitulé « Locate My Car >> dont
l'objectif est de concevoir une application dédiée au
téléphone mobile, doté de la plateforme Android,
permettant à son propriétaire la géolocalisation de sa
voiture en cas d'oubli ou de perte, grâce aux outils et techniques de
géolocalisation et d'orientation offerts par cette plateforme.
Pour ce faire, nous procédons par une étude
théorique afin de mieux cerner le contexte de notre travail. Cette
étude fait partie des objectifs de notre rapport qui est
subdivisé en six chapitres : Le premier chapitre est consacré
à la mise en relief du cadre de développement de notre
application. Le second chapitre se focalise sur la base théorique et les
technologies utilisées pour réaliser le travail requis. Dans le
troisième chapitre nous effectuons une étude de l'existant afin
d'étudier d'une manière critique quelques applications
présentes au marché traitant la problématique de notre
projet, et présenter la solution retenue. Dans le chapitre qui suit,
baptisé« Analyse et spécification des besoins >>, nous
identifions les besoins fonctionnels et non fonctionnels auxquels doit
répondre notre application, en les modélisant à travers le
diagramme des cas d'utilisation. Quant au cinquième chapitre, il porte
une démonstration de la conception adoptée pour répondre
aux besoins précédemment cités. Enfin, nous finissons par
faire une illustration des détails de la réalisation de notre
travail.
1
Présentation du cadre du projet
NOUS commençons dans ce premier chapitre par une mise
en contexte de notre projet, en spécifiant le cadre de son
élaboration, présentant l'organisme d'accueil au sein duquel nous
avons effectué le stage relatif au présent projet ainsi qu'un
survol sur la méthodologie suivie pour réaliser ce travail.
1.1 Cadre général du sujet de stage
Notre projet intitulé «Locate My Car » a
été proposé dans le cadre de l'élaboration d'un
stage d'Immersion en Entreprise, inclus dans la formation d'ingénieur
informaticien de l'ENSI. Ce stage a été effectué au sein
de l'organisme Instance-IT.
1.2 Présentation de l'organisme d'accueil
Instance-IT est une société de
développement informatique qui s'ingénie à
l'intégration des progiciels Open Source en Tunisie, et qui offre des
solutions et des services totalement personnalisables et moins couteux. Ces
solutions sont fruits des projets réalisés en interne ou
offshores dans divers domaines de compétence grâce à une
équipe expérimentée dotée d'une parfaite maitrise
des dernières technologies et normes de qualités.
Instance-IT propose des services de :
- Desktop Application: développement et maintenance de
logiciels, assistance et conversion des logiciels.
- Web Application: conception et maintenance de sites internet,
relooking de sites web existant.
- SEO(Search Engine Optimisation) :inscription dans les moteurs
de recherche et positionnement,reporting de l'impact des méthodes
implémentées.
Ainsi que des solutions de :
- Création de sites web.
- Stratégie web.
- Référencement et positionnement de sites web.
- Commerce électronique
1.3 Méthodologie suivie
Le développement de notre application mènera la
méthodologie eXtreme Programming (XP). Cette méthodologie
s'appuie sur quatre valeurs clés:
- La communication: La communication est omniprésente
entre tous les intervenants.
- La simplicité : Pour éviter une complication du
système qui pourrait n'avoir jamais l'uti-
lité, il est préférable d'aller au plus
simple et de rajouter des fonctionnalités à une étape
prochaine.
- Le Feedback: Il est indispensable pour que le projet puisse
accueillir le changement. - Le Courage: Il concerne aussi bien les
développeurs que le client.
En outre, le cycle de vie d'un projet XP repose sur quatre
étapes représentées comme suit:
- une phase d'exploration pour déterminer les
scénarios clients qui seront fournis pendant cette itération.
- L'équipe transforme les scénarios en tâches
à réaliser et en tests fonctionnels. - Chaque développeur
s'attribue des tâches et les réalise avec un binôme.
- Lorsque tous les tests fonctionnels passent, le produit est
livré.
Ce cycle se répète tant que le client peut fournir
des scénarios à livrer, comme l'explique la figure 1.1.
FIGURE 1.1 - Cycle de vie d'un projet XP
Conclusion
Dans ce chapitre, nous avons exposé le contexte du
sujet de notre projet et présenté l'entreprise au sein de
laquelle notre stage a été effectué, finissant par
énumérer les étapes suivies pour rédiger ce
présent rapport.
2
Etat de l'art
CE chapitre portera sur une étude théorique sur les
technologies de base adoptées pour réaliser notre projet.
Nous allons commencer par introduire l'informatique ubiquiste
pervasive pour aboutir à la définition de l'informatique mobile
et ses dispositifs appropriés.
Nous définirons par la suite le système
d'exploitation Android et ses techniques de géolocalisation et
d'orientation élues nécessaires pour la réalisation de
notre travail.
2.1 L'informatique Ubiquiste
2.1.1 Introduction
Nous appellons informatique ubiquiste ou pervasive (Pervasive
Computing) la tendance à l'informatisation et la miniaturisation des
dispositifs électroniques en les intégrant dans tout objet du
quotidien.
Cette informatique s'est rapidement développée
grâce au progrès technique des systèmes de communication
(réseaux sans fil) et de la microélectronique.
Assurant plus de liberté, l'informatique ubiquitaire
permet à l'utilisateur d'affranchir les contraintes actuelles
d'utilisation d'un ordinateur en rendant accessible toutes sortes de services
indépendamment de la localisation.
De ce fait, la mobilité et la liberté du
déplacement semblent être le premier avantage tiré de
l'ubiquité.
2.1.2 L'informatique mobile
2.1.2.1 Présentation
L'informatique mobile s'inscrit sous l'approche globale de
l'informatique ubiquitaire. Historiquement, elle a été autour
depuis 1992. Depuis lors, elle constitue un outil de communications très
puissant pour les entreprises et les utilisations personnelles.
Les supports qui lui ont étés
développé ont repris l'industrie sans fil. Il s'agissait des
entités mobiles communicantes et parfois de très petites tailles
permettant de se connecter aux différents types de réseaux tant
qu'ils disposent des périphériques appropriés. Les
Smartphones en font partie.
2.1.2.2 Les Smartphones
Un Smartphone est un téléphone « intelligent
», appelé aussi ordiphone.
C'est un appareil dédié aux communications
mobiles, disposant d'un système d'exploitation ouvert et adoptant des
applications tierces développées par le fabricant, par
l'opérateur ou par un éditeur de logiciel.
Ce téléphone fournit un module de
radiocommunication (pour la voix et l'échange de données), des
fonctionnalités bureautiques (agenda, calendrier, navigation web, email,
messagerie instantanée, GPS, etc.) ainsi que des fonctionnalités
multimédia (photo, musique, vidéo et jeux) comme l'explique la
figure 2.1.
FIGURE 2.1 - Les applications d'un Smartphone
En effet, les smartphones sont dotés d'un
système d'exploitation qui gère leurs fonctionnalités. En
Mai 2010, les systèmes d'exploitation les plus répandus sont :
Symbian (racheté par Nokia), Windows Mobile (développé par
Microsoft), OS X développé par Apple sur l'iPhone, Android
(racheté par Google), Black Berry développé par RIM et
Linux. Ils sont illustrés sur la figure 2.2.
FIGURE 2.2 - Les ventes des Smartphones par système
d'exploitation
2.2 Le système d'exploitation Android
2.2.1 Définition
L'histoire de la naissance d'Android a commencé en aout
2005, lorsque Google a acquis Android INC, une startup qui développait
des applications pour téléphones mobiles.
Depuis lors, Andy Rubin, étant un ancien d'Android INC, a
entamé son travail sur un système d'exploitation basé sur
un noyau linux dédié aux appareils mobiles.
En 2007, le 5 novembre, l'Open Handset Alliance fut
officiellement annoncée. C'est un consortium qui réunit un
ensemble de sociétés, ayant pour but de développer des
standards open source pour terminaux mobiles. Le 15 novembre, le premier
standard a été annoncé. Il s'agissait d'Android, une
plateforme pour appareils mobiles.
En effet, Android représente un système
d'exploitation open source dédié pour Smartphones, PDA et
terminaux mobiles. Il est basé essentiellement sur la simplicité
d'utilisation et surtout sur une capacité de customisation importante
présentant un argument commercial de poids.
Pour promouvoir ce système d'exploitation open source,
Google lui a conféré des alliés puissants réunis au
sein de l'Open Handset Alliance tel que Samsung, Motorola, Sony Ericsson et
LG.
Les principaux concurrents d'Android sont Apple avec iPhone OS
qui équipe l'iPhone, Research In Motion avec BlackBerry OS, Palm avec
Nova ou webOS, Microsoft et son Windows Mobile, etc.
2.2.2 Caractéristiques
Le système d'exploitation Android est doté d'un
ensemble de caractéristiques intrinsèques faisant de lui un
terrain d'application lucratif. Les principales caractéristiques sont
résumées dans le tableau 2.1.
TABLE 2.1 - Les Caractéristiques du système
d'exploitation Android
2.2.3 Architecture
Android bénéficie d'une architecture en couche
complète faisant de lui une plateforme riche, dédiée aux
appareils mobiles.
Il est à base de noyau linux profitant des services
système de base tels que la sécurité, la gestion
mémoire, gestion de processus, etc.
À un niveau supérieur se trouvent un ensemble de
librairies écrites en C/C++ jouant le rôle d'un middleware (on en
cite le système de bibliothèque C, les
médiathèques, le SGL, etc.). C'est sur cette couche que se greffe
l'Android Runtime, comprenant la machine virtuelle java et ses
bibliothèques.
Vient ensuite la plateforme logicielle, nommée aussi
Framework de développement, écrite en java et permettant de
mutualiser les ressources entre applications Java. Elle offre aux
développeurs la possibilité de produire des applications diverses
et innovantes à travers un ensemble d'API.
Enfin, et à un niveau plus supérieur se situe un
ensemble d'applications sous forme de paquets .apk.
Les applications fournies par Android sont telles qu'un
navigateur web, un client mail, un calendrier, un gestionnaire de contacts,
etc.
Cette architecture est synthétisée sur la figure
2.3.
FIGURE 2.3 - Architecture d'Android
2.2.4 Applications proposées
Etant conçu par Google, l'intégration des
applications existantes de Google dans la plate-forme Android était la
première cible, comme Gmail, Google Maps, Google Calendar, Google Talk,
etc. En addition, Android accueille les applications développées
par d'autres développeurs que Google, ce qui offre à ce dernier
un apport commercial important. Il s'agit des applications innovantes dans des
divers domaines tel que : le multimédia, la navigation GPS, la
météo, la finance, etc. Ces applications peuvent être
gratuites comme payantes. Elle sont accessibles depuis les
téléphones Android. Les propriétaires de ces
téléphones profitent d'une boutique de
téléchargement d'application en ligne appelée Android
Market.
2.3 Les outils et techniques de géo-localisation
et d'orientation sous Android.
2.3.1 Google Maps API
L'API Google Maps est l'une des applications de cartographie les
plus utilisées au monde. C'est une application de service de
géolocalisation gratuite en ligne. Il s'agit d'un géoportail
lancé il y a quelques années aux Etats-Unis puis à
l'Europe.
Elle offre une vue de carte sur quatre plans à savoir un
plan classique, un plan en image satellite, un plan mixte et un plan relief de
la région.
Pour intégrer ces cartes interactives Google Maps
à son propre application et bénéficier des données
associées, l'utilisateur doit disposer d'une clé (Google Map API
Key) propre à son domaine d'utilisation [N5].
2.3.2 Le GPS
C'est un système de positionnement par satellite connu
sous le nom du « Global Positioning System », conçu à
l'origine par le département de la Défense des Etats-Unis. Il
repose sur 24 satellites qui transmettent les positions en orbite ainsi que des
signaux horaires.
Couplé avec un logiciel de navigation, le GPS permet
à l'utilisateur de connaître sa position, planifier son
itinéraire, estimer son temps du trajet, connaitre la localisation des
radars, etc. Il renvoie même la vitesse de son déplacement
à chaque instant. En outre, le positionnement par satellite est
entièrement gratuit, mais pour s'en servir il faut disposer d'un
équipement GPS qui est à acheter.
Profitant de cette technologie, Google a créé
Google Maps Navigation. Il s'agit d'un service de guidage par GPS ou encore un
système de navigation GPS, gratuit disponible sur les
téléphones Android.
2.3.3 Android Radar
En exploitant le Framework ouvert offert par Android,
plusieurs applications sont disponibles chez Android Market, dont le radar
d'Android. Ce logiciel de géolocalisation se sert du GPS pour
déterminer selon la position actuelle de son utilisateur celle de sa
cible en plus de la distance qui les sépare.
2.3.4 Android Compass
Pour s'orienter dans l'espace, certains
téléphones Android embarquent une boussole numérique avec
l'accéléromètre (pour calculer la vitesse) et les capteurs
de position. Parmi les applications qui tirent avantage de cette boussole on
cite Google Maps qui s'en servit ainsi que de
l'accéléromètre pour offrir une Street View de la
carte.
Conclusion
Tout au long de ce chapitre, nous avons introduit
l'informatique mobile dans son contexte ainsi que donné des
définitions précises du support et de la plateforme
adoptés. Nous avons ensuite énuméré les
technologies utilisées pour réaliser ce projet, pour garantir une
meilleure compréhension du sujet du stage et des fonctionnalités
du système.
3
Etude de l'existant
APRÉS avoir fait une étude approfondie sur les
notions et les techniques de base du développement de notre application,
nous passerons à une étude critique et comparative des
applications existantes afin d'introduire notre solution proposée.
3.1 Applications de géolocalisation de
voiture
En bénéficiant de la plateforme Android, les
développeurs ne cessent de se conquérir pour satisfaire les
besoins de la communauté en offrant des solutions aux divers
problèmes quotidiens, dont la géolocalisation de voiture en cas
de perte ou oubli de son endroit.
Quoique leur but soit le même, les applications
disponibles pour les téléphone Android traitant ce
problème sont assez nombreuses et variées. Elles se
diffèrent en termes de technologies et outils employés.
Pour notre étude, nous en avons sélectionné
quelques unes dans un tableau récapitulatif présenté par
le tableau 3.1.
TABLE 3.1 - Comparaison des applications de
géolocalisation de voiture
3.2 Critique de l'existant
Certes les applications présentes dans le tableau
précédant répondent toutes à la même
problématique, mais elles se diffèrent de point de vue outils
utilisés.
D'une part, elles se basent toutes sur la cartographie (Google
Map API) et le service GPS offerts par Google aux appareils Android. Mais
d'autre part, elles ne présentent pas toujours un logiciel complet et
fonctionnel à toutes les circonstances (rupture de connexion internet,
perte de direction, etc.). Par ailleurs, celles qui peuvent remplir les
contraintes précédemment citées ne sont pas
forcément gratuites et disponibles à tous les utilisateurs
Android. C'est dans ce but que nous avons développé notre
application afin de mettre à la disposition de l'utilisateur une
solution gratuite qui sera valable et fonctionnelle en permanence.
3.3 Solution proposée
Après une étude approfondie de l'existant,
plusieurs limites des logiciels de géolocalisation de voiture pour
téléphones Android présents sur scène ont surgi. Il
manque ainsi une application gratuite et complète qui s'affronte aux
circonstances qui peuvent entourer l'utilisateur.
De ce fait, nous proposons la conception et le
développement d'une application de géolocalisation de voiture qui
offre au propriétaire du téléphone Android une solution
libre permettant la récupération facile de sa voiture tout en
profitant d'un maximum d'outils disponibles au développement Android
(Compass, Radar, recourir à un ami, etc.) qui seront certes utiles et
bénéfiques pour répondre à la problématique
citée précédemment .
Conclusion
Une étude des applications existantes concurentes s'est
avérée indisponsable pour notre étude théorique du
sujet.
Lors de cette étude nous avons recouru à une
comparaison entre quelques applications de géolocalisation de voiture
présentes sur le marché en identifiant leurs limites et les
objectifs de notre application et ses apports.
4
Analyse et spécification des besoins
L'ANALYSE et la spécification des besoins
représentent la première phase du cycle de développement
d'un logiciel. Elle sert à identifier les acteurs réactifs du
système et leur associer chacun l'ensemble d'actions avec lesquelles il
intervient dans l'objectif de donner un résultat optimal et satisfaisant
au client.
Ainsi, dans ce chapitre, nous commençons en premier
lieu par une spécification des besoins auxquels doit répondre
l'application, passant ensuite à l'analyse de ces besoins à
travers l'introduction des acteurs et les diagrammes de cas d'utilisation
relatifs à ces acteurs.
4.1 Spécification des besoins
4.1.1 Les besoins fonctionnels
Les services proposés par notre application se
résument en quatre actions majeures :
B1. Choix du mode de navigation
Le système doit donner à l'utilisateur la
possibilité de choisir le mode de sa navigation: On-Line s'il dispose
d'une connexion internet, étant dans une zone couverte par le
réseau, Off-Line dans le cas contraire.
B2. Marquage et enregistrement de la position de la
voiture
Le système, grâce au module GPS, doit permettre
à l'utilisateur d'enregistrer les coordonnées de la position de
sa voiture que ça soit en mode On ou Off-Line.
B3. Consultation de la position actuelle par rapport
à celle enregistrée
Le système doit permettre l'utilisateur, en seconde
phase, de se localiser via le GPS soit sur une carte géographique (en
choisissant le mode d'affichage) soit sur une vue de Radar afin de
déterminer sa position actuelle par rapport à celle de sa voiture
en termes de distance, en indiquant la direction suggérée pour la
récupérer.
B4. Envoie de la localisation de la voiture à un
autre téléphone
Le système doit autoriser l'utilisateur à recourir
à envoyer les coordonnées GPS retenues de sa voiture à un
numéro pouvant figurer dans sa liste de contacts.
B5. Réservation d'une section de
présentation de l'application
Le système doit offrir une section d'introduction de
l'application et son mode de fonctionnement à l'utilisateur.
4.1.2 Les besoins non fonctionnels
Les besoins non fonctionnels décrivent toutes les
contraintes auxquelles est soumis le système pour sa réalisation
et son bon fonctionnement.
B1. Ergonomie et souplesse
L'application doit offrir une interface conviviale et
ergonomique exploitable par l'utilisateur en envisageant toutes les
interactions possibles à l'écran du support tenu.
B2. Rapidité
L'application doit optimiser les traitements pour avoir un temps
de génération de schéma raisonnable.
B3. Efficacité
L'application doit être fonctionnelle
indépendamment de toutes circonstances pouvant entourer
l'utilisateur.
B4. Maintenabilité et
scalabilité
Le code de l'application doit être lisible et
compréhensible afin d'assurer son état évolutif et
extensible par rapport aux besoins du marché.
4.2 Analyse des besoins
4.2.1 Identification des acteurs
Notre application est dédiée uniquement aux
propriétaires des téléphones Android.
4.2.2 Langage de modélisation
Pour la modélisation objet, nous avons choisi le langage
commun UML «Unified Modeling Language» [1].
En effet, UML est un langage de modélisation formel et
normalisé, né de la fusion de plusieurs méthodes
existantes. Il permet de modéliser informatiquement un ensemble
d'éléments d'une par-tie du monde réel en un ensemble
d'entités informatiques. Ces entités informatiques sont
appelées objets. Ces objets sont décris par des vues statiques et
dynamiques, incluant un ensemble de diagrammes, qui collaborent pour
représenter diverses projections d'une même représentation
d'un système d'objets.
4.2.3 Diagrammes des cas d'utilisation
Le système assure pour l'utilisateur diverses fonctions
mises en valeur à travers le diagramme de cas d'utilisation
illustré par la figure 4.1.
FIGURE 4.1 - Diagramme des cas d'utilisation de notre
système
Conclusion
Ce chapitre nous a permis de couvrir les différents
besoins fonctionnels et non fonctionnels des acteurs de notre système.
Nous avons fourni une analyse plus détaillée de ces besoins
grâce à un diagramme de cas d'utilisation relatif à
l'acteur unique réagissant avec le système qui est le
propriétaire du téléphone Android. Nous essayerons dans le
chapitre qui suit de concevoir clairement l'architecture de notre systeme.
5
Conception
NOUS passons, à travers ce chapitre, à
décrire la conception élue pour réaliser convenablement le
travail demandé.
Pour ce faire, nous choisissons de donner en premier lieu une
idée sur les composants d'une application Android afin de comprendre sa
structuration et par la suite choisir le modèle d'architecture
adéquat pour sa réalisation.
Après avoir parlé de la conception
générale, nous détaillons dans un second lieu la
conception de notre application au moyen des diagrammes de classes et de
séquences.
5.1 Conception générale
5.1.1 Les composants d'une application Android
Une application Android consiste en un assemblage de
composants liés via un fichier de configuration, qui présentent
en quelque sorte les briques sur lesquelles se repose l'application. Ces
concepts fondamentaux à préciser sont :
- Les vues
Les Views sont les composants basiques de l'interface
graphique. Ce sont les éléments de l'in- terface que
l'utilisateur voit et sur lesquels il agit. C'est de la classe View
qu'héritent les widgets (exemple de composants graphiques tel que les
boutons), les layouts(le plan sur lequel on organise
et on place les composants graphiques) et tous les composants
graphiques servant à la création d'une interface graphique
interactive.
- Les contrôles
C'est bien la classe des composants graphiques cités
dessus. Les contrôles sont tels que les boutons, les champs de saisie de
texte, les cases à cocher, etc.
- Les activités
Une Activity représente la fenêtre qui sera
affichée à l'utilisateur. C'est un ensemble de vues et de
contrôles composant une interface logique. Elle permet également
de gérer des fonctionnalités telles que l'appui sur une touche,
l'affichage de messages, etc. Ce concept repose essentiellement sur
l'interaction de l'utilisateur avec l'écran.
- Les ressources
Chaque application Android a ses propres fichiers ressources.
C'est dans ces fichiers que seront puisés les textes, les images, les
couleurs, etc.
- Le fichier de configuration
C'est fichier auto généré par
l'application, qui lui est indispensable. C'est un fichier XML appelé
« AndroidManifest» qui décrit le point d'entrée de
l'application (le code à exécuter), les composants du projet
ainsi que les permissions nécessaires pour l'exécution du
programme.
Une illustration explicative de ces concepts est
représentée par le schéma de la figure 5.1.
FIGURE 5.1 - Composition d'une application Android
5.1.2 Conception architecturale
Il est primordiale à la conception de tout
système informatique de choisir le modèle d'architecture qui lui
sera adéquat pouvant assurer un bon fonctionnement, des meilleurs
performances ainsi que la réutilisation et l'interconnexion fiable de ce
système avec d'autres.
C'est à cet effet que nous optons pour le modèle
MVC qui sera également très pratique pour gérer
l'interaction entre les différents composants de notre application
Android.
Nous décrivons cette architecture dans la section
suivante.
5.1.3 Architecture MVC
L'architecture MVC (modèle, vue et contrôleur) est
une architecture à trois couches utilisée pour la programmation
client/serveur et d'interface graphique.
C'est un modèle architectural très puissant qui
intervient dans la réalisation d'une applica-
tion. Il tire sa puissance de son concept de base qui est la
séparation des données (modèle), de l'affichage (vue) et
des actions (contrôleur).
C'est trois couches sont décrites comme suit:
- Modèle
Il correspond aux données stockées
généralement dans une base de données. Dans un langage
orientée objet ces données sont exploitées sous forme de
classes. Le modèle peut aussi agir sur la vue en mettant à jour
ses données.
- Vue
Ne contenant que les informations liées à
l'affichage, la vue se contente d'afficher le contenu qu'elle reçoit
sans avoir connaissance des données. En bref, c'est l'interface homme
machine de l'application.
- Contrôleur
Le contrôleur sert de base à
récupérer les informations, de les traiter en fonction des
paramètres demandés par la vue (par l'utilisateur), puis de
renvoyer à la vue les données afin d'être affichées.
C'est donc l'élément qui va utiliser les données pour les
envoyer à la vue.
L'interaction entre ces trois couches est décrite à
l'aide de la figure 5.2.
FIGURE 5.2 - Architecture MVC
Les avantages apportés par l'architecture MVC sont :
- La séparation des données de la vue et du
contrôleur (ce qui permet une conception claire et efficace de
l'application)
- Une indépendance des données, de l'affichage et
des actions (ce qui donne plus de souplesse pour la maintenabilité et
l'évolutivité du système).
- Un gain de temps de maintenance et d'évolution de
l'application.
5.1.4 Approche Orientée Objet
La programmation orienté objet est définie comme
un paradigme de programmation informatique basé sur l'interaction de
briques appelées objets, qui sont eux-mêmes des abstractions
d'objets réels, via leurs relations et les propriétés qui
leur sont accordées.
Ce paradigme assure:
- une modularité des programmes résolvant le
problème de la complexité des codes. - une vitesse
d'exécution plus rapide.
- une souplesse de réutilisation et d'évolution du
code.
5.2 Conception détaillée
5.2.1 Diagramme de classes
Le diagramme de classes de la figure 5.3 fournit une description
bien détaillée des différentes classes de l'application
ainsi que les différentes associations qui les relient .
FIGURE 5.3 - Diagramme de classes du système
5.2.2 Diagrammes de séquences
Les diagrammes de séquences suivants montreront une vue
dynamique sur l'interaction de l'utilisateur avec le système dans chacun
des sénarios possibles à travers notre application.
Sénario On-Line
C'est un sénario du au choix de navigation On-Line fait
par l'utilisateur,illustré par la figure 5.4.
FIGURE 5.4 - Diagramme de séquences associé au
mode On-Line
Sénario Off-Line
C'est un sénario du au choix de navigation Off-Line fait
par l'utilisateur,décrit par la figure 5.5.
FIGURE 5.5 - Diagramme de séquences associé au
mode Off-Line
Sénario d'envoie d'SMS
Pour permettre à l'utilisateur de recourir à
quelqu'un pour lui récupérer la voiture,l'application assure un
sénario d'envoie d'SMS à son utilisateur,qui le décrit la
figure 5.6.
FIGURE 5.6 - Diagramme de séquences associé
à l'envoie d'SMS
Conclusion
Après avoir présenté la conception globale
et détaillée de notre système, nous sommes capables
maintenant d'entamer la partie réalisation.
6
Réalisation
DANS Dans ce chapitre nous allons exposer le travail
achevé.
Nous présenterons en premier lieu l'environnement
matériel et logiciel dans lesquels notre application a été
développée en indiquant les technologies utilisées. Nous
clôturons ce chapitre par un aperçu sur l'état d'avancement
du projet et sur quelques captures d'écran traduisant le
déroulement de l'application.
6.1 Environnement de travail
6.1.1 Environnement matériel
Nous avons élaboré ce travail sur un PC dont la
configuration est la suivante :
- Pc portable : Toshiba - RAM: 1.99 GO
- Disque dur : 232 GO
- Microprocesseur : Intel(R) Core(TM)2 Duo 2.00 GHz
6.1.2 Environnement logiciel
L'environnement logiciel employé s'illustre en : - Un
Système d'exploitation Windows XP sp2.
- Eclipse comme environnement de développement JAVA, sur
lequel on a installé le plugin Android.
- Android SDK 2.2.
- Microsoft Office Visio pour le traçage des
diagrammes.
- Lyx comme éditeur latex.
6.2 Les technologiques utilisées
6.2.1 Eclipse
Eclipse est un environnement de développement Java
gratuit, open source et extensible. Il
est capable d'intégrer des modules (Plugins) de base
permettant de gérer des ensembles de ressources et faciliter le travail
du programmeur.
6.2.2 Le plugin ADT
Pour développer Android, nous avons à installer le
plugin Android [N3] qui rajoutera à Eclipse les fonctionnalités
spécialisées dans le développement sous Android.
6.2.3 Software Development Kit (SDK)
C'est un kit de développement basé sur le langage
Java.Il s'agit des outils que Google fournit pour interagir avec Android
[N2].
6.2.4 Les langages de programmation 6.2.4.1 JAVA
Android est un système d'exploitation conçu pour
téléphone mobile développé par Google, qui a mis
à disposition un kit de développement logiciel (SDK) basé
sur le langage Java.
Pour justifier ce choix, nous notons qu'au coeur du
système Android se trouve la machine virtuelle java, appelée
Dalvik, qui n'exécute que des fichiers *.dex qui sont en fait des
classes
*.java transformées via le SDK spécialement pour
Dalvik. En outre, Dalvik est liée à un Runtime comportant les
principales librairies du JAVA.
Enfin, nous rappelons que le Java, étant un langage de
programmation orienté objet utilisable sur divers systèmes
d'exploitation, est un langage assez robuste, portable et à hautes
performances.
6.2.4.2 XML
Extensible Markup Language est un langage informatique de
balisage générique. Il sert essentiellement à
stocker/transférer des données de type texte Unicode
structurées en champs arborescents.
En Android, grâce à ce langage, nous
décrivons les interfaces dans un format spécial, et Android le
converti automatiquement en objets Java qui seront par la suite disponibles
comme tout autre objet dans notre code. Il offre ainsi plus de souplesse de
développement, facilite les modifications du code et assure la
séparation entre la présentation et le comportement des
objets.
6.3 Interface Homme/Machine
L'application débute par le lancement de la
fenêtre de la figure 6.1,où le propriétaire du
téléphone est invité à choisir un mode de
navigation, soit le mode On-Line si son appareil dispose d'une connexion wifi
et s'il se trouve bien dans une zone de couverture de réseau, soit
Off-Line dans le cas contraire.
FIGURE 6.1 - Fenêtre d'acceuil
En choisissant le mode On-Line, une carte géographique
s'affiche sur l'écran du mobile.
Afin de mieux comprendre le fonctionnement de l'application,
l'utilisateur peut passer par la section about présente dans le menu
comme le montre la figure 6.2.
FIGURE 6.2 - La section about
La figure 6.2 montre quatre boutons sur la carte
géographique en plus d'une boussole. Ils servent respectivement à
marquer l'utilisateur sur la carte, marquer sa voiture, afficher une vue de
sattelite de la carte et enfin afficher les noms des boulevards.
La phase suivante est celle du marquage de la voiture, qui se
fait en recevant les coordonnées GPS de la position actuelle.
En effet, l'envoie des coordonnées GPS à
l'émulateur Android se fait à travers l'invite de commande en se
connectant à l'émulateur par Telnet comme suit:
FIGURE 6.3 - Connexion du PC à l'émulateur
Ensuite, nous introduisant manuellement les coordonnées
présentes sur la vue « Emulator Control» de l'Eclipse suite
à la commande geo fix [longitude] [latitude]
FIGURE 6.4 - Envoie des coordonnées
Par la fin, en tapant sur l'icône Car Pointer du menu,
l'utilisateur arrive à marquer la position de sa voiture en sauvegardant
ses coordonnées GPS. Cette étape est illustrée par la
figure 6.5.
FIGURE 6.5 - Marquage de la voiture
Pour récupérer sa voiture, l'utilisateur affiche
sa position actuelle ainsi que celle de sa voiture sur la carte afin d'avoir
plus de données sur le chemin à parcourir. Ceci se clarifie par
la figure 6.6.
FIGURE 6.6 - Affichage des positions sur la carte
L'utilisateur peut recourir par la suite à quelqu'un de sa
liste de contact pour lui apporter la voiture. Cette procédure se fait
par envoie d'SMS, en cliquant que l'icône SMS du menu.
Pour simuler l'envoie d'SMS sur un émulateur, le
numéro du destinataire sera celui d'un autre émulateur
lancé sous un nouveau target (voir Annexe A) comme l'explique la figure
6.7.
FIGURE 6.7 - Simulation de l'envoie d'SMS
Dans le cas du choix du mode Off-Line, le système offre
à l'utilisateur une vue de radar sur laquelle est affichée la
position de sa voiture par rapport à la sienne en indiquant la distance
qui les sépare, comme c'est indiqué sur la figure 6.8.
FIGURE 6.8 - Affichage de la cible en mode Off-Line
6.4 Chronogramme du travail
Ce travail a été réalisé durant une
période de 6 semaines. Il a été structuré comme le
décrit la figure 6.9.
FIGURE 6.9 - Chronogramme du travail
Conclusion
Dans ce chapitre de réalisation, nous avons
présenté les plates-formes matérielles et logicielles sur
lesquelles nous avons développé notre projet, ainsi que les
technologies employées.
Nous avons, par la suite, présenté les interfaces
les plus significatives de notre application en clôturant par le
chronogramme des tâches accomplies durant ce stage pour achever ce
projet.
L'élaboration de notre travail était
dans le but de concevoir une application dédiée aux
terminaux mobiles disposant de la plateforme Android. Cette
application permet au propriétaire du téléphone la
récupération simple et rapide de sa voiture en cas de perte ou
d'oubli de localisation. Pour ce faire, nous avons recouru à
différentes technologies et outils de localisation et d'orientation
jugés nécessaires pour aboutir à l'objectif de notre
application.
Depuis le présent document, nous détaillons les
différentes étapes suivies pour une réalisation
réussie du travail demandé.
Dans un premier lieu, nous avons commencé par
introduire la société d'accueil et le cadre de
l'élaboration du projet ainsi que la méthodologie suivie.
La deuxième étape dans la réalisation de
notre projet était de faire une étude théorique sur les
notions de base et les technologies employées, suivie d'une étude
critique des applications concurrentes existantes sur le marché.
Nous avons par la suite entamé l'analyse et la
spécification des besoins par citer les besoins fonctionnels et non
fonctionnels de notre projet et les modéliser par le diagramme des cas
d'utilisation en indiquant le langage de modélisation utilisé.
Partant de la spécification, nous avons commencé
la conception de l'application à travers les différents
diagrammes UML à savoir les diagrammes de classe et les diagrammes de
séquences.
Par la fin, nous avons décrit, depuis le chapitre
réalisation, l'implémentation de notre application tout en
présentant quelques imprimes écran de certaines interfaces.
Ce stage s'est révélé profitable sur
plusieurs points : Bien que le projet n'ait pu être testé sur un
appareil mobile mais uniquement sur un émulateur, il nous a permis de
travailler sur une technologie pour terminaux mobiles et accroître nos
connaissances dans le domaine de l'embarqué en abordant plusieurs
aspects techniques d'Android.
Ce projet nous a également donné l'occasion de
mieux connaître le milieu des sociétés de service
informatique et de consolider nos expériences professionnelles.
Comme d'autres applications Android, notre application peut
être aisément améliorée. En effet, grâce
à son aspect ouvert, Android offre l'opportunité de créer
des logiciels mobiles innovants et révolutionnaires en encourageant les
développeurs à puiser dans leur imagination et à mobiliser
toutes leurs compétences pour un meilleur de cette plateforme.
[1] Roques Pascal, UML2 par la pratique, Paris :
Edition EYROLLES, 2004, 309.
[2] Mark Murphy, L'Art du développement Android,
France: Pearson Education, 2009, 390.
[3] Mark Murphy , Beginning Android 2, New York:
Edition APRESS, 2010, 400.
[N2] http ://
developer.android.com/index.html,
date de dernière consultation 10/06/2010. [N1]http ://
www.eclipse.org/downloads/,
date de dernière consultation 10/06/2010.
[N3] https ://
dl-ssl.google.com/android/eclipse/,
date de dernière consultation 10/06/2010.
[N4] http ://
www.pointgphone.com/android/emulateur,
date de dernière consultation 12/06/2010.
[N5] http ://
code.google.com/intl/fr-FR/android/maps-api-signup.html,
date de dernière consultation 22/06/2010.
[N6] http ://
www.mti.epita.fr/blogs/2010/08/03/introduction-a-la-programmation-sous-android/,
date de dernière consultation 18/06/2010.
[N7] http ://www.e-vidence.net/ ?p=223, date de dernière
consultation 09/07/2010.
[N8] http ://
developer.android.com/guide/topics/location/index.html,
date de dernière consultation 13/07/2010.
[N9] http ://
www.anddev.org/, date de
dernière consultation 16/07/2010.
[N10] http ://android.cyrilmottier.com/ ?p=79, date de
dernière consultation 20/07/2010.
[N11] http ://
www-igm.univ-mlv.fr/~dr/XPOSE2008/android/,
date de dernière consultation 21/07/2010.
Annexe A : Manuel d'installation et de mise en
marche
|
1. Installation de l'Eclipse [N1].
2. Installation du SDK Android [N2].
3. Installation du plugin ADT sous Eclipse [N3].
4. Création d'un Android Virtual Device(AVD) :
La Configuration d'un nouveau AVD se fait en remplissant les
champs suivants lors de sa création:
- Name: Le nom à donner à votre émulateur
(sans espace).
- Target : La version du SDK Android sur lequel
l'émulateur doit fonctionner (Dans notre cas
elle doit être de type Google APIs pour pouvoir faire
fonctionner le programme). - SD Card: Configuration de la SD Card (Taille,
etc.). Ce champ est facultatif.
- Skins : Choix du thème de l'émulateur. Des
émulateurs préconfigurés se trouvent dans
Built-in.
- Hardware: Cette partie permet de rajouter le matériel et
de le personnaliser.
Annexe B : Arborescence d'un projet Android
|
L'arborescence d'un projet Android exemple est comme
définie comme suit:
TABLE 6.1 - Arborescence d'un projet Android
Annexe C : Cycle de vie d'une activité
Android
|
Le diagramme de la figure suivante illustre les principaux
états du cycle de vie d'une activité Android, qui sont
décris par un ensemble d'évènnements expliqués par
la suite.
FIGURE 6.10 - Le cycle de vie d'une activité Android
Ces évènnements sont en fait des méthodes
définies comme suit:
- onCreate : Appelée quand l'activité est
créée, sorte d'initialisation de l'activité. Elle prend
comme paramêtre un Bundle qui contient l'état de sauvegarde
précédent de l'activité s'il existe.
- onStart : Appelée avant que l'activité ne soit
visible à l'écran. En cas d'erreur d'exécution,
l'activité sera transférée à OnStop, sinon elle
passe après à OnResume.
- onRestart : Exécutée lorsque l'activité
redémarre après un arrêt via un Onstop.
- onResume : Appelée après OnStart si
l'activité est en avant ou en arrière plan (à cause
d'une
autre application). A ce stade d'exécution de
l'application, l'interaction avec l'utilisateur est
possible.
- onPause : Appelée avant qu'une autre activité ne
passe à en OnResume. Ace stade, l'activité encours n'a plus
accès à l'écran.
- onStop : Appelée lorsque l'activité est
terminée, ou encore si l'avant plan est pris par une autre
activité.
- onDestroy : Appelée avant la fermeture de
l'activité.
|