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

 > 

Conception et transformation d'une application web en application mobile

( Télécharger le fichier original )
par Deanhope MATABARO MASUMBUKO Hope
Institut Supérieur Pédagogique de Bukavu - Licence 2015
  

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

ANNEE ACADEMIQUE 2015-2016

I

ENSEIGNEMENT SUPERIEUR ET UNIVERISITAIRE
INSTITUT SUPERIEURE PEDFAGOGIQUE DE BUKAVU
ISP/BUKAVU

BP : 854 BUKAVU

SECTION DES SCIENCES COMMERCIALES ET INFORMATIQUE
DEPARTEMENT D'INFORMATIQUE DE GESTION

CONCEPTION ET TRANSFORMATION D'UNE APPLICATION WEB EN APPLICATION MOBILE

Présenté par

 

MATABARO MASUMBUKO Hope

Mémoire présenté et défendu en vue de l'obtention du Grade de Licencié en Pédagogie Appliquée

Option : Informatique de Gestion

DIRECTEUR : KAMPEMPE KILIMALI Damien Assistant

II

RESUME

De toute évidence notre travail parle de la réservation des places dans des bateaux à partir de la maison du passager, pour une gestion effective et efficiente. Nous allons faire notre mieux à faire découvrir des possibilités que le Framework cordova nous offre pour pouvoir utiliser les langages de programmations web desktop que nous avons coutumes d'utiliser sans contraintes ni problèmes quelconques. Dont .
· CSS, JS, HTML, JQuery, PHP, JSON,...

Nous allons utiliser les méthodes agiles, plus particulièrement processus unifié combinée avec l'UML avec des techniques documentaires, d'interview et de navigation. Tout ceci dans le but d'atteindre l'objectif que nous nous sommes fixé dès le départ, cet objectif est d'une part d'apporter la solution possible à une demande de conversion des applications web en application mobile sans mettre de côté nos langages de programmations habituels qui y sont et d'autre part, de donner la possibilité au passager de réserver des places dans des bateaux à partir de son appareil mobile.

Mot clé .
· Web-mobile, web-Android, transformation-Web, application web-mobile

Matabaro Masumbuko hope

III

ABSTRACT

In this paper we are discussing reservation of places in ships from his home for an effective and efficiency management of this ships and the way a new comer in Mobile development, can find out basic ideas for facing this issue with the programing language he uses to work with. What are: CSS, JS, HTML, JQuery, PHP, JSON,... For going far in realization of our paper's project we had to use some of methods computer scientists adopt so that we fulfil our task. So amongst the many of them we chose Agile' methods mainly Unified Process combine with Unified Modeling Language.

This for, giving response to the objectives we chose, and which is first, respond to the question of transformation of desktop application in mobile one and in the other hand, giving possibility to any passenger from his home, to reserve places in a boat by means of his mobile phone

Key words: Web-mobile, web-Android, Web transformation, web-mobile application

Matabaro Masumbuko hope

IV

EPIGRAPHE

« Travaille comme si tout dépend de toi seul et prie comme si tout dépend de Dieu seul : voilà l'attitude pour réussir»

Matabaro Masumbuko hope

V

DEDICACE

Matabaro Masumbuko hope

A Ma famille et Ma fiancée,

VI

REMERCIEMENTS

A la fin de ce travail, je tiens à remercier :

Le seigneur Dieu tout puissant

Pour nous avoir donné la possibilité de terminer cette année académique ainsi que ce travail ;

Toutes les autorités académiques et le corps professoral de l'ISP/Bukavu. Pour la formation de qualité qu'ils nous ont offerte cinq ans durant.

Ass. KAMPEMPE KILIMALI Damien,

Qui malgré ses multiples tâches a agréé l'encadrement de cet travail, par ses remarques constructives, conseils fructueux et sa directive ébouriffante.

Le professeur MUSANGU LUKA Marcel,

Pour ses conseils fructueux qu'il nous fit durant notre recherche pour la réalisation de ce présent travail.

A tous les agents GESI, particulièrement ceux du site PNUD Bukavu et aux staffs PNUD, ONUFEMME, FAO, UNFPA et GS PNUD/Bukavu.

Pour leurs encouragements continus et leurs aides précieuses.

A ma fiancée et mes beaux-parents et tous mes amis

Pour leurs encouragements continus et leurs aides précieuses ainsi que leurs présences de toute sorte

A tout celui de près ou de loin qui n'est pas cité dans les listes

Pour tout ce que vous avez pu faire en mon égard durant ce temps de recherche.

Matabaro Masumbuko hope

VII

SIGLES ET ABREVIATIONS

ADB: Android Debug Bridge,

AJAX : Asynchronious Javascript and Extensible Markup Langage ,

AVD: Android Virtual Divice ,

API : Application Programme Interface ,

CEPT: Conférence Européenne des administrations des Postes et Télécommunication ,

CSS: Cascading Style Sheets,

DOM: Document Object Model,

FAO: Organisation des Nations Unies pour l'Alimentation et l'Agriculture

GESI: Guarding Effective Security International

GS: Group Service

GSM: Group Special Mobile,

HTML: Hypertext Markup language

HTTP: Hyper Text Transfert Protocol

ISP : Institut supérieur pédagogique

JDK: Java Development Kit,

JS: JavaScript

JSON : Java Script Object Notation

Kb: Kilobyte,

MHz: Mega Hertz,

MSC: Centre de Communication Mobile

MVC: Modèle Vue et Contrôleur

MySQL: My Structured Query Language

VIII

ONU: Organisations des Nations Unies

OS . Operating System

PC. Personal Computer;

PDA. Personal Digital Assistant ou assistants personnels numériques ;

PHP. Hypertext PreProcessor

PNUD. Programme des Nations Unies pour le Développement

RDC . République Démocratique du Congo

RIM. Research In Motion

SGBD. Système de Gestion de Base des données

SIM. Subscriber Identity Module;

SQL. Structural Query Language

TFC . Travail de Fin de Cycle

UML . Unified Modeling Language

UNFPA. Fond des Nations Unies pour la population

XML. Extensible Markup Langage

1

O. INTRODUCTION

0.1. PROBLEMATIQUE

Il y a longtemps un groupe de chercheurs s'est donné à une recherche en vue d'optimiser leurs besoins sans beaucoup se lasser. En 1962, un nommé Philippe Dreyfus est venu avec un terme désignant la discipline qui pourrait initier tout avec tous les avantages et désavantages que cette philosophie fera de ce monde. Et cette discipline est nommée Informatique. Au fait, cette discipline n'a pas encore un grand nombre des conséquences néfastes que ses avantages dans le monde actuel. Les tenants de cette discipline continue à initier afin de réaliser ou de vérifier leur hypothèse. La réalité est que nous sommes en train de pratiquer cette discipline chaque jour et partout dans le monde. Ce qui nous amène à écrire des rapports, des travaux et des articles afin de contribuer à son évolution.

En effet, Le mémoire est un travail original qui démontre les capacités de l'étudiant à traiter d'un sujet de son choix dans le respect de l'approche et des méthodes scientifiques qui lui ont été enseignées et en manifestant l'esprit critique qui convient. Ceci implique d'exposer clairement une question et de mener des recherches sérieuses, en se servant des instruments de travail adéquats, tout en faisant la critique des matériaux recueillis. Le caractère d'originalité du mémoire peut résulter soit du sujet choisi, soit des méthodes d'investigation, soit de la qualité de la réflexion ou de la vigueur de la pensée, soit enfin du caractère personnel du travail de comparaison et de synthèse. L'idéal serait que chacun de ces éléments se retrouve dans tout mémoire; en pratique, il va de soi qu'ils peuvent être combinés à des degrés variables. Il est toutefois essentiel que l'étudiant fasse preuve de la plus grande rigueur dans la pensée et dans l'expression. C'est ainsi que nous avions orienté notre travail dans la technologie embarquée avec toutes ces caractéristiques entre autres : La criticité, La

réactivité, L'autonomie, La robustesse, la sécurité et la fiabilité, des contraintes non fonctionnelles, ...

En outre, nous soulignons que la réalisation d'un mémoire fait partie, au même titre que les examens, des épreuves dont il faut s'acquitter pour obtenir le diplôme de licencié en informatique appliquée. C'est dans cette perspective que nous avions opté pour un sujet formulé de la façon suivante : « Conception et réalisation d'une Application mobile de réservation des places dans des bateaux » qui nous a plongés dans le champ de développement mobile parmi un amalgame se trouvant dans la technologie Embarquée.

En plus, nous savons que des passagers ont des difficultés à atteindre le port, à payer le transport et à se trouver le billet à temps opportun pour mieux voyager. Il arrive de fois que dans ce sens beaucoup manque des places et voyagent en étant débout, il est plus évident qu'un passager ou un homme d'affaire situé à un endroit donné puisse trouver une ambition de faire son voyage tout en se facilitant beaucoup il peut où qu'il se trouve et à n'importe quand se réserver une place. Il en est de même pour un chauffeur que l'administrateur à envoyer pourrait aller et rentrer avec peu de passagers et cela fera en sorte que l'on perd du carburant et c'est exactement la perte des sommes d'argents qui s'inscrit au bilan de

2

l'entreprise alors que l'on peut trouver un moyen qui pallierait à ces défis Et en outre, nous avons des difficultés dans la plupart de cas à abandonner les domaines que l'on connait vers un site inconnu comme dans la plus part de cas vers la fin des réalisation des programmes des finalistes de la L2 IG se demandent comment ils peuvent rendre leurs applications desktop en applications mobiles sans bouger à leur forme et conception de base. Il en est de même une question d'actualité chose qui m'a motivé à voir si on peut bien trouver ce qui peut répondre à nos besoins les plus profonds.

Ainsi, pour embrasser ce côté tête levée nous avons fait un bail d'analyse et des questionnements qui se sont synthétisés comme suit :

- Est-ce que l'analyse de ce fait nous donnera une appréhension générale de ces problèmes ?

- Est-ce que le développement mobile d'une application de réservation permettrait que nous puissions résoudre ces problèmes des passagers et des gestionnaires?

O.2 HYPOTHESES

- Nous estimons qu'une analyse approfondie de ces problèmes nous aidera à appréhender ce problème sans équivoque et du coup les cerner en vue de les résoudre.

- Au fait, la résolution informatique dans la plupart de cas semble paraître comme une panacée. C'est ainsi que nous savons que la réalisation efficace et efficiente faciliterait les passagers et les gestionnaires à répondre à leurs besoins sans équivoque vu que les hommes d'affaire ne se séparent pas facilement de leurs appareils mobiles ainsi que certains hommes ordinaires.

0.3 METHODES ET TECHNIQUES

A. METHODES

METHODES AGILES (PROCESSUS UNIFIE)

Comme annoncé, nous dévons mettre en place une application qui conviendrait au mieux avec les résultats attendus, pour ce faire nous aurons besoin d'adopter une méthode de développement logiciel itératif et adaptif pour répondre aux spécifications du cahier des charges. C'est pourquoi nous nous sommes orientés vers l'utilisation de la méthodologie 2TUP (2 Track Unified Process), mais nous intéresserons plus aux modèles en Y

B. TECHNIQUES

1. Technique documentaire: elle nous a permis de faire un parcourt dans les différentes boites (bibliothèque, navigation sur internet, utilisation de forum, surface avec de mail,

3

chat,...) pour consulter les différents outils documents écrits (ouvrages, cours, travaux et différents livres) pouvant compléter notre connaissance en matière de recherche et précisément des données ayant trait à notre sujet de recherche.

2. Technique d'interview: il était ici question de faire un échange de bouche à bouche avec certaines personnes que nous considérons comme détentrices des informations sur notre thème d'étude notamment les enseignants et les collègues dans des blogs.

3. Technique de navigation : cette technique est celle qui consiste à consulter des sites internet en vue de nous ressourcer à fond.

0.4. OBJECTIFS DU TRAVAIL

L'objectif du travail est double. Il s'agit d'une part d'apporter la solution possible à une demande de conversion des applications web en application mobile sans mettre de côté nos langages de programmations habituels et d'autre part de donner la possibilité au passager de réserver des places dans des bateaux via son appareil mobile afin de faciliter les administrateurs de ces bateaux à orienter les autos conformément à leurs demandes et ainsi bien programmer les sorti des bateaux. L'application mobile doit être accompagnée d'un backoffice.

O.5. JUSTIFICATION DU CHOIX ET INTERET DU SUJET

L'homme a beaucoup besoin de vivre dans un environnement sain, bon et surtout sécurisé dans le but de faire ce qu'il pense le mieux dans sa vie. Ceci suppose l'existence des conditions de vie permettant à ce dernier de s'épanouir grandement. Il est de notre cas où nous nous sommes demandé la manière dont nous pouvons réaliser une application mobile à partir des langages de programmations habituels que nous avons coutume d'utiliser, chose qui a été beaucoup plus intéressant à nous et aux autres collègues qui ont les mêmes ambitions de pouvoir les réaliser comme tel. Pour que nous puissions y arriver il nous faut un désir approfondi cet ainsi pour partager cette expérience avec les autres et ainsi les clarifier à leur vu jusqu'à arriver à le faire d'eux-mêmes sans beaucoup plus des difficultés. Alors, nous allons partir par un exemple qui nous tiens à coeur et peux prendre la forme des diverses manière dont ils ont à réaliser des applications mobiles. Ainsi, nous trouvons dans la plupart de cas une perte de temps non planifié qui pourrait être résolue par un simple clic sur le bouton « Send » et ainsi recevoir la coopération, comme la collaboration des autres. Selon le sondage nous sommes rendu compte que c'est le manque d'information à temps opportun qui fait que nombreux ne parviennent pas à réaliser leur souhait. Suite à ces aléas nous avons jugé bon de Développer cette application

La science cherche toujours à aller plus loin par ses tenants. Notre département d'informatique de gestion prend une place parmi les branches scientifiques donc aussi doit impérativement

4

mobile de réservation des places dans des bateaux cas des bateaux comme exemple qui nous aidera à atteindre notre objectif à sa deuxième forme.

a. L'intérêt personnel

Personnellement, je me demandais comment je pourrais à partir de nos langages habituels de programmation, réaliser une application mobile. C'est ainsi que j'ai cherché un fait qui m'a touché pour expliquer mon problème et aider les autres qui ont les mêmes idées à pouvoir alanguir leur souffle. C'est par là qu'un jour j'ai été à mainte reprise en retard et le bateau m'a laissé Cela n'est pas à dire que les bateaux sont insuffisants pour ce transport lacustre ou bien il n'y a que le bateaux Emmanuel dans ce point mais ce qui est là c'est une question de préférence qui sera beaucoup plus encouragé par une information sûre. Cela m'a tant choqué car j'ai échoué ma mission qui ne s'était pas passée comme prévue. Je suis parti de moi-même pour comprendre les difficultés que les gens soulignées dans la plupart de leurs conversations et c'est ainsi que je me suis mis à penser comment arriver à diminuer cette incertitude si pas l'éteindre car je sais qu'un « voyage de mile kilomètre commence par un pas » dit-on.

En outre, je me suis demandé depuis le début de la première année de graduat ce qui pouvait faire l'objet de développement des applications pour les téléphones. Nous voudrions que ces réalités soient dans le champs de notre études pour mieux comprendre si ce qui s'y faisait relevait des informaticiens comme nous, ou bien il y avait un groupe d'informaticiens qui ne pouvaient que développer les applications pouvant travailler dans les téléphones et ainsi aider les gens de chez nous comme on le faisait il y a bel lurette dans d'autres lieu. Toujours dans la quête de la satisfaction de nos rêves, nous nous sommes retrouvés dans les mains des enseignants qui nous ont enseigné comment on devrait les réaliser à partir des données que nous avions actuellement en main. Le développement était petit à petit rendu clair pour un bon affrontement de ces applications. Ce qui veut dire que c'est une satisfaction de notre inquiétude qui fait en générale l'intérêt personnel. Et la clarification de ces idées après un long moment nous a poussé à orienter notre sujet dans ce plot pour nous aider à accéder à un niveau bien défini par nos pensées lors de notre arriver à l'Université.

