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

 > 

Développement d'une application d'apprentissage de langue.

( Télécharger le fichier original )
par Moïse Coumbassa
Faculté des Sciences Juridiques Economique et de Gestion de Jendouba - Licence Fondamentale en Informatique Appliqué en Gestion 2012
  

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

_

REPUBLIQUE TUNISIENNE

MINISTERE DE L'ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE

Université de Jendouba

Faculté des Sciences Juridiques, Economiques et de Gestion de Jendouba

Mémoire de projet de fin d'études

Présenté en vue de l'obtention du

Diplôme de Licence Fondamentale en Informatique Appliquée à la Gestion

Par

Moïse Coumbassa

Sujet

Développement d'une application mobile d'apprentissage d'une langue

Encadré par : Talel Zid

Année universitaire : 2012 - 2013

Table des matières

TABLE DES MATIÈRES 1

TABLE DES FIGURES 3

LISTE DES TABLEAUX 4

INTRODUCTION  GÉNÉRALE: 5

CHAPITRE 1 6

PRÉSENTATION DU SUJET 6

INTRODUCTION 7

I. PRÉSENTATION DU SUJET : 7

II. MÉTHODOLOGIE DE CONCEPTION : 7

1. MÉTHODE EXTERME PROGRAMMING (XP) 8

2. LA MÉTHODE 2 TRACK UNIFIED PROCESS (2TUP) : 9

3. LA MÉTHODE UP (UNIFIED PROCESS) : 11

4. ETUDE COMPARATIVE ENTRE LES TROIS MÉTHODES : 14

CONCLUSION : 14

CHAPITRE 2 16

ETUDE PRÉLIMINAIRE 16

INTRODUCTION : 17

I. ETUDE DE L'EXISTANT : 17

1. BUSUU : 17

2. LINGLING : 18

3. BABEL : 18

4. MOSALINGUA : 19

II. ANALYSE DES BESOINS  FONCTIONNELS 19

III. ANALYSE DES BESOINS NON FONCTIONNELS : 20

CONCLUSION : 21

CHAPITRE 3 22

CONCEPTION 22

INTRODUCTION 23

I. DIAGRAMME DE CAS D'UTILISATION : 23

1. DÉFINITION : 23

2. DESCRIPTION DES CAS D'UTILISATION : 24

3. DESCRIPTION DU VOCABULAIRE PAR THÈME : 25

4. DESCRIPTION DE LA GRAMMAIRE PAR THÈME : 27

II. DIAGRAMME DE CLASSE : 31

1. LISTE DES CLASSES ET DES ATTRIBUTS : 31

2. DIAGRAMME DE CLASSES : 31

III. DIAGRAMME DE SÉQUENCES 32

I. CAS DE L'APPRENANT : 32

1. DICTIONNAIRE 33

2. VOCABULAIRE : 34

3. ACCÉDER À LA GRAMMAIRE 36

CONCLUSION 36

CHAPITRE 4 37

RÉALISATION & TEST 37

INTRODUCTION 38

I. ENVIRONNEMENT DE TRAVAIL : 38

1. ENVIRONNEMENT MATÉRIEL : 38

2. ENVIRONNEMENT LOGICIEL : 38

II. DESCRIPTION DES OUTILS 39

1. XML 39

2. JAVA 39

3. SQLITE 39

4. STARUML 40

III. CONFIGURATION DE L'ENVIRONNEMENT DE DÉVELOPPEMENT INTÉGRÉ (IDE) : 40

1. INSTALLATION DU JDK (JAVA DÉVELOPPEMENT KIT) 40

2. INSTALLATION DU SDK D'ANDROID : 41

3. OUVERTURE D'ECLISPSE POUR LE PARAMÉTRAGE DU PLUGIN ADT 43

4. CRÉATION D'UN AVD (ANDROID VIRTUAL DEVICE) : 45

IV. PRÉSENTATION DES INTERFACES : 47

1. MENU PRINCIPAL DE L'APPLICATION 47

2. GRAMMAIRE PAR THÈME : 48

3. GRAMMAIRE CONTENUS D'UN THÈME D'ÉTUDE 49

4. VOCABULAIRE PAR THÈME 50

5. VOCABULAIRE CONTENUS D'UN THÈME D'ÉTUDE 51

6. DICTIONNAIRE 52

7. VOCABULAIRE RECHERCHE PAR MOT CLÉ : 53

CONCLUSION GÉNÉRALE 55

BIBLIOGRAPHIE 56

Table des Figures

Figure 1: graphe représentant eXterme programming 2

Figure 2 : graphe représentant la méthode two track unified process 11

Figure 3: graphe représentant le processus unifié 13

Figure 4 : Diagramme de Cas d'utilisation global 25

Figure 5 : diagramme de cas d'utilisation vocabulaire par thème 26

Figure 6 : diagramme de cas d'utilisation grammaire par thème 28

Figure 7: Diagramme de classe 33

Figure 8:Dictionnaire rechercher le mot et sa définition 34

Figure 9 : Accès vocabulaire recherche par mot clé 35

Figure 10 : Règles grammaticale et phrase d'exemple 37

Figure 11:Installations du JDK 42

Figure 12: Installation du SDK Android 43

Figure 13: Installation des Configurations des Framework d'android OS 44

Figure 14: URL Plugin 45

Figure 15: Barre de Menu et d'outils pour la création de L'AVD 46

Figure 16:Création de l'Android Virtual Device 47

Figure 17: Menu principal 48

Figure 18: la grammaire par thème 49

Figure 19: Contenus d'un thème 50

Figure 20: Vocabulaire par thème 51

Figure 21: Contenus d'un thème d'étude 52

Figure 22 : Dictionnaire rechercher un mot et sa définition 53

Figure 23: Vocabulaire recherche par mot clé 54

Liste des Tableaux

Tableau 1: représentant les points forts et faible de XP 2

