WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Rapport de stage sur le projet "Locate my car" - google map android

( Télécharger le fichier original )
par Nouha KHYARI
Ecole nationale des sciences de l'informatique Tunisie - élève ingénieur 2010
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

Remerciements

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

Liste des tableaux

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

Introduction générale

"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.

Conclusion générale

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.

Bibliographie

[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.

Netographie

[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é.

Glossaire






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Le doute est le commencement de la sagesse"   Aristote