L'intérêt scientifique

5

produire les tenants susceptibles à pousser la science de l'avant. Alors, pour aller au diapason de cette science nous seront astreints à chercher comment nous rapprocher à cette évolution bien définie dans la plupart de la documentation que nous rencontrons à l'internet et dans nos bibliothèques. De ces recherches, nous nous sommes rendu compte que la plupart de nos applications ne fait qu'intégrer la technologie Ordinateurs pour Ordinateurs alors que ce n'est pas que cette technologie qui est partout dans le monde. A partir des recherches et les études nous nous sommes rendu compte de la technologie Ordinateurs-téléphones communément appelée applications mobiles comme énumérer dans des applications à la une. L'avancée technologique nous amène à faire des choses au top qui répond aux besoins des gens dans le temps réduit comme toujours. C'est aussi, grâce au souci de nous faire part au développement des applications d'en temps pour que la science entre en vigueur dans la résolution de nos problèmes de la vie de tous les jours.

C'est ainsi que les applications mobiles, sont inscrites dans le domaine de la technologie à la une, chose qui intéresse vivement notre attention. Ces versions sont adaptées à l'actuelle technologie et fonctionne facilement dans nos smartphones que les gens ont toujours dans leurs mains et/ou poches et cela un peu partout. Cette attitude d'avoir les téléphones partout fera l'atténuation de ce manque petit à petit. C'est la raison qui a fait que nous orientons notre sujet dans ce type de développement pas encore habituel dans plusieurs contraints.

Pour n'est pas être fermé en nous-mêmes, nous ne sommes pas sans savoir qu'il y a ou il y aura des collègues qui penseront à ce que nous faisons et vouloir intégrer leurs applications desktop dans la liste des applications mobiles feront en sorte que ce que nous faisons aujourd'hui soient pour eux comme source de recherche et documentation dans le but d'alanguir leur soif et faire évoluer la science comme les collègues informaticiens du pays et un peu partout ailleurs.

O.6. DELIMITATION DU SUJET

La délimitation selon laquelle nous faisons allusions, se fait de deux faces, d'un côté, nous limitons nos recherches à des applications Android pour des raisons des systèmes d'exploitations en vigueur dans le milieu où nous nous retrouvons, nous signalons également que ces applications sont du type hybride. D'un autre côté, la délimitation concerne notre sujet type afin de faire palper la réalité du domaine d'étude ainsi pour ce qui est de ce sujet nous allons réaliser les délimitations spatiale et temporelle ou chronologique.

Le quatrième enfin, centré sur l'implémentation et le test de l'application mobile en question, nous présenterons l'application conçue; laquelle sera présentée à travers un support externe.

6

a. Délimitation spatiale

Nous limitons d'abord notre travail dans les provinces du sud et nord Kivu surtout dans le domaine de transport lacustre sur le lac Kivu. Donc en tenant compte de l'espace utilisable par les gens utilisant cette application puisque la carte qui sera en vigueur sera celle de lac Kivu à cheval de ces deux provinces.

b. Délimitation temporelle ou chronologique

Les recherches seront stratifiées sur une période couvrant une année académique ; soit une période allant de septembre 2015 jusqu'en juillet 2016, mois correspondant à la clôture de l'année académique suivante.

O.7. PLAN SOMMAIRE DU TRAVAIL

Le présent travail va s'articuler sur cinq chapitres hormis les parties introductive et conclusive. Ainsi, le premier chapitre portera essentiellement sur la revue de la littérature, le deuxième chapitre sur les Processus de réalisation, le troisième chapitre porte sur la Modélisation et le quatrième enfin sur l'Implémentation et test de l'application. Il reste alors nécessaire de synthétiser ce qui sera traité au niveau de chacun de ces chapitres.

Le premier chapitre va faire le survol sur la majorité des ouvrages qui nous ont tant faciliter la tâche et qui parle beaucoup sur des applications mobiles et ainsi que la monographie des établissements SILIMU où nous allons exposer des points très connus par la majorité puisque l'application doit avoir des documentations claires ;

Le deuxième chapitre porte sur la modélisation nous conduira vers les étapes de conception de notre application Android en guise exemplatif. Nous y présenterons les différents modèles de base applicables dans la conception orientée objet, avec les méthodes agiles dont le processus unifié en particulier qui utilisent toujours les différents diagrammes en UML qui seront d'application dans ce domaine.

Le troisième porte sur les processus de réalisation dès la préparation de la machine jusqu'à la réalisation de l'application et en fin le rendre exécutable à des plateformes bien définies.

7

Mais aussi dans différents téléphones. Seulement les démarches entreprises pour y parvenir seront synthétisées dans ce travail. Ainsi, dans ce chapitre.

O.8. ETAT DE LA QUESTION

Il demeure nécessaire d'énumérer certains travaux d'autres chercheurs consultés à cet égard ayant de rapport avec l'objet de notre étude. Nous y présenterons ainsi le résultat de leurs études et dégager ce qui distinguera leurs résultat par rapport au nôtre ; d'où originalité de notre travail par rapport à ceux des autres ci-dessous :

1. Sarra Romdhane ARFOUI, BEL HADJ SALAH dans son mémoire portant sur la conception et développement d'une application mobile de vente de flash sous Android, il portait sur les ventes en ligne et moyennant les téléphones de ce fait, le concepteur a été astreint d'utiliser la technologie Android pour rendre son mémoire beaucoup plus actuel.

2. KAMPEMPE KILIMALI Damien (2013-2014), dans son mémoire de master II portant sur l'« Etude d'un système de navigation basé sur la plateforme open source «Mapsforge» », a abordé beaucoup plus MAPSFORGE sous Androïde dans le but de faire un état de lieu de l'étude d'un système de navigation basé sur la plateforme open source MAPSFORGE et son applicabilité dans une ville pour résoudre le problème d'un voyageur de commerce. Son travail a fourni des mesures palliatives aux problèmes des embouteillages dans la circulation de véhicule, pour faciliter le trafic routier à partir de son téléphone ou de sa tablette mais aussi la recherche de point d'intérêt dans une ville comme des hôtels, des restaurants, des Bâtiments administratifs et/ou des services de sécurités, des lieux de prière ou de divertissement. Ce qui devient une cartographie baladeuse et portable.

3. MAILLET CEDRIC (2011-2012, Université de LA ROCHELLE), dans son travail de licence professionnelle en SIG portant sur la « Conception et la constitution d'une base de données de scans laser terrestres et de données forestières de validation» aréalisé une base de données permettant de croiser les données des scans laser avec les données terrain de validation. Cette base devait être géographique étant donné que les arbres, les placettes et les scans sont localisés. L'objectif de cette base est de pouvoir recenser les données disponibles ou à acquérir, ainsi que de faire le lien automatiquement entre données numériques et terrain.

8

Il a réalisé une interface en C++ à l'aide du Framework Qt, qui permet d'accéder à chaque table, ajouter des données soit ligne par ligne, soit par un import. Mais qui permet aussi de réaliser des requêtes, des exports et de recalculer des coordonnées absolues, pour les arbres qui dont les coordonnées mesurées sont relatives au centre de la placette.

Il a réalisé un plugin QGIS, également en C++ avec le Framework Qt, qui permet de visualiser les données géographiques stockées dans la base de données, mais aussi de réaliser des cartes automatisées pour chaque placette avec une visualisation des essences et du diamètre pour les arbres.

4. ETIENNE DUBÉ, dans son mémoire en études approfondies intitulé « Conception et
développement d'un service web de constitution de mini cubes solap pour clients mobiles»,
a initié un projet ayant abouti à la réalisation de cette infrastructure technologique pour le SOLAP mobile, sous forme d'un prototype de service Web de constitution de mini-cubes. L'objectif principal de ce projet était de concevoir et de mettre en oeuvre une architecture pour la diffusion des données géo-décisionnelles à destination des clients mobiles. Ainsi, ce travail doit mener à la conception et à la réalisation de l'infrastructure technologique nécessaire pour supporter l'aide à la décision géomatique en mobilité. Il est à noter que le développement d'un client SOLAP mobile, avec une interface utilisateur adaptée aux contraintes des plateformes telles que PDA ou téléphone mobile, ne fait pas partie des objectifs de ce projet L'architecture logicielle mise au point lors de ce projet sera toutefois nécessaire à l'élaboration future d'un tel client.

5. IBRAHIMA AMAR DIAGNE, dans son mémoire en études d'informatique intitulé
« le développement multiplateforme mobile » a initié un projet ayant abouti à une solution sur le développement des applications mobiles multiplateformes.

6. Ing. O. DEKNOP (ECAM - Bruxelles) Ce document présente l'étude et
l'implémentation d'une application mobile en technologie .NET et Android destinée à faciliter le système de contrôle par check-lists des camions qui transitent sur le site de Total Petrochemicals à Feluy. L'objectif du projet est double. Il s'agit d'une part d'apporter la meilleure solution possible à une demande de Total et d'autre part d'étendre cette solution à toute autre situation qui nécessiterait un contrôle plus efficace par check-lists numériques standardisées sur équipement mobile.

A partir de ce que nous allons faire sera un tout petit différent car nous allons préciser des processus non pas seulement pour réaliser une application mobile hybride à partir des langages

9

web statique mais aussi en tenant compte des langages de web dynamique plus particulièrement le PHP.

0.9. DIFFICULTES RENCONTREES

La grande difficulté rencontrée lors de l'élaboration de ce travail est la récoltes des données et facilité à découvrir les informations en rapport avec notre projet outre cette difficulté, le reste s'est bien déroulé.

10

Chapitre premier : REVUE DE LA LITERRATURE I.1. MOBILITE EN INFORMATIQUE

Avec l'arrivé des réseaux de télécommunication sans-fil, l'informatique est devenue nomade et ubiquitaire. La miniaturisation des composantes électroniques a également permis la production d'appareils informatiques mobiles de plus en plus petits et puissants : on n'a qu'à penser aux téléphones mobiles évolués (smartphones, tels que les Apple iPhone, etc.), aux appareils de divertissement audio-visuels portatifs et aux assistants personnels numériques (PDA). Ces développements technologiques font en sorte que l'information est accessible en tout lieu (selon la couverture des réseaux sans-fil) et en tout temps.

I.1.1 Types de plateformes mobiles

L'informatique mobile se définit avant tout par la caractéristique de pouvoir faire l'usage d'appareils et d'applications lorsqu'on est en mouvement. Plusieurs catégories de plateformes matérielles permettent un tel type d'utilisation ; dans le cadre de notre recherche, nous nous intéressons à trois types d'appareils : les ordinateurs portatifs, les assistants personnels numériques (PDA) et les smartphones.

I.1.1.a Ordinateurs portatifs :

De nos jours, ces appareils ont des capacités comparables aux ordinateurs de bureau. D'ailleurs, dans plusieurs cas, ils sont utilisés de la même manière, c'est-à-dire dans un environnement de bureau sédentaire, ou encore transportés d'un emplacement à l'autre (e.g. au bureau et à la maison). On peut les considérer comme appareils mobiles lorsqu'ils sont utilisés dans d'autres types d'environnements : en voyage, sur le terrain, dans des véhicules. Dans ces cas, l'infrastructure informatique n'est plus la même (i.e. indisponibilité du réseau d'entreprise, liens de communication de qualité variable), ce qui impose une prise en compte de certaines contraintes dans la réalisation des applications devant fonctionner dans de tels environnements. Du point de vue des méthodes d'entrées et des interfaces utilisateur, on peut considérer que les capacités sont équivalentes à ce qui se trouve sur un ordinateur de bureau. Cela peut différer légèrement dans le cas des Tablet PC où l'écran tactile et le stylet remplacent la souris, et dans le cas des portatifs de très petite taille (subnotebooks ou netbooks) dont le clavier et l'écran sont de format réduit. En revanche, la taille des ordinateurs portatifs ne les rendent pas propices pour tous les types d'utilisation en situation de mobilité. Ils ne sont que réellement utilisables en position assise, et de préférence à un bureau. Leur poids peut également limiter la mobilité des

11

utilisateurs : certains ont le souhait de ne pas avoir à transporter un portatif partout. Les PDA et smartphones viennent combler ce créneau.

I.1.1.b PDA1 :

Les PDA, pour Personal Digital Assistant (assistant numérique personnel), sont des petits ordinateurs qui tiennent dans le creux de la main. Le premier appareil de ce type à être commercialisé fut le Apple Newton, en 1993 [Wikipedia, 2008]. Par la suite, d'autres produits firent leur apparition, tels que le Palm Pilot et les Pocket PC (HP iPAQ et autres basés sur Windows CE). On peut reconnaître un PDA par son écran tactile, utilisé avec un stylet ou avec un doigt. La plupart des modèles ne comportent pas de clavier, et utilisent plutôt un système de reconnaissance de l'écriture ou encore un mini-clavier tactile (affiché à l'écran) pour la saisie de texte. Les PDA contemporains comportent également de la mémoire flash (et la capacité d'accepter des cartes mémoire) pour le stockage des données, un microphone, un haut-parleur et une sortie audio, ainsi que la connectivité réseau sans-fil de type WiFi (802.11) et Bluetooth. Certains modèles offrent même une interface de communication par téléphonie cellulaire (3G ou GPRS), ce qui les placent à mi-chemin dans la catégorie des smartphones. Finalement, les PDA peuvent supporter le positionnement, soit avec un GPS intégré, par l'ajout d'un module GPS ou par connexion à un appareil GPS externe.

I.1.1.c. Smartphones2 :

Il s'agit de téléphones mobiles ayant des capacités informatiques évoluées. Contrairement aux téléphones mobiles conventionnels, les smartphones comportent un système d'exploitation avec lequel il est possible d'installer et d'utiliser des logiciels de toutes sortes. En réalité, la frontière entre les PDA et les smartphones est floue ; on considère toutefois que les smartphones sont conçus davantage pour la communication et la téléphonie (format plus petit, interface utilisateur et ergonomie du combiné). Les appareils tels que les Blackberry13, la série E de Nokia14 et le Apple iPhone15 sont des exemples de smartphones.

I.1.2. Contraintes de mobilité

Comparativement aux environnements de bureau, l'informatique mobile et sans-fil comporte certaines contraintes techniques dont il faut tenir compte dans la conception

1 Jérôme Chambard, Dictionnaire Du Web - Edition 2015, Ouvrage, Edition 2014

2 Idem

12

et le développement d'applications ciblant ces environnements [Satyanarayanan, 1996; Al-bar, 2001; Paelke et al., 2003]. On peut classer ces contraintes en quatre catégories :

I.1.2.a Interface utilisateur et méthodes d'entrée :

Plusieurs appareils mobiles ne comportent pas les composantes standards d'interface utilisateur que l'on retrouve sur les ordinateurs de bureau (écran de grande dimension, clavier et souris). Les écrans sont habituellement de taille réduite, avec une résolution d'affichage limitée. De plus, un écran tactile (avec ou sans stylet) ou un clavier miniature font office de méthode d'entrée. Ainsi, les applications développées pour un contexte mobile doivent tenir compte de ces contraintes afin de présenter une interface utilisateur ergonomique et appropriée pour ces appareils.

I.1.2.b Capacités de calcul, de stockage et alimentation électrique :

Puisque ces appareils doivent être légers et de petite taille, leurs composantes sont conçues en conséquence. Les processeurs employés sont moins rapides afin de réduire leur consommation électrique. Pour la mémoire non-volatile, la mémoire flash est préférée aux disques durs dans la plupart des cas. Cela implique une capacité inférieure, en contrepartie d'une meilleure efficacité énergétique ainsi qu'un volume et un poids réduits. On constate que l'autonomie en alimentation électrique est un facteur important expliquant ces compromis : de plus petites piles, d'une capacité réduite, impliquent le choix de composantes moins énergivores si on souhaite conserver une durée de fonctionnement acceptable entre chaque charge des batteries. Ces compromis quant aux capacités de stockage et de calcul ont des conséquences sur le design des logiciels : les traitements complexes mettent plus de temps à s'exécuter (voir même ne peuvent y être exécutés), et la quantité de données pouvant être emmagasinées dans l'appareil est beaucoup plus limitée.