Tableau 2: point fort et point faible du two track unified process 11

Tableau 3: points forts et point faible de processus unifié 13

Tableau 4: Tableau de Comparaison 15

Tableau 5: Classe et Méthode 32

Tableau 6: Outils de développement 39

Introduction  Générale:

Le développement de l'informatique mobiles'est accéléré depuis le 21esiècle. Denouveaux dispositifs (mobiles, tablette PC, PDA, téléphone mobile, Smartphone, etc.) Offrent une portabilité accrue de l'information et des communications sans fil (Wifi, Bluetooth, UMTS, etc...). Ces technologies ont influencées les changements des comportements et les habitudes des usagers dans beaucoup de secteurs comme l'éducation, la vie quotidienne, et l'apprentissage. Les technologies mobiles peuvent avoir une grande influence sur l'apprentissage. L'apprentissage commence à sortir des salles de cours et à entrer dans des environnements moins classiques, liés au contexte de l'apprenant. L'apprentissage devient ainsi situé, contextuel, personnel, collaboratif, et continu tout au long de la vie de l'apprenant. Utiliser des dispositifs mobiles pour apprendre, n'importe où et n'importe quand c'est l'objectif de l'apprentissage mobile (Mobile Learning M-Learning).

Étant donné qu'une langue ason rythme, ses liaisons et son fonctionnement. C'est à force d'apprendre et d'écouter régulièrement qu'on se familiarise avec une langue authentique telle qu'elle est parlée au quotidien. Cet apprentissage de langue s'il est fait par un système mobile facilitera la tâche à l'apprenant (utilisateur) pour apprendre de manière formelle et non formelle.

Dans ce travail il est question de réaliser une application qui permettra à l'utilisateur d'un terminal mobile équipé de la plate-forme Android, d'apprendre une langue de manière authentiques, telle qu'on l'utilise à l'orale. Et permettre aussi à l'usager de tirer profit de l'application et de toutes les fonctionnalités qui lui seront intégrés.

En grande partie, il comprend la conception et la réalisation de l'application. Ainsi une étude préalable du sujet est nécessaire : la présentation du sujet, les besoins fonctionnels et non fonctionnels. Au niveau de la conception nous parlerons de toutes les fonctionnalités de l'application à créer, les acteurs intervenants et les méthodes de conception. Dans la réalisation, nous allons programmer les interfaces et vues permettant de faire fonctionner l'application.

Chapitre 1

Présentation du sujet

Introduction 

Etudier un projet consiste à concevoir, créer et réaliser un logiciel à partir d'un besoin à satisfaire, le logiciel peut être entièrement nouveau ou être amélioré à partir d'un produit existant. Cette démarche peut être expliquée par son illustration systémique. C'est dans ce cadre que se situe le présent chapitre. Il porte sur la présentation du sujet et de sa description méthodologique.

I. Présentation du sujet :

Notre sujet intitulé «développement d'une application mobile d'apprentissage d'une langue » consiste à créer une application d'apprentissage d'une langue vivante, partant des activités (communément appelé interfaces) spécifiques à la programmation android pour apprendre une langue à travers des terminaux mobiles (tablette PC, Smartphone, Personal digital Assistant(PDA), téléphone mobile etc.). De sorte à ce que l'utilisateur (apprenant), se familiarise à cette langue. Il s'agit de proposer des activités de lecture, d'écoute de mot, d'accès au vocabulaire de la recherche par mot clé, l'étude de la grammaire en consultant les règles grammaticale et les phrases d'exemples.

II. Méthodologie de conception :

Une méthodologie d'analyse de conception est un procédé qui a pour objectif de permettre la formalisation des étapes préliminaires du développement d'un système afin de rendre ce développement plus fidèle aux besoins des utilisateurs. Pour cela nous partons d'un énoncé informel : le besoin exprimé par l'utilisateur, ainsi que l'analyse de l'existant éventuel.

Ils existent plusieurs méthodes de conception, nous présenterons quelques-unes, et par la suite nous ferons une nette comparaison entre elles dans le but de sélectionner la méthode la plus adaptée à notre projet.

1. Méthode eXterme Programming (XP)

La méthode eXterme Programming a été inventée par Kent Beck, Ward Cunningham et Ron Jeffries pendant leur travail sur un projet « C3 (de calcul des rémunérations) » celle-ci est née officiellement en octobre 1999avec le livre eXterme Programming Explained de Kent Beck. XP est une méthode agileplus particulièrement orientée sur l'aspect réalisation d'une application. Elle définit un certain nombre, recommande de bonnes pratiques permettant de développer un logiciel dans les conditions optimales en plaçant le client au centre du processus de développement.

XP est notamment basé sur les concepts suivants :

· Les équipes de développeur travaillent directement avec le client sur des cycles très courts d'une à deux semaines maximum.

· Les livraisons de version du logiciel interviennent très tôt et à une fréquence élevée pour maximiser l'impact des retours utilisateurs.

· l'équipe de développeur travaille en collaboration totale sur la base de binôme.

· le code est testé et nettoyé tout au long du processus de développement.

· Les indicateurs permettent de mesurer l'avancement du projet afin de permettre une mise à jour du plan de développement.

Figure 1: graphe représentant eXterme programming

Point fort  et faible de la méthode XP :

XP

eXterme Programming

Point fort

Point faible

-Itératif

-Simpleàmettreenoeuvre

Faitunelargeplaceauxaspectstechniques:prototypes,règlesdedéveloppement,tests...

- Necouvrepaslesphasesenamontetenavalaudéveloppement descapturesdesbesoins,support, maintenance,testsd'intégration...

- Eludelaphase

d'analyse,sibienqu'onpeutdépensersonénergieàfaireetdéfaire

- Assezfloudanssa

miseenoeuvre:quelsintervenants,quelslivrables

Tableau 1: représentant les points forts et faible de XP

2. La Méthode 2 Track Unified Process (2TUP) :

