Document de formation pour créer application messagerie instantanée Android
République Algérienne Démocratique et Populaire
Ministère de l'Enseignement Supérieur et de la Recherche Scientifique
Université A/Mira de Béjaïa
Faculté des Sciences Exactes Département d'informatique
Thème
Conception et réalisation d’une application de messagerie instantanée sous Android
MÉMOIRE DE FIN D’ETUDE
En vue de l'obtention du diplôme de Master
Option : Administration et sécurité des réseaux
Soutenu devant le jury composé de : Présidente : Mme BOULAHROUZ Examinateur : MrLARBI Examinatrice : MelleALBANE | Réalisé par : Mr Lahcene KEDJAR MrMokhtar OUMAKHLOUF |
Encadrés par :
MrAISSANI Sofiane
2014-2015
DØdicaces
mes tr?s chers parents
Avec un Ønorme plaisir, un coeur ouvert et une immense joie, que je dØdie mon travail mes tr?s ch?re, respectueux et magni ques parents qui m’ont soutenus tout au long de ma vie, dont leurs mØrites, leurs sacri ces, leurs qualitØs humaines m’ont permis de vivre ce jour : les mots me manquent pour exprimer toute la reconnaissance, la ertØ et le profond amour que je vous porte pour les sacri ces qu’ils ont consenti pour ma rØussite, qu’ils trouvent ici le tØmoignage de mon attachement ma reconnaissance, gratitude et respect, que Dieu leur prØservent bonne santØ et longue vie. Tous mes sentiments de reconnaissance pour vous.
mon fr?re Yanis et mes tr?s ch?res soeurs Fatima et Mounia
J’esp?re atteint le seuil de vos espØrances. Que ce travail soit l’expression de ma profonde a ection. Je vous remercie pour le soutien moral et l’encouragement que vous m’avez accordØs. Je vous souhaite tout le bonheur que vous mØritez. En leur souhaitant un brillant avenir.
mon bin me Lahcene.
toute ma famille et tous ceux que j’aime et qui m’aiment.
mes ami(e)s
tous ceux qui ont su m’apporter aide et soutien aux moments propices au long de mes Øtudes. Je dØdie ce travail, reconnaissant et remerciant chaleureusement.
M.OUMAKHLOUF
DØdicaces
A mes parents
Je vous dois ce que je suis aujourd’hui gr ce votre amour, votre patience et vos innombrables sacri ces. Que ce travail, soit pour vous une petite compensation et reconnaissance envers ce que vous avez fait d’incroyable pour moi. Que DIEU, le tout puissant, vous prØserve et vous procure santØ et longue vie a n que je puisse mon tour vous combler.
A mes tr?s ch?res soeurs Hanane et Nadjet et Imane, je vous remercie pour le soutien moral et l’encouragement que vous m’avez accordØs. Je vous souhaite tout le bonheur que vous mØritez. En leur souhaitant un brillant avenir.
A mon bin me Mokhtar.
A mes ch?res amis Billal, Fares, Redouan, Yanis., et tous ceux qui ont contribuØ de pr?s ou de loin la rØalisation de ce modeste travail.
L.KEDJAR
Remerciements
Ce mØmoire n’aurait pas pu Œtre confectionnØ si DIEU le tout puissant nous a avait pas dotØ d’une santØ physique et morale chaque instant; c’est pourquoi, nous le remercions l’in ni pour ce don inestimable dont il nous a grati Ø.
Nous tenons bien entendre remercier particuli?rement, notre cher encadreur, en l’occurrence Mr : AISSANI So ane, de l’UniversitØ de BEJAIA qui, par son encadrement ses prØcieux conseils, sa patience, sa gØnØrositØ et en n sa disponibilitØ ont fait que notre oeuvre a ØtØ largement facilitØ : nous ne saurions l’oublier.
Nos remerciements sadressent Øgalement tous les enseignants qui ont participØs notre formation tout le long de notre cursus.
Nous ne pouvons pas oublier de remercier tous les membres de nos familles pour leurs soutients et leurs encouragements et particuli?rement nos tr?s chers parents.
Merci tous ceux qui ont contribuØ, de prØs ou de loin, la rØalisation de ce travail.
Table des mati?res
Table des gures iv
Liste des tableaux v
Liste des abrØviations vi
Introduction gØnØrale 1
1 Applications mobiles 2
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Application mobiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1 DØ nition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.2 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.3 Supports et outils de la mobilitØ . . . . . . . . . . . . . . . . . . . . 3
1.2.4 Types d’application mobiles . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Syst?mes d’exploitation mobiles . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.1 CaractØristique des syst?mes d’exploitation mobiles . . . . . . . . . 5
1.3.2 Types syst?mes d’exploitation mobiles . . . . . . . . . . . . . . . . 5
1.4 PrØsentation d’Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4.1 Le choix d’Android . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4.2 Les avantages de la plateforme Android . . . . . . . . . . . . . . . . 7
1.4.3 Cycle de vie d’une activitØ sous Android . . . . . . . . . . . . . . . 8
1.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2 Etude de l’existant 10
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 DØ nitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.1 Messagerie InstantanØe (MI) . . . . . . . . . . . . . . . . . . . . . . 10
2.2.2 Chat IRC : Internet Relay Chat . . . . . . . . . . . . . . . . . . 11
2.2.3 Groupe de discussion . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.4 Forum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 Fonctionnement de la MI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4 FonctionnalitØs de la messagerie instantanØe (MI) . . . . . . . . . . . . . . 11
2.4.1 Connexion et disponibilitØ . . . . . . . . . . . . . . . . . . . . . . . 12
2.4.2 Gestion d’une liste de contacts . . . . . . . . . . . . . . . . . . . . . 12
2.4.3 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4.4 ConfØrence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.5 Analyse de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Table des mati?res
2.5.1 PrØsentation de l’application WhatsApp pour Android . . . . . . . 13
2.5.2 PrØsentation de l’application Facebook Messenger pour Android . . 14
2.5.3 PrØsentation de l’application Skype-Android . . . . . . . . . . . . . 15
2.5.4 Analyse concurrentielle . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3 Conception 18
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2 SpØci cation des besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.1 Les besoins attendus de l’application . . . . . . . . . . . . . . . . . 18
3.2.2 PrØsentation de l’approche UP . . . . . . . . . . . . . . . . . . . . . 19
3.3 Identi cation des acteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4 Diagramme de contexte du syst?me rØaliser . . . . . . . . . . . . . . . . 22
3.5 Les Diagrammes des cas d’utilisation . . . . . . . . . . . . . . . . . . . . . 23
3.5.1 Le diagramme global des cas d’utilisations . . . . . . . . . . . . . . 23
3.5.2 Les di Ørents cas d’utilisation . . . . . . . . . . . . . . . . . . . . . 24
3.5.3 Le cas d’utilisation Authenti cation . . . . . . . . . . . . . . . . 25
3.5.4 Le cas d’utilisation Ajouter un ami . . . . . . . . . . . . . . . . 26
3.5.5 Le cas d’utilisation Inscription / Enregistrement . . . . . . . . . 27
3.5.6 Le cas d’utilisation DØconnexion . . . . . . . . . . . . . . . . . . 28
3.5.7 Le cas d’utilisation Envoyer des messages . . . . . . . . . . . . . 29
3.6 Diagrammes de sØquence . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.6.1 DØ nition d’un diagramme de sØquence . . . . . . . . . . . . . . . . 30
3.6.2 Diagramme de sØquence du cas d’utilisation Inscription . . . . . 31
3.6.3 Diagramme de sØquence du cas d’utilisation Authenti cation . . 32
3.6.4 Diagramme de sØquence du cas d’utilisation Ajout des amis . . . 33
3.6.5 Diagramme de sØquence du cas d’utilisation Envoyer des messages . 34
3.6.6 Diagramme de sØquence du cas d’utilisation DØconnexion . . . . 35
3.7 Diagramme de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.7.1 DØ nition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.7.2 Diagramme de classe de l’application . . . . . . . . . . . . . . . . . 37
3.7.3 R?gle de dØrivation du mod?le relationnel partir d’un mod?le de
classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4 RØalisation 40
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2 Outils de dØveloppement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2.1 Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2.2 Langage Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2.3 Langage XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2.4 JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2.5 SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2.6 Android dØveloppement tools (ADT) . . . . . . . . . . . . . . . . . 43
4.2.7 Android virtual device (AVD) . . . . . . . . . . . . . . . . . . . . . 44
4.2.8 Wamp server (Mysql serveur) . . . . . . . . . . . . . . . . . . . . . 45
4.2.9 Langage PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.2.10 Notepad++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.3 PrØsentation des interfaces de l’application . . . . . . . . . . . . . . . . . . 47
4.3.1 Interface d’acceuil . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Table des mati?res
4.3.2 Interface d’inscription . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.3.3 Interface de la Liste d’amis . . . . . . . . . . . . . . . . . . . . . . . 49
4.3.4 Menu Ajouter un nouveau ami / DØconnexion . . . . . . . . . . . 50
4.3.5 Interface d’ajout des amis . . . . . . . . . . . . . . . . . . . . . . . 51
4.3.6 Barre des noti cations . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.3.7 Interface de con rmation des invitations . . . . . . . . . . . . . . . 53
4.3.8 Interface de la Liste des amis en ligne et hors ligne . . . . . . . . . 54
4.3.9 Interface de discussion . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Conclusion et Perspectives 56
Liste des tableaux
3.1 Le formalisme de description des cas d’utilisation. . . . . . . . . . . . . . . 24
3.2 Description du cas d’utilisation Authenti cation . . . . . . . . . . . . . . 25
3.3 Diagramme du cas d’utilisation Authenti cation . . . . . . . . . . . . . . 25
3.4 Description du cas d’utilisation Ajouter un ami . . . . . . . . . . . . . . . 26
3.5 Diagramme du cas d’utilisation Ajouter un ami . . . . . . . . . . . . . . . 26
3.6 Description du cas d’utilisation Inscription / Enregistrement . . . . . . . 27
3.7 Diagramme du cas d’utilisation Inscription . . . . . . . . . . . . . . . . . 27
3.8 Description du cas d’utilisation DØconnexion . . . . . . . . . . . . . . . . 28
3.9 Diagramme du cas d’utilisation DØconnexion . . . . . . . . . . . . . . . . 28
3.10 Description du cas d’utilisation Envoyer des messages . . . . . . . . . . . 29
3.11 Diagramme du cas d’utilisation Envoyer des messages . . . . . . . . . . . 29
Liste des abrØviations
AIM Aol Instant Messenger.
AMR Adaptive Multi Rate.
API Application Programming Interface.
AVD Android Virtual Device. A2DP Advanced Audio Distribution Pro le BSD Berkeley Software Distribution.
CSS Cascading Style Sheets.
GPS Global Positioning System.
HTML Hyper Text Markup Language.
IBM International Business Machines. IDE Integrated Development Environment IOS Iphone Operating System.
IP Internet Protocol.
IRC Internet Relay Chat.
JNI Java Native Interface.
JSON Java Script Object Notation.
JSP Java Server Pages.
MIT Massachusetts Institute of Technology.
OS Operating System.
PDA Personnel Digital Assistant. PHP Hypertext Preprocessor.
SDK Software Development Kit SGBD Syst?me de Gestion de Base de DonnØes.
SGML Standard Generalized Markup Language.
SMS Short Message Service.
SQL Structured Query Language.
SWT Standard Widget Toolkit.
UIQ User Interface Quartz.
UML Uni ed Modeling Language .
UP Uni ed Process.
USB Universal Serial Bus.
VM Virtual Machine.
XML eXtended Markup Language.
Introduction gØnØrale
Aujourd’hui, le monde conna t une avancØe considØrable dans l’utilisation des appareils tØlØphoniques portables (mobiles) gr ce aux applications mobiles, ces derni?res sont capables de satisfaire les besoins actuels des utilisateurs avec de nombreuses fonctionnalitØs et en o rant plusieurs services.
De nouveaux usages sont apparus tels que les jeux, la lecture audio, etc sur un plan plus pratique, le tØlØphone mobile dispose des variØtØs d’utilisations et l’appareil est devenu plus utile que jamais. L’essor du mobile a connu une Øvolution considØrable. Les rØseaux de tØlØcommunication mobiles sont Øgalement en expansion : le nombre d’utilisateurs de mobile est en constante progression et la couverture territoriale est largement rØpandue.
Notre projet s’inscrit dans un cadre gØnØral du dØveloppement et de la rØalisation d’une application de chat messagerie instantanØe qui fonctionne sous Android qui permet plusieurs utilisateurs d’Øchanger des messages textes et les sauvegarder dans une base de donnØes.
Notre mØmoire est structurØ en quatre chapitres, le premier chapitre porte sur les applications mobiles et leurs objectifs, ensuite, on va citer les di Ørents supports et outils de la mobilitØ, les types d’application mobiles et les di Ørents syst?mes d’exploitation et une prØsentation dØtaillØe du syst?me Android.
Le deuxi?me chapitre sera dØdiØ l’Øtude de l’existant, on parlera de la messagerie instantanØe, son fonctionnement, ensuite, on va citer les di Ørents protocoles de communications ainsi leurs avantages et leurs dØfauts et les fonctionnalitØs de la messagerie, et en n nous prØsenterons l’analyse d’exemples d’applications de messagerie sous ANDROID
Le troisi?me chapitre sera consacrØ la conception qui est une Øtude prØalable de notre projet, elle est une Øtape primordiale et un passage obligatoire, car il s’agit de dØcrire les besoins de notre syst?me, on modØlisant avec le langage UML.
La rØalisation de notre application fera l’objet du chapitre quatre, ou nous allons prØsenter les outils ainsi que les langages de programmations utilisØs, on va expliquer le fonctionnement de notre application en utilisant quelques captures d’Øcran.
Nous conclurons notre mØmoire par exposer l’ensemble des connaissances acquises au cours de la rØalisation de notre projet, et nous exposerons quelques perspectives .
Chapitre 1
Applications mobiles
1.1 Introduction
Aujourd’hui, les applications mobiles ont pris une place importante dans notre vie quotidienne, et prennent de plus en plus d’espace dans l’utilisation de nos terminaux mobiles, elles sont con ues pour des plateformes mobiles et utilisØes pour des services de l’information, medias sociaux, jeux etc.
Dans ce chapitre nous abordons la notion de l’application mobile et ces objectifs, ses types, les di Ørents syst?mes d’exploitation mobiles, en n nous allons faire une prØsentation dØtaillØe sur le syst?me Android.
1.2 Application mobiles
Les applications mobiles sont apparues dans les annØes 1990, elles sont liØes aux dØveloppements d’Internet et des tØlØcommunications, des rØseaux sans ls et des technologies agents, et l’apparition et la dØmocratisation des terminaux mobiles : smartphones, tablettes etc.
1.2.1 DØ nition
Une application mobile est un logiciel applicatif dØveloppØ pour un appareil Ølectronique mobile, tel qu’un assistant personnel, un tØlØphone portable, un smartphone , un baladeur numØrique, une tablette tactile, ou encore certains ordinateurs fonctionnant avec le syst?me d’exploitation Windows Phone.
1.2.2 Objectifs
Elles visaient d’abord la productivitØ et faciliter la rØcupØration d’informations telles que courrier Ølectronique, calendrier Ølectronique, contacts, marchØ boursier et informations mØtØorologiques. la demande du public et la disponibilitØ d’outils de dØveloppement ont conduit une expansion rapide dans d’autres domaines, comme : les jeux mobiles, les automatismes industriels, le GPS et les services basØs sur la localisation, les opØrations bancaires, les suivis des commandes, l’achat de billets, des applications mØdicales mobiles, la rØalitØ virtuelle.[1]
1.2.3 Supports et outils de la mobilitØ
Les supports du multimØdia mobile peuvent Œtre regroupØs en 4 grandes catØgories :
1.2.3.1 Terminaux mobiles
De part sa diversitØ, l’univers de terminaux est sans doute le rØvØlateur de la dynamique du monde mobile. Jusqu’ une Øpoque rØcente, on connaissait comme seuls objets communicants les tØlØphones et les ordinateurs. Mais de plus en plus, la miniaturisation des puces, des mØmoires, des antennes et des batteries permet aujourd’hui d’ajouter des capacitØs d’acquisition, de traitement, de stockage, de communication et mŒme d’action un nombre croissant d’objets rendus intelligents . Nous nous limitons ici un inventaire sommaire des outils de mobilitØ les plus populaires qui permettent nombre d’utilisateurs d’avoir une connexion de type multimØdia mobile.[1]
PC portable et Tablet PC (e-books) : Le Pocket PC de Microsoft est l’exemple type de l’ordinateur de poche. DotØ d’un syst?me d’exploitation, Un Pocket PC rappelle un PC avec son menu DØmarrer et la suite Pocket O ce : Pocket Internet Explorer, Outlook, Pocket Word et Pocket Excel. Le Tablet PC, lui est un ultra-portable avec toutefois des caractØristiques spØciales : son Øcran est tactile, il reconna t votre Øcriture gr ce un stylet, et la transforme en texte. L’unique charni?re centrale de son Øcran permet ce dernier de pivoter et se rabattre sur le clavier.[1]
1.2.3.2 Assistants numØriques (PDA)
Le PDA (Personnel Digital Assistant) ou assistant numØrique personnel est un ordinateur de poche faisant o ce d’assistant personnel. Un assistant numØrique personnel ou PDA - est l’origine un agenda Ølectronique destinØ la prise de rendez-vous, la plani cation des t ches et au transport de donnØes personnelles. Il s’est, depuis, beaucoup enrichi en fonctionnalitØs communicantes (push mail, carte 3G, connexions Bluetooth, etc.). [1]
1.2.3.3 Smartphone
Les Smartphones sont des tØlØphones dits intelligents qui assurent en prioritØ les fonctions de communication et de navigation sur internet. Ces terminaux proposØs la fois par les constructeurs informatiques et les Øquipementiers tØlØcoms associent les fonctions des assistants personnels et celles des tØlØphones mobiles. Un utilisateur de Smartphone consomme deux fois plus de voix, et dix fois plus de data, c’est- -dire de donnØes (mail, acc?s Internet). [1]
1.2.3.4 Terminaux converges
Il y a une convergence des PDA, Pocket PC, smartphone et autres produits, car tous les professionnels sont demandeurs d’un produit simple rassemblant toutes les applications mobiles avec Bluetooth, Wi-Fi, etc. Ces terminaux o rent des services voix ou donnØes et sont capables de synchroniser des informations personnelles et/ou des courriels avec des serveurs, des postes de travail ou des ordinateurs portables. Ils sont dotØs d’un syst?me d’exploitation ØvoluØ comme Palm OS, Windows Mobile 5.0, ainsi que la plateforme Symbian.[1]
1.2.4 Types d’application mobiles
Actuellement, il existe 3 principaux types d’applications mobiles :
1.2.4.1 Les Applications natives (Natives App)
Celles-ci correspondent des logiciels crØes uniquement pour une plateforme mobile. Le dØveloppement de ces logiciels se fait au travers du SDK ou software dØveloppement kit de la plateforme mobile choisie. Le nom de ces applications vient du fait qu’elles sont dØveloppØes avec l’utilisation de langages natifs comme par exemple le langage JAVA ou le langage Objective-C. Les natives App sont tØlØchargØes partir d’une plateforme de tØlØchargement qui est souvent un App Store. [18]
1.2.4.2 Les applications web (Web App)
Ces applications correspondent des sites web qui sont con us spØcialement pour un a chage sur mobile optimisØ. Pour accØder ces sites web, on utilise le navigateur internet disponible sur le mobile. Ces applications mobiles sont dØveloppØes principalement partir de technologies web comme HTML5 ou encore CSS3. Gr ce au support HTML5 il est possible d’accØder environ 80% des fonctions prØsentes sur le mobile. Par exemple cela permet d’accØder la gØolocalisation, l’accØlØrom?tre, gØrer la fonction multitouche ou encore permettre la synchronisation o ine lorsque le mobile perd et retrouve sa connexion.
[18]
1.2.4.3 Les applications de type hybride ou Hybrid App
Ces applications sont considØrØes comme un mix la fois entre les applications natives et les applications web. En e et, elles sont compatibles avec toutes les plateformes mobiles. Ces applications sont principalement dØveloppØes l’aide d’HTML5 aujourd’hui qui est trØs performant mais utilisent aussi d’autres langages web comme CSS et JavaScript. [18]
1.3 Syst?mes d’exploitation mobiles
Un syst?me d’exploitation mobile est un syst?me d’exploitation con u pour fonctionner sur un appareil mobile. Ce type de syst?me d’exploitation se concentre entre autres sur la gestion de la connectivitØ sans l et celle des di Ørents types d’interface.[19]
1.3.1 CaractØristique des syst?mes d’exploitation mobiles
Un syst?me d’exploitation mobile regroupe un ensemble des fonctionnalitØs dont : [19]
• La gestion de la mØmoire.
• La gestion des microprocesseurs et l’ordonnancement.
• La gestion de syst?me de chiers.
• La gestion des EntrØes/Sorties.
• La gestion de sØcuritØ.
• La gestion de fonctionnalitØs multimØdia.
1.3.2 Types syst?mes d’exploitation mobiles
Les principaux syst?mes d’exploitations mobile sont : Android, Bada, BlackBerry OS, iOS, OpenMoko, Palm OS, HP webOS, Symbian OS, Windows CE, Windows Mobile, Windows Phone 7. [19]
Android : est un syst?me d’exploitation open source utilisant le noyau Linux, pour smartphones, PDA et terminaux mobiles con u par Android, une startup rachetØe par Google, et annoncØ o ciellement le 5 novembre 2007. D’autres types d’appareils poss?dant ce syst?me d’exploitation existent, par exemple des tØlØviseurs et des tablettes.
Bada : est le syst?me d’exploitation pour smartphone haut de gamme et milieu de gamme de Samsung basØ sur le syst?me d’exploitation propriØtaire SHP OS.
Tous les tØlØphones sous Bada ont un nom commen ant par Samsung Wave.
BlackBerry OS : est un syst?me d’exploitation qui fonctionne sur le smartphone BlackBerry. Il permet aux dØveloppeurs de mettre en place des applications en utilisant les APIs BlackBerry, mais toute application doit Œtre signØe numØriquement par le compte RIM du dØveloppeur.
Symbian OS : est un syst?me d’exploitation le plus utilisØ pour des smartphones et PDA, qui a ØtØ con u par Symbian Ltd. Symbian OS fournit les fonctionnalitØs essentielles du syst?me d’exploitation, notamment le coeur du syst?me, ainsi que les API communes et une interface utilisateur de rØfØrence. Il a ØtØ adoptØ par di Ørents fabricants de tØlØphones portables de 2G et 3G (Nokia, Sony Ericsson, Motorola, Samsung, etc.). Les principaux interfaces utilisateur sont S60 sØrie (pour clavier numØrique), UIQ (pour Øcran tactile), S80 sØrie (pour clavier alphanumØrique).
1.4 PrØsentation d’Android
Il existe plusieurs types de syst?me d’exploitation pour le tØlØphone mobile, chaque syst?me a ses avantages et ses limites. Il est donc trØs di cile de choisir la plateforme rØpondant bien Æ l’objectif d’une sociØtØ ou d’une personne.
Dans cette partie nous allons prØsenter la raison du choix d’Android, nous aurons aussi Æ prØsenter ce syst?me et les outils pour crØer une application dans la pratique.
1.4.1 Le choix d’Android
Android est un syst?me d’exploitation open Source pour smartphones, PDA et autres terminaux mobiles, con u par Android, une start-up rachetØe par Google en juillet 2005. Il est donc gratuit et librement modi able, ce qui explique d’ailleurs le nombre de mobiles qui l’utilise et ce indØpendamment de leur fabricant. Cet aspect lui permet Øgalement d’Œtre prØsent sur d’autres types d’appareils possØdant ce syst?me d’exploitation tels que les tØlØviseurs et les tablettes. Ceci peut d’ailleurs constituer une opportunitØ de se dØtacher du seul cadre du tØlØphone mobile. [2]
Le noyau Linux lui fournit une grande mØmoire, la gestion de processus, le mod?le de sØcuritØ, le soutien des biblioth?ques partagØ etc. Le SDK de l’Android o re compl?tement les APIs, avec un acc?s facile pour dØvelopper l’application.[2]
Une API, ou interface de programmation en fran ais, est un ensemble de r?gles suivre pour pouvoir dialoguer avec d’autres applications. Dans le cas de Google API, il permet en particulier de communiquer avec Google Maps.
Android est un syst?me d’exploitation puissant et moderne, qui se caractØrise par la simplicitØ et la exibilitØ; cela signi e que le syst?me est dØveloppØ avec un simple langage java, et il s’adapte beaucoup de structures di Ørentes.[2]
1.4.2 Les avantages de la plateforme Android
+ Pas de License Æ obtenir, pas de dØpense pour la distribution et le d?veloppement.
+ D?velopper des applications location-based en utilisant le GPS.
+ Utiliser des cartes g?ographiques avec Google Maps.
+ Recevoir et Ømettre des SMS, envoyer et recevoir des donn?es sur le r?seau mobile.
+ Enregistrer et lire image, son et vid?o.
+ Des outils de stockage de donnØes partagØs (SQLite en version Sandbox).
+ Une accØl?ration matØrielle pour la 2D et la 3D.
+ Des services et des applications qui peuvent tourner en t che de fond : qui peuvent rØagir au cours d’une action, votre position dans la ville, l’heure qu’il est, suivant l’identitØ de l’appelant.
+ Une plateforme de dØveloppement qui favorise la rØutilisation de composants logiciels et le remplacement des applications fournies.[3]
1.4.3 Cycle de vie d’une activitØ sous Android
Voici un diagramme qui explique le cycle de vie d’une activitØ sous Android :[20]
Figure 1.1 Cycle de vie d’une activitØ sous Android. [20]
OnCreate
Cette mØthode est appelØe la crØation de l’activitØ (Activity). Elle sert initialiser votre activitØ ainsi que toutes les donnØes nØcessaires cette derni?re. Quand la mØthode OnCreate est appelØe, on lui passe un Bundle en argument. Ce Bundle contient l’Øtat de sauvegarde enregistrØ lors de la derni?re exØcution de votre activitØ.
OnStart
Cette mØthode est appelØe dans le cas oø votre application est en arri?re-plan et qu’elle repasse en avant-plan. Si votre activitØ ne peut pas aller en avant-plan quelle que soit la raison, l’activitØ sera transfØrØe OnStop.
OnResume
Cette mØthode est appelØe apr?s OnStart au moment oø l’application repasse en avantplan ou en arri?re-plan cause d’une autre application.
OnPause
AppelØe juste avant qu’une autre activitØ passe en OnResume. ce stade, notre activitØ n’a plus acc?s l’Øcran, vous devez arrŒter de faire toute action en rapport avec l’interaction utilisateur. Vous pouvez par contre continuer exØcuter des algorithmes nØcessaires mais qui ne consomment pas trop de CPU.
OnStop
AppelØe quand l’activitØ n’est plus visible quelle que soit la raison.
OnDestroy
AppelØe quand l’application est totalement fermØe (Processus terminØ).
1.5 Conclusion
Dans ce chapitre, nous avons donnØ un petit aper u sur les applications mobiles, ainsi que ses di Ørents objectifs. Et puis on a prØsentØ les di Ørents supports et outils de la mobilitØ et on a ØnumØrØ les di Ørents types d’application mobile, puis on a dØ ni les syst?mes d’exploitation mobiles ainsi leurs caractØristiques et leurs types. la n on a fait une PrØsentation d’Android dont sa description, ses avantages, ses fonctionnalitØs et son Architecture.
Chapitre 2
Etude de l’existant
2.1 Introduction
Il existe plusieurs types de messagerie instantanØe dont chacune d’elle prØsente ses propres avantages par rapport aux autres selon le domaine d’utilisation.
Nous prØsenterons dans ce chapitre, l’Øtude de l’existant qui doit Œtre Ølaborer avant d’entamer la spØci cation des besoins et la conception de notre application, et pour cela nous allons donner une prØsentation de la messagerie instantanØe, son fonctionnement et ses fonctionnalitØs, en n nous prØsenteons l’analyse d’exemples d’applications de messagerie sous Android.
2.2 DØ nitions
2.2.1 Messagerie InstantanØe (MI)
La messagerie instantanØe, le dialogue en ligne (dØsignØe par chat, en anglais et en fran ais tchat bavardage ), permet l’Øchange instantanØ de messages textuels et de chiers entre plusieurs personnes par l’intermØdiaire d’ordinateurs connectØs au mŒme rØseau informatique, et plus communØment celui d’Internet. Contrairement au courrier
Ølectronique, ce moyen de communication permet de conduire un dialogue interactif. [14]
C’est une mØthode de communication bidirectionnelle qui est mi-chemin entre l’e-mail (pour son caract?re Øcrit) et le tØlØphone (pour ses Øchanges en temps rØel) en se crØant son propre rØseau de correspondants. Ce contact pourrait s’apparenter une partie de ping-pong Øcrit . A la di Ørence du chat, il s’agit de dialoguer avec des correspondants faisant partie d’une liste privØe dans laquelle sont intØgrØes uniquement les personnes souhaitØes. [14]
2.2.2 Chat IRC : Internet Relay Chat
C’est un moyen de communiquer en direct avec des groupes de personnes via l’Internet. Les clients se connectent des serveurs qui sont eux-mŒmes reliØs entre eux, formant un rØseau IRC. Tous les clients sont donc susceptibles de communiquer entre eux en temps rØel travers le rØseau. [14]
2.2.3 Groupe de discussion
Technologie permettant d’Øchanger des idØes et des informations sur des sujets gØnØralistes ou prØcis par mails interposØs, les groupes de discussion utilisent le rØseau Usenet (un rØseau comparable Internet, mais dØdiØ l’Øchange de messages des groupes de discussion) Comme les messages sont re us directement sur les ordinateur des internautes, il faut disposer d’un logiciel client appropriØ (appelØ aussi lecteur de news), Outlook Express sait parfaitement bien gØrer les groupes de discussion. [14]
2.2.4 Forum
On communique en passant par un serveur sur Internet qui centralise les messages, on n’utilise donc pas son logiciel de messagerie, ni le rØseau Usenet. [14]
2.3 Fonctionnement de la MI
La messagerie instantanØe est donc un moyen de communiquer en privØ avec d’autres personnes de son choix. Le client se connecte un serveur qui contient les informations sur tous les utilisateurs inscrits, connectØs ou non. Chaque personne poss?de un pseudonyme qui n’est pas forcØment unique, et un identi ant unique dans la base de donnØes du serveur. Un mot de passe est aussi indispensable pour se connecter au service. Deux personnes peuvent communiquer en direct si elles sont simultanØment connectØes au serveur. Sinon, elles ont la possibilitØ de consulter leurs messages dans leur bo te aux lettres au moment oø elles se connectent. [14]
2.4 FonctionnalitØs de la messagerie instantanØe (MI)
Les fonctionnalitØs o ertes par les services de messagerie instantanØe sont dØcrites ci-apr?s.
2.4.1 Connexion et disponibilitØ
Le serveur d’identi cation est interconnectØ avec une base de donnØes dans laquelle les utilisateurs seront dØclarØs et les di Ørents statuts possibles sont : [4]
• DØconnectØ : Le programme est dØconnectØ du serveur si bien que vous ne pouvez pas savoir si vos contacts sont prØsents, eux vous voient comme dØconnectØ.
• ConnectØ (et disponible) : Vous Œtes donc connectØ et disponible pour envoyer et recevoir des messages de vos contacts.
• Absent : En choisissant ce statut, vous indiquez tous vos contacts que vous Œtes absent.
• Non disponible : Signi e que vous n’Œtes pas disponible pour discuter et que vous prØfØreriez donc ne pas Œtre contactØ.
• Non visible : Vous Œtes occupØ et demandez donc ne pas Œtre dØrangØ.
2.4.2 Gestion d’une liste de contacts
Les programmes de messagerie vous permettent de gØrer une liste de contact. A la di Ørence des chats sur Internet, lorsque vous vous connectez sur un serveur, vous ne rØcupØrez pas automatiquement la liste des autres personnes connectØes. Heureusement d’ailleurs car n’oubliez pas que certaines messageries publiques regroupent plusieurs millions d’utilisateurs simultanØs.
C’est donc chacun de se constituer sa propre liste de contacts. Pour cela, il su t de rechercher dans l’annuaire du serveur les personnes que l’on dØsire avoir comme contact de fa on communiquer avec elles. [4]
2.4.3 Discussion
Une discussion est un Øchange de messages entre deux interlocuteurs, savoir vous et un de vos contacts. Ces messages sont de taille tr?s variable et ils sont habituellement limitØs par les syst?mes quelques centaines de caract?res. Mais rien ne empŒche l’utilisateur de dØcouper ce que vous avez dire sur plusieurs messages. [4]
2.4.4 ConfØrence
la di Ørence d’une discussion plusieurs, dans une confØrence, tous les participants voient ce que disent les autres. Chaque message tapez et envoyØ une seule fois par utilisateur vers le serveur qui se charge de le copier et de l’envoyer tous les participants de la confØrence. De la mŒme fa on, les rØponses sont dupliquØes et envoyØes tous. [4]
2.5 Analyse de l’existant
Dans cette section, nous prØsentons les applications WhatsApp Messenger et facebook Messenger et skype Android. Ensuite nous procØdons une analyse concurrentielle.
2.5.1 PrØsentation de l’application WhatsApp pour Android
WhatsApp Messenger est une application de messagerie disponible pour Android et autres Smartphones. WhatsApp utilise la connexion d’internet de votre tØlØphone (4G/3G/ 2G/EDGE ou WiFi, si disponible) pour envoyer le message ou appeler vos amis et votre famille. Passez du SMS WhatsApp pour envoyer et recevoir des messages, des appels, des photos, des vidØo, et des Messages Vocaux, utilisØ par 600 millions de personnes.
L’entreprise WhatsApp fondØe en 2009 par Jan Koum et Brian Acton, deux anciens ingØnieurs de Yahoo, a pour but de remplacer le SMS. Ses bureaux sont basØs Mountain
View en Californie. [21]
2.5.2 PrØsentation de l’application Facebook Messenger pour Android
C’est une application dØveloppØe essentiellement par facebook pour permettre aux membres du rØseau social d’accØder et consultØs leurs comptes et de dialoguer avec leurs amis sans Œtre forcØment connectØs au site web.
2.5.3 PrØsentation de l’application Skype-Android
C’est une application qui fait bØnØ cier aux utilisateurs d’Android d’une communication permanente avec leurs di Ørents contacts. Facile manipuler, elle permet d’envoyer des messages instantanØs en toute libertØ.
2.5.4 Analyse concurrentielle
Toutes ces applications sont destinØes aux utilisateurs disposants dappareils tØlØphoniques intelligents, elles o rent plusieurs services : envoi et rØception gratuite de messages instantanØs, Øchange de photos, vidØos, et messages vocaux dont chacune ces propres avantages par rapport aux autres.
Whatsapp :
• Elle se synchronise avec la liste de contact et identi e les personnes disposant du logiciel dans leurs applications mobile.
• Contrairement d’autres applications de messagerie instantanØe qui permettent aux utilisateurs de communiquer exclusivement entre des smartphone fonctionnant sous le mŒme syst?me dexploitation, WhatsApp corrige ce probl?me.
• Pas besoin de crØer un nom d’utilisateur et mot de passe Messenger car WhatsApp fonctionne avec le numØro de tØlØphone.
• Elle O re aussi la possibilitØ de partager la position actuelle avec les contacts.
Facebook Messenger :
• Enregistrer des vidØos et prendre des sel es ou d’autres photos directement dans l’application, et envoyer-les d’un seul geste.
• Les bulles de discussion permettent aux utilisateurs de continuer leurs conversations tout en utilisant d’autres applications.
• Animation et enrichissement des conversations avec des autocollants.
skype-Android :
• Visiophonie et appels audio sous 3G ou WiFi.
• Appels Øconomiques vers des lignes xes et mobiles, et SMS des tarifs avantageux.
• Envoi de chiers de toutes tailles.
2.6 Conclusion
Dans ce chapitre, on a presentØ quelques dØ nitions sur la messagerie instantanØe (MI), son Øvolution et son fonctionnement, en n on a ØnumØree ces di Ørentes fonctionnalitØs o ertes qui seront utiles dans le prochain chapitre. En n on a fais une prØsentation de quelques applications de messagerie instantanØe sous Android qui existe, suit une analyse concurrentielle dont on a citØ les avantages de chacune par rapport aux autres.
Chapitre 3 Conception
3.1 Introduction
La phase de conception est la premi?re Øtape dans la rØalisation d’un projet, elle doit d’Øcrire de mani?re non ambiguº le fonctionnement futur du syst?me, a n d’en faciliter la rØalisation. Pour cela, di Ørentes mØthodes existent permettant de formaliser les Øtapes prØliminaires du dØveloppement.
Dans ce chapitre, nous prØsentons les objectifs de notre application, ce qui nous am?ne identi er les possibilitØs du syst?me et les besoins des utilisateurs que nous essayons de projeter dans des diagrammes de cas d’utilisations globaux et dØtaillØs.
3.2 SpØci cation des besoins
3.2.1 Les besoins attendus de l’application
L’application envisagØe doit satisfaire les besoins fonctionnels qui seront exØcutØs par le syst?me et les besoins non fonctionnels qui perfectionnent la qualitØ logicielle du syst?me.
3.2.1.1 Les besoins fonctionnels
Les besoins fonctionnels ou besoins mØtiers reprØsentent les actions que le syst?me doit exØcuter, il ne devient opØrationnel que s’il les satisfait. Cette application doit couvrir principalement les besoins fonctionnels suivants :
Enregistrement des utilisateurs.
Authenti cation des utilisateurs.
Envoyer et recevoir des messages textes.
ExØcute un service de fond a n d’obtenir des messages, mŒme lorsque l’application est fermØe.
Utiliser une zone de noti cation lorsqu’un nouveau message ou une nouvelle invitation est re ue.
Gestion d’amis (Ajout des amis par nom d’utilisateur, a chage de la liste des amis avec leurs statut(en ligne/hors ligne),accØpter ou rØfuser des invitations.
Se dØconnecter (quitter l’application).
3.2.1.2 Les besoins non fonctionnels
Ce sont des exigences qui ne concernent pas spØci quement le comportement du syst?me mais plut t identi ent des contraintes internes et externes du syst?me. Les principaux besoins non fonctionnels de notre application se rØsument comme suit :
Le code doit Œtre clair pour permettre des futures Øvolutions ou amØliorations.
L’ergonomie : l’application o re une interface conviviale et facile utiliser.
La sØcuritØ : l’application doit respecter la con dentialitØ des donnØes. Garantir l’intØgritØ et la cohØrence des donnØes chaque mise jour et chaque insertion.
3.2.2 PrØsentation de l’approche UP
3.2.3.1 Processus et architecture
Un processus dØ nit une sØquence d’Øtapes, en partie ordonnØes, qui concourent l’obtention d’un syst?me logiciel ou l’Øvolution d’un syst?me existant. [8]
Le processus uni Ø (Uni ed Process)
Un processus uni Ø est un processus de dØveloppement logiciel construit sur UML; il est itØratif et incrØmental, centrØ sur l’architecture, conduit par les cas d’utilisation et pilotØ par les risques. [8]
L’objectif du Processus uni Ø est de guider les dØveloppeurs vers l’implØmentation et le dØploiement e caces de syst?mes rØpondant aux besoins des clients. [9]
Le processus 2TUP
2TUP signi e 2 Track Uni ed Process . C’est un processus UP qui rØpond aux caractØristiques que nous venons de citer. Le processus 2TUP apporte une rØponse aux contraintes de changement continuel imposØes aux syst?mes d’information de l’entreprise. En ce sens, il renforce le contr le sur les capacitØs d’Øvolution et de correction de tels syst?mes. 2 Track signi ent littØralement que le processus suit deux chemins. Il s’agit des chemins fonctionnels et d’architecture technique , qui correspondent aux deux axes des changements imposØs au syst?me informatique.[9]
3.2.3.2 Le langage UML
UML (Uni ed Modeling Language), se dØ nit comme un langage de modØlisation graphique et textuel destinØ comprendre et dØ nir des besoins, spØci er et documenter des syst?mes, esquisser des architectures logicielles, concevoir des solutions et communiquer des points de vue. UML modØlise l’ensemble des donnØes et des traitements en Ølaborant des di Ørents diagrammes. [5]
En clair, il ne faut pas designer UML en tant que mØthode (Il y manque la dØmarche) mais plut t comme une boite d’outils qui sert amØliorer les mØthodes de travail.
3.2.3.3 L’intØrŒt d’UML
UML est un langage semi-formel et normalisØ : [6] Gain de prØcision.
Gagne de stabilitØ.
Encourage l’utilisation d’outils.
UML est un support de communication performant :
Il cadre l’analyse
Il facilite la comprØhension de reprØsentations abstraites complexes.
Son caract?re polyvalent et sa souplesse en font un langage universel.
3.2.3.4 DØ nition d’un mod?le
Un mod?le est une vue subjective mais pertinente de la rØalitØ. Un mod?le dØ nit une fronti?re entre la rØalitØ et la perspective de l’observateur. Ce n’est pas "la rØalitØ", mais une vue tr?s subjective de la rØalitØ. Bien qu’un mod?le ne reprØsente pas une rØalitØ absolue, un mod?le re ?te des aspects importants de la rØalitØ, il en donne donc une vue juste et pertinente. [6]
3.2.3.5 Les di Ørents types diagrammes d’UML
Figure 3.2 les diagrammes UML. [7]
3.3 Identi cation des acteurs
Un acteur reprØsente un r le jouØ par un utilisateur humain ou un autre syst?me qui interagit directement avec le syst?me ØtudiØ. Un acteur participe au moins un cas d’utilisation.[10]
Un acteur peut consulter et/ou modi er directement l’Øtat du syst?me, en Ømettant et/ou en recevant des messages susceptibles d’Œtre porteurs de donnØes.[11] Dans notre cas, nous avons un acteur qui est :
Utilisateur : a un acc?s au syst?me via un contr le d’acc?s (login et mot de passe).
Les opØrations qu’il peut e ectuer sont :
• Envoyer des invitations par nom d’utilisateur.
• A cher la liste des amis avec leurs statues (en ligne / hors ligne).
• Envoyer et recevoir des messages text.
• Accepter ou refuser des invitations.
• Se dØconnecter.
3.4 Diagramme de contexte du syst?me rØaliser
La gure ci-dessous montre l’interaction entre un acteur qui est l’utilisateur et le syst?me que nous allons mettre en place :
Figure 3.3 Diagramme de contexte du syst?me rØaliser.
3.5 Les Diagrammes des cas d’utilisation
Le diagramme de cas d’utilisation reprØsente la structure des grandes fonctionnalitØs nØcessaires aux utilisateurs du syst?me. C’est le premier diagramme du mod?le UML, celui oø s’assure la relation entre l’utilisateur et les objets que le syst?me met en oeuvre.
[10]
3.5.1 Le diagramme global des cas d’utilisations
Figure 3.4 Diagramme global des cas d’utilisations associØs aux acteurs.
3.5.2 Les di Ørents cas d’utilisation
L’Øtude de cas d’utilisation a pour objectif de dØterminer ce que chaque utilisateur attend du syst?me. La dØtermination du besoin est basØe sur la reprØsentation de l’interaction entre l’acteur et le syst?me.
chaque cas d’utilisation doit Œtre associØe une description textuelle des interactions entre l’acteur et le syst?me et les actions que le syst?me doit rØaliser en vue de produire les rØsultats attendus par les acteurs. Pour exprimer les cas d’utilisations de notre syst?me, nous avons choisi le formalisme suivant :
Table 3.1 Le formalisme de description des cas d’utilisation.
3.5.3 Authenti cation
Table 3.2 Description du cas d’utilisation Authenti cation .
Remarque
A1 (alternative) est une Øtiquette utilisØe dans le cas oø les informations saisies sont incompl?tes ou incorrectes pour que le syst?me rØa che le formulaire d’authenti cation
Diagramme du cas d’utilisation Authenti cation
Table 3.3 Diagramme du cas d’utilisation Authenti cation .
3.5.4 Ajouter un ami
Table 3.4 Description du cas d’utilisation Ajouter un ami .
Diagramme du cas d’utilisation Ajouter un ami
Table 3.5 Diagramme du cas d’utilisation Ajouter un ami .
3.5.5 Inscription / Enregistrement
Table 3.6 Description du cas d’utilisation Inscription / Enregistrement .
Diagramme du cas d’utilisation Inscription
Table 3.7 Diagramme du cas d’utilisation Inscription .
3.5.6 DØconnexion
Table 3.8 Description du cas d’utilisation DØconnexion .
Diagramme du cas d’utilisation DØconnexion
Table 3.9 Diagramme du cas d’utilisation DØconnexion .
3.5.7 Envoyer des messages
Table 3.10 Description du cas d’utilisation Envoyer des messages .
Diagramme du cas d’utilisation Envoyer des messages
Table 3.11 Diagramme du cas d’utilisation Envoyer des messages .
3.6 Diagrammes de sØquence
3.6.1 DØ nition d’un diagramme de sØquence
Un diagramme de sØquences est un diagramme d’interaction qui expose en dØtail la fa on dont les opØrations sont e ectuØes : quels messages sont envoyØs et quand ils le sont.
Les diagrammes de sØquences sont organisØs en fonction du temps qui s’Øcoule au fur et mesure que nous parcourons la page.
Les objets impliquØs dans l’opØration sont rØpertoriØs de gauche droite en fonction du moment oø ils prennent part dans la sØquence.[12]
3.6.2 Diagramme de sØquence du cas d’utilisation Inscription
Le diagramme de sØquence suivant illustre les interactions nØcessaire pour l’inscription de l’utilisateur.
Figure 3.5 Diagramme de sØquence du cas d’utilisation Inscription .
3.6.3 Diagramme de sØquence du cas d’utilisation Authenti cation
Le diagramme de sØquence suivant illustre les interactions nØcessaire pour l’authenti cation de l’utilisateur.
Figure 3.6 Diagramme de sØquence du cas d’utilisation Authenti cation .
3.6.4 Diagramme de sØquence du cas d’utilisation Ajout des amis
Le diagramme de sØquence suivant illustre les interactions nØcessaire pour ajouter des amis.
Figure 3.7 Diagramme de sØquence du cas d’utilisation Ajout des amis .
3.6.5 Diagramme de sØquence du cas d’utilisation Envoyer des messages .
Le diagramme de sØquence suivant illustre les interactions nØcessaire pour l’envoie des messages.
Figure 3.8 Diagramme de sØquence du cas d’utilisation envoyer des messages .
3.6.6 Diagramme de sØquence du cas d’utilisation DØconnexion
Le diagramme de sØquence suivant illustre les interactions nØcessaire pour la dØconnexion.
3.7 Diagramme de classe
3.7.1 DØ nition
Le diagramme de classes est considØrØ comme le plus important de la modØlisation orientØe objet, il est le seul obligatoire lors d’une telle modØlisation. Il montre la structure interne. Il permet de fournir une reprØsentation abstraite des objets du syst?me qui vont interagir pour rØaliser les cas d’utilisation. Il est important de noter qu’un mŒme objet peut tr?s bien intervenir dans la rØalisation de plusieurs cas d’utilisation. Les cas d’utilisation ne rØalisent donc pas une partition des classes du diagramme de classes. Un diagramme de classes n’est donc pas adaptØ (sauf cas particulier) pour dØtailler, dØcomposer, ou illustrer la rØalisation d’un cas d’utilisation particulier.
Il s’agit d’une vue statique, car on ne tient pas compte du facteur temporel dans le comportement du syst?me. Le diagramme de classes modØlise les concepts du domaine d’application ainsi que les concepts internes crØØs de toutes pi?ces dans le cadre de l’implØmentation d’une application. Chaque langage de Programmation orientØ objet donne un moyen spØci que d’implØmenter le paradigme objet (pointeurs ou pas, hØritage multiple ou pas, etc.), mais le diagramme de classes permet de modØliser les classes du syst?me et leurs relations indØpendamment d’un langage de programmation particulier.
Les principaux ØlØments de cette vue statique sont les classes et leurs relations : association, gØnØralisation et plusieurs types de dØpendances, telles que la rØalisation et l’utilisation. [22]
3.7.2 Diagramme de classe de l’application
Figure 3.10 Diagramme de classe.
3.7.3 R?gle de dØrivation du mod?le relationnel partir d’un mod?le de classes
• R?gle 1 : Transformation des classe Chaque entitØ devient une relation.[13]
Figure 3.11 Passage d’une classe a une relation.
• R?gle 2 : Association un-a-plusieurs Il faut ajouter un attribut de type clØ Øtrang?re dans la relation ls de l’association. L’attribut porte le nom de la clØ primaire de la relation p?re de lassociation.[13]
• R?gle 3 : Association un-a-un Il faut ajouter un attribut clØ Øtrang?re dans la relation dØrivØe de l’entitØ ayant la cardinalitØ minimale Øgale zØro. Dans le cas de UML, il faut ajouter un attribut clØ Øtrang?re dans la relation dØrivØe de la classe ayant la multiplicitØ minimale Øgale un. L’attribut porte le nom de la clØ primaire de la relation dØrivØe de l’entitØ (classe) connectØe l’association.[13]
L’application des r?gles de passage ØnumØrØes prØcØdemment, nous permet d’avoir le mod?le relationnel de la base de donnØes du notre application mettre en uvre
• Users (id_user, pseudo, mot_de_passe, email, status, add_ip, port) ; status = En ligne / Hors ligne.
• Amis (id_user1#, id_user2#, status) ; status = En ligne / Hors ligne.
• Messages (id_message, id_user1#, id_user2#, message_texte, status) ; Status = lu / non lu
• Invitations (id_inv, id_user1#, id_user2#, status) ; status (Accepter / Refuser); Id_user1= Ømetteur, id_user2 = rØcepteur
3.8 Conclusion
Ce chapitre nous a permis de prØsenter le langage de modalisation UML et le processus de dØveloppement uni Ø (Uni ed Processus). Ensuite on a dØterminØ le cadre du projet de rØalisation de l’application et de dØ nir les besoins, en identi ant toutes les entitØs internes qui vont interagir avec le syst?me (acteurs).Nous avons reprØsentØ l’ensemble de sØquence d’actions, en identi ant les cas d’utilisation de tous les acteurs du syst?me. En suite, nous avons ressensØ la description graphique des cas d’utilisation, en rØalisant des diagrammes de sØquence dØcrivant les scØnarios nominaux des cas d’utilisations essentiels.
En n, nous avons rØalisØ la conception appropriØe notre application selon les concepts de base de diagramme de classe ainsi que les r?gles de modØlisation. Ensuite, nous avons recensØ les r?gles de passage de diagramme de classe vers le mod?le relationnel qui nous permet d’avoir le schØma de la base de donnØes de l’application rØaliser. Cela fait la base pour la phase de rØalisation telle qu’on va garantir la abilitØ et l’e cacitØ.
Chapitre 4 RØalisation
4.1 Introduction
A ce stade du processus, les cas d’utilisation sont terminØs. Le probl?me a ØtØ analysØ en profondeur; nous avons dØ ni une conception mieux appropriØe aux besoins de l’application.
Ce chapitre est consacrØ la rØalisation et la mise en oeuvre de notre application de messagerie instantanØe, nous allons prØsenter les outils de dØveloppement adoptØs, soit l’environnement utilisØ qui est Eclipse, ainsi que les langages de programmation (JAVA, XML, PHP), et nous allons prØsenter le syst?me de gestion de base de donnØes wamp serveur (mysql serveur),ainsi le langage de manipulation de bases de donnØes SQL , et en n nous allons montrer les interfaces principaux et fenŒtres de l’application.
4.2 Outils de dØveloppement
4.2.1 Eclipse
Eclipse IDE est un environnement de dØveloppement intØgrØ libre (le terme Eclipse dØsigne Øgalement le projet correspondant, lancØ par IBM) extensible, universel, permettant potentiellement de crØer des projets de dØveloppement. Eclipse IDE est principalement Øcrit en Java ( l’aide de la biblioth?que graphique SWT, d’IBM), et ce langage, gr ce des biblioth?ques spØci ques, est Øgalement utilisØ pour Øcrire des extensions. [23]
4.2.2 Langage Java
C’est un langage de programmation orientØ objet, dØveloppØ par Sun Microsystems. Il permet de crØer des logiciels compatibles avec de nombreux syst?mes d’exploitation (Windows, Linux, Macintosh, Solaris). Java donne aussi la possibilitØ de dØvelopper des programmes pour tØlØphones portables et assistants personnels. En n, ce langage peut Œtre utilisØ sur internet pour des petites applications intØgrØes la page web (applet) ou encore comme langage serveur (jsp). [24]
4.2.3 Langage XML
Le langage XML (eXtended Markup Language) est un format gØnØral de documents orientØ texte. Il s’est imposØ comme un standard incontournable de l’informatique. Il est aussi bien utilisØ pour le stockage de documents que pour la transmission de donnØes entre applications. Sa simplicitØ, sa exibilitØ et ses possibilitØs d’extension ont permis de l’adapter de multiples domaines allant des donnØes gØographiques au dessin vectoriel en passant par les Øchanges commerciaux. De nombreuses technologies se sont dØveloppØes autour de XML et enrichissent ainsi son environnement.[15]
Le langage XML dØrive de SGML (Standard Generalized Markup Language) et de HTML (HyperText Markup Language). Comme ces derniers, il s’agit d’un langage orientØ texte et formØ de balises qui permettent d’organiser les donnØes de mani?re structurØe.
[15]
4.2.4 JSON
JSON (JavaScript Object Notation Notation Objet issue de JavaScript) est un format lØger d’Øchange de donnØes. Il est facile lire ou Øcrire pour des humains. Il est aisØment analysable ou gØnØrable par des machines. Il est basØ sur un sous-ensemble du langage de programmation JavaScript. JSON est un format texte compl?tement indØpendant de tout langage, mais les conventions qu’il utilise seront famili?res tout programmeur habituØ aux langages descendant du C, comme par exemple : C lui-mŒme, C++, C, Java, JavaScript, Perl, Python et bien d’autres. Ces propriØtØs font de JSON un langage d’Øchange de donnØes idØal. [25]
JSON se base sur deux structures : [25]
• Une collection de couples nom/valeur. Divers langages la rØi ent par un objet, un enregistrement, une structure, un dictionnaire,une liste typØe ou un tableau associatif.
• Une liste de valeurs ordonnØes. La plupart des langages la rØi ent par un tableau, un vecteur, une liste ou une suite.
4.2.5 SDK
SDK est l’acronyme anglais pour Software Development Kit, il s’agit gØnØralement d’un ensemble d’outils d’aide la programmation proposØ aux dØveloppeurs par l’Øditeur d’un environnement de programmation spØci que ou d’un syst?me d’exploitation.
Un SDK comprend gØnØralement des fonctionnalitØs d’aide la programmation et des outils de dØbuggage ou debogage.
Les SDK sont relativement couramment utilisØs dans le domaine du marketing digital. Ils sont par exemple utilisØs pour programmer des crØations spØci ques en rich media, des applications Facebook ou des applications mobiles. Les dØveloppeurs d’applications mobiles utilisent par exemple l’IOS SDK et l’Android SDK. [26]
4.2.6 Android dØveloppement tools (ADT)
Android Development Tools (ADT) est un plugin pour l’IDE Eclipse qui Øtend les capacitØs d’Eclipse qui nous permettre de con gurer rapidement de nouveaux projets Android, crØer une interface utilisateur de l’application, ajouter des paquets basØe sur l’API Framework Android, dØboguer nos applications utilisant les outils de SDK Android , et mŒme exporter signØ (ou non signØ) des chiers .apk a n de distribuer notre application.
[27]
4.2.7 Android virtual device (AVD)
L’Android Virtual Device, aussi appelØ AVD, est un Ømulateur de terminal sous Android, c’est- -dire que c’est un logiciel qui se fait passer pour un appareil sous Android sur ordinateur. C’est la raison pour laquelle on a pas besoin d’un pØriphØrique sous Android pour dØvelopper et tester la plupart des applications! En e et, une application qui a che un calendrier par exemple peut tr?s bien se tester dans un Ømulateur, mais une application qui exploite le GPS doit Œtre ØprouvØe sur le terrain pour que l’on soit certain de son comportement. [16]
Voici notre emulateur :
4.2.8 Wamp server (Mysql serveur)
Pour implØmenter notre base des donnØes, nous avons utilisØ l’environnement de crØation de base de donnØes PHPMyAdmin et le syst?me de gestion de base de donnØs MySQL. PrØsentation
WampServer est une plateforme de dØveloppement Web sous Windows. Il permet de dØvelopper des applications Web dynamiques l’aide du serveur Apache2, du langage de scripts PHP et d’une base de donnØes MySQL. Il poss?de Øgalement PHPMyAdmin pour gØrer plus facilement les bases de donnØes.
Langage de Manipulation de Bases de DonnØes MySQL
Est un syst?me de gestion de base de donnØes qui g?re les chiers constituant une base, consiste en un ensemble de programme chargØ de gØrer une ou plusieurs base de donnØes et qui fonctionne selon une architecture client/serveur, MySQL propose une reprØsentation extrŒmement simple de l’information sous forme de table. MYSQL est aussi libre et gratuit. Si nous avons choisi ce SGBD c’est plus pour des raison de performance et de fonctionnalitØ ouverte, MYSQL est beaucoup moins complexe installer et administrer que d’autre syst?me[17]
4.2.9 Langage PHP
PHP est un langage de programmation informatique essentiellement utilisØ pour produire la volØe des pages web dynamiques. Dans sa version 5 lancØe en juillet 2004, PHP s’est imposØ comme le langage de rØfØrence sur le web en raison de sa simplicitØ, de sa gratuitØ et de son origine de logiciel libre.
PHP est considØrØ par certains comme une plateforme de dØveloppement en raison de l’Øtendue et de la richesse de sa biblioth?que. [28]
4.2.10 Notepad++
Notepad++ est un Øditeur de texte tr?s lØger, tr?s puissant et libre (licenceGPL). Il est parfait pour programmer avec des langages ne nØcessitant pas d’environnement de dØveloppement (html, css, javascript, php) ou en ayant un peu pratique (python, processing), ou pour du traitement de donnØes. Il prend en charge par dØfaut une cinquantaine de langages di Ørents.[29]
4.3 PrØsentation des interfaces de l’application
Dans ce qui suit, nous allons prØsenter les interfaces de notre application.
4.3.1 Interface d’acceuil
Cette interface o re un aper u de la page d’acceuil de l’application. Elle o re aux utilisateurs un service d’inscription et d’identi cation.
Figure 4.5 Interface d’identi cation.
4.3.2 Interface d’inscription
Cette gure o re un aper u de l’interface de crØation d’un nouveau compte.
Sur cette interface, l’utilisateur doit saisir un pseudo (identi ant), un email et un mot de passe,puis cliquer sur le bouton inscrire.
Figure 4.6 Interface d’inscription.
4.3.3 Interface de la Liste d’amis
La premi?re fois que l’utilisateur se connecte son compte, cette interface s’a che et lui indique que sa liste d’amis est vide.
Figure 4.7 Interface de la Liste d’amis.
4.3.4 Menu Ajouter un nouveau ami / DØconnexion
Sur Cette interface, l’utilisateur aura la possibilitØ d’ajouter des amis, ou encore de se dØconnecter de son compte.
Figure 4.8 Menu Ajouter un nouveau ami / DØconnexion .
4.3.5 Interface d’ajout des amis
L’interface ci-dessous met en disposition de l’utilisateur la possibilitØ d’ajouter un ami en inscrivant l’identi ant de ce dernier.
Figure 4.9 Interface d’ajout des amis.
4.3.6 Barre des noti cations
Sur cette interface, l’utilisateur aura un accØs sur l’ensemble de ses noti cations :rØception de messages et nouvelles invitations.
Figure 4.10 Barre des noti cations.
4.3.7 Interface de con rmation des invitations
L’utilisateur aura aussi la possibilitØ d’accepter ou de refuser une invitation.
4.3.8 Interface de la Liste des amis en ligne et hors ligne
L’interface ci-dessous est un exemple sur la vue de la liste d’amis (en ligne et hors ligne).
Figure 4.12 Interface de la Liste des amis en ligne et hors ligne.
4.3.9 Interface de discussion
Sur cette interface, l’utilisateur pourra consulter ses messages echangØs avec un correspondant, ainsi que relancer la discussion.
4.4 Conclusion
La phase rØalisation est l’Øtape la plus importante dans le cycle de vie d’une application. Dans ce chapitre, nous avons dØcrit bri?vement le processus de rØalisation de notre application en spØci ant l’environnement de dØveloppement associØ notre syst?me. En e et, nous avons achevØ l’implØmentation tout en respectant la conception ØlaborØe. En dautres termes, nous dØtenons la version nale de l’application, installØe dans notre environnement de dØveloppement.
Conclusion gØnØrale et Perspectives
Nous sommes parvenus, par le biais de ce projet, rØaliser une application qui fonctionne sous Android qui permet aux utilisateurs d’Øchanger des messages textes et les sauvegarder dans une base de donnØes.
Au cours de la phase d’analyse nous avons structurØ et dØ ni les besoins du syst?me. Il s’agit de formuler, d’a ner et d’analyser la pluparts des cas d’utilisations par les diagrammes UML.
La phase de conception suit immØdiatement la phase d’analyse, il s’agit alors d’Øtendre la reprØsentation e ectuØe au niveau de l’analyse en y intØgrant les aspects techniques les plus proches des prØoccupations des besoins techniques. L’ØlØment principal livrer au terme de cette phase est le diagramme de classe ainsi que le schØma relationnel.
En n, nous avons entamØ la rØalisation en utilisant les outils d’implØmentation appropriØs l’intØgration du contenu, la gestion de la base de donnØes (MySQL), et prØsenter les di Ørentes interfaces de notre apllication.
Ce travail nous a permis d’apprendre ØnormØment de choses concernant le dØveloppement sous Android, et ce mØmoire prØsente notre premi?re expØrience pour la mise en oeuvre d’une application mobile, Øgalement nous avons appris manipuler toute une panoplie d’outils :Eclipse supportant l’IDM, Wamp server, et quelques langages de programmation telles que JAVA,XML,PHP.
Ce fut une occasion pour nous de complØter de mani?re transversale nos compØtences en informatique, d’Ølargir et d’approfondir nos connaissances et les apprØcieraux diverses rØalitØs du terrain. Cependant des perspectives d’amØliorations de notre application restent envisageables pour Œtre enrichie par des fonctionnalitØs avancØes telles que :
• La suppression des amis.
RØalisation Chapitre 4
• La modi cation des identi ants.
• CrØation des groupes de discussions.
• Partage des chiers.
• Renforcer la sØcuritØ en limitant le nombre de tentatives d’authenti cations .
Bibliographie
[1] TAAKAM R. Le multimØdia mobile, master 2 syst?me d’information multimØdia et internet 2010.
[2] COSTENOBEL G. et BAROIS P. Projet text to speech, UniversitØ Lille 1 Sciences et technologies, 2010/2011.
[3] BENNEFOI F. Terminaux mobiles communications (TMC), Programmation Android, Avril 2011.
[4] Agence RØgional de SantØ(ARS), messagerie instantanØe, manuel d’utilisation, ARS-IM- MANUTIL, Manuel Utilisateur.
[5] ROQUES P. les cahiers du programmeur UML2, 4eme Edition EYROLLES, 2008.
[6] STEFFE J. Cours UML, ENITA de Bordeaux, mars 2005. Et DIGALLO F.
MØthodologie des syst?mes d’information-UML, CNAM (Conservatoire National des Arts et MØtiers) 2000/2001.
[7] AYADI H. et ASLI F. Conception et rØalisation d’un syst?me de messagerie Ølectronique, dØpartement d’informatique. Licence en informatique, 2010/2012.
[8] ROQUES P et VALLEE F. UML en action de l’analyse des besoins a la conception en JAVA , 2eme Edition EYROLLES, 2003.
Bibliographie
[9] JOCOBSON I. et BOOCH G. et RUMBAUGH J. Le processus uni e de dØveloppement (the uni ed software developement process), Edition EYROLLES, 2000.
[10] AUDIBERT L. UML 2.0, dØpartement informatique, IUT (Institut Universitaire de Technologie de Villetaneuse.
[11] ROQUES P. UML2 par la pratique 5eme Edition EYROLLES, 2006.
[12] RAISSI A. mØmoire de MASTER, conception et dØveloppement d’un site web de e-commerce pour le compte de LSAT NOKIA, 2012/2013, UniversitØ virtuelle de TUNIS.2011
[13] MOGHRANI A. et AZZOUG Z. conception et rØalisation d’une application de suivi des patients dans un Øtablissement hospitalier, UniversitØ Abderrahmane Mira-BØja a-licence informatique 2009.
[14] CLAUDE A. et LEGRAND M. Membres du GREG et enseignantes en Terminale ACA et BTS Assistant de Gestion PME-PMI, , 2004.
[15] CARTON O. L’essentiel de XML, cours de M2 Pro l’UniversitØ Paris Diderot.
[16] ESPIAU F. CrØez des applications pour Android, AnnØe 2013.
[17] ROEGEL D. Oracle : sql, IUT Nancy 2 , ,AnnØe 1998/1999.
Webliographiques
[18] http di Ørents types d’applications mobile.
[19] http : gØnØralitØs et contexte des syst?mes dexploitation mobile, 2012.
[20] http
[21] http
[22] http
[23] http .
[24] http .
[25] http .
[26] http nition-SDK.
[27] http .
[28] http .
[29] http
RØsumØ :
La disponibilitØ croissante des mobiles prØsente un avantage pour les usagers comme pour les dØveloppeurs des applications. Le dØveloppement des applications mobiles se positionne actuellement comme une activitØ majeure du gØnie logiciel.
Le secret des appareils mobiles repose sur les syst?mes d’exploitation qu’ils utilisent, ils fournissent des caractØristiques favorables un dØveloppement rØussi des di Ørentes applications sur mobiles.
Le but de mØmoire est la conception et la rØalisation d’une application de chat messagerie instantanØe qui fonctionne sous le syst?me Android. Pour la dØvelopper, nous avons utilisØ plusieurs technologies parmi lesquelles, nous citons : La plateforme Android en utilisant son outil de dØveloppement SDK Android, le format lØger d’Øchange de donnØes JSON , le langage UML pour rØaliser l’Øtude conceptuelle du syst?me, le PHP pour la gestion de base de donnØes et le MySQL comme serveur de base de donnØes.
Mots clØs : Android, Application mobile, Messagerie instantanØe, UML.
Abstract :
The increasing availability of mobile is an advantage for users as for developers of applications, the development of mobile applications is currently positioned as a major activity of software engineering.
The secret of mobile devices is based on the operating systems they use, they provide favorable characteristics for successful development of di erent applications on mobile.
The aim of this dissertation is the design and implementation of an application of "instant messaging" that runs under the Android system. To develop it we used several technologies : The Android platform using the Android SDK development tool,JSON, UML to achieve the conceptual design of the system, PHP to manage the data base and MySQL as the database server.
Key words : Android, Mobile application, Instant messaging, UML,