I.1.2.c Liens de communication :

Bien que les technologies des réseaux sans-fil numériques, que ce soit en téléphonie cellulaire ou dans les réseaux informatiques de type « WiFi », aient connu d'importantes améliorations au cours des dernières années, leur bande passante et leur latence sont grandement variables selon l'emplacement et le fournisseur de services, et ne sont généralement pas encore à la hauteur de celles des réseaux câblés (e.g. réseaux locaux de type Ethernet, liens de communication à fibre optique). À plusieurs endroits dans le monde (dont au Canada) le coût de transfert de données par téléphonie cellulaire est encore prohibitif, restreignant ainsi le

13

transfert de fichiers volumineux. De plus, la couverture des réseaux sans-fil est sporadique et de portée limitée, surtout en dehors des centres urbains. Des déconnexions intermittentes sont à prévoir lors de l'utilisation, surtout lorsqu'on se déplace. Les applications mobiles doivent donc être conçues en fonction de ces limites, en contrôlant adéquatement le volume de données qui transitent par le réseau sans-fil, en prévoyant le délai (latence) possible sur le réseau lors de ces transferts, et en offrant des modes de fonctionnement connecté/déconnecté (au lieu d'utiliser des connexions persistantes telles que l'on retrouve dans les applications client-serveur en contexte sédentaire) afin de tenir compte de la nature asynchrone des communications.

I.1.2.d Interopérabilité entre systèmes :

Les appareils mobiles disponibles sur le marché sont très variés, autant du point de vue matériel que logiciel. Plusieurs types de dispositifs existent : les téléphones mobiles, les smartphones, les assistants numériques personnels (PDA), les « Tablet PC », les ordinateurs portatifs, etc. Dans une même famille de dispositifs, les caractéristiques peuvent différer d'un fabricant et d'un modèle à un autre. Dans le monde mobile, il existe plusieurs architectures de processeurs (ARM, MIPS, PowerPC, etc.), plusieurs systèmes d'exploitation (Windows CE, Linux, PalmOS, Symbian, etc.), Ainsi que plusieurs langages et environnements de programmation (C/C++, Java ME, Microsoft .NET Compact Framework, etc.). Cela contraste fortement avec les environnements de bureau où une bonne partie du parc informatique comporte des caractéristiques très semblables (e.g. architecture PC x86, système d'exploitation Windows). Il est impossible de supposer qu'un parc d'appareils mobiles soit homogène lorsqu'on fait le développement d'applications destinées à ces environnements. L'adoption de solutions interopérables, autant du point de vue des logiciels clients que des protocoles de communications, est donc essentielle.

14

I.1.3. Architecture logicielle des plateformes mobiles

Les contraintes des environnements informatiques mobiles ont amené le développement d'architectures adaptées à la conception de systèmes logiciels pour ces environnements. De manière simplifiée, on peut énoncer quatre grandes catégories d'architectures :

I.1.3.A Application autonome :

Il s'agit d'une simple application mobile qui ne dépend pas de ressources distantes. L'application est installée sur l'appareil mobile, et le stockage de toutes données nécessaires pour son fonctionnement est local. Exemples : calculatrice, bloc-notes, jeux individuels, logiciel de navigation par GPS (avec cartes pré-chargées sur l'appareil).

15

I.1.3.B Application autonome avec synchronisation :

Pour ce type d'application, le fonctionnement est similaire à une application autonome normale (logiciel installé sur l'appareil mobile), mais une synchronisation périodique permet l'échange de données avec un autre système, dit « station de base ». La synchronisation peut s'effectuer en connectant directement l'appareil à un ordinateur de bureau (e.g. par câble USB) ou encore par un lien sans-fil (e.g. Bluetooth). Un logiciel installé sur la station de base prend en charge l'échange des données avec l'appareil mobile. Les logiciels et protocoles de synchronisation sont généralement propriétaires et spécifiques à chaque fabricant d'appareil mobile, et sont limités quant aux applications avec lesquelles ils supportent l'échange de données. Exemple : agenda personnel (synchronisation des tâches, des contacts et des rendez-vous avec un logiciel de bureau).

I.1.3.C Client lourd3

Il s'agit d'une application installée sur l'appareil mobile, et destinée à interagir avec des ressources à distance, par réseau sans-fil. Cette architecture, que l'on retrouve également dans les environnements informatiques de bureau, est aussi souvent nommée client-serveur : le client se connecte via le réseau à un serveur, qui traite les requêtes et retourne les données au client. Ce type d'architecture est généralement dépendant d'une connectivité réseau persistante (pour toute la durée d'utilisation de l'application). Par client lourd, on entend qu'il s'agit d'un logiciel complet installé sur l'appareil ; cela n'implique pas nécessairement un logiciel complexe ou lent. Les clients lourds comportent plusieurs avantages : puisqu'ils sont développés grâce un environnement de développement natif à la plateforme mobile,

3 ETIENNE DUBÉ, Conception et développement d'un service web de constitution de mini cubes solap pour clients mobiles,

MEMOIRE DEA inedit, Université de Laval, 2008

16

Ils peuvent tirer avantage de toutes les caractéristiques de l'appareil mobile ciblé (e.g périphériques intégrés tels que GPS, caméra numérique, microphone, cartes à mémoire flash). De plus, leur vitesse de réponse et leur consommation en bande passante sont souvent avantageuses par rapport aux clients légers, puisque la logique de présentation est réalisée à même l'appareil mobile ; le serveur n'est sollicité que pour récupérer les données nécessaires (e.g. contenu d'un message, liste de transactions bancaires). Toutefois, il peut être souhaitable de déléguer certains traitements complexes au serveur, vu la puissance de processeur limitée des appareils mobiles (cf. contraintes de mobilité, 1.2.2.2). Un inconvénient de cette approche est que les applications développées sont couplées à une plateforme en particulier (e.g. Java ME, .NET Compact Framework) et donc ne sont pas universelles à tous les types d'appareils mobiles ; de plus, elles doivent être déployées et installées sur l'appareil avant de pouvoir être utilisées. Exemples : logiciels de courrier électronique (Microsoft Outlook, Mozilla Thunderbird), applications sur mesure (e.g. gestion de l'inventaire).

I.1.3.D Client léger4

Contrairement aux clients lourds, l'architecture avec client léger n'impose pas l'installationd'uneapplicationsurl'appareilmobile.L'applicationproprementdite s'exécute sur un serveur, et l'affichage et l'interaction avec l'utilisateur se font dans un fureteur Web. Le déploiement et la mise à jour de l'application en est donc simplifiée, puisqu'il n'est pas

4 ETIENNE DUBÉ, Conception et développement d'un service web de constitution de mini cubes solap pour clients mobiles, MEMOIRE DEA inedit, Université de Laval, 2008

17

nécessaire de la réinstaller sur chaque appareil mobile pour ce faire. De plus en plus, les applications avec client léger s'exécutant dans un fureteur gagnent en interactivité et en ergonomie, grâce à la technologie dite Ajax, permettant d'éviter le rechargement complet de la page Web lors de chaque interaction de l'utilisateur. Ce type d'architecture a l'avantage d'être indépendante du type d'appareil ciblé.

(Puisqu'elle ne requiert qu'un fureteur Web pour fonctionner), et de ne pas nécessiter l'installation d'un logiciel sur l'appareil. Cependant, les fureteurs Web de certaines plateformes mobiles sont relativement limités dans leur support du langage JavaScript et de la spécification complète de HTML et CSS (Cascading Style Sheet, permettant la manipulation du rendu visuel des pages), ce qui empêche le fonctionnement de certaines pages de style Ajax. De plus, la bande passante limitée inhérente à certains réseaux sans fil peut réduire la performance des clients légers, puisque la majeure partie de ce qui est affiché à l'écran est généré et transmis par le serveur, ce qui implique des volumes de données échangées souvent plus importants qu'avec un client lourd. Exemples : Google Maps, Google Mail.

I.1.4 Architecture orientée services et environnements mobiles

Les architectures orientées services (SOA -- Service Oriented Architecture) et les services Web peuvent s'appliquer à la conception et au développement d'applications mobiles. Ils constituent une solution possible à certaines contraintes de mobilité, surtout en ce qui à trait aux problèmes d'interopérabilité et à la gestion des connexions intermittentes lors des échanges de données entre appareils mobiles et serveurs [Duda et al., 2005; Oracle Corporation, 2004; Ojala, 2005]. De plus, leur flexibilité les rendent applicables dans plusieurs types d'architectures logicielles de clients mobiles, qu'il s'agisse d'applications autonomes avec synchronisation (échange de

18

documents XML entre l'appareil mobile et la station de base), de clients lourds (protocole SOAP pour échanges entre client et service) ou de clients légers (application Web Ajax contactant un service Web pour récupérer des données).

I.2 TECHNOLOGIE ANDROID

I.2.1. Système d'exploitation Android

I.2.1.1 DEFINITION5

Android est un système d'exploitation mobile pour les Smartphones, tablettes tactiles, PDA et terminaux mobiles. C'est un système open source utilisant le noyau Linux. Il a été lancé par une startup du même nom rachetée par Google en 2005. D'autres types d'appareils possédant ce système d'exploitation existent, par exemple des téléviseurs, des radioréveils, des montres connectées, des autoradios et même des voitures. Ce système d'exploitation se différencie principalement de ses concurrents par le fait qu'il est ouvert. Le modèle économique de Google semble très pertinent, l'adoption d'Android par les fabricants sera probablement rapide du fait de la gratuité d'utilisation pour le constructeur.

I.2.1.2. Historique6

Android doit son nom à la startup éponyme spécialisée dans le développement d'applications mobiles rachetée par Google en août 2005, nom venant lui-même d'« androïde » qui désigne un robot construit à l'image d'un être humain. Le logiciel, qui avait été surnommé gPhone par les rumeurs de marchés et qui selon un de ses concepteurs Andy Rubin était initialement prévu pour être un système d'exploitation pour appareil photo, est proposé de façon gratuite et librement modifiable aux fabricants de téléphones mobiles, ce qui facilite son adoption. Le gPhone a été lancé en octobre 2008 aux États-Unis dans un partenariat de distribution exclusif entre Google et T-Mobile. Anticipant les annonces officielles, les marchés financiers se ruent massivement sur les actions Google les faisant monter jusqu'au plus haut historique de 724 dollars le 5 novembre 2007 (Le vendredi 18 octobre 2013 les actions Google franchissent les 1 000 dollars). En 2004, le prix du cours d'introduction du moteur de recherche était de 85 dollars l'action. Android est développé par l'OHA (Open Hanset Alliance), une alliance internationale

5 Jérôme Chambard, Dictionnaire Du Web - Edition 2015, Ouvrage, Edition 2014

6 http://developer.android.com/

19

de compagnie. Cette alliance se compose de compagnie ne faisant pas partie du même secteur. Ainsi elle se compose :

- D'opérateur mobile (Vodafone, Teleponica, Telecom Italia, China Mobile, etc.) - de fabricants de téléphone mobiles (Asus, HTC, LG, Motorola, etc.)

- de fabricants de semi-conducteur (Intel, Nvidia, ARM, etc.)

- d'éditeurs logiciels (EBay, Google, PacketVideo, etc.)

- de distributeurs (Aplix corporation, Borqs, TAT).

Aujourd'hui il y a 1,5 milliards de télévisions dans le monde. 1 milliard de personnes ont accès à internet. Mais près de 3 milliards de personnes ont un téléphone portable, ce qui fait que le téléphone portable est le produit connaissant le plus grand succès dans le monde. C'est pour cela que l'OHA s'est lancée sur le secteur du mobile. Ils espèrent fournir une plateforme mobile innovante et performante fournissant aux utilisateurs une nouvelle expérience d'utilisation de leur mobile.

20

7

I.2.2 Architecture d'Android

Android est conçue pour des appareils mobiles au sens large. Nullement restreinte aux téléphones, elle ouvre d'autres possibilités d'utilisation des tablettes, des ordinateurs portables, des bornes interactives, des baladeurs... La plate-forme Android est composée de différentes couches :

- Un noyau Linux qui lui confère notamment des caractéristiques multitâches ; - Des bibliothèques graphiques, multimédias ;

- Une machine virtuelle Java adaptée : la « Dalvik Virtual Machine »;

- Un Framework applicatif proposant des fonctionnalités de gestion de fenêtres, de téléphonie, de gestion de contenus... ;

7 Frédéric Espiau (Apollidore), Créez des applications pour Android, Ouvrage, Edition 2013

21

- Des applications dont un navigateur Web, une gestion des contacts, un calendrier... Le diagramme suivant illustre les composants principaux du système d'exploitation Android.

8

Android est basé sur un kernel linux 2.6.xx, au-dessus du kernel il y a le "hardware abstraction layer" qui permet de séparer la plateforme logique du matériel. Au-dessus de cette couche d'abstraction. On retrouve les librairies C/C++ utilisées par un certain nombre de composants du système Android. Au-dessus des librairies on retrouve l'Android Runtime, cette couche contient les librairies coeurs du Framework ainsi que la machine virtuelle exécutant les applications.

Au-dessus la couche "Android Runtime" et des librairies coeurs on retrouve le Framework permettant au développeur de créer des applications. Enfin au-dessus du Framework il y a les applications. Les applications Android sont composées de 4 types de composants9 :

8 Frédéric Espiau (Apollidore), Créez des applications pour Android, Ouvrage, Edition 201

9 Frédéric Espiau (Apollidore), Créez des applications pour Android, Ouvrage, Edition 2013

22

- Activities: Une Activity représente un écran de l'application. Une application peut avoir une ou plusieurs activities (par exemple pour une application de messagerie on pourrait avoir une Activity pour la liste des contacts et une autre pour l'éditeur de texte). Chaque Activity est implémentée sous la forme d'une classe q

- Services: Les services n'ont pas d'interface graphique et tournent en tâche de fond. Il est possible de s'inscrire à un service et de communiquer avec celui-ci en utilisant l'API Android.

- Broadcast receivers: Il se contente d'écouter et de réagir aux annonces broadcast (par exemple changement de fuseau horaire, appel entrant...)

- Content providers : Il permet de partager une partie des données d'une application avec d'autres applications.

En résumé Android permet de faire du partage de composant entre applications ainsi que de gérer leur cycle de vie, sans toutefois permettre la même souplesse.

I.2.2.1 Caractéristique

Android est défini comme étant une pile de logiciels, un ensemble de logiciels destinés à fournir une solution clé en main pour les appareils mobiles (Smartphones et tablettes tactiles). Cette pile comporte un système d'exploitation (comprenant un noyau Linux), les applications clés telles que le navigateur web, le téléphone et le carnet d'adresses ainsi que des logiciels intermédiaires entre le système d'exploitation et les applications. L'ensemble est organisé en cinq couches distinctes:

- le noyau Linux avec les pilotes ;

- des bibliothèques logicielles telles que WebKit, OpenGL, SQLite ou Free Type ; une machine virtuelle et des bibliothèques permettant d'exécuter des programmes prévus pour la plate-forme Java ;

- un framework - kit de développement d'applications ;

- un lot d'applications standard parmi lesquelles il y a un environnement de bureau, un carnet d'adresses, un navigateur web et un téléphone. Les services offerts par Android facilitent notamment l'exploitation des réseaux de télécommunications GSM, Bluetooth,

- l'utilisateur doit avoir les droits root ce qui entraîne généralement une perte de la garantie du téléphone.

23

Wi-Fi et UMTS, la manipulation de médias, notamment de la vidéo H.264, de l'audio MP3 et des images JPEG ainsi que d'autres formats, l'exploitation des senseurs tels que les capteurs de mouvements, la caméra, la boussole et le récepteur GPS, l'utilisation de l'écran tactile, le stockage en base de données, le rendu d'images en 2D ou 3D en utilisant le processeur graphique, l'affichage de page web, l'exécution multitâche des applications et l'envoi de messages SMS.