2TUP est un processus de développement logiciel qui implémente le processus unifié (la méthode générique de développement logiciel proche des mécanismes architecturaux de RUP « Rational Unified Process »). Chacune des étapes du cycle découle des précédentes. Il préconise un cycle de vie en y, et s'apparente  à un cycle de développement en cascade, par ailleurs elle est incrémentale : à partir de la capture des besoins fonctionnels, on définit plusieurs cas d'utilisation représentant chacun un incrément du cycle de développement. Elle favorise des formes de recherche de qualité et de performance intéressante telle que le service réutilisation.

Figure 2 : graphe représentant la méthode two track unified process

Point fort  et faible duTwo track unified process :

2UTP

Two track unified process

Point fort

Point faible

- Itératif

- Donneuneplace importanteàlatechnologieetàlagestiondurisque

Définitlesprofilsdesintervenants,leslivrables, lesplannings,lesprototypes

- Plutôtsuperficielsurlesphasessituéesenamontetenavaldudéveloppement:capturedesbesoins,support,maintenance,gestionduchangement...

- Neproposepasde

documentstypes

Tableau 2: point fort et point faible du two track unified process

3. La Méthode UP (Unified Process) :

Unifed Process est une méthode générique de développement de logiciel. Générique c'est-à-dire qu'il est nécessaire d'adapter UP au contexte du projet, de l'équipe, du domaine d'application ou de l'organisation. C'est une méthode de prise en charge de cycle de développement d'un logiciel, et par ailleurs du développement pour les logiciels orienté objets. UP est un processus de développement incrémental et itératif ce qui signifie que le projet est découpé en phases très courtes à l'issu de chacune desquelles une nouvelle Version incrémentée est livrée.

Les principales caractéristiques du processus unifié sont :

· le processus unifié est à la base de composants.

· le processus unifié utilise le langage UML (ensemble d'outils et de diagramme).

· le processus unifié est piloté par les cas d'utilisation.

· centré sur l'architecture.

· itératif et incrémental.

L'objectif principal d'un système logiciel est de rendre un service à ses utilisateurs, il faut par conséquent comprendre les désirs et les besoins des utilisateurs du futur système. Le processus de développement est donc centré sur l'utilisateur. Le terme utilisateurs ne se focalisant pas seulement sur les utilisateurs humains mais également les autres systèmes. L'utilisateur représente donc une personne ou un objet dialoguant avec le système en cours de développement.

Figure 3: graphe représentant le processus unifié

Point fort  et point faible du processus unifié :

UP

Processus Unifié

Point fort

Point faible

Distingue clairement les phases projet

· itératif

· Ne propose pas de modèles de documents

Tableau 3: points forts et point faible de processus unifié

· Le Processus Unifié est centré sur l'architecture

Dès le démarrage du processus, on aura une vue sur l'architecture à mettre en place. L'architecture d'un système logiciel peut être décrite comme les différentes vues du système qui doit être construit. L'architecture logicielle équivaut à l'aspect statique et dynamique les plus significatifs du système. Elle émerge des besoins de l'entreprise, tels qu'ils sont exprimés par les utilisateurs et autres intervenants et tels qu'ils sont reflétés par les cas qui sont exprimés par les utilisateurs et autres intervenants et également tels qu'ils sont reflétés par les cas d'utilisation.

· Le Processus Unifié est itératif et incrémental

Le développement d'un produit logiciel destiné à la commercialisation est une vaste entreprise qui peut s'étendre sur plusieurs mois. On ne va pas tout développer d'un coup. On peut découper le travail en plusieurs parties qui sont autant de mini projets. Chacun d'entre eux représentant une itération qui donne lieu à un incrément.

Une itération désigne une succession des étapes de l'enchaînement d'activités, tandis qu'un incrément correspond à une avancée dans les différents stades de développement.

Le choix de ce qui doit être implémenté au cours d'une itération repose sur deux facteurs :

Une itération prend en compte un certain nombre de cas d'utilisation qui ensemble, améliore l'utilisabilité du produit à un certain stade de développement. Elle traite en priorité les risques majeurs.

Le processus unifié répète un certain nombre de fois une série de cycles. Chaque cycle se traduit par une nouvelle version du système.

Le processus unifié qui n'utilise pas le cycle de vie en cascade, puis qu'est-elle trop figé et rigide, Et les tests seront fait à chaque itération sans attendre la fin du projet.

4. Etude comparative entre les trois méthodes :

Le tableau ci-dessous présente une comparaison entre ces trois méthodes

Critère

XP (eXterme Programming)

2TUP ( Two Track Unified Process)

UP (Unified Process)

Accueil du changement

Flexible et adaptable

Adaptable

Adaptable

Collaboration Etroite avec le client

OUI

OUI

OUI

Application Fonctionnelles

Assez fonctionnelle

Assez fonctionnelle

Assez fonctionnelle

Documentation

Non

OUI

Oui

Processus et outils

Non

OUI

OUI

Cycle de vie

Non

En (Y)

En (v)

Taille de l'Equipe du projet

De petite Equipe et de petits projets

Petite et grandes équipes autant que pour le projet

Petites et grandes équipe autant que pour le projet

Tableau 4: Tableau de Comparaison

Après cette brève comparaison, notre choix s'est porté sur la méthode UP, car elle est beaucoup plus complète que les méthodes agiles (XP). De même, elle s'avère aussi être beaucoup plus simple que la méthode 2TUP.

Au faite elle se base sur UML (Unified Modeling Language) raison pour laquelle notre choix sera centré sur la méthode XP.

Conclusion :

Le présent chapitre avait pour objectif de présenter le cadre général de notre projet, qui consiste à développer une application d'apprentissage d'une langue. De cette étude, il en ressort que, du fait de sa simplicité, notre travail devrait être fait sur la base de l'Unified Process, basé sur le langage UML. Ceci nous amène donc à introduire notre second chapitre qui est l'étude de l'existant et l'analyse des besoins.

Chapitre 2

Etude préliminaire

Introduction :

L'analyse des besoins est une démarche qui « consiste à rechercher et à caractériser les fonctions offertes par une application pour satisfaire les besoins de ses utilisateurs. Tel est l'objectif de ce chapitre, qui portera sur l'étude de l'existant. Nous présenterons quelques logiciels existants par la suite l'analyse des besoins fonctionnels et non fonctionnels.

I. Etude de l'existant :

L'étude de l'existant est une phase importante pour bien comprendre notre application actuelle et définir ses objectifs. L'application est sensée offrir à l'utilisateur des unités d'apprentissage. Cependant elle permettra de mettre à profit, l'apprentissage d'une langue vivante en toute simplicité en offrant à l'apprenant des activités d'apprentissage en partant du vocabulaire de base illustré par les mots et les phrases. Parlant d'une application d'apprentissage, elle fournit les activités telles que la révision lors d'un apprentissage déjà fait, la sauvegarde, ainsi qu'un dictionnaire. Généralement les applications mobiles d'apprentissage sont des applications ayant pour but de combiner les perspectives pédagogiques aux technologies. Nous présenterons quelques applications mobiles d'apprentissage de langue existantes :

1. Busuu :

Busuu est une application mobile d'apprentissage d'une langue, elle permet d'apprendre la langue de façon idéal où que tu sois. Qui est centré sur des unités d'apprentissage du vocabulaire complet environs 3000 mots et phrases clés, ainsi qu'un niveau débutant et avancé, par ailleurs un nombre de sujet différents avec des situations de la vie quotidienne, un outil d'apprentissage audio-visuel complet comprenant des images et des enregistrements effectuer. Il est conçu sur la base de modèle très court car elle dispose d'une version gratuite (d'essais) qui n'offre que 20 unités d'apprentissages, la version complète peut être achetée directement dans l'application. Cette application d'apprentissage de langue appelée busuu est disponible en plus de onze langues différentes. Elle offre à ses usagers de synchronisés leurs progrès lors de l'apprentissage sur la toile via leurs site www.busuu.com, l'une des célèbres communautés d'apprentissage de langue en ligne.