I.2.2.2. Leurs avantages sont les suivants

- disponibles sur un grand nombre de modèles de téléphones la diversité et le volume des ventes des Androphones étant sans limites ;

- une personnalisation et un choix presque illimités ;

- un téléphone globalement plus rapide puisqu'il est dépossédé des surcouches imposées par les constructeurs ;

- des possibilités de sur-cadencement ou de sous-cadencement des composants afin d'obtenir un téléphone plus réactif, plus puissant ou plus autonome que la version originale.

- Certains téléphones qui ne peuvent normalement pas être mis à jour peuvent utiliser la version d'Android avec une version alternative.

I.2.2.3. Leurs inconvénients

- le principal reste la stabilité qui peut poser des conflits entre les processus et conduire au redémarrage intempestif du téléphone, ce problème étant de moins en moins fréquent avec Android 4.4 ;

- certaines fonctionnalités sont plus lentes d'autres plus rapides parfois inexistantes (Appareil photo, touches en façade, réactivité de l'écran) ;

- du fait du grand choix de ROM disponibles, l'utilisateur risque de perdre beaucoup de temps à sélectionner celle qui lui convient le mieux ;

24

I.2.3. Différents supports

Android définit un support compatible comme étant un support capable d'exécuter n'importe quelle application Android. Pour permettre aux fabricants d'y parvenir, Android réalise le Compatibility Program (programme de compatibilité). Les différents supports sont :

- Smartphones

- Clef USB

- Téléviseurs

- Tablettes

- Autoradios

- Netbook

- Console de jeu vidéo

- Montres Intelligente (Android Wear, lancé le18 mars 2014)

25

CHAPITRE DEUXIEME : LA MODELISATION II.1. NOTE INTRODUCTIVE SUR LA METHODE

II.1.1. PRESENTATION DU PROCESSUS UNIFIE

Le processus unifié est un processus de développement moderne, itératif, efficace sur des projets informatiques de toutes tailles. Très complet, il couvre l'ensemble des activités, depuis la conception du projet jusqu'à la livraison de la solution. Intégrant une organisation de projet type, une méthodologie utilisant UML et un ensemble de bonnes pratiques cohérentes entre elles, il permet de circonvenir aux problèmes récurrents que rencontrent nombre de réalisations : dérive des coûts et des délais, qualité insuffisante, réponse incomplète aux attentes des utilisateurs. Un point d'excellence de cette démarche est son adaptabilité : UP peut se décliner en fonction de l'ampleur d'un projet, de l'expérience de l'équipe qui l'assume, de la nature de la solution à construire10.

II.1.2 LES PRINCIPES D'UP

Le processus de développement UP, associé à UML, met en oeuvre les principes suivants :

- processus guidé par les cas d'utilisation,

- processus itératif et incrémental,

- processus centré sur l'architecture,

- processus orienté par la réduction des risques.

Ces principes sont à la base du processus unifié décrit par les auteurs d'UML. II.1.2.1. Processus guidé par les cas d'utilisation

L'orientation forte donnée ici par UP est de montrer que le système à construire se définit d'abord avec les utilisateurs. Les cas d'utilisation permettent d'exprimer les interactions du système avec les utilisateurs, donc de capturer les besoins. Une seconde orientation est de montrer comment les cas d'utilisation constituent un vecteur structurant pour le développement

10 Prof. Associé., MUSANGU LUKA Marcel, Conception de méthode Agiles, Cours inédit, L1 IG, ISP/Bukavu, 20142015.

26

et les tests du système. Ainsi le développement peut se décomposer par cas d'utilisation et la réception du logiciel sera elle aussi articulée par cas d'utilisation.

II.1.2.2. Processus itératif et incrémental11

Ce type de démarche étant relativement connu dans l'approche objet, il paraît naturel qu'UP préconise l'utilisation du principe de développement par itérations successives. Concrètement, la réalisation de maquette et prototype constitue la réponse pratique à ce principe. Le développement progressif, par incrément, est aussi recommandé en s'appuyant sur la décomposition du système en cas d'utilisation. Les avantages du développement itératif se caractérisent comme suit:

- les risques sont évalués et traités au fur et à mesure des itérations,

- les premières itérations permettent d'avoir un feed-back des utilisateurs, - les tests et l'intégration se font de manière continue,

- les avancées sont évaluées au fur et à mesure de l'implémentation.

II.1.2.3. Processus centré sur l'architecture

Les auteurs d'UP mettent en avant la préoccupation de l'architecture du système dès le début des travaux d'analyse et de conception. Il est important de définir le plus tôt possible, même à grandes mailles, l'architecture type qui sera retenue pour le développement, l'implémentation

11 Prof. Dr., MUSANGU LUKA, Conception de système d'information,Cours inédit, L1 IG, ISP/Bukavu, 2014-2015.

27

et ensuite le déploiement du système. Le vecteur des cas d'utilisation peut aussi être utilisé pour la description de l'architecture.

II.1.2.4. Processus orienté par la réduction des risques

L'analyse des risques doit être présente à tous les stades de développement d'un système. Il est important de bien évaluer les risques des développements afin d'aider à la bonne prise de décision. Du fait de l'application du processus itératif, UP contribue à la diminution des risques au fur et à mesure du déroulement des itérations successives.

II.1.2.5. Organisation du processus unifié

Le processus unifié s'organise dans la répétition d'un nombre de cycles qui se termine par une nouvelle version du logiciel.

II.1.3 LES PHASES DU PROCESSUS UNIFIE ET LES ACTIVITES

Les phases d'un processus de développement sont des états de celui-ci à un instant.

Le cycle de développement du Processus Unifié organise les tâches et les itérations en quatre phases5 :

? Inception ou lancement : Cette phase correspond à l'initialisation du projet où l'on mène une étude d'opportunité et de faisabilité du système à construire. Une évaluation des risques est aussi réalisée dès cette phase. En outre, une identification des principaux cas d'utilisation accompagnée d'une

28

description générale est modélisée dans un diagramme de cas d'utilisation afin de définir le périmètre du projet. Il est possible, à ce stade, de faire réaliser des maquettes sur un sous-ensemble des cas d'utilisation identifiés. Ce n'est qu'à l'issue de cette première phase que l'on peut considérer le projet véritablement lancé

? Elaboration : Cette phase reprend les résultats de la phase d'Inception et élargit l'appréciation de la faisabilité sur la quasi-totalité des cas d'utilisation. Ces cas d'utilisation se retrouvent dans le diagramme des cas d'utilisation qui est ainsi complété. Cette phase a aussi pour but d'analyser le domaine technique du système à développer afin d'aboutir à une architecture stable. Ainsi, toutes les exigences non recensées dans les cas d'utilisation, comme par exemple les exigences de performances du système, seront prises en compte dans la conception et l'élaboration de l'architecture. L'évaluation des risques et l'étude de la rentabilité du projet sont aussi précisées. Un planning est réalisé pour les phases suivantes du projet en indiquant le nombre d'itérations à réaliser pour les phases de construction.

? Construction : Cette phase correspond à la production d'une première version du produit. Elle est donc fortement centrée sur les activités de conception, d'implémentation et de test. En effet, les composants et fonctionnalités non implémentés dans la phase précédente le sont ici. Au cours de cette phase, la gestion et le contrôle des ressources ainsi que l'optimisation des coûts représentent les activités essentielles pour aboutir à la réalisation du produit. En parallèle est rédigé le manuel utilisateur de l'application.

? Transition : Après les opérations de test menées dans la phase précédente, il s'agit dans cette phase de livrer le produit pour une exploitation réelle. C'est ainsi que toutes les actions liées au déploiement sont traitées dans cette phase. De plus, des « bêta tests » sont effectués pour valider le nouveau système auprès des utilisateurs.

? Une phase peut-être divisée en itérations. Une itération est un circuit complet de développement aboutissant à une livraison (interne ou externe) d'un produit exécutable. Ce produit est un sous-ensemble du produit final en cours de développement, qui croît de manière incrémentale, d'itération en itération pour

29

devenir le système final. Chaque itération au sein d'une phase aboutit à une livraison exécutable du système.

II.1.4. ACTIVITES DU PROCESSUS12

Les activités représentent les actions à effectuer au cours d'une phase : une phase passe par l'ensemble des activités. Le temps passé par activité est fonction des phases. Nous nous limiterons donc à ne donner qu'une brève explication de chaque activité. Expression des besoins UP propose d'appréhender l'expression des besoins en se fondant sur une bonne compréhension du domaine concerné pour le système à développer et une modélisation des procédures du système existant. Ainsi, UP distingue deux types de besoins :

? les besoins fonctionnels qui conduisent à l'élaboration des cas d'utilisation,

? les besoins non fonctionnels (techniques) qui aboutissent à la rédaction d'une matrice des exigences.

II.1.4.1. ANALYSE13

L'analyse permet une formalisation du système à développer en réponse à l'expression des besoins formulée par les utilisateurs. L'analyse se concrétise par l'élaboration de tous les diagrammes donnant une représentation du système tant statique (diagramme de classe principalement), que dynamique (diagramme des cas d'utilisation, de séquence, d'activité, d'état-transition...).

II.1.4.2. CONCEPTION14

La conception prend en compte les choix d'architecture technique retenus pour le développement et l'exploitation du système. La conception permet d'étendre la représentation des diagrammes effectuée au niveau de l'analyse en y intégrant les aspects techniques plus proches des préoccupations physiques.

12 Prof. Dr., MUSANGU LUKA, Conception de système d'information,Cours inédit, L1 IG, ISP/Bukavu, 2014-2015.

13 idem

14 idem

30

II.1.4.3. IMPLEMENTATION15

Cette phase correspond à la production du logiciel sous forme de composants, de bibliothèques ou de fichiers. Cette phase reste, comme dans toutes les autres méthodes, la plus lourde en charge par rapport à l'ensemble des autres phases (au moins 40 %).

II.1.4.4. TEST

Les tests permettent de vérifier :

- La bonne implémentation de toutes les exigences (fonctionnelles et techniques), - Le fonctionnement correct des interactions entre les objets,

- la bonne intégration de tous les composants dans le logiciel. Classiquement, différents niveaux de tests sont réalisés dans cette activité : test unitaire, test d'intégration, test de réception, test de performance et test de non régression.

15 Prof. Dr., MUSANGU LUKA, Conception de système d'information,Cours inédit, L1 IG, ISP/Bukavu, 2014-2015.

31

II.1.4.5. ADAPTATION DU PROCESSUS UNIFIE

Il existe plusieurs processus de développement qui implémente le UP dont le plus intéressant le 2UP (2 Tracks Unified Process). Pour un modèle2TUP, tout développement peut être décomposé et traités en parallèle selon un axe fonctionnel et un axe technique. Nous pouvons ainsi suivre les évolutions liées aux changements des besoins fonctionnels et aux changements des besoins techniques6. La schématisation du processus de développement correspond alors à un Y. Les deux perspectives se rejoignant lors de la phase de conception préliminaire.

A. La branche fonctionnelle contient : la capture des besoins et de leurs analyses. Les résultats de l'analyse sont indépendantes des technologies utilisés.

B. La branche technique contient : la capture des besoins techniques et de la conception générique. L'architecture technique construit le squelette du système informatique indépendamment des besoins fonctionnels. Les deux branches sont ensuite fusionnées en une seule branche qui prend en charge la conception préliminaire (cartographie des composants à développer), conception détaillée (comment réaliser chaque composant), codage (production des composants), tests et étapes de validation des fonctions développées.

32

II.2. SPECIFICATION DES BESOINS II.2.1. Introduction

La spécification des besoins représente une manière assez simple du cycle de développement d'une application. On décrit sans ambiguïté l'application à développer. Dans ce chapitre nous allons spécifier l'ensemble des besoins fonctionnels et non fonctionnels liées à notre application. Ensuite, nous allons modéliser les spécifications semi-formelles des besoins à l'aide des diagrammes de cas d'utilisation et les diagrammes de séquences.

En effet, l'identification des besoins fonctionnels représente une étape importante du processus de développement 2TUP (2 Tracks Unified Process)

II.2.2. Spécification Des Besoins Fonctionnels

Ce point a pour but de présenter les besoins fonctionnels auxquels devrait répondre notre application.

On va s'intéresser à la branche gauche du cycle en Y qui est « la capture des besoins fonctionnels » en décrivant les différentes façons qui seront disponible pour permettre les acteurs d'utiliser la future application mobile.

Dans le cadre de la modélisation de notre système, nous nous contenterons des diagrammes suivants : dans les vues statiques on va utiliser les diagrammes classes et les diagrammes de cas d'utilisation. En suite dans les vues dynamiques on va utiliser le diagramme de séquences et d'activité.

33

II.2.3 Modélisation fonctionnelle

II.2.3.1. Diagramme de cas d'utilisation

? Le diagramme de cas d'utilisation est un service rendu à l'utilisateur, il implique des séries d'actions plus élémentaires.

Cas d'utilisation

? Un Acteur est une entité extérieure au système modélisé, et qui interagit directement avec lui.

Acteur

A noter que les acteurs impliqués dans un cas d'utilisation sont liés par une association et un acteur peut utiliser plusieurs fois le même cas d'utilisation.

En ce qui concerne les acteurs en UML, on peut noter qu'un acteur correspond à un rôle et ce n'est pas une personne physique. Les acteurs sont les utilisateurs du système.

II.2.3.2 Règle d'identification des acteurs

? Une même personne physique peut être représentée par plusieurs acteurs si elle a plusieurs rôles

? Si plusieurs personnes jouent le même rôle vis-à-vis du système, elles seront représentées par un seul acteur

? En plus des utilisateurs, les acteurs peuvent être : des périphériques, des logiciels déjà disponibles intégrés dans le projet et des systèmes informatiques externes au système mais qui interagissent avec lui.

34

II.2.3.3 Types des acteurs

On distingue deux types des acteurs en UML qui sont :

+ Acteur principale : l'acteur est dit principal pour un cas d'utilisation lorsque l'acteur est à l'initiative des échanges nécessaires pour réaliser le cas d'utilisation.

+ Acteurs secondaire : sont sollicités par les systèmes alors que le plus souvent les acteurs principaux ont l'initiative des interactions.

II.2.3.4. Description des acteurs du système et leur cas d'utilisation

Le diagramme de cas d'utilisation décrit les grandes fonctions d'un système du point de vue des acteurs, mais n'expose pas de façon détaillée le dialogue entre les acteurs et les cas d'utilisation.

Avant tout, on doit d'abord recenser ces cas d'utilisation en tenant compte des principes ci-après :

> Il faut se placer du point de vue de chaque acteur et déterminer comment il sert le

système. Dans quels cas il l'utilise et à quelles fonctionnalités doit-t-on avoir les accès. > Il faut éviter les redondances et limiter les nombres de cas en se situant au bon niveau

d'abstraction.

> Il ne faut pas faire apparaître les détails des cas d'utilisations, mais il faut rester au niveau des grandes fonctionnalités du système.

Une étude succincte du système à mettre en place nous a permis d'identifier les acteurs et les cas d'utilisations correspondantes :

a)Mobinaute : Acteur principal, qui a pour rôle de:

y' S'inscrire

y' Réserver des places possibles.

b) Administrateur : Acteur secondaire est le second acteur principal qui utilise le système pour y' Contrôler les demandes et répondre aux messages des mobinautes;

35

V' Ajouter le mobinaute ;

V' Modifier le mobinaute ;

V' Supprimer le mobinaute et le message;

II.2.3.5. Elaboration du diagramme du contexte statique

Le diagramme de contexte statique est un diagramme dans lequel chaque acteur est relié par une association à une classe centrale unique représentant le système.

 
 
 
 
 
 
 
 
 

1

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

1. *

 

Système de réservation de places dans le bateau

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Mobinaute

 
 
 
 

Administrateur

II.2.3.5.1 Elaboration du diagramme de cas d'utilisation

Le diagramme des cas d'utilisation présente la structure des grandes fonctionnalités nécessaires aux utilisateurs du système. Il assure la relation entre l'utilisateur et les objets du système et se présente comme suit :

Un acteur représente l'abstraction d'un rôle joué par des entités externe qui interagissent directement avec le système étudié. Un acteur peut consulter, et/ou modifier directement l'état du système, en émettant, en recevant des messages éventuellement porteurs de données. Voici quelques explications sur les acteurs du système :

0. Le mobinaute : Il est celui qui souhaite avoir une précision et réserver la place alors il va falloir pour lui s'inscrire et une fois que celui-ci a déjà rempli condition demander par l'entreprise pour avoir accès au système il doit obtenir un message de confirmation pour qu'il puisse assurer ses responsabilités et ainsi voyager au temps planifié,

36

1. L'administrateur : c'est le responsable de l'application, celui qui fait passer les mouvements qui se font dans l'application en permanence comme : la publication, publicité, mise à jour,...

II.2.3.5.1.1. Identification de cas d'utilisation

Un cas d'utilisation (use case) représente l'ensemble de séquence d'action réalisées par le système et produisant un résultat observable intéressant pour un acteur particulier. En effet, ils sont des représentations fonctionnelles du système, ils permettent de modéliser les attentes des utilisateurs afin de réaliser une bonne délimitation du système et également d'améliorer la compréhension de son fonctionnement Voici l'illustration graphique de ce tableau par le diagramme de cas d'utilisation :

« includ »

Mobinaute

« includ »

Vérification

S'inscrire

« includ »

Authentification

Modification

« includ »

« includ »

Suppression

Réserver

Répondre sms

Administrateur

? Selon Pierre Gérard, la méthode comprend trois sortes de relation ou association qui sont16 :

? Inclusion : le cas A Inclut le cas B(c'est-à-dire B est une partie obligatoire de A) ? Extension : le cas B étend le cas A( c'est-à-dire A est la partie optionnelle A )

16 Pierre Gérard, modélisation des objets élémentaire avec UML 2, Edition DUT Informatique, Page 13

37

? Généralisation : le cas A est une généralisation du cas B (B est une sorte de A)

Dans notre diagramme de cas d'utilisation, nous allons décrire certaines cas pour expliciter l'utilisation du système tels que

0. Cas d'utilisation S'inscrire

Résume : ce cas d'utilisation permet à l'acteur de s'inscrire pour qu'il puisse accéder à la page de réservation

Acteur : Mobinaute

Condition : le Mobinaute doit se connecter au site de la société

Scenario En se connectant au site le mobinaute qui veut nouer une bonne relation avec les Etablissements SILIMU, s'il est intéresse il doit d'abord s'inscrit en s'enregistrant dans la base de la société

1. Cas d'utilisation Authentification

Résume : ce cas permet à un utilisateur de se connecter au système, et lui présenter l'interface et les fonctionnements relatifs à son profil.

Acteurs : Administrateur, Mobinaute

Condition : introduire le login et mot de passe

Scenario : le système invite l'acteur à entre son login et son mot de passe et l'acteur saisit puis le système vérifie les paramétrages si c'est correcte il ouvre l'espace de travail correspondant au profil.

2. Cas d'utilisation réserver une place

 

Résume : permet aux mobinaute de se réserver une place dans le bateaux qui voyage ce jour-là et dans la mesure du possible venir lui prendre par le bus à son domicile.

Acteur : Mobinaute

Condition : Il faut qu'il s'enregistre d'abord

17 Pierre GERARD. Modélisation des objets élémentaires avec UML 2, Ouvrage Edition D.U.T informatique page 13

18 Oscar MARCOS ENAGNON ADOUN. Conception en génie informatique et télécommunication Ouvrage Edition 2009

38

Scenario : le client part à la banque, paye un montant qui lui a été demandé pour avoir accès à l'abonnement.

3. Cas d'utilisation mettre à jour (Vérifier, enregistrer, supprimer, et modifier)

Résume : ce cas d'utilisation permet à l'admin de vérifier les mobinautes et ce qu'ils envoient comme message de réservations, de les modifier, les supprimer et ou les ajouter si possible.

Acteur : Admin

Condition : introduire le login et mot de passe

Scenario : Sur le système l'admin doit consulter sur la page qui reprend les mobinautes enregistrés si le mobinaute a fait une réservation, il lui renvoie en contrepartie un message de confirmation.

II.2.3.6. La Modélisation dynamique

La modélisation dynamique décrit le comportement dynamique du système. Pour notre mémoire en ce qui concerne la modélisation dynamique nous allons utiliser le diagramme de séquence.

II.3. CONCEPTION

II.3.1. CONCEPTION GENERALE17 II.3.1.1. ARCHITECTURE MVC18

Après l'évaluation de la technologie, les applications mobiles et les sites web ont progressivement évolué, les attentes des utilisateurs et des clients également. De ce fait, notre application utilise l'architecture MVC. L'architecture MVC (Modèle, Vue et Contrôleur) est un concept très puissant qui intervient dans la séparation des données (modèle), de l'affichage (vue) et des actions (contrôleur)

39

Le Modèle :

Représente le comportement de l'application : traitements des données, interactions avec la base de données, etc. Il décrit les données manipulées par l'application et définit les méthodes d'accès.

La Vue :

Correspond à l'interface avec laquelle l'utilisateur interagit. Les résultats renvoyés par le modèle sont dénués de toute présentation mais sont présentés par les vues. Plusieurs vues peuvent afficher les informations d'un même modèle. Elle peut être conçue en html, ou tout autre « langage » de présentation. La vue n'effectue aucun traitement, elle se contente d'afficher les résultats des traitements effectués par le modèle, et de permettre à l'utilisateur d'interagir avec elles

Le Contrôleur :

Prend en charge la gestion des évènements de synchronisation pour mettre à jour la vue ou le modèle. Il n'effectue aucun traitement, ne modifie aucune donnée, il analyse la requête du mobinaute et se contente d'appeler le modèle adéquat et de renvoyer la vue correspondante à la demande. Choix de l'architecture MVC Nous avons choisi de travailler avec l'architecture MVC, car elle permet de bien séparer la logique de la présentation. La vue n'aura aucune logique d'imbriquer. Aussi, étant donné que tout est très bien séparé, il est très facile d'ajouter et de modifier au code sans que le reste ne s'effondre. C'est un pattern qui se prête très bien au développement. Le schéma suivant résume la structure générique d'une architecture MVC.

40

Flux de traitement. En résumé, lorsqu'un mobinaute fait une recherche à l'application :

La requête envoyée depuis la vue est analysée par le contrôleur (par exemple un clic de souris pour lancer un traitement de données) ;

Le contrôleur demande au modèle approprié d'effectuer les traitements et notifie à la vue que la requête est traitée (« via » par exemple un Handler ou callback) ;

La vue notifiée fait une requête au modèle pour se mettre à jour (par exemple affiche le résultat du traitement « via » le modèle). Avantages Un avantage apporté par ce modèle est la clarté de l'architecture qu'il impose. Cela simplifie la tâche du développeur qui tenterait d'effectuer une maintenance ou une amélioration sur le projet. En effet, la modification des traitements ne change en rien la vue. Par exemple on peut passer d'une base de données de type SQL à XML en changeant simplement les traitements d'interaction avec la base, et les vues ne s'en trouvent pas affectées.

Le MVC montre ses limites dans le cadre des applications utilisant les technologies du web, bâties à partir de serveurs d'applications. Des couches supplémentaires sont alors introduites ainsi que les mécanismes d'inversion de contrôle et d'injection de dépendance.

II.3.2. CONCEPTION DETAILLEE

41

II.3.2.1 Le diagramme de classe

Le diagramme de classes permet de spécifier la structure et les liens entre les objets dont le système est composé. Une classe est la description d'un ensemble d'objets ayant une sémantique, des attributs, des méthodes et des relations en commun.

Une classe est composée d'un nom, d'attributs et d'opérations. II.3.2.1.1 Formalisme de la classe

Article

 

Nom

 
 

Désignation

 
 
 
 

Prix unitai

 

Attributs

 
 
 
 
 

Les propriétés

Acheter

Opération

 

II.3.2.1.2. Identification des classes et description des associations II.3.2.1.2.1. Tableau des descriptions

Association/Classe

Désignation

Classes

Multiplicité

Réserver

Chaque Mobinaute

doit envoyer un

message de

réservation des

places

Mobinaute

un ou plusieurs clients

peuvent envoyer un à
plusieurs messages pour la

Message

Un message est envoyé par un ou plusieurs Mobinautes

Approuver

Les messages des

mobinautes sont

répondus par

d'autres messages

Message

Un ou plusieurs messages sont approuvé par un seul mobinaute Administrateur

Mobinaute

Un Mobinaute

Administrateur approuve un

42

 
 
 

ou plusieurs messages

de

 
 
 

réservation.

 

II.3.2.1.2.2. Schéma du diagramme de classe

MESSAGE

1 1*

Vérifier
Modifier
Séparer

Id_message destinataire objet

sms

MOBINAUTE

code nom Adresse Email pass sexe

Inscrire réserver modifier supprimer vérifier

II.3.2.2 Diagramme de séquence et d'activité

Le diagramme de séquence représente la succession chronologique des opérations réalisées par un acteur. Il a une dimension temporelle et modélise les aspects dynamiques du système. Par contre nous utilisons les diagrammes d'activité pour documenter le logique métier durant l'analyse et non pour commencer prématurément l'implémentation.

Signalons que nous allons donner les diagrammes qui représentent les activités à réaliser pour chaque objet spécifié.

Pour ce cas nous représenterons seulement les diagrammes nécessaires de notre système

? Diagramme de séquence d'inscription du Mobinaute (s'inscrire)

Ce diagramme montre comment un client peut s'enregistrer pour demande d'abonnement à son espace et l'envoyer.

43

Mobinaute

Système

1 : Ouverture de l'interface d'inscription

2 : Présentation du formulaire

3 : Remplir le formulaire

4 : Enregistrement et envoi des données

 

PAGE D'ACCUEIL

PRESENTATION DU FORMULAIRE

REMPLISSAGE DU FORMULAIRE

ENREGISTREMENT

Il nous produit le diagramme d'activité ci-après :

44

? Diagramme de séquence réservation

Ce diagramme permet au mobinaute de saisir sa demande sous forme de message et l'envoyer au serveur

Mobinaute

Système

1 : Connexion mobinaute

2 : espace message

2.1 : saisie du message de
réservation

2.2 : Envoie du message

Ce diagramme engendre le diagramme d'activité suivant :

Connexion

Saisie du message de réservation

Envoie du message

? Diagramme séquence Vérifier la réponse pour sa réservation :

Espace message

45

Mobinaute

3.1 : Vérifier la réponse

3 : espace mobinaute

2 : Connexion

Système

Ce qui nous donne le diagramme d'activité suivant :

Vérifier la réponse

Connexion

Espace mobinaute

Gestion des Mobinautes et leurs Messages

Espace Administrateur

Réponses aux Messages

Connexion

46

? Diagramme de séquence Répondre et mise à jour Messages et Mobinaute: ce diagramme va tant aider l'administrateur à répondre aux questions des mobinautes et par ricochet mettre à jours les inscriptions des mobinautes et leurs messages :

Admin

SYSTEME

1 : Connexion

2 : Espace Administrateur

2.1 : Vérification et réponses

2.2 : gestion Mobinautes

2.3 : gestion Messages

Ce diagramme découle du diagramme d'activité suivante :

47

? Diagramme de séquence authentification

C'est un diagramme permettant de voir le comportement d'une personne qui veut se connecter. Et l'espace sera affiché quand le login et mot de passe sont corrects et non dans le cas contraire. Voici schématiquement ce diagramme :

UTILISATEUR

1 : Connexion

2 : Authentification

2 : Vérification des informations

SYSTEME

Ce qui relevé le diagramme d'activité suivant :

VERIFICATION DES INFORMATIONS

AUTHENTIFICATION

Connexion

48

II.3.2.3 DIAGRAMME DE DEPLOIEMENT

Ce diagramme montre la répartition physique des éléments matériels du système (processeurs, périphériques) et leurs connexions. Cette architecture comprend des noeuds correspondant aux supports physiques (serveurs, routeurs,...) ainsi que la répartition des artefacts logiciels (bibliothèques, exécutables,...) sur ces noeuds.

? Noeud19 : un noeud correspond à une ressource matérielle de traitement sur laquelle des artefacts seront mis en oeuvre pour l'exploitation du système. Les noeuds peuvent être interconnectés pour former un réseau d'éléments physiques.

? Artefact20 : est la spécification d'un élément physique qui est utilisé ou produit par le processus de développement du logiciel ou par le déploiement du système. C'est donc un élément correct comme un fichier, un exécutable ou une table d'une base de données.

Voici le digramme de déploiement de notre système21 :

19 Jérôme Chambard, Dictionnaire Du Web - Edition 2015, Ouvrage, Edition 2014

20 Idem.

21 http://mobilerie.blogspot.com/2012/02/tuto-connexion-android-mysql-json-php.html

49

50

CHAPITRE TROISIEME : LES PARAMETRAGES

III.1. INTRODUCTION

La réalisation normale de l'application Android fait toujours peur et beaucoup de personne ne veut pas l'affronter car elle demande la connaissance de java applicable aux Android et que parfois les utilisateurs des anciennes versions de java sont astreints à se documenter ardemment pour y parvenir. Alors les développeurs qui se sont sacrifiés au développement des applications statiques et celles des applications dynamiques en passant par les serveurs reconnaissant les scripts PHP restent loin et meurt de peur. Alors pour pallier à ces vicissitudes il y a de ces informaticiens qui se sont mis en ensemble dans le but de nous produire des Framework qui facilitent les développeurs usant le serveur comprenant aisément les scripts PHP. C'est ainsi que durant nos recherches nous sous sommes retrouvé devant un amalgame des Framework qui pourront nous faciliter de réaliser les mêmes fin et ainsi, faciliter la réalisation des applications web desktop à être transformé en application mobile de n'importe quelle plateforme selon son choix. De ces diverse frame-Works nous pouvons citer entre autres :

III.1.1 PhoneGap22

PhoneGap est un Framework libre basée principalement sur HTML5, CSS3 et JavaScript qui permet le développement multiplateforme mobile. En effet, ce Framework peut être déployé sur sept plateformes différentes et il permet aussi un accès aux fonctions de bas niveau. En effet son fonctionnement basée sur des outils de développement web, nous permet d'accéder à des fonctions natives des appareils mobiles telles que la caméra, la géolocalisation, les contacts etc. PhoneGap peut aussi être associé à d'autres technologies telles que : Sencha touch, Appmobi, Netbiscuits etc.

22 http://www.phonegap.com

Genève 2012.

51

Même si PhoneGap apporte un énorme plus au développement d'applications web mobiles, ce n'est pas encore suffisant pour prétendre au vrai niveau du natif. Tout d'abord, « cela ne ressemble pas à du natif même avec l'utilisation des Framework comme JQuery et Sencha Touch, nous ne parvenons pas à paraitre exactement comme une application native. Ensuite, de vraies limitations existent. Par exemple au niveau de la base de données. Nous n'avons encore accès qu'à la version HTML5. Même si nous avons accès au système de fichiers, qui lui n'est pas limité, nous manquons de moyens lorsque nous sommes en mode déconnecté. Finalement la webview reste moins performant qu'une application totalement native »23

Apache Cordova, est le nom qui a été donné à PhoneGap depuis le rachat de ce dernier par Adobe.

23 IBRAHIMA AMAR DIAGNE, le développement multiplateforme mobile, MEMOIRE Inédit, Haute École de Gestion de

52

III.1.2. Appcelerator Titanium24

Titanium mobile est un Framework qui permet de développer des applications pour Android et IOS (bientôt pour Blackberry OS). Le code des applications est écrit en JavaScript et Titanium fournit des API pour interagir avec le téléphone mais aussi pour la création de l'interface utilisateur (UI). Les ressources telles que les fichiers HTML, CSS et JavaScript sont utilisés par Titanium et sont combinés avec les APIs permettant d'accéder aux fonctions natives de l'appareil pour enfin générer une application que nous pourrons ensuite installer sur un simulateur ou un appareil fonctionnel. Il existe une autre variante de ce framework : Titanium Desktop qui lui est orienté vers les applications pour ordinateurs.