2. LingLing :

Lingling est une application mobile qui utilise une répétition espacée d'apprentissage, qui est basé sur la courbe de l'oubli d'Hermann Ebbinghaus établit qu'après une séance de lecture qu'on a oublié plus de 50% à 80% des informations qu'on a lues. Elle présente un apprentissage de la langue avec beaucoup d'amusement, pour ses développeurs ces deux facteurs accélère le processus d'apprentissage jusqu'à 20 fois. De plus le lingling dispose plus de 42000 mots et enregistrement disponible dans 18 langues, et une possibilité d'apprendre plus de 10 000 mots par an.Au dire de son représentant aucun programme informatique ou application, ou méthode ne pouvant le faire au paravent. Cette application permet à ses utilisateurs d'apprendre la langue à travers le choix des paquets, le choix d'un avatar est indispensable pour débuter l'apprentissage avec le lingling, d'où une possibilité est offerte à l'apprenant de changer son avatar au cours de l'apprentissage elle offre également d'apprendre de nouveaux mots par jours, ainsi que de replanifier l'apprentissage, constituer de différentes parties élémentaires d'apprentissage les autres parties seront acheté dans l'application valables pour les autres niveau à savoir l'avancé et expert. Elle présente des fonctionnalités telles que les mini jeux après avoir mémorisé un certains nombres de mots, et le défis entre apprenant à la base des apprentissages effectués.

3. Babel :

Cette application permet d'apprendre une langue en toute simplicité. Apprendre le vocabulaire n'importe quand et n'importe où sur votre terminal mobile ainsi que les outils d'une reconnaissance vocale et un vocabulaire de base avancé lui sont intégrés. Elle contient plus de 2000 et 3000 mots de vocabulaire par langue. Tous ces mots et phrase sont illustrés par des images et prononcé par un locuteur natif, et une reconnaissance vocale qui lui est intégrée et permettant aux usagers d'améliorer leur prononciation et de constater leurs progrès. Babel analyse les termes et phrases que vous avez appris et vous interroge sur ceux-ci, exactement au bon moment. Ceci permet d'assimiler le vocabulaire de façon durable, sans effort supplémentaire. Babel est un logiciel qui sert à divertir, car la lecture est relativement facile mais la prononciation pas du tout. Cette application vous aidera pour cela et vous divertira dans le processus.

4. Mosalingua :

Comme toute application mobile d'apprentissage mosalingua, permet tout simplement d'apprendre et de s'améliorer dans plusieurs langues étrangères (Anglais, anglais business, espagnol, italien et allemand). L'application comprend également un système de répétition espacé capable de calculer le planning adapté au niveau utilisateurs, de ses difficultés et de son emploi du temps pour favoriser l'apprentissage.

Dans mosalingua est inclut :

· 3000 cartes composées de mots et de phrases avec prononciation audio par des natifs

· 14 grandes catégories (comme exemple : les bases indispensables, achat, tourisme, informatique, social, urgence, etc.) et plus de 100 sous-catégories (exemple : au restaurant, acheter et négocier, sport etc.  .)

· Dix niveaux disponibles (essentiel) 

· Des conseils d'apprentissage et des petits dialogues.

Toutes ces applications étant performantes les unes des autres présentent de nombreuses fonctionnalités. Toutefois, elle propose des défauts de ne pas avoir un dictionnaire, donc qui n'offrent pas à l'apprenant de connaitre le contexte d'un mot qui ne lui est pas familier.

II. Analyse des Besoins  fonctionnels

L'analyse fonctionnelle, permet d'aboutir à un résultat satisfaisant et efficace du thème d'étude, il faut à ce stade définir avec précision la bordure de la solution à développer. Ceci inclut l'énumération des différents services que notre application est supposée offrir à l'utilisateur.