III.1.3 Rhodes25

Rhodes est le Framework que propose Rho mobile pour le développement d'applications mobiles. Le développement se fait dans Eclipse à l'aide du plugin "Rho Studio" et du debugger "Rho Debugger" à installer sur l'appareil de test. Une application "Rhodes" est une application hybride de type Ruby On Rails pouvant accéder à certains widgets et aux ressources matérielles

24 IBRAHIMA AMAR DIAGNE, le développement multiplateforme mobile, MEMOIRE Inédit, Haute École de Gestion de

Genève 2012.

25 Idem

26 www.nodejs.com

53

des appareils. On peut le combiner avec un Framework HTML tel que Sencha pour compléter les éléments graphiques qu'il propose.

Tout compte fait, nous allons beaucoup plus nous borner sur le développement d'une application en utilisant le Framework PhoneGap et voir comment on peut y intégrer les autres particules afin de réaliser des applications Android à partir de scripts PHP afin de communiquer nos bases des données chose qui semblent un peu complexe avec cette technologie et ce Framework dans des années passés.

III.2. ENVIRONNEMENT DE TRAVAIL ET TECHNOLOGIE UTILISEE

Les outils à utiliser sont nombreux mais un avantage ils sont gratuits en générale. Mais ne soyez pas ahuri des multiples éléments que nous allons utiliser dans le but de réaliser ces applications sans autres difficultés.

III.2.1. NODEJS26

Node.js est une plateforme de développement JavaScript. Ce n'est pas un serveur, ce n'est pas un Framework, c'est juste le langage JavaScript avec des bibliothèques permettant de réaliser des actions comme écrire sur la sortie standard, ouvrir/fermer des connections réseau ou encore créer un fichier. Il est souvent confondu avec un serveur car c'est son origine : Node.js a été créé par Ryan Dahl dans le but de pouvoir créer des applications temps réel où le serveur est capable de pousser de l'information au client. C'est dans ce but qu'il utilise la bibliothèque libuv pour réaliser son modèle d'entrée sortie non bloquante.

54

Pourquoi utiliser Node.js ? Node.js peut être comparé à Python, Ruby, Java, PHP. Vous trouverez une multitude de comparatifs sur Internet. Node.js présente de nombreux intérêts: logiciel libre (licence MIT). Performance du moteur v8. Modèle non bloquant. Communauté très active. Système de paquet intégré (NPM). les grandes entreprises l'utilisent. Mais si j'ai craqué ce n'est pour aucune de ces raisons, elles m'ont simplement confortées dans mon choix. Non, en effet, j'ai choisi Node.js parce qu'il permet de faire du développement avec le langage Javascript. Le fait de passer d'un langage de programmation à l'autre est pénible. Autant rester dans un seul écosystème, et c'est un des arguments avancés par paypal dans son passage de Java à Node.js.

Comment installer Node.js ? Pour l'installer vous pouvez utiliser une des trois méthodes ci-dessous :

1. Utiliser votre gestionnaire de paquets (brew, macport, aptget, ...).

2. Utiliser un des binaires disponibles sur le site officiel dans la rubrique téléchargement de Node.js.

3. Compiler le code source (dans ce cas, vous savez déjà comment faire). Hello world Vo ici un exemple d'utilisation : comment faire un serveur http avec Node.js (exemple.js)

Processus d'installation27

Voici la procedure en terme de fleches :

- Vous allez dans votre Navigateur vous entrez l'adresse de nodejs pour le moment c'est nodejs.org ;

- Une fois que vous y êtes vous cliquez sur INSTALL

27 http://www.nodejs.com/

55

Et par là nodejs commence à télécharger la version correspondant à votre système d'exploitation.

- Une fois télécharger vous le chercher dans votre dossier téléchargement puis vous y double cliquer, puis vous suivez les indications que l'on vous présentera et vous serez entre d'accepter et de cocher puis vous allez cliquer sur finish mais une chose n'oublie pas de laisser le « Add to PATH » pour que les commandes se retrouvent au finish 28dans le terminal donc au PATH de votre système ceci est tant possible s'une fois que vous êtes sur Windows que je serais en train de faire allusion à tous les temps.

- Appeler votre terminal ou votre invite de commandes : puis taper la commande

Puis vous appuyer la touche Enter puis il ira chercher des fichiers en lignes qui correspondent à la dernière version afin de les installer à votre système.

28 http://makinacorpus.com/blog/metier/2014/introductionanodejs

56

- A la fin, pour se rassurer dans l'invite de commande vous taper « cordova -version » en vue de vérifier si tout était bien installer.

III.2.2. JAVA DEVELOPMENT KIT29

Le Java Development Kit (JDK) désigne un ensemble de bibliothèques logicielles de base du langage de programmation Java, ainsi que les outils avec lesquels le code Java peut être compilé, transformé enbytecode destiné à la machine virtuelle Java.

Il existe plusieurs éditions de JDK, selon la plate-forme Java1 considérée (et bien évidemment la version de Java ciblée) :

· JSE pour la Java 2 Standard Edition également désignée J2SE ;

· JEE, sigle de Java Enterprise Edition également désignée J2EE ;

· JME 'Micro Edition', destinée au marché mobiles ;

· etc.

À chacune de ces plateformes correspond une base commune de Development Kits, plus des bibliothèques additionnelles spécifiques selon la plate-forme Java que le JDK cible, mais le terme de JDK est appliqué indistinctement à n'importe laquelle de ces plates-formes

Composants

Commandes en ligne

Les principaux composants du JDK sont une sélection d'outils de programmation, incluant :

· java : le chargeur d'application Java ;

· javac : le compilateur, qui convertit le code source en fichier .class (contenant le bytecode Java) ;

· appletviewer : cet outil peut être utilisé pour exécuter et déboguer des applets Java sans navigateur ;

· apt : l'outil de traitement des annotations ;

· extcheck : un outil détectant les conflits de fichiers JAR ;

29 http://www.jdk.com/

- Ici on doit taper la java JDK sur Google et on se trouve dans une interface comme suit :

57

· idlj : compilateur IDL vers Java. Cet outil génère les bindings Java d'un fichier Java IDL donné ;

· javadoc : le générateur de documentation, qui génère automatiquement de la documentation à partir des commentaires du code source ;

· jar : l'archiveur, qui met sous forme d'un paquetage unique l'ensemble des fichiers class en un fichier JAR ;

· javah : le générateur de fichiers headers C, utilisé pour écrire les méthodes natives ;

· javap : le désassembleur de fichier .class ;

· javaws : le lanceur Java Web Start pour les applications JNLP ;

· jconsole : Java Monitoring and Management Console ;

· jdb : le débogueur ;

· jhat : outil expérimental d'analyse du tas ;

· jrunscript : script shell Java ;

· policytool : outil de création et de gestion de la vie privée, déterminant le niveau de confidentialité utilisé par Java en fonction de la source du code ;

· VisualVM : outil de visualisation intégrant plusieurs des outils présentés ci-dessus et permettant de faire du profiling.

Le JDK est également founi avec l'environnement d'exécution Java complet, contenant la Java Virtual Machine ainsi que toutes les bibliothèques de classes présentes dans l'environnement de production.

API

Le JDK JavaSE inclut dans sa bibliothèque logicielle :

· jni, ou Java Native Interface, permettant d'interfacer du code Java depuis d'autres langages de programmation.

· jdbc,

· swing

· java 2d

· jaxp Conclusion

58

- De ce point faisons une défilée de la page vers le bas pour trouver les versions des jdk que l'on doit utiliser pour cette fin.

- On suit le logiciel dans votre dossier téléchargement selon les paramétrages qui ont été effectuée avant et puis vous l'installer comme tant d'autres ;

- Enfin, vous devez vérifier, pour ce faire vous devez fermer tous les terminal que vous avez ouvert puis ouvrez l'invite de commande et taper java -help avant ceci il faut d'abord nus rassurer si nos informations sur notre logiciel dans le Path de votre système.

III.2.3. SDK ANDROID (ADT BUNDLE)30

Le kit de développement (SDK) d'Android est un ensemble complet d'outils de développement. Il inclut un débogueur, des bibliothèques logicielles, un émulateur basé sur QEMU, de la documentation, des exemples de code et des tutoriaux. Les plateformes de développement prises en charge par ce kit sont les distributions sous Noyau Linux, Mac OS X 10.5.8 ou plus, Windows XP ou version ultérieure. L'IDE officiellement supporté était Eclipse combiné au plugin d'outils de développement d'Android (ADT), mais depuis 2015, Google officialise Android Studio qui devient alors l'IDE officiel pour le SDK Android. Les développeurs peuvent utiliser n'importe quel éditeur de texte pour modifier les fichiers Java et XML, puis utiliser les outils en ligne de commande (Java Development Kit et Apache Ant sont obligatoires) pour

30 Frédéric Espiau (Apollidore), Créez des applications pour Android, Ouvrage, Edition 2013

59

créer, construire et déboguer des applications Android ainsi que contrôler des périphériques Android (pour déclencher un redémarrage, installer un logiciel à distance ou autre)

Le SDK comprend un émulateur qui permet de simuler les différentes versions d'Android, permettant ainsi aux développeurs de tester leurs applications ou de tester les fonctionnalités d'Android. Le SDK contient plusieurs images en fonction des différentes versions d'Android. Il permet de prendre une capture d'écran de tout appareil connecté à un ordinateur par USB, Chaque version du SDK Android contient l'intégralité du code source d'Android, ce qui permet aux développeurs de créer leurs propres versions d'Android.

L'Android Debug Bridge (ADB) est un outil inclus dans le package Android SDK. Il se compose d'un programme client et d'un programme serveur qui communique entre eux. Les fonctions principales sont :

? copie de fichier ;

? accès à la console Android ;

? sauvegarde de la mémoire ROM ; ? installation de logiciel.

Processus d'installation

Vous vous diriger vers Google et taper en suite SDK Android où vous allez cliquer sur download the SDK. Voici l'illustration qui en découle

60

31

- De téléchargement on poursuit le logiciel dans le dossier téléchargement on y trouve un Zip appeler ADT Bundle for Windows vous l'ouvrez deux fois et vous allez vous trouver en présence de trois fichiers et dossiers dont SDK Manager, SDK et Eclipse, vous allez les copier et les déplacer dans un dossier que vous avez dans votre machine ;

- Une fois que vous avez terminé vous ouvrez le dossier SDK où on trouve des dossiers mais seulement le platform tools et tools qui nous serviront en ajoutant leur bin sur le Path de votre système ;

- Une fois que vous avez copié leurs bins un à un on part à la propriété de « ordinateur », le paramètre système avancée, vers le variable d'environnement, sur Path, modifier et en fin, coller ces bins.

31 http://androidpourlesnuls.fr/tutoriaux/sdkandroidwindows8

61

III.2.4. APACHE ANT32

Ant est un projet open source de la fondation Apache écrit en Java qui vise le33 développement d'un logiciel d'automatisation des opérations répétitives tout au long du cycle de développement logiciel. Il est téléchargeable à l'adresse suivante http://ant.apache.org.

Ant pourrait être comparé au célèbre outil make sous Unix. Il a été développé pour fournir un outil de construction indépendant de toute plateforme. Ceci est particulièrement utile pour des projets développés sur et pour plusieurs systèmes ou pour migrer des projets d'un système vers un autre. Il est aussi très efficace pour de petits développements. Ant repose sur un fichier de configuration XML qui décrit les différentes tâches qui devront être exécutées par l'outil. Ant fournit un certain nombre de tâches courantes qui sont codées sous forme de classes Java. Ces tâches sont donc indépendantes du système sur lequel elles seront exécutées. De plus, il est possible d'ajouter ces propres tâches en écrivant de nouvelles classes Java respectant certaines spécifications. La popularité d'Ant augmente de jour en jour. Sa souplesse, sa puissance et sa simplicité en ont fait l'un des outils les plus populaires dans le monde de Java. Les environnements de développement intégrés proposent souvent un outil de construction propriétaire qui sont généralement moins souple et moins puissant que Ant. Ainsi des plugins ont été développés pour la majorité d'entre eux (JBuilder, Forte, Visual Age ...) pour leur permettre d'utiliser Ant, devenu un standard de facto. L'IDE Netbeans integre Ant depuis saversion4.0, Il prévoit un fichier build.xml pour tous ses projets.

Processus d'installation

- Vous vous diriger vers Google et taper en plus « apache ant » où vous allez cliquer sur download que je viens d'encercler en rouge dans l'illustration. Voici l'illustration qui en découle

32 http://ant.apache.org

33 http://skebir.developpez.com/tutoriels/java/ant/

62

- Puis dans une autre page tu prends ce qui est normale pour votre machine. Pour ce cas on a pris la première.

- On dezippe ce dossier dans le dossier où on a mis les trois dossiers précédents d'Android puis on essaie de copier le dossier bin et le mettre au PATH de votre système. Puis on ferme tous les terminales et on effectue le test en invite de commande nouvellement ouvert et taper la commande « ant -help ».

63

III.2.5. JQuery34

jQuery est une bibliothèque JavaScript libre et multi-plateforme créée pour faciliter l'écriture de scripts côté client dans le codeHTML des pages web3. La première version est lancée en janvier 2006 par John Resig.

La bibliothèque contient notamment les fonctionnalités suivantes :

· Parcours et modification du DOM (y compris le support des sélecteurs CSS 1 à 3 et un support basique de XPath) ;

· Événements ;

· Effets visuels et animations ;