Notre solution qui consiste au développement d'une application mobile d'apprentissage d'une langue vivante est sensée offrir  aux usagers :

v Pour cela la création d'une base de données sera nécessaire, afin de mieux gérer nos interfaces, en vue d'établir un vocabulaire de base ainsi que la grammaire et y stocker les mots nécessaires.

v L'application devra également être dotée d'un dictionnaire dans le but de permettre à l'utilisateur, de mieux comprendre les mots et phrases ainsi que leurs contextes à partir de laquelle l'utilisateur pourra écouter quelques mots recherchés.

v L'utilisation de dictionnaire hors ligne

III. Analyse des besoins non fonctionnels :

Un besoin non fonctionnels est une restriction ou une contrainte qui pèse sur un service du système, telle que les contraintes liées à l'implémentation, les exigences en matière de performance, les dépendances de plate-forme, la facilité de maintenance, l'extensibilité et la fiabilité.

ü L'ergonomie des interfaces 

La solution doit présenter une interface ergonomique englobant toutes les fonctionnalités offertes. La manipulation des interfaces ne doit pas nécessité une connaissance poussée en informatique, elle doit être simple et claire afin de s'adapter aux connaissances informatiques de notre utilisateur.

ü Fiabilité et rapidité 

Notre système doit garantir la rapidité et la fiabilité de la recherche, ainsi que la gestion optimale des ressources.

ü La compatibilité de l'application avec différent système ou plateforme 

La compatibilité de l'application avec d'autre plateforme n'a pas d'impact sur le logiciel à développer.

Conclusion :

Ce chapitre nous a permis l'élaboration du cahier de charge, il a également permis d'avoir un aperçu plus net des besoins auxquels devra répondre notre application. Avec ces besoins qui ont été spécifié nous pouvons commencer le chapitre suivant qui est la conception.

Chapitre 3

Conception

Introduction

La conception d'un système d'information ou d'un projet c'est la pierre angulaire dans tout développement logiciel. Elle permet de modéliser le projet à travers ses diagrammes, à partir des besoins recueillis auprès des utilisateurs. Il est indispensable de biens les comprendre et les décrire avec des diagrammes qui seront utilisés dans le projet. Nous allons commencer par les diagrammes de cas d'utilisation, en suite le diagramme de classes et en fin le diagramme de séquences.

I. Diagramme de cas d'utilisation :

1. Définition :

Le Diagramme de cas d'utilisation permet d'obtenir un certain nombre d'informations qui ont été recueillis auprès des utilisateurs. Ces besoins spécifient l'utilisation du système dans ses aspects statiques. Elle est l'image des fonctionnalités du système déclenchées en réponse à la stimulation d'un acteur.

2. Description des cas d'utilisation :

Figure 4 : Diagramme de Cas d'utilisation global

v Apprenant :

L'apprenant (acteur externe au système) est celui sur qui sont focalisées les unités d'apprentissage. Bien qu'il soit le seul utilisateur du système. Il peut consulter les fonctionnalités telles que le vocabulaire, le dictionnaire et la grammaire.

v Vocabulaire :

Ce cas d'utilisation sera doté des fonctionnalités telles que :les mots et phrases illustrés par thème, dont le système offrira à l'utilisateur dans le but de mettre à profit une bonne connaissance linguistique en fonction d'un ensemble de termes utilisés.

v Grammaire :

Ce cas d'utilisation nous illustre une possibilité d'apprendre la grammaire par thème, et de bénéficier de toutes ses unités proposées.

v Dictionnaire :

Le système offre la possibilité à l'utilisateur de rechercher un mot, pour connaître la définition du mot et son contexte.

v Rechercher Mot:

Ce cas d'utilisation formalise une dépendance d'obligation avec le dictionnaire, elle permet à l'apprenant d'écouter un mot recherché par l'utilisateur.

Diagramme d'utilisation Vocabulaire cas par cas et recherche par thème :

Ce diagramme nous permettrons d'illustrer certains cas d'utilisation du système, en essayant de faire une recherche par thème du vocabulaire étudié fournies par l'application en vue de mieux cerner les limites du système.

3. Description du Vocabulaire par thème :

Figure 5 : diagramme de cas d'utilisation vocabulaire par thème

Description textuelle des cas d'utilisations :

a. Service 1 : «  Sélectionner un thème »

Sommaire d'identification

Titre : choix par thème du vocabulaire

Résumé : ce cas d'utilisation permet à l'utilisateur de choisir un thème d'étude du vocabulaire.

Acteur : apprenant / l'utilisateur du Terminal Mobile, du smart phone ou du PDA.

Description des Scénarios :

Pré condition : Aucune

Scénario Nominal :

1. L'utilisateur demande au système le vocabulaire et ainsi que les thèmes d'études.

2. Le système lui offrira à son tour une Interfaces contenant les vocabulaires par thème.

3. L'utilisateur pourra parcourir la liste du vocabulaire ou sélectionner un thème.

4. Le système affiche le thème d'étude et offre la possibilité à l'utilisateur d'apprendre.

b. service 2 : « recherche par mot clé »

Sommaire d'identification :

Titre : Recherche par mot clé

Résumé : Ce cas d'utilisation permet à l'apprenant de faire la recherche du vocabulaire par mot clé.

Acteur:apprenant / l'utilisateur du Terminal Mobile, du smart phone ou du PDA.

Pré conditions : Aucune

Scénario nominal :

1. L'utilisateur Edit un mot recherché et presse le bouton de rechercher

2. Le système recherche le mot dans la base de données si le mot existe il affiche le mot et sa traduction.

4. Description de la Grammaire par thème :

Figure 6 : diagramme de cas d'utilisation grammaire par thème

Description textuelle des cas d'utilisation :

a. Service 1 : « Etude de Grammaire par thème  »

Sommaire d'identification

Titre : choix d'une Catégorie grammaticale

Résumé : ce cas d'utilisation permet à l'utilisateur de choisir un thème d'étude de la grammaire.

Acteur : apprenant / l'utilisateur du Terminal Mobile, du smart phone ou du PDA.

Description des Scénarios :

Pré condition : Aucune

Scénario Nominal :

1. L'utilisateur demande au système la grammaire et ainsi que les thèmes d'études.

2. Le système lui offre à son tour une Interfaces contenant la grammaire par thème.

3. Le choix de l'utilisateur se portera sur un thème choisi.

4. Le système affiche le thème d'étude et offre la possibilité à l'utilisateur d'apprendre la grammaire.

b. Service 2 : « Consulter des d'exemples »

Sommaire d'identification :

Titre : consulter des exemples

Résumé : Ce cas d'utilisation permet de consulter les exemples de phrase de chaque catégorie grammaticale sélectionné par l'apprenant.

Acteur : apprenant/l'utilisateur du Terminal Mobile, du smart phone ou du PDA.

Description des Scénarios :

Pré conditions : Aucune

Scénarios nominal :

1. l'utilisateur demande une catégorie grammaticale.

2. le Système lui affiche le contenu d'une catégorie et l'offre la possibilité d'apprendre à travers les phrases d'exemples, et règle grammaticale.

b. Service 2 : « Etude de Grammaire par thème  »

Sommaire d'identification

Titre : choix d'une Catégorie grammaticale

Résumé : ce cas d'utilisation permet à l'utilisateur de choisir un thème d'étude de la grammaire.

Acteur : apprenant / l'utilisateur du Terminal Mobile, du smart phone ou du PDA.

Description des Scénarios :

Pré condition : Aucune

Scénario Nominal :

1. L'utilisateur demande au système la grammaire et ainsi que les thèmes d'études.

2. Le système lui offre à son tour une Interfaces contenant la grammaire par thème.

3. Le choix de l'utilisateur se portera sur un thème choisi.

4. Le système affiche le thème d'étude et offre la possibilité à l'utilisateur d'apprendre la grammaire.

b. Service 2 : « Consulter des d'exemples »

Sommaire d'identification :

Titre : consulter des exemples de phrase et règle grammaticale

Résumé : Ce cas d'utilisation permet de consulter les exemples de phrase et règle grammaticale de chaque catégorie grammaticale sélectionné par l'apprenant.

Acteur : apprenant/l'utilisateur du Terminal Mobile, du smart phone ou du PDA.

Description des Scénarios :

Pré conditions : Aucune

Scénarios nominal :

1. l'utilisateur demande une catégorie grammaticale.

2. le Système lui affiche le contenu d'une catégorie et l'offre la possibilité d'apprendre les règles grammaticales.

II. Diagramme de Classe :

Les diagrammes de classes expriment de manière générale l'aspect statique du système, en termes de classe et de relation entre ses classes. Une classe décrit un ensemble d'objet (attribut et comportement). Ainsi ses relations ou associations permettent d'établir un lien entre ses objets.

1. Liste des Classes et des Attributs :

Classes

Attributs

Méthodes

Thème

Contenus

 

Mot

Id_mot

mot

Définition

prononciation

Ecouter ()

Ajouter ()

Catégorie grammaticale

Id_categorie

Libellé

 

Exercice

Id_exercice

Description

 

Tableau 5: Classe et Méthode

2. Diagramme de Classes :

Figure 7: Diagramme de classe

III. Diagramme de Séquences 

Le diagramme de séquence est un diagramme qui permet d'illustrer l'interaction entre les objets. Participant à une interaction qui particulière et les messages qu'ils échangent organisés en séquences chronologique. Axés sur ce que fait un système et non sur la manière dont il le fait, un diagramme de séquence définit la logique d'une instance particulière d'un cas d'utilisation. En général, dans un diagramme de séquence, la Dimension Verticale représente les heures (de haut en bas) appelé ligne de vie et la dimension horizontales représente les différents objets.

Les principales informations contenues dans un diagramme de séquence sont les messages échangés entre les lignes de vie, présents dans un ordre chronologique. Ainsi contrairement au diagramme de communication, le temps y est représenté explicitement par une dimension (la dimension verticale) et s'écoule de haut en bas.

Pour cela, nous allons détailler les diagrammes des cas d'utilisation de que service du système.

IV. Cas de L'apprenant :

1. Dictionnaire

Figure 8:Dictionnaire rechercher le mot et sa définition

L'apprenant déclenche une opération de recherche en saisissant un mot  le système (interface) va traduire cette demande en contrôle qui va à son tour la traduire à la table mot à une recherche de données saisie. Si celles-ci existe, le mot sera alors afficher, sinon rien ne sera afficher.

2. Vocabulaire :

Figure 9 : Accès vocabulaire recherche par mot clé

Pour avoir accès au vocabulaire, l'apprenant doit au préalable sélectionner le vocabulaire tout en accédant à la liste de vocabulaire, puis sélectionner un thème d'étude. Ou choisir une recherche par mot clé puis le système lui afficher le résultat de la recherche.

3. Accéder à la Grammaire 

Figure 10: Règles grammaticale et phrase d'exemple

Cette Séquence, illustre comment se passe l'accès à la rubrique grammaire, au préalable l'apprenant doit sélectionner la grammaire par la suite choisir une catégorie grammaticale puis le système va l'afficher la grammaire et sont Contenus.

Conclusion

Dans ce chapitre, nous avons développé notre approche méthodologique grâce au langage UML, nous avons essayé de montrer en détail et la manière dont chacune des fonctions doit être exécutée en un premier temps et par la suite nous avons eu à présenter une conception de notre système.

Notre étude conceptuelle terminée, nous allons entamer la réalisation proprement dite de notre projet.

Chapitre 4

Réalisation & test

Introduction