· Manipulations des feuilles de style en cascade (ajout/suppression des classes, d'attributs...) ;

· Ajax ;

· Plugins ;

· Utilitaires (version du navigateur web...).

Pour son installation nous allons taper jquery.com pour nous retrouver à l'interface

Vous y cliquer pour télécharger la dernière version afin d'évoluer avec. on sera obliger de mettre ce fichier unique dans le dossier js très souvent dans le but de l'appeler dans n'importe quelle page et ainsi bien compiler avec.

34 http://www.jquery.com

64

III.3. DEMARCHE PROPREMENT DIT

Ici nous allons exposer la manière dont on peut faire interagir ces différents objets installés.

III.3.1. Pour les applications web statique

Ici vous faites vos pages avec css, js et html dans n'importe quel éditeur puis vous allez l'amener en cordova puis en www vous remplacer les éléments par les votres et vous terminer mais à priorie pour trouver le dossier www de cordova project on doit tout d'abord créer un projet :

- Vous créez d'abord un dossier n'importe où dans votre machine ;

- Vous allez taper cette commande tout en respectant le nom de ce dossier puis nom du domaine inverse pour notre cas était Com.adobe. le nom de l'application et en fin espace le nom de ce dossier et une fois appuyer Enter on a ce résultat :

-

 

- Une fois que l'on est dans ce dossier on installe alors les plateformes d'Android alors vous allez ouvrir ce dossier test puis vous y installer les plateformes :

65

- A ce point-ci vous allez remplacer ces dossier puis aller compiler mais toutefois nous devons vérifier si nous avons installé toutes les versions des API 23 et autres afin de bien créer l'émulateur et ainsi on vérifie et on installe35

-

- A ce point ci je sais que nous avons trois package qui ne sont pas installer ou mis à jour. Par-là, on clique sur Install 3 packages et votre machine sera bien une fois terminer le téléchargement.

- Après vous choisissez l'onglet TOOLS qui est encerclé sur la figure ci haut, puis la commande Manage AVDs...

- De l'interface des AVDs on choisit l'onglet Device definitions puis on choisit dans la liste des équipements connus un seul, nous prenons NEXUS S puis on clique sur create ADV,

35 Frédéric Espiau (Apollidore), Créez des applications pour Android, Ouvrage, Edition 2013

66

- On doit configurer l'AVD et enfin on clique sur ok.

 

Vous faites vos choix en rapport avec les images qu'on a téléchargé dans notre SDK manager

- Et là vous avez créer votre AVD(Android Virtual Divice)

- Puis vous le lancer vers start puis de la boite de dialogue vous faites le launch puis on attend l'émulateur

- Qui ressemble à celui-ci,

67

- Après on rentre encore dans l'invite de commande puis on retourne vers son dossier là où on était puis on tape la commande Cordova build Android,

- On tape après cordova Emulate Android, après Enter on va voir nos applications déjà compiler avec l'icône cordova :

68

- Et voilà que je vais ouvrir mon application d'abord statique avec l'émulateur :

69

Une fois terminer cet affaire on se dit que ça marche pour les projets statique et ou qui ne demande pas des bases des données. Alors nous allons maintenant aux choses sérieuses.

III.3.2. Pour les Applications web dynamique

On considère d'abord tout ce qui précède puis on integre d'autre langage de programmations qui comprendra facilement les scripts PHP tout en les transformant en langage léger que nous appelons JSON qui sera accueilli par le JQuery qui est du côté client partant de AJAX qui prendra en compte les données JSON et les simuler comme si c'étaient des données php et ainsi collaborera facilement. Pour ce qui est de sa démonstration nous allons exploser ce cas au quatrième chapitre car c'est là que nous avons prévu le présenté.

70

III.3.3. CONCLUSION

Nous voici au terme de ce deuxième chapitre portant sur les données pouvant faciliter même un novice en développement mobile à se familiariser avec ces documents. En plus nous avons exposé les notes introductives des tous les outils principales que nous avons utilisé pour cette fin. En outre, nous avons fait une démonstration de ma première application mobile avec cordova. Une fois qu'on a terminé cela on se rassure que l'on est au parfum de toute application mobile pouvant fonctionner sans base de données de manière obligatoire. En plus le deuxième point des applications mobiles pouvant interagir avec les SGBD : MYSQL, SQLITE, JDBC, ORACLE,... ce qui sera l'objet de notre quatrième chapitre afin de repondre à notre deuxième préoccupation qui est l'autre part de notre objectif comme le deuxième chapitre a aidé tant pour le premier objectif que nous nous sommes assigné.

71

CHAPITRE QUATRIEME : L'IMPLEMENTATION

IV.1 INTRODUCTION

Ce chapitre a pour objectif de présenter en précisant les différents points abordé pour arriver à un résultat. Il nous parlera des documents utilisés pour la mise en oeuvre de l'application en question.

IV.2 OUTILS ET DOCUMENTS IV.2.1 JSON

IV.2.1.1. INTRODUCTION SUR JSON36

Depuis quelques années, on voit proliférer l'utilisation du XML au sein des applications. Il est utilisé pour gérer la configuration, le stockage de données, les flux de données, j'en passe et des meilleures. Plus récemment, on a utilisé le XML pour gérer les dialogues entre serveur web et explorateur internet avec l'avènement des technologies AJAX / web 2.0. Pour rappel, AJAX (Active JavaScript Application for XML) permet d'établir un canal séparé pour les échanges client / serveur sur le web. Dans ce domaine XML montre ses limites :

? Chargement et manipulation vite compliqués dans les explorateurs : la plupart du temps, il faudra parser le XML sous forme de DOM et le parcourir ensuite ce qui nécessite beaucoup d'appels de fonction.

? Aucune norme partagée : vous devez gérer les traitements au cas par cas selon l'explorateur utilisé.

? Taille conséquente : par nature, le XML est lourd, il contient beaucoup de données dupliquées et a tendance à générer des congestions réseau. Bref une utilisation inadaptée de la bande passante.

C'est pour répondre à ces limites avérées du XML qu'une notation alternative est née à destination des applications web. JSON (JavaScript Object Notation) utilise la notation des objets JavaScript pour transmettre de l'information structurée. Léger et au format texte, il est dérivé de l'écriture des langages standards de type ECMA Script (norme ISO/IEC 16262).

36 http://blog.xebia.fr/2008/05/29/introduction-a-json/

72

Inscrit au Network Working Group de l'IETF sous la RFC 4627. Il est souvent utilisé pour simplifier et alléger les accès à des services web depuis les navigateurs.

b. Syntaxe JSON se base sur deux structures :

? Une collection de couples nom : valeur. ? Une liste de valeurs ordonnées.

Ces mêmes éléments représentent 3 types de données.

c. Objet :

Un objet est défini par un ensemble d'associations clé/valeur. Il commence par une accolade ouvrante `{` et se termine par une accolade fermante `}'. Chaque nom est suivi de deux points `:' et les couples nom/valeur sont séparés par des virgules `,'.

d. Tableau :

Un tableau est une collection de valeurs ordonnées. Il commence par un crochet ouvrant `[` et se termine par un crochet fermant `]'. Les valeurs sont séparées par des virgules `,'.

e. Valeurs :

Une valeur peut être soit une chaîne de caractères entre guillemets, soit un nombre, soit true ou false ou null, soit un objet soit un tableau. Ces structures peuvent être imbriquées. Une chaîne de caractères est une suite de zéro ou plus caractères Unicode, entre guillemets, et utilisant les échappements avec antislash. Un caractère est représenté par une chaîne d'un seul caractère. Une chaîne de caractères est très proche de son équivalent en Java.

IV.2.1.2 RAISON D'ETRE DE JSON

Nous avions utilisé java script Object Notation pour nous faciliter de transformer les scripts PHP en données compréhensible par java script. Et très souvent à format léger d'où facilement interpréter par AJAX pour un affichage simple et direct. Les données sont traitées comme les scripts javascript.

73

Exemple

{ "menu":

{ "id": "file",

"value": "File",

"popup": {

"menuitem": [

{"value": "New", "onclick": "CreateNewDoc()"},

{"value": "Open", "onclick": "OpenDoc()"},

{"value": "Close", "onclick": "CloseDoc()"}

I

}

} }

IV.2.2. AJAX

IV.2.2.1 Préambule

On parle beaucoup d'AJAX en ce moment dans le buzz Word Web 2.0. En effet la technologie Web entière est basée sur le modèle de l'aller-retour : pour une requête serveur, vous avez un retour qui se traduit par un rafraîchissement des données (la page Web affichée).

Ce modèle de fonctionnement est fiable car existant depuis très longtemps mais il pose aussi des problèmes d'interaction homme machine et de performances.

D'un point de vue utilisateur, le rafraîchissement de toute la page au moindre clic est synonyme de temps d'attente et de scintillement qui n'est pas toujours du meilleur effet dans une application professionnelle.

74

Du point de vue des performances, à la moindre modification, vous rechargez une page entière avec toutes ses balises HTML, ce qui génère un trafic important.

La technologie AJAX n'est pas nouvelle en soi. A signifie Asynchronous (Asynchrone), JA pour JavaScript et X pour XML. La nouveauté d'AJAX est bel et bien de tirer parti des trois outils pour faire des applications dynamiques.

Les puristes ne vont sûrement pas aimer ce que je vais dire, mais on peut tout à fait faire de l'AJAX au sens large sans forcément faire de l'asynchrone ni du XML. Nous allons détailler les différentes possibilités fournies par AJAX dans ce document puis nous verrons comment interfacer tout cela avec PHP et une base MySQL.

IV2.2. Fonctionnement37

AJAX est basé sur l'objet XMLHttpRequest qui permet de faire une requête via JavaScript à un serveur HTTP. Le but est donc, comme dans le "Web 1.0", de faire une requête au serveur et d'en attendre le retour. Cependant, dans notre cas, le navigateur du client n'est pas nécessairement rafraîchi et tout est transparent pour l'utilisateur.

2.2.1 Mise à jour d'une partie de la page38

Dans une application Web classique, lorsque l'utilisateur clique sur un lien ou valide un formulaire, le navigateur envoie une requête au serveur HTTP, qui lui retourne en réponse une nouvelle page, qui remplace purement et simplement la page courante, comme l'illustre la figure

37 http://gael-donat.developpez.com/web/intro-ajax/

38 http://www.eyrolles.com/Chapitres/9782212119657/Chap1_Plasse

75

39 Michel Plasse, Développez en Ajax Avec quinze exemples de composants réutilisables et une étude de cas détaillée,Groupe eirolle en 2006.

2.2.2 Techniques mises en oeuvre39

La communication avec le serveur repose sur l'objet JavaScript XMLHttpRequest, qui permet d'émettre une requête, de l'annuler (c'est parfois utile) et de spécifier le traitement à effectuer à la réception de sa réponse. Le chapitre 4 examine en détail les problématiques relatives à cet objet. Disponible depuis 1998 dans Microsoft Internet Explorer, il l'est désormais dans tous les navigateurs récents. Le traitement à effectuer lors de la réception de la réponse implique généralement de mettre à jour le contenu, la structure ou l'apparence d'une ou de plusieurs parties de la page. C'est précisément en quoi consiste le HTML dynamique. Apparu dés 1996, le HTML dynamique a longtemps souffert d'incompatibilités des navigateurs, aujourd'hui limitées, et de l'aspect gadget de ce qui lui était souvent demandé (animations sans utilité fonctionnelle, rollovers, etc.). Le HTML dynamique repose sur DOM (Document Object Model), ou modèle objet du document, et les CSS (Cascading Style Sheets), ou feuilles de style en cascade, deux normes du Web Consortium aujourd'hui assez bien supportées par les navigateurs. Le HTML dynamique est présenté en détail au chapitre 2. Avec Ajax, beaucoup de code peut être déporté du serveur vers le client. Le code JavaScript devient donc plus complexe, ce qui rend nécessaire de bien le structurer. C'est pourquoi les applications Ajax induisent une programmation objet en JavaScript, ainsi que l'utilisation d'aspects avancés de

76

ce langage, lesquels sont couverts au chapitre 3. Les réponses Ajax en HTTP peuvent être au format HTML, comme en Web classique, mais avec cette différence qu'il s'agit de fragments HTML, et non de pages entière, seule la portion de page à remplacer étant renvoyée. Dans certains cas, cela se révèle tout à fait adapté, mais il peut être préférable dans d'autres cas de renvoyer la réponse sous forme structurée, de façon à pouvoir l'exploiter de plusieurs manières côté client. C'est là qu'intervient XML, qui préfixe l'objet XMLHttpRequest, ainsi que les techniques qui l'accompagnent, notamment XSLT. C'est aussi là qu'intervient JSON, un format d'échange adapté aux données, qui l'est parfois plus encore que XML. Le chapitre 5 se penche en détail sur ces deux formats. Ajax repose ainsi sur tous ces piliers : DOM et CSS, JavaScript, XMLHttpRequest, XML et XSLT, ainsi que JSON.

IV.2.3. WAMPSERVER40

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

Il dispose d'une interface d'administration permettant de gérer et d'administrer ses serveurs au travers d'un tray icon (icône près de l'horloge de Windows).

La grande nouveauté de WampServer 2 réside dans la possibilité d'y installer et d'utiliser n'importe quelle version de PHP, Apache ou MySQL en un clic. Ainsi, chaque développeur peut reproduire fidèlement son serveur de production sur sa machine locale

Figure

40 Prof. SINDANO, Labo informatique, Cours inédit, L1 IG, ISP/BKV, 2014-2015

77

IV.2.4. SQLite341

SQLite constitue l'une des grandes nouveautés de PHP 5. Il s'agit d'une base de données relativement puissante mais qui, à la différence de MySQL ou de PostgreSQL, ne nécessite pas l'installation d'un serveur de base de données en plus d'un serveur PHP car elle est incorporée à PHP comme l'est le module standard.

D'après ses concepteurs et les tests réalisés, SQLite se révèle beaucoup plus rapide que MySQL et PostgreSQL pour les opérations de lecture. Les opérations d'écriture perdent un peu de cet avantage car dans ce cas la base est verrouillée dans son intégralité, même si l'opération ne concerne qu'une table.

Dans l'état actuel de son développement, SQLite n'est intéressant que pour les applications qui ne nécessitent pas un grand nombre d'accès concurrents en écriture à la base. Il y a peu de chance, par exemple, qu'un site comme Google l'adopte, mais elle pourrait suffire à des entreprises de taille moyenne et pour des applications installées sur des terminaux mobiles.

41 Prof. SINDANO, Labo informatique, Cours inédit, L1 IG, ISP/BKV, 2014-2015

78

2.4.1. Caractéristiques générales42

Contrairement à de nombreux autres SGBD, comme MySQL, SQLite crée la base directement sur le disque dur de votre serveur. À chaque base correspond donc un seul fichier, quel que soit le nombre de tables qu'elle contient. Dans ce fichier sont à la fois enregistrées la structure des tables et les données (voir figure 18-1). Comme vous le voyez, ce fichier est inutilisable tel quel. Pour cette raison, la modification de la structure d'une table est impossible en utilisant la commande ALTER TABLE. Vous devez d'abord sauvegarder les données, effacer la table puis la recréer avec une nouvelle structure. SQLite supporte l'essentiel des fonctionnalités du langage SQL, à l'exception des Suivantes :

· FOREIGN KEY ;

· Support complet d'ALTER TABLE ;

· support intégral des triggers ;

· transactions imbriquées ;

· COUNT (DISTINCT X) ;

· VIEW en écriture ;

· GRANT et REVOKE (pas de gestion des droits d'accès).

D'après les tests publiés sur le site SQLite ( http://www.sqlite.org), cette base est jusqu'à trois fois plus rapide que MySQL dans les accès en lecture de données. En revanche, le fait que toute la base soit contenue dans un seul fichier entraîne son verrouillage total lors des accès en écriture. Cela ralentit les opérations dans le cas d'accès concourants à la base. Dans sa version actuelle 3, SQLite est dite « typeless » tout comme la version 2.8, c'est-à-dire qu'elle n'oblige pas à effectuer une déclaration du type de chaque colonne lors de la création des tables, contrairement à MySQL. Vous pouvez cependant conserver vos habitudes pour l'écriture des requêtes SQL de création des tables en définissant un type pour chaque colonne. Lors des opérations de comparaison et de tri, SQLite établit une différence entre les valeurs numériques et les textes. Les colonnes déclarées avec un type contenant les mots CHAR, TEXT ou BLOB sont considérées comme du texte. Toutes les autres possibilités, y compris les types personnels non normalisés par le SQL, sont considérées comme numériques.

42 http://www.xp-internet.com/xp-infos/HTML-CSS-JavaScript-PHP-MySQL-petites-explications-des-technologies-Web.php

79

Il est difficile de comprendre les technologies Web lorsqu'on ne met pas soi-même les mains dans le cambouis. Voici quelques explications de différentes technologies utilisées dans la mise en oeuvre d'un site Internet.

IV.2.5. (X) HTML : langage de structuration des pages Web

Le HTML et sa variante plus stricte XHTML sont des langages de balisage des pages Web. Il n'y a pas si longtemps, le HTML servait à définir aussi bien la structure des pages que leur présentation visuelle. Aujourd'hui, ces deux aspects doivent être bien distincts et le X/HTML est destiné uniquement à représenter la structure d'une page : titres, sous-titres, paragraphes, images, formulaires de saisie, liens hypertextes, etc. C'est la base d'une page Web, parfois la seule considérée et utilisée par le logiciel qui visite cette page, comme les moteurs de recherche ou les navigateurs textuels.

On qualifie de « statiques » les pages dont le code X/HTML n'est modifié ni par JavaScript, ni par PHP avant ou après l'affichage dans le navigateur.

2.5.1. CSS : langage de présentation des pages Web

Le code CSS (Cascading Style Sheets, ou feuilles de styles en cascade) permet de modifier la présentation des éléments X/HTML : couleur, taille, police de caractères, mais aussi position sur la page, largeur, hauteur, empilement, bref tout ce qui touche à la mise en page d'un document X/HTML. Ainsi, un même document X/HTML pourra changer d'apparence sans changer de structure, grâce uniquement à la modification des règles CSS qui lui sont appliquées.

80

La séparation de la structure et de la présentation facilite ainsi la construction, mais aussi la maintenance et l'évolution des pages Web.

2.5.2. JavaScript : langage de programmation côté client

Le JavaScript est un langage qui est lu et exécuté par votre navigateur - le client - (donc directement sur votre ordinateur) et qui permet de créer des réactions en réponse à des événements sur la page ou à des actions de l'utilisateur. Par exemple :

? un clic sur un lien qui affiche un texte masqué progressivement

? un compteur qui défile

? l'apparition renouvelée d'actualités sans que le navigateur ne demande à nouveau la page au serveur

? etc.

Auparavant, le code JavaScript était souvent intégré au code HTML, mais là encore, on préconise aujourd'hui la séparation des deux langages pour des raisons d'organisation du code, mais aussi d'accessibilité du site.Le JavaScript est capable lui-même d'écrire du code X/HTML ou CSS, et donc de modifier totalement la base d'une page Web.

2.5.3. PHP : langage de programmation côté serveur

Le PHP est un langage qui est lu et exécuté sur le serveur où se trouve la page X/HTML, avant que celle-ci ne soit envoyée au navigateur (le client) qui en demande l'affichage. Par exemple, vous avez rempli un formulaire et cliqué sur le bouton, le serveur reçoit les données envoyées par le navigateur, le code PHP traite ces données et écrit le X/HTML de la nouvelle page Web que le serveur Web renvoie ensuite au navigateur. Le code XHTML d'une page peut ainsi être entièrement écrit à l'aide de code PHP, ou bien le code PHP peut être inséré à un endroit précis d'une page, pour compléter le code X/HTML, CSS, voire JavaScript.

Il existe de nombreux autres langages côté serveur, comme ASP.NET ou Coldfusion.

On qualifie de « dynamiques » les pages dont toutes ou certaines parties sont écrites par PHP (par exemple, un panier de commande au sein d'une page d'un site de commerce), car un langage de programmation modifie ou complète le code X/HTML « statique » de la page.

81

2.5.4. SQLite : système de base de données

SQLite est un système de base de données, souvent couplé au langage PHP et tant surtout langage java pour android. Ce système utilise le langage SQL (Structured Query Language, langage structuré de requêtes) pour interroger, alimenter ou mettre à jour les bases de données. Ainsi, dans le cas d'un site Web, le langage PHP va établir la connexion à la base de données, puis envoyer le code SQL nécessaire aux opérations sur la base de données. En retour, SQLite va renvoyer des données ou des informations, qui seront traitées par le code PHP. Il existe de nombreux autres systèmes de base de données, comme Oracle ou Microsoft SQL Server. Dans les numéros de XP-Infos à venir, nous verrons un peu plus en détail chacune de ces technologies Web, afin que vous puissiez mieux les identifier, mieux les comprendre et mieux juger de la

pertinence de leur utilisation sur votre site Internet.

2.5.5. NotePad++43

Un éditeur de code source utilisé pour prendre en charge plusieurs langages de programmation : Php C++, Java, Pascal, Html, Xml, Php Object-C, Makefile,... et d'autres il a pour avantage d'optimiser nombreuses fonctions tout en conservant une facilité de utilisateur et une convivialité. Il est configurable à travers ce son menu suivant :

43 http://www.wikipedia/

82

IV.3. LES COMPOSANTES APPLICATIVES REALISEES

83

3.1 LE SPLASH SCREEN

3.3. INSCRIPTION DU MOBINAUTE

3.2. INTERFACE D'ACCUEIL

3.5. ESPACE REPONSE DE L'ADMINISTRATEUR

84

3.4. RESERVATION DES PLACES

85

En plus nous avions utilisés les méthodes agiles combinées du langage UML avec des techniques d'interview, de navigations et celles documentaires pour pouvoir vérifier nos

86

CONCLUSION GENERALE

Au terme de notre étude portant sur le Développement d'une application mobile de réservation des places dans des bateaux cas des bateaux, nous sortons très satisfaits des travaux réalisés. L'étude que nous avons menée au cours de cette année, a abouti à la réalisation d'une application mobile à partir des langages de programmation habituelle. Cette réalisation a mis à priori les technologies habituelles utilisant HTML, CSS, JS, PHP, JQuery et JQuery mobile.

L'étude a commencé par une introduction dans laquelle nous avons présenté notre problème qui nous a poussés à mener des recherches et à répondre à cette dernière d'une manière satisfaisante.

Nous avons élaboré le premier chapitre qui fit un survol sur la majorité des ouvrages qui nous ont tant faciliter la tâche et qui parle beaucoup sur des applications mobiles où nous allons exposer des points très connus par la majorité puisque l'application doit avoir des documentations claires ;

Le deuxième chapitre porte sur les processus de réalisation dès la préparation de la machine jusqu'à la réalisation de l'application d'essai et en fin le rendre exécutable à des plateformes bien définies.

Le troisième chapitre porte sur la modélisation nous conduira vers les étapes de conception de notre application Android en guise exemplatif. Nous y présenterons les différents modèles de base applicables dans la conception orientée objet, avec les méthodes agiles dont le processus unifié en particulier qui utilisent toujours les différents diagrammes en UML qui seront d'application dans ce domaine.

Le quatrième enfin, centré sur l'implémentation de l'application mobile en question où nous présentons l'application conçue; laquelle sera présentée à travers un support externe. Mais aussi dans différents téléphones.

Seulement les démarches entreprises pour y parvenir seront synthétisées dans ce travail. Ainsi, dans ce chapitre, nous présenteront un les résultat pour pouvoir permettre à tout utilisateur de cette application à se situer face à cette dernière..

87

hypothèses. Et de ce qui précède nous disons que le résultat était positif à moitié et nous savons que des adaptations seront apporté au fur et à mesure que les clients utilisent ce produit.

Néanmoins, tout en estimant que le système proposé apportera satisfaction au département d'informatique de gestion, nous invitons d'autres chercheurs ayant le même souci que nous de bien vouloir s'investir et se servir de ce travail pour pouvoir réfléchir et amener plus loin, le cas échéant, la présente étude afin de pouvoir aider le département d'IG à surmonter les différentes difficultés liées à la réalisation des applications mobiles et enfin connaitre comment les téléphones interagissent avec les téléphones et avec les ordinateurs d'un autre côté. C'est une recherche simple et plaisante.

88

LA BIBIOGRAPHIE

COURS ET AUTRES OUVRAGES

1. Prof. Associé., MUSANGU LUKA Marcel, Conception de méthode Agiles, Cours inédit, L1 IG, ISP/Bukavu, 2014-2015.

2. Prof. Dr., MUSANGU LUKA, Conception de système d'information,Cours inédit, L1 IG, ISP/Bukavu, 2014-2015.

3. Prof. TCHUND'OLELA George, Initiation à la recherche scientifique, Cours inédit, G2 IG, ISP/BKV, 2011-2012, inédit.

4. Prof. SINDANO, Labo informatique, Cours inédit, L1 IG, ISP/BKV, 2014-2015.

5. Frédéric Espiau (Apollidore), Créez des applications pour Android, Ouvrage, Edition 2013

6. Jérôme Chambard, Dictionnaire Du Web - Edition 2015, Ouvrage, Edition 2014

7. Pierre GERARD. Modélisation des objets élémentaires avec UML 2, Ouvrage Edition D.U.T informatique page 13

8. Oscar MARCOS ENAGNON ADOUN. Conception en génie informatique et télécommunication Ouvrage Edition 2009, page 139

9. Jacques Sornet, Informatique de gestion, édition Dunod, Paris, 2003, Page 1

TFC ET MEMOIRES

1. Sarra Romdhane ARFOUI, BEL HADJ SALAH, la conception et développement d'une application mobile de vente de flash sous Android, MEMOIRE Inédit.

2. KAMPEMPE KILIMALI Damien Etude d'un système de navigation basé sur la plateforme open source «Mapsforge, MEMOIRE master II Inédit, 2013-2014,

3. MAILLET CEDRIC (,), Conception et la constitution d'une base de données de scans laser terrestres et de données forestières de validation, MEMOIRE Inédit, Université de LA ROCHELLE, 2011-2012.

89

4. ETIENNE DUBÉ, Conception et développement d'un service web de constitution de mini cubes solap pour clients mobiles, MEMOIRE DEA inedit, Université Laval, 2008

5. IBRAHIMA AMAR DIAGNE, le développement multiplateforme mobile, MEMOIRE Inédit, Haute École de Gestion de Genève 2012.

90

WEBOGREPHIE

V' http://www.ghislainlerda.com/2015/06/02/applicationmobilecordova/

V' http://jakarta.apache.org/regexp/

V' http://www.ibm.com/software/awdtools/netrexx/download.html

V' http://www.inonit.com/cygwin/faq/

V' http://groovy.codehaus.org/

V' http://www.tutorialpoint.com

V' http://mickael-lt.developpez.com/tutoriels/android/personnaliser-listview/

V' http://michel-dirix.developpez.com/tutoriels/android/integration-google-mapsandroid/

V' http://developer.android.com/

V' https://dl-ssl.google.com/android/eclipse/

V' http://developer.android.com/sdk/index.html

V' http://code.google.com/intl/fr/android/maps-api-signup.html

V' http://kenai.com/downloads/nbandroid/updates.xml

91

TABLE DES MATIERES

RESUME I

ABSTRACT III

EPIGRAPHE IV

DEDICACE V

REMERCIEMENTS VI

SIGLES ET ABREVIATIONS VII

O. INTRODUCTION 1

0.1. PROBLEMATIQUE 1

O.2 HYPOTHESES 2

0.3 METHODES ET TECHNIQUES 2

B. TECHNIQUES 2

0.4. OBJECTIFS DU TRAVAIL 3

O.5. JUSTIFICATION DU CHOIX ET INTERET DU SUJET 3

a. L'intérêt personnel 4

O.6. DELIMITATION DU SUJET 5

a. Délimitation spatiale 6

b. Délimitation temporelle ou chronologique 6

O.7. PLAN SOMMAIRE DU TRAVAIL 6

O.8. ETAT DE LA QUESTION 7

0.9. DIFFICULTES RENCONTREES 9

Chapitre premier : REVUE DE LA LITERRATURE 10

I.1. MOBILITE EN INFORMATIQUE 10

I.1.1 Types de plateformes mobiles 10

I.1.1.a Ordinateurs portatifs : 10

I.1.1.b PDA : 11

I.1.1.c. Smartphones : 11

I.1.2. Contraintes de mobilité 11

I.1.2.a Interface utilisateur et méthodes d'entrée : 12

I.1.2.b Capacités de calcul, de stockage et alimentation électrique : 12

I.1.2.d Interopérabilité entre systèmes : 13

I.1.3. Architecture logicielle des plateformes mobiles 14

I.1.3.A Application autonome : 14

92

I.1.3.B Application autonome avec synchronisation : 15

I.1.3.C Client lourd 15

I.1.3.D Client léger 16

I.1.4 Architecture orientée services et environnements mobiles 17

I.2 TECHNOLOGIE ANDROID 18

I.2.1. 18

I.2.1.1 DEFINITION 18

I.2.1.2. Historique 18

I.2.2 Architecture d'Android 20

I.2.2.1 Caractéristique 22

I.2.2.2. Leurs avantages sont les suivants 23

I.2.2.3. Leurs inconvénients 23

I.2.3. Différents supports 24

CHAPITRE DEUXIEME : LA MODELISATION 25

II.1. NOTE INTRODUCTIVE SUR LA METHODE 25

II.1.1. PRESENTATION DU PROCESSUS UNIFIE 25

II.1.2 LES PRINCIPES D'UP 25

II.1.2.1. Processus guidé par les cas d'utilisation 25

II.1.2.2. Processus itératif et incrémental 26

II.1.2.3. Processus centré sur l'architecture 26

II.1.2.4. Processus orienté par la réduction des risques 27

II.1.2.5. Organisation du processus unifié 27

II.1.3 LES PHASES DU PROCESSUS UNIFIE ET LES ACTIVITES 27

II.1.4. ACTIVITES DU PROCESSUS 29

II.1.4.1. ANALYSE 29

II.1.4.2. CONCEPTION 29

II.1.4.3. IMPLEMENTATION 30

II.1.4.4. TEST 30

II.1.4.5. ADAPTATION DU PROCESSUS UNIFIE 31

II.2. SPECIFICATION DES BESOINS 32

II.2.1. Introduction 32

II.2.2. Spécification Des Besoins Fonctionnels 32

II.2.3 Modélisation fonctionnelle 33

93

II.2.3.1. Diagramme de cas d'utilisation 33

II.2.3.2 Règle d'identification des acteurs 33

II.2.3.3 Types des acteurs 34

II.2.3.4. Description des acteurs du système et leur cas d'utilisation 34

II.2.3.5. Elaboration du diagramme du contexte statique 35

II.2.3.5.1 Elaboration du diagramme de cas d'utilisation 35

II.2.3.5.1.1. Identification de cas d'utilisation 36

II.2.3.6. La Modélisation dynamique 38

II.3. CONCEPTION 38

II.3.1. CONCEPTION GENERALE 38

II.3.1.1. ARCHITECTURE MVC 38

Le Modèle : 39

La Vue : 39

Le Contrôleur : 39

II.3.2. CONCEPTION DETAILLEE 40

II.3.2.1 Le diagramme de classe 41

II.3.2.1.1 Formalisme de la classe 41

II.3.2.1.2. Identification des classes et description des associations 41

II.3.2.1.2.1. Tableau des descriptions 41

II.3.2.1.2.2. Schéma du diagramme de classe 42

II.3.2.2 Diagramme de séquence et d'activité 42

II.3.2.3 DIAGRAMME DE DEPLOIEMENT 48

CHAPITRE TROISIEME : LES PARAMETRAGES 50

III.1. INTRODUCTION 50

III.1.2. Appcelerator Titanium 52

III.1.3 Rhodes 52

III.2. ENVIRONNEMENT DE TRAVAIL ET TECHNOLOGIE UTILISEE 53

III.2.1. NODEJS 53

III.2.2. JAVA DEVELOPMENT KIT 56

III.2.3. SDK ANDROID (ADT BUNDLE) 58

III.2.4. APACHE ANT 61

III.2.5. JQuery 63

III.3. DEMARCHE PROPREMENT DIT 64

94

III.3.1. Pour les applications web statique 64

III.3.2. Pour les Applications web dynamique 69

III.3.3. CONCLUSION 70

CHAPITRE QUATRIEME : L'IMPLEMENTATION 71

IV.1 INTRODUCTION 71

IV.2 OUTILS ET DOCUMENTS 71

IV.2.1 JSON 71

IV.2.1.1. INTRODUCTION SUR JSON 71

b. Syntaxe 72

c. Objet : 72

d. Tableau : 72

e. Valeurs : 72

IV.2.1.2 RAISON D'ETRE DE JSON 72

IV.2.2. AJAX 73

IV.2.2.1 Préambule 73

IV2.2. Fonctionnement 74

2.2.1 Mise à jour d'une partie de la page 74

2.2.2 Techniques mises en oeuvre 75

IV.2.3. WAMPSERVER 76

IV.2.4. SQLite3 77

2.4.1. Caractéristiques générales 78

IV.2.5. (X) HTML : langage de structuration des pages Web 79

2.5.1. CSS : langage de présentation des pages Web 79

2.5.2. JavaScript : langage de programmation côté client 80

2.5.3. PHP : langage de programmation côté serveur 80

2.5.4. SQLite : système de base de données 81

2.5.5. NotePad++ 81

IV.3. LES COMPOSANTES APPLICATIVES REALISEES 82

3.1 LE SPLASH SCREEN 83

3.2. INTERFACE D'ACCUEIL 83

3.3. INSCRIPTION DU MOBINAUTE 83

3.4. RESERVATION DES PLACES 84

3.5. ESPACE REPONSE DE L'ADMINISTRATEUR 84

95

CONCLUSION GENERALE 86

LA BIBIOGRAPHIE 88

COURS ET AUTRES OUVRAGES 88

TFC ET MEMOIRES 88

TABLE DES MATIERES 91






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








"Nous devons apprendre à vivre ensemble comme des frères sinon nous allons mourir tous ensemble comme des idiots"   Martin Luther King