Ce chapitre fait l'objet de la réalisation du projet proprement dite. Il s'agit de l'implémentation du code et la mise en oeuvre du système à concevoir. Dans ce cadre nous commencerons à présenter l'environnement de travail et matériel ainsi que le logiciel utilisé. Par la suite, l'illustration des interfaces de notre application.

I. Environnement de Travail :

La réalisation de ce travail a nécessité l'usage de plusieurs outils matériel et logiciel à savoir :

1. Environnement matériel :

Le matériel utilisé pour ce travail est un ordinateur dont les références sont les suivantes :

v Portable HP 630

v Processeur : Intel Core i3 CPU M370 @ 2.4GHz 240.GHz

v RAM : 4.00 Go

v DD : 500 Go

v OS : Windows 7 Edition Intégrale

1. Environnement Logiciel :

Les outils logiciel qui ont été utilisé pour ce travail son récapitulé dans le tableau ci-dessous.

Système d'Exploitation

Windows 7

Langage de développement

XML Java

Outils de Développement

Eclipse

SGBD

SQLite

Modélisation

StarUML

Tableau 6: Outils de développement

II. Description des Outils

1. XML

XML (Extensible Markup Language) se traduit comme un langage de balisage étendu, ou langage à balisage extensible. Il est en quelque sorte un langage qui permet de définir de nouvelle balise. Il s'agit effectivement d'un langage permettant de mettre en forme les interfaces graphiques sous android et d'y placée les vues grâce aux balises (markup).

2. Java

Le Langage Java fut développé en 1991 par James Gosling et Partrick Naughton  de Sun Microsystems, mais également un environnement d'exécution.

Ce groupe de chercheur spécialisé dans le développement de logiciel conçus pour contrôler des appareils électronique. Et souhaitaient développer un langage de programmation qui permette de contrôler les appareils du futur.

Java peut être segmentée en deux parties votre programme écrit en langage java et d'autre part, une machine virtuelle JMV (Java Virtual Machine) qui va se charger de l'exécution de votre programme java. C'est cette plateforme qui garantit la portabilité de Java puisse fonctionner.

Avec ce langage, on peut développer, des applications (console), développer des applications mobiles, développer des applets pour vos sites web, développer des sites JSP.

3. SQLite 

Le SQLite est une base de données très appréciée car elle fournit une interface SQL tout en offrant une empreinte mémoire très réduite et une rapidité de traitement suffisante. En outre il appartient au domaine public tout le monde peut l'utiliser. De nombreuse société (Adobe, Apple, Google, Sun, Symbian) et plusieurs open-source (Mozilla, Php, Phyton) fournissent désormais des produits intégrants le SQLite. Le SQLite est SGBD étant intégré au moteur d'exécution d'Android.

4. StarUML 

StarUML est un Logiciel de modelage UML qui est rentré récemment dans le monde de l'Open Source. Ecrit en Delphi, il est modulaire et propose plusieurs générateurs de code. Centré sur UML, il permet donc de représenter sous forme graphique les digrammes qu'il propose. C'est un logiciel efficace, facile à prendre en main, avec ses points forts et ses points faibles.

Son principal avantage est que tous les diagrammes UML 1.x peuvent être générés. La possibilité du code source est un avantage indéniable pour l'utilisateur afin d'assurer la pérennité du logiciel.

Cependant ce qu'on lui reproche est qu'il n'est disponible que sous Windows.

Notre choix c'est porté sur ce logiciel car il est simple et pratique. De plus, notre méthodologie étant basée sur UML, StarUML convient le mieux pour modéliser nos diagrammes.

III. Configuration de l'environnement de développement intégré (IDE) :

1. Installation du JDK (Java Développement Kit)

Une fois que la Machine Virtuelle est lancée, on procède à l'installation de l'environnement Java Oracle JDK 7.

Figure 11:Installations du JDK

Au préalable, il faut commencer par préparer l'environnement sous Windows et télécharger les outils nécessaires ; suivi de l'installation Android SDK, Après avoir Installé la plateforme Android, on continue avec l'installation des outils nécessaire comme cela :

2. Installation du SDK d'Android :

L'installation du Sdk Android nécessite au préalable la préparation de l'environnement sous Windows télécharger les outils nécessaire ; suivi de l'installation d'Android SDK.

Figure 12: Installation du SDK Android

L'installation du SDK seras suivie de l'installation des différentes composantes du l'Android SDK. Le lancement de «Android SDK Manager » depuis la racine du dossier ou à partir du menu démarrer nous avions la possibilité de voir les «périphériques virtuelles » (Virtual Devices) appelé couramment émulateurs, les packages installés disponibles « Avaible Packages » là où on trouve la liste des Packages installés disponibles disponible chez Google ou chez des développeurs tierce parties.

Figure 13: Installation des Configurations des Framework d'android OS

3. Ouverture d'eclispsepour le paramétrageduplugin ADT

Un IDE est un logiciel dont l'objectif est de faciliter le développement, généralement pour un ensemble restreint de langages. Il contient un certain nombre d'outils, dont au moins un éditeur de texte souvent étendu pour avoir des fonctionnalités avancées telles que l'auto-complétion ou la génération automatique de code des outils de compilation et un débogueur. Dans le cas du développement Android, un IDE est très pratique pour ceux qui souhaitent ne pas avoir à utiliser les lignes de commande. Eclipse est l'IDE le plus répandus chez les développeurs pour la programmation en Java. Il n'a pas besoin d'être installé il s'exécute comme une application portable.

Paramétrage d'éclipse et installation du pluginADT

Figure 14: URL Plugin

Afin d'intégrer les outils d'Android dans Eclipse il faut installer Android Développement Tools (ADT) à partir de l'url si vous posséder une connexion   Internet «  https://dl-ssl.google.com/android/eclipse/» Ces derniers constituent un plugin de IDE Eclipse pour l'installation de émulateur. Il étend la capacité de l'IDE pour l'OS de Google, permettant de Compiler, d'exécuter du code Android, de créer des interfaces graphiques. Après cela notre environnement de travail prêt à l'emploi.

4. Création d'un AVD (Android Virtual Device) :

Un AVD qui est aussi appelé Android Virtual Device, est un émulateur de terminal sous Android, c'est-à-dire c'est un logiciel qui fait croire à la machine (ordinateur) qu'il est un appareil mobile sous Android. C'est la raison pour laquelle vous n'avez pas besoin de périphérique pour l'exécution de nos applications il va nous falloir un AVD pour ce faire, dans le menu Windows de la barre de menu ou en cliquant sur l'icône. Pui ajouter un nouveau AVD en attribuant un nom et en choisissant la cible indiquant sa capacitéé de stockage.

Figure 15: Barre de Menu et d'outils pour la création de L'AVD

Figure 16:Création de l'Android Virtual Device

IV. Présentation des Interfaces :

1. Menu Principal de L'application

Figure 17: Menu principal

L'interface ci-dessus c'est le Menu principal de l'application elle constitué d'un listviewqui est composé de trois parties le dictionnaire, la grammaire et le vocabulaire.

2. Grammaire par thème :

Figure 18:la grammaire par thème

Cette interface résume les thèmes d'étude de la rubrique grammaire.

3. Grammaire Contenus d'un thème d'étude

Figure 19: Contenus d'un thème

Cette interface illustre le contenu d'un thème d'étude de la grammaire

4. Vocabulaire par thème

Figure 20: Vocabulaire par thème

Cette interface affiche les thèmes d'étude de la rubrique Vocabulaire Composé de deux boutons menus : la première rechercher permet de faire une recherche du vocabulaire par mot clé et le second bouton menu (quitter) permet un retour à l'interface d'accueil.

5. Vocabulaire Contenus d'un thème d'étude

Figure 21: Contenus d'un thème d'étude

Cette interface illustre le contenu d'un thème d'étude coté vocabulaire suite à la sélection d'un thème par l'apprenant.

6. Dictionnaire

Figure 22 : Dictionnaire rechercher un mot et sa définition

Cette interface illustre la recherche d'un mot et sa définition, ainsi lorsque l'utilisateur saisira un mot et cliqué sur le bouton de rechercher une réponse lui seras transmise si le mot existe dans la base si non rien ne seras affiché.

7. Vocabulaire recherche par mot clé :

Figure 23: Vocabulaire recherche par mot clé

L'interface si permet la recherche par mot clé pour y accéder l'apprenant doit au préalable sélectionner le vocabulaire par la suite presser le bouton menu de son mobile deux menus apparaîtront le premier rechercher le deuxième quitter. Appuyer sur le première, une nouvelle activité lui seras affiché par le système celle de la recherche par mot clé et l'apprenant pourra faire sa recherche par mot.

Conclusion

Dans ce chapitre, nous avons présenté la phase de l'implémentation de notre application tout en mentionnant l'environnement logiciel et matériel ainsi que les technologies utilisées.

L'aperçu de nos interfaces réalisés et des tests unitaires effectués qui nous ont permis de mieux cerner le principe de fonctionnement de notre application.

Conclusion générale

Ce projet a été mise en oeuvre dans le but d'offrir une solution logicielle autrement dit une application mobile d'apprentissage d'une langue vivante à travers les technologies mobiles (smart phone, personal digital assistant et terminaux mobile etc...). Pour y parvenir, il a fallu au préalable présenter notre sujet et définir la méthodologie de conception utilisée. Par la suite, l'étude de l'existant nous a permis de couvrir tous les besoins du point de vue utilisateur que nous aurons à traiter, notamment celui d'offrir une application facile à utiliser et de répondre aux attentes des utilisateurs. L'étude détaillée des diagrammes a facilité l'implémentation de nos interfaces.

Ce projet de fin d'étude m'a beaucoup appris, car chaque outil utilisé et chaque rechercher effectuée m'ont octroyé une nouvelle connaissance. Comme StarUML et l'environnement de développement Intégré utilisé. L'évolution constante et rapide des nouvelles technologies implique qu'une application comme la nôtre soit sans cesse améliorée, afin de présenter des fonctionnalités plus complètes et d'actualité. Un avantage certain serait de doter notre application d'un dictionnaire. Bien que la solution développée semble répondre aux besoins énumérés dans le cahier de charge, toute fois il faut révéler que cette solution s'adapterait mieux si l'application est implémentée via un serveur distant (le web service).

Bibliographie

hellart.fr/android/art_du_developpement_android.pdf

http://www.memoireonline.com/04/12/5643/m_Conception-et-realisation-d-une-application-de-gestion-du-personnel-cas-de--CONGELCAM-S-A5.html

http://manu.kegtux.org/

http://android.developpez.com/faq/?page=envId#pres_plugin

www.ecole.ensicaen.fr/~elallam/mini.../livrable_methode_comparatif.pdfý

http://manu.kegtux.org/Java/Tutoriels/Android/androidAvance.html#persistance

Webographies

http://www.anglaisfacile.com/free/news/pdf.php

http://www.siteduzero.com/informatique/tutoriels/creez-des-applications-pour-android/l-emulateur-de-telephone-android-virtual-device

http://fr.wikipedia.org/wiki/Extreme_programming

http://fr.wikipedia.org/wiki/Unified_Process

www.commentcamarche.net/contents/477-methodes-agiles-rad-xp

http://www.freewebs.com/fresma/Formation/UML/Processus%20Unifie.pdfý

http://marketing-webmobile.fr/2012/11/application-lingling-apprenez-une-langue-en-seulement-10-mois/

http://www.babbel.com/apprendre-anglais-en-ligne/61428-vocabulaire-et-phrases

fr.wiktionary.org/wiki/axe






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








"Je voudrais vivre pour étudier, non pas étudier pour vivre"   Francis Bacon