Vous êtes sur la page 1sur 65

Cycle de formation des ingnieurs en Tlcommunications

Option :

Wireless Networks and Communications (WINCOM)

Rapport de Projet de fin dtudes


Thme :

Conception et dveloppement d'une


application Client/Serveur Android/Tomcat
pour la gestion des projets

Ralis par :

Wafa KHROUF

Encadrants :

Mme Malek BEN YOUSSEF


M. Aymen ELLOUZE

Travail propos et ralis en collaboration avec

Anne universitaire : 2013/2014

Signatures des encadrants

M. Aymen ELLOUZE

Signature

Mme Malek BEN YOUSSEF

Signature

Ddicaces
A mon trs cher pre Habib,
A ma trs chre mre Nabila,
Nulle Expression ne peut tmoigner mes sentiments damour, de respects et de
gratitudes.
Je vous dois tout mon succs et mon bonheur.
Merci pour votre amour, vos efforts, vos sacrifices et vos prires.
Jespre du fond du cur tre digne de vous et sujet de fiert vos yeux en esprant ne
jamais vous dcevoir et tre toujours la hauteur de vos esprances.
Que ce travail soit le fruit de vos efforts, lexpression de mon amour et de ma gratitude.
Je vous suis ternellement reconnaissante.
Que Dieu vous protge et vous procure du bonheur et de la sant.
A mon trs cher frre Mohamed Ridha & sa femme Basma,
A ma trs chre sur Raafa & son mari Moez,
A ma trs chre soeur Mouna & son mari Ayman,
Quils trouvent ici le tmoignage de mon respect et de mon amour.
Que Dieu vous protge et vous donne la plus belle vie.
A toutes mes chres amies,
Merci pour votre aide et votre gentillesse.
A tous ceux que jai omis de citer, loubli du nom nest pas celui du cur,
Je ddie ce travail.

Rsum
Ce travail, effectu au sein de Telnet, sinscrit dans le cadre du projet de fin dtudes
en vue de lobtention du diplme dingnieur en tlcommunications. Il consiste mettre
en place une solution mobile Android pour la gestion des projets.
En effet, Telnet propose une solution Web appele ALM (Application Lifecycle Management) qui a pour but de grer les cycles de vie des projets labors au sein de lentreprise.
Cette solution Web, malgr son importance et son efficacit, nest pas suffisante pour satisfaire les besoins de ces utilisateurs du fait quon ne peut y accder qu travers un
ordinateur.
Dans ce cadre, notre projet a pour but de crer une solution mobile Android qui va
servir pour client de la solution Web utilis Telnet, et ceci afin de faciliter laccs aux
fonctionnalits usuelles dALM.
Mots cls : Solution mobile, Android, Gestion des projets et ALM.

ii

Remerciements
Je tiens exprimer mon respect et mes remerciements mon encadrant Telnet
Monsieur Aymen ELLOUZE pour son accueil, son assistance et ses conseils pertinents
tout au long de la priode de mon projet.
Je tiens aussi remercier mon encadrante de SupCom Madame Malek BEN
YOUSSEF pour ses conseils, son support et la grande patience quelle ma accorde
durant la ralisation de mon travail.
Ma gratitude et mes remerciements les plus sincres sont adresss mes parents pour
leur patience et leur soutien continus.
Je remercie par ailleurs toute personne qui, de prs ou de loin, ma aide pour bien
accomplir ce travail et le mener ses fins.

iii

Table des matires


Rsum

ii

Introduction gnrale

1 tude Pralable

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.1

Prsentation du cadre du projet . . . . . . . . . . . . . . . . . . . . . . . .

1.1.1

Prsentation de lorganisme daccueil . . . . . . . . . . . . . . . . .

1.1.2

Prsentation du sujet . . . . . . . . . . . . . . . . . . . . . . . . . .

1.1.2.1

tude de lexistant . . . . . . . . . . . . . . . . . . . . . .

1.1.2.2

Critiques de lexistant et solution propose . . . . . . . . .

1.1.2.3

Mthodologie adapte . . . . . . . . . . . . . . . . . . . .

tat de lart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2.1

Gestion du Cycle de vie des Applications (ALM)

. . . . . . . . . .

1.2.2

Plateforme Android . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2.2.1

Prsentation de la plateforme . . . . . . . . . . . . . . . .

1.2.2.2

Architecture dAndroid

. . . . . . . . . . . . . . . . . . .

1.2.2.3

Avantages de la plateforme Android . . . . . . . . . . . . .

Web Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2.3.1

Web service de type SOAP . . . . . . . . . . . . . . . . .

1.2.3.2

Web service de type REST . . . . . . . . . . . . . . . . .

1.2.3.3

Solution retenue . . . . . . . . . . . . . . . . . . . . . . . 10

1.2

1.2.3

1.2.4

1.2.5

Hibernate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.4.1

Couche DAO . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.2.4.2

Couche Service . . . . . . . . . . . . . . . . . . . . . . . . 12

Base de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
iv

Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2 Spcification des besoins et Conception

13

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1

Spcification des besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13


2.1.1

2.1.2

2.2

Analyse des besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . 13


2.1.1.1

Besoins fonctionnels . . . . . . . . . . . . . . . . . . . . . 14

2.1.1.2

Besoins non fonctionnels . . . . . . . . . . . . . . . . . . . 15

Spcifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.2.1

Prsentation des acteurs . . . . . . . . . . . . . . . . . . . 16

2.1.2.2

Diagrammes des cas dutilisation . . . . . . . . . . . . . . 16

Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.1

Conception globale . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.2.2

Conception dtaille . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.2.3

2.2.2.1

Diagramme de classes . . . . . . . . . . . . . . . . . . . . 20

2.2.2.2

Diagramme dactivits . . . . . . . . . . . . . . . . . . . . 24

2.2.2.3

Diagrammes de squences . . . . . . . . . . . . . . . . . . 26

Conception de la base de donnes . . . . . . . . . . . . . . . . . . . 28

Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3 Ralisation

32

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.1

3.2

Prsentation de lenvironnement de travail . . . . . . . . . . . . . . . . . . 32


3.1.1

Environnement matriel . . . . . . . . . . . . . . . . . . . . . . . . 32

3.1.2

Environnement logiciel . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.1.2.1

Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.1.2.2

SDK Android . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.1.2.3

Apache Tomcat . . . . . . . . . . . . . . . . . . . . . . . . 34

3.1.2.4

pgAdmin III

3.1.2.5

Photoshop CC . . . . . . . . . . . . . . . . . . . . . . . . 34

3.1.2.6

PowerAMC . . . . . . . . . . . . . . . . . . . . . . . . . . 35

. . . . . . . . . . . . . . . . . . . . . . . . . 34

Interfaces Homme Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . 35


3.2.1

Interface dauthentification . . . . . . . . . . . . . . . . . . . . . . . 36

3.2.2

Interface de la liste des projets . . . . . . . . . . . . . . . . . . . . . 37

3.2.3

Interface prsentant le contenu du projet slectionn . . . . . . . . . 39

3.2.4

Interface dajout de projet . . . . . . . . . . . . . . . . . . . . . . . 41

3.2.5

Interface dajout dlment de travail . . . . . . . . . . . . . . . . . 45

3.2.6

Interface dajout de commentaire un lment de travail . . . . . . 48

Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Conclusion gnrale et Perspectives

50

Bibliographie

51

Ntographie

52

vi

Table des figures


1.1

Architecture 3 tiers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2

Architecture du systme dexploitation Android[N3].

2.1

Diagramme des cas dutilisation global. . . . . . . . . . . . . . . . . . . . . 17

2.2

Diagramme du cas dutilisation Grer les lments de travail . . . . . . . 19

2.3

Le modles MVC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.4

Diagramme des classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.5

Diagramme dactivits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.6

Diagrammes de squences du scnario Sauthentifier . . . . . . . . . . . 27

2.7

Diagrammes de squences du scnario Afficher la liste des projets . . . . 28

2.8

Modle conceptuel de donnes. . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.1

Lancement du serveur Tomcat. . . . . . . . . . . . . . . . . . . . . . . . . 35

3.2

ProgressDialog de linterface dauthentification. . . . . . . . . . . . . . . . 36

3.3

Interface dauthentification. . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.4

ProgressDialog de linterface de la liste des projets. . . . . . . . . . . . . . 38

3.5

Interface de la liste des projets. . . . . . . . . . . . . . . . . . . . . . . . . 38

3.6

Interface des dtails du projet. . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.7

Interface de la liste des Work Items. . . . . . . . . . . . . . . . . . . . . . . 40

3.8

Dtails de llment de travail "ALM-1". . . . . . . . . . . . . . . . . . . . 41

3.9

Interface dajout de projet. . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

. . . . . . . . . . . .

3.10 Menu droulant correspondant "Customer". . . . . . . . . . . . . . . . . . 42


3.11 Date Picker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.12 Enregistrement du nouveau projet. . . . . . . . . . . . . . . . . . . . . . . 44
3.13 Liste des projets contenant le nouveau projet. . . . . . . . . . . . . . . . . 44
3.14 Dtails du nouveau projet. . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

vii

3.15 Interface dajout dlment de travail (1). . . . . . . . . . . . . . . . . . . . 46


3.16 Interface dajout dlment de travail (2). . . . . . . . . . . . . . . . . . . . 46
3.17 Listes des lments de travail contenant llment ajout. . . . . . . . . . . 47
3.18 Dtails du nouveau lment de travail. . . . . . . . . . . . . . . . . . . . . 47
3.19 Interface dajout de commentaire un lment de travail. . . . . . . . . . . 48
3.20 Vrification de lajout du nouveau commentaire. . . . . . . . . . . . . . . . 49

viii

Liste des tableaux


2.1

Prsentation des acteurs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.2

Tableau descriptif du cas dutilisation Sauthentifier . . . . . . . . . . . 18

3.1

Logiciels utiliss. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

ix

Liste des abrviations


ADT : Android Development Tools
ALM : Application Lifecycle Management
API : Application Programming Interface
DAO : Data Access Object
HQL : Hibernate Query Language
HTTP : HyperText Transfer Protocol
IDE : Integrated Development Environment
IHM : Interface homme machine
JDBC : Java DataBase Connectivity
JSON : JavaScript Object Notation
MCD : Modle Conceptuel de Donnes
ODBC : Open DataBase Connectivity
ORM : Object Relational Mapping
REST : Representational State Transfer
SDK : Software Development Toolkit
SGBD : Systme de Gestion de Base de Donnes
SGBDR : Systme de Gestion de Base de Donnes Relationnelles
SOAP : Simple Object Acces
SQL : Structured Query Language
UML : Unified Modeling Language
URI : Uniform Ressources Identifier
W3C : World Wide Web Consortium
XML : Extensible Markup Language

Introduction gnrale
Le nombre de solutions logicielles en gestion de projet augmente considrablement ces
dernires annes vu leurs utilits indniables. Dans ce cadre, Telnet adopte un solution
Web ALM qui rpond ce besoin. Toutefois, cette solution, malgr son importance et
son efficacit, manque dergonomie car elle nest accessible qu travers un ordinateur. De
plus, vu le dveloppement spectaculaire des applications de technologies de linformation
et des communications, on a cern la ncessit dune application mobile rendant possible
laccs aux fonctionnalits usuelles dALM (tels que la consultation des projets et des
tches correspondantes effectuer) via un appareil mobile.
Cest au sein de ce contexte que se situe le sujet de notre projet de fin dtudes effectu
Telnet Sfax. Il consiste en fait concevoir et dvelopper cette solution mobile.
Pour dcrire ce travail, notre rapport est organis en trois chapitres qui refltent la
dmarche utilise dans notre projet.
Dans le premier chapitre, on va mettre le projet dans son cadre, puis, on va prsenter
ltat de lart afin de dfinir les concepts lis ce projet sur le plan thorique.
Dans le deuxime chapitre, on va analyser et spcifier, dans sa premire partie, les
besoins fonctionnels et non fonctionnels et on va prsenter les diffrents cas dutilisation
qui y sont associs. On va ensuite consacrer sa deuxime partie la phase de la conception.
En effet, on va prsenter larchitecture de lapplication ainsi quune description dtaille
des diagrammes de classes, dactivits et de squences.
Finalement, on va aborder dans le dernier chapitre lenvironnement technique de ce
travail, ainsi que les outils utiliss. Par la suite, on va prsenter les principales interfaces
graphiques ralises et on va analyser les diffrents rsultats obtenus.

Chapitre 1
tude Pralable
Introduction
Dans ce chapitre, on va mettre le projet dans son cadre gnral. Au dbut, on va
prsenter lentreprise daccueil et lobjectif de notre projet. Ensuite, on va faire une tude
sur les technologies et les concepts sur lesquels se base notre projet.

1.1

Prsentation du cadre du projet

1.1.1

Prsentation de lorganisme daccueil

Telnet est un groupe tunisien de socits de services, dingnierie et de conseil dans


linnovation et les hautes technologies.
Cre en 1994, Telnet est rapidement devenu leader dans son cur de mtier lchelle
national. Telnet a cherch depuis sa cration largir ses champs de comptences afin
de proposer ses clients des prestations de qualit diversifies selon les spcifications
demandes. Dans un souci de proximit de ses clients, Telnet opre selon un modle Front
office / Back office, elle propose essentiellement des prestations dingnierie en Offshore
et en Nearshore pour le compte des plus grands groupes internationaux.
Telnet est considre comme un acteur majeur dans le domaine des hautes technologies et occupe un positionnement de plus en plus important lchelle rgional.
Telnet dveloppe une expertise mtier notamment dans le dveloppement de Systmes Intgrs, le design lectronique et Micro-lectronique ainsi que dans lingnierie
Mcanique.
2

Le groupe Telnet propose un ventail de comptences considrable. Il uvre dans les


secteurs dactivit suivants :
Tlcommunications & Multimdia ;
Transport & Automotive ;
Dfense & Avionique ;
Scurit & Carte puce ;
Industrie ;
Systmes dinformation.
Telnet dispose dun centre de dveloppement qui a t certifi CMMi niveau 5 en
2006 et ISO 9001 version 2008, ce qui lui permet de garantir la scurit, la confidentialit
et la proprit intellectuelle de ses prestations.

1.1.2

Prsentation du sujet

1.1.2.1

tude de lexistant

ALM est une application utilise par Telnet. Elle assure la gestion des projets, laffectation des ressources et llaboration des plannings et le suivi des projets.
Lapplication ALM existante Telnet est une solution Web. Donc, il nest possible dy
accder qu partir du navigateur dun ordinateur puissant.
1.1.2.2

Critiques de lexistant et solution propose

La solution Web dALM nest pas suffisante pour satisfaire aux besoins de ces utilisateurs. En fait, elle nest pas trs pratique, surtout quon a parfois besoin dy accder pour
faire des tches simples ou mme pour donner des commentaires.
Cest pour cela quon a pens dvelopper une application mobile conviviale qui assure
laccs et la manipulation de diffrentes fonctionnalits fournis par lapplication ALM.
Citons lexemple dun dveloppeur qui accde son compte sur cette application et
passe pour voir les nouvelles tches qui lui sont affectes. En les lisant, il dcouvre quil a
besoin dune simple clarification de lune de ces tches. Il crit donc sa question comme
un "work item" (lment de travail). Mais, il savre que le chef du projet est en congs,
donc il devra travailler laveuglette jusquau retour de celui-l. Par contre, si le chef de
projet possde cette application sur son tlphone mobile, il va tout simplement rpondre

la question de cet employ sans perdre beaucoup de temps (pour ne pas tre drang
pendant son congs).
On peut remarquer de cet exemple que cette application mobile peut encourager les
employs et surtout les chefs des projets de se rassurer du bon droulement de leurs projets
mme pendant leurs vacances, ce qui est important pour le bien de lentreprise.
1.1.2.3

Mthodologie adapte

Pour raliser notre projet, on a adopt larchitecture 3 tiers pour ses diffrents avantages. Dabord, elle permet aux donnes dtre gres dune faon centralise. Elle permet
aussi de sparer les 3 couches habituelles dune application : IHM, traitements et donnes[N1].
Notre application sera donc compose de 3 couches indpendantes :
. Couche prsentation qui correspond lapplication Android.
. Couche traitements qui est compose de la couche service et la couche web service.
. Couche daccs aux donnes qui est compose de la couche DAO et la base de
donnes.
La figure 1.1 prsente larchitecture de lapplication ainsi que les relations entre les
diffrentes couches quon a cites et quon va dtailles dans la partie suivante.
La sparation entre les couches a pour but de rendre indpendante chacune des couches
afin de simplifier la maintenance et les volutions futures de lapplication (par exemple,
changement de systme de base de donnes, portage dun environnement graphique un
autre, ...). Elle assure une scurit plus importante car laccs la base de donnes nest
autoris que par la couche traitements.

Application Android

Web Service

Service
Hibernate
DAO

Base de donnes
Figure 1.1 Architecture 3 tiers.

1.2

tat de lart

Dans cette partie, on va commencer par dfinir dune faon dtaille la solution ALM
utilise par Telnet pour la gestion des projets. Ensuite on va tudier la plateforme Android
tout en justifiant le choix de celle-ci dans le dveloppement de notre application mobile.
Puis, on fera une comparaison entre les technologies de services web pour en choisir la
meilleure. Enfin, on va dfinir Hibernate (voir figure 1.1).

1.2.1

Gestion du Cycle de vie des Applications (ALM)

La Gestion du cycle de vie des Applications (ou ALM pour Application Lifecycle
Management) est la gestion coordonne du cycle de dveloppement dune application

logicielle de son ide initiale sa livraison et sa maintenance impliquant tous les acteurs
participant au projet, tout en appliquant les processus propres lentreprise[N2].
ALM fournit des outils pour lquipe dingnieurs pour la gestion du dveloppement
logiciel (Software Development Lifecycle) et des outils adapts pour les autres personnes
impliques dans le projet.
ALM concerne toutes les entreprises de tous les secteurs car en ralit leurs besoins sont
similaires. En effet, linnovation logicielle est devenue un facteur clef de comptitivit pour
les entreprises. La bonne gestion de leur portefeuille de projets prend une place capitale
pour ces entreprises dites High-Tech .
Lobjectif gnral de lALM est damliorer la gestion des projets logiciels et de leurs
dveloppements. De plus, ALM permet de :
. Industrialiser les dveloppements ;
. Amliorer la qualit des livrables ;
. Obtenir la traabilit des changements ;
. Suivre en temps rel lavancement des projets ;
. Rduire les cots et respecter les dlais ;
. Amliorer la productivit ;
. Grer les risques ;
. Faciliter la collaboration et la communication entre les membres.

1.2.2

Plateforme Android

On a choisi Android comme plateforme dimplmentation de lapplication mobile.


Donc, on donnera dans cette partie un aperu sur cette plateforme, puis, on prsentera
ses atouts.
1.2.2.1

Prsentation de la plateforme

Android est un systme dexploitation Open Source destin tourner sur des terminaux mobiles, promu par Google et lOpen Handset Alliance qui comprend plus de 35
constructeurs, fournisseurs de logiciel, et oprateurs. Il concurrence des plateformes telles
que liOS dApple, Windows Mobile de Microsoft, RIM OS intgr dans les BlackBerry
de Research In Motion, WebOS dHP Bada de Samsung, ou encore Symbian et MeeGo
de Nokia.

Exploiter une nouvelle plateforme nest pas toujours aussi vident. Cest pourquoi
Google fournit, en plus du systme dexploitation, un kit de dveloppement (Software
Development Toolkit ou SDK). Ce dernier est un ensemble doutils qui permet aux dveloppeurs et aux entreprises de crer des applications Android[1]. Le SDK Android est
compos de plusieurs lments pour aider les dveloppeurs crer et maintenir leurs
applications (des API (interfaces de programmation), des exemples de code, de la documentation, des outils (parmi lesquels un mulateur)) permettant de concevoir et de
dvelopper des applications assez complexes, bases sur le langage Java et destines
tourner sur des terminaux quips de lOS Android.
1.2.2.2

Architecture dAndroid

Pour bien comprendre la plateforme Android, on va expliquer larchitecture du systme


Android.
Les composants majeurs de la plateforme Android sont rsums dans la figure 1.2.
En tant que systme dexploitation, Android est compos de cinq couches :
Le noyau : Cest une couche de bas niveau, base sur un noyau Linux, qui assure la
communication entre la couche logicielle et le matriel.
Des bibliothques : Il sagit dun ensemble de bibliothques, en C/C++, qui offrent
des fonctionnalits de base qui peuvent tre utilises par les diffrents composants
du systme dexploitation Android, ainsi que par les programmes dvelopps avec
le kit offert et dploys sur ce systme.
Lenvironnement dexcution des applications Android dont la machine virtuelle
Dalvik est le composant principal. Cette machine virtuelle a t conue spcialement
pour des environnements qui ont des contraintes lies aux ressources assez limites
(Mmoire, CPU, Batterie, ...). Pour chaque nouveau programme qui doit sexcuter
sur Android une nouvelle instance de la machine virtuelle Dalvik sera cre.
Un framework qui regroupe un ensemble dapplications et dAPIs crites en Java,
qui reprsente toujours la couche qui est en dessous de toute application dveloppe
et dploye sur la plateforme Android.
Un ensemble dapplications trs utiles pour lutilisateur final du systme, parmi
lesquelles on trouvera un calendrier, un programme qui permet la gestion de la liste
des contacts avec toutes leurs informations, un navigateur web, etc.

Applications
Bureau

Contacts

Tlphone

Navigateur

Framework Applicatif
Gestionnaire
dactivits

Gestionnaire
de paquetages

Gestionnaire de
fentres

Gestionnaire de
la tlphonie

Fournisseur de
contenu

Gestionnaire
des ressources

Gestionnaire de
localisation

Bibliothques
Gestionnaire
des surfaces

Gestionnaire de
notifications

Moteur dexcution
Android

SQLite

Plateforme
Mdia

Mcanisme des
vues

Bibliothques
internes
OpenGL|ES

SGL

FreeType

WebKit

SSL

Machine virtuelle
Dalvik

libc

Noyau Linux
Pilote
de lcran

Pilote de
lappareil photo

Pilote de la
mmoire Flash

Pilote IPC

Pilote
du clavier

Pilote du wifi

Pilotes Audio

Gestion de
lalimentation

Figure 1.2 Architecture du systme dexploitation Android[N3].

1.2.2.3

Avantages de la plateforme Android

Les avantages dAndroid en tant que plateforme[1] :


Elle est innovante car toutes les dernires technologies de tlphonie y sont intgres :
cran tactile, acclromtre, appareil photo numrique, etc.
Elle est accessible car en tant que dveloppeur on ne doit pas acheter du matriel
spcifique, ni connatre un langage spcifique. En effet, le dveloppement sur la
plateforme Android se fait par le langage Java, un des langages de programmation
les plus rpandus.
Elle est ouverte car la plateforme Android est fournie sous licence open source,

permettant tous les dveloppeurs (et constructeurs) de consulter les sources et


deffectuer les modifications quils souhaitent.

1.2.3

Web Service

Les web services sont des composants distribus qui offrent des fonctionnalits aux
applications au travers du rseau en utilisant des standards ouverts. Ils peuvent donc tre
utiliss par des applications crites dans diffrents langages et excutes dans diffrentes
plateformes sur diffrents systmes.
Les web services utilisent une architecture distribue compose de plusieurs ordinateurs et/ou systmes diffrents qui communiquent sur le rseau. Ils mettent en uvre un
ensemble de normes et standards ouverts qui permettent aux dveloppeurs dimplmenter
des applications distribues internes ou externes en utilisant des outils diffrents fournis
par les fournisseurs[N4].
Un web service permet gnralement de proposer une ou plusieurs fonctionnalits
mtiers qui seront invoques par un ou plusieurs consommateurs. Il existe deux grandes
familles de web services :
Les web services de type SOAP
Les web services de type REST.
1.2.3.1

Web service de type SOAP

SOAP (acronyme de Simple Object Acces Protocol) est un standard du W3C qui
permet lchange format dinformations entre un client et un serveur. SOAP peut tre
utilis pour la requte et la rponse de cet change.
Son grand intrt est dutiliser XML ce qui le rend ouvert contrairement aux autres
protocoles qui sont propritaires : cela permet la communication entre un client et un
serveur utilisant des technologies diffrentes. Mais, il faut mentionner que lutilisation du
protocole SOAP pose des problmes qui concernent principalement lalourdissement des
changes cause du nombre important dinformations quimpose le format XML.
1.2.3.2

Web service de type REST

REST (acronyme de Representational State Transfer) est un style darchitecture rseau


pour les web services qui met laccent sur la dfinition de ressources identifies par des URI,
9

et utilise les messages du protocole HTTP pour dfinir la smantique de la communication


client/serveur :
- GET pour la rcupration de la reprsentation dune ressource ou dune liste de
ressources ;
- POST pour la cration dune sous ressource ou lajout dinformation une ressource
existante ;
- PUT pour la mise jour dune ressource existante ou la cration dune ressource
en spcifiant son URI ;
- DELETE pour un effacement.
Pour les web services REST, les encodages les plus utiliss sont XML et JSON :
. XML est un standard incontest mais qui souffre de quelques inconvnients :
- Il est difficilement lisible.
- Il y a une dualit entre les attributs et les lments.
. JSON (acronyme de JavaScript Object Notation) est un format texte qui permet
de reprsenter des donnes et de les changer facilement comme le XML.
Ce sous ensemble de JavaScript permet de dcrire le modle objet de JavaScript.
Contrairement XML, le format JSON ne fait pas de diffrence entre attribut et
lment. Il est donc globalement plus simple et plus lisible.
REST prsente plusieurs avantages. En effet, REST est lger car il est bas uniquement
sur le protocole HTTP. De plus, REST permet une consommation de mmoire infrieure,
une plus grande simplicit et donc il a une capacit plus grande pour rpondre un grand
nombre de requtes simultanes[2].
1.2.3.3

Solution retenue

On a choisi de travailler avec le web service de type REST vu les inconvnients du


type SOAP et tant donn que les avantages du type REST rpondent bien aux besoins
de notre application (simplicit, rapidit et moins de consommation mmoire).
En effet, SOAP est un protocole trs verbeux et parfois assez gourmand en ressources.
Beaucoup le dconseillent sur une plateforme telle quAndroid qui propose un environnement contraint sur des appareils mobiles, surtout parce que le web service sera appel
plusieurs fois avec un change de donnes assez lev[1].

10

1.2.4

Hibernate

Hibernate est une solution open source de type ORM (Object Relational Mapping)
qui permet de faciliter le dveloppement de la couche persistance dune application. Elle
permet donc de reprsenter une base de donnes en objets Java et vice versa[N5].
Hibernate facilite la persistance et la recherche de donnes dans une base de donnes
en ralisant lui-mme la cration des objets et les traitements de remplissage de ceux-ci
en accdant la base de donnes.
Hibernate est trs populaire notamment cause de ses bonnes performances et de son
ouverture de nombreuses bases de donnes.
Les bases de donnes supportes sont les principales du march : PostgreSQL, DB2,
Oracle, MySQL, Sybase, SQL Server, Sap DB, Interbase, ...
Hibernate a besoin de plusieurs lments pour fonctionner :
. Un fichier de configuration qui assure la correspondance entre la classe et la table :
il sagit du mapping ou mappage de donnes qui est le mcanisme visant faire correspondre les attributs dune fiche du systme de stockage (BDD) avec les attributs
dune entit (entit Java dans notre cas).
. Des proprits de configuration notamment des informations concernant la connexion
la base de donnes.
Une fois ces lments sont correctement dfinis, on peut passer limplmentation de
la couche DAO puis la couche service qui va tre utilis par le web service.
1.2.4.1

Couche DAO

Le modle DAO (Data Access Object) permet de faire le lien entre la couche mtier
(qui correspond nos entits Java mappes sur notre base) et la couche persistante (qui
correspond la base de donnes), ceci afin de centraliser les mcanismes de mapping entre
les deux couches[N6].
Le modle DAO consiste ajouter un ensemble dobjets dont le rle sera de lire, crire,
modifier et supprimer les donnes stockes dans la base de donnes. Cet ensemble dobjet
sappelle la couche DAO.

11

1.2.4.2

Couche Service

La couche service fait le lien entre la couche DAO et les couches suprieures. Elle va
donc tre charge, par exemple lors de la connexion dun utilisateur, de vrifier que le
login et le mot de passe saisis correspondent bien un utilisateur existant dans la base de
donnes. Elle sera galement charge de demander la couche DAO de renvoyer la liste
de tous les projets enregistrs lorsquon veut les afficher une fois lutilisateur est connect
lapplication.
Lutilisation de la couche service permet dapporter une modularit et un meilleur
dcouplage lapplication.

1.2.5

Base de donnes

Une base de donnes est un ensemble structur et organis permettant le stockage


de grandes quantits dinformations afin den faciliter lexploitation (ajout, mise jour,
recherche de donnes, etc)[N7].
Dans notre projet, on a choisi de travailler avec une base de donnes PostgreSQL car
cest le SGBD (Systme de Gestion de Base de Donnes) utilis par lentreprise et vu les
avantages quil prsente.
Lune des principales qualits de PostgreSQL est dtre un logiciel libre et dont les
sources sont disponibles. De plus, PostgreSQL possde de nombreuses caractristiques
faisant de lui un SGBDR (SGBD Relationnelles) puissant et robuste[N8] :
Des interfaces graphiques pour grer les tables.
Des bibliothques pour de nombreux langages afin daccder aux enregistrements
partir de programmes crits en : Java (JDBC), C/C++ et Perl.
Une API ODBC permettant nimporte quelle application supportant ce type dinterface daccder des bases de donnes de type PostgreSQL.

Conclusion
Dans ce chapitre, on a mis le projet dans son cadre et on a expliqu son sujet. On a
aussi prsent ltat de lart des diffrents concepts lis ce projet sur le plan thorique.
Le chapitre suivant portera sur les fonctionnalits quoffrira notre solution et prsentera
ses diffrents diagrammes de cas dutilisation et sa conception.
12

Chapitre 2
Spcification des besoins et
Conception
Introduction
Dans ce chapitre, on va commencer tout dabord par lanalyse et la spcification des
besoins de notre application. Ensuite, on va passer la phase de conception.

2.1

Spcification des besoins

La spcification des besoins consiste recenser les besoins potentiels et fournir une liste
des fonctionnalits attendues par la nouvelle application. Ces fonctionnalits et exigences
sont dcrites sous forme textuelle au dbut de cette partie.
Ensuite, on va modliser selon le langage UML afin de dcrire les fonctionnalits dune
faon formelle. Plus prcisment, on va commencer par lidentification des acteurs qui vont
interagir avec le systme. Puis, on va laborer les diagrammes des cas dutilisation.

2.1.1

Analyse des besoins

On spcifiera dans cette partie les besoins de notre application en termes de fonctionnalits atteindre. Ces besoins sont rpartis en deux types : fonctionnels et non
fonctionnels.

13

2.1.1.1

Besoins fonctionnels

Lapplication doit permettre aux utilisateurs dassurer un bon suivi de leurs projets.
Pour ce faire, on prsente dans cette partie toutes les fonctionnalits que doit offrir notre
application.
1. Authentification
Laccs au menu de lapplication ncessite un nom dutilisateur et un mot de passe
correcte.
Une fois lauthentification est russite, des interfaces spcifiques chaque utilisateur
(selon son rle) saffichent.
2. Gestion des membres de lquipe
Le but de la gestion des membres de lquipe est dassocier aux projets lensemble
des ressources humaines qui y sont relis.
3. Gestion de la liste des projets
Crer un nouveau projet : Ladministrateur de lapplication et le chef de projet
peuvent crer un nouveau projet. Ils doivent donc fournir les donnes suivantes :
nom du projet, abrviation, client, description, statut, groupe, date de dbut et
date de fin.
Afficher les listes des projets relatifs lutilisateur qui sest authentifi. Sil sagit
de ladministrateur de lapplication, alors il pourra voir tous les projets existants.
Afficher les dtails du projet slectionn.
4. Gestion des lments de travail (work item)
Crer un nouveau lment de travail : Lors de lajout, lutilisateur doit fournir les
donnes suivantes : titre, type, business key (qui doit tre unique), description,
priorit, svrit, statut et qui sera affect llment de travail.
Il est noter quun lment de travail peut tre de type Task, Risk, Defect, Question, Requirement, Notification, Change Request, Acceptance, Improvement, New
Feature, Test Case, Regression, Business Case ou User Story.
Afficher les listes dlments de travail relatifs au projet choisi.
Afficher des dtails dun lment de travail.
Ajouter un commentaire un lment de travail en cas de besoin.

14

2.1.1.2

Besoins non fonctionnels

Les besoins non fonctionnels dcrivent toutes les contraintes auxquelles est soumise
lapplication pour sa ralisation et son bon fonctionnement :
1. Les contraintes ergonomiques Les contraintes ergonomiques sont les contraintes
lies ladaptation entre les fonctionnalits de lapplication, leurs interfaces et leurs
utilisations. Pour notre application, on doit obir aux contraintes ergonomiques
suivantes :
Ergonomie et souplesse : Lapplication doit offrir une interface conviviale et ergonomique comprhensible par lutilisateur.
Prsenter les informations dune faon simple et claire.
Rapidit : Lapplication doit optimiser les traitements pour avoir un temps de
rponse raisonnable.
2. Les contraintes techniques
Compatibilit : les fonctions de lapplication doivent tre compatibles avec celles
existantes.
Homognit des interfaces de lapplication : les diffrentes pages doivent suivre
le mme modle de reprsentation (couleurs, images, etc.).
Efficacit : Lapplication doit tre fonctionnelle si le smartphone est connect
linternet indpendamment de toute autre circonstance pouvant entourer lutilisateur.
Le code doit tre extensible et maintenable pour faciliter toute opration damlioration ou doptimisation.

2.1.2

Spcifications

Aprs une description textuelle des besoins, on prsentera dans cette partie les fonctionnalits de notre application dune faon formelle en utilisant le langage de modlisation
UML qui se dfinit comme un langage de modlisation graphique.
Pour ce faire, on commencera par identifier et prsenter les acteurs en premier lieu
pour arriver enfin aux diagrammes des cas dutilisation.

15

2.1.2.1

Prsentation des acteurs

Les acteurs reprsentent les entits externes qui interagissent avec le systme. Notre
application comporte essentiellement trois acteurs prsents dans le tableau 2.1.
Table 2.1 Prsentation des acteurs.

Cest un utilisateur de lapplication qui peut grer ses lments de


Dveloppeur

travail.

Il peut grer lensemble des projets dont il est responsable et crer


Chef de projet

de nouveaux projets.

Cest ladministrateur de lapplication. Il possde tous les privilges.


Admin

2.1.2.2

Il peut grer tous les projets de lapplication.

Diagrammes des cas dutilisation

Un diagramme de cas dutilisation est utilis pour donner une vision globale du comportement fonctionnel dun systme logiciel, car il reprsente une unit discrte dinteraction acteur/systme.
1. Diagramme de cas dutilisation global Le diagramme de cas dutilisation globale reprsente les fonctionnalits principales quoffre notre application. Il est reprsent par la figure 2.1.

16

Grer les lments de travail

<<include>>

Slectionner un projet

<<include>>
Dveloppeur
Afficher la liste des projets
<<include>>

Ajouter un projet
Admin

<<include>>

S'authentifier

Chef de projet
<<include>>

Grer les travaux des membres du projet

Figure 2.1 Diagramme des cas dutilisation global.

Dans ce qui suit, on va dtailler davantage les cas dutilisation Sauthentifier ,


Grer les lments de travail et Grer les travaux des membres du projet .
2. Description dtaille des cas dutilisation
a. Cas dutilisation Sauthentifier
Lauthentification est une tape primordiale afin que chaque utilisateur puisse
accder son espace de travail.
Le tableau 2.2 prsente une description textuelle du cas dutilisation Sauthentifier :

17

Table 2.2 Tableau descriptif du cas dutilisation Sauthentifier .

Titre

Authentification.

Acteurs

Utilisateur (Admin, Chef de projet et Dveloppeur)


Serveur disponible.

Pr-conditions
Utilisateur inscrit.
Enchainement nominal :
1. Lutilisateur demande laccs au systme.
2. Le systme affiche le formulaire dauthentification.
3. Lutilisateur saisit son nom dutilisateur et son mot
de passe et clique sur le bouton Connexion .
4. Le systme vrifie les informations.
Dfinition des
enchainements

5. Le systme autorise laccs.


Enchainement dexception :
Nom dutilisateur ou mot de passe non valides et/ou
vides :
1. Le systme affiche un message derreur.
2. Le scnario reprend de 3.

PostLutilisateur peut accder linterface principale.


conditions

b. Cas dutilisation Grer les lments de travail


La figure 2.2 reprsente le diagramme du cas dutilisation Grer les lments
de travail qui prsente les oprations qui peuvent tre effectues par les
utilisateurs de notre application pour la gestion des lments de travail.

18

Commenter un lment de travail


<<extend>>

Afficher la liste des lments de travail

<<extend>>
Ajouter un lment de travail

Dveloppeur

<<extend>>

Afficher les dtails d'un lment de travail

<<include>>
Admin

Chef de projet
Afficher les commentaires

Figure 2.2 Diagramme du cas dutilisation Grer les lments de travail .

c. Cas dutilisation Grer les travaux des membres du projet


Le chef de projet et ladmin sont les seuls acteurs qui ont le droit de grer les
travaux des membres. Il sagit en fait de dsigner les utilisateurs qui pourront
accder au projet.

2.2

Conception

La conception consiste dcrire la manire avec laquelle le systme ralise les exigences
et les besoins de notre application.
Cette tape est primordiale dans le droulement du projet et a pour but de dtailler
les tches entreprendre pour prparer le terrain ltape de ralisation.
On va prsenter dabord la conception globale du systme. Ensuite, on va dtailler
travers les diagrammes de classes, dactivits et de squences, la conception de lapplication dveloppe au sein de notre projet. Puis, on va prsenter la conception de la base de
donnes en sappuyant sur le modle conceptuel de donnes.

2.2.1

Conception globale

On a utilis dans notre projet le modle MVC (Modle-Vue-Contrleur) pour dvelopper notre application mobile (figure 2.3).
Le modle MVC est une mthode de conception qui organise linterface homme machine (IHM) dune application logicielle. Ce paradigme divise lIHM en un modle, une
vue et un contrleur, chacun ayant un rle prcis dans linterface[N9] :

19

Le modle : Il reprsente les donnes de lapplication. Il dfinit aussi linteraction


avec la base de donnes et le traitement de ces donnes.
La vue : Elle reprsente linterface utilisateur. Elle neffectue aucun traitement et
elle se contente simplement dafficher les donnes que lui fournit le modle.
Le contrleur : Il interprte la requte du client pour lui envoyer la vue correspondante. Il effectue la synchronisation entre le modle et les vues.

Figure 2.3 Le modles MVC.

Les avantages du modle MVC sont nombreux. Dune part, il permet de formaliser
lapplication pour faciliter la comprhension de sa structure. Il permet aussi de crer des
limites trs claires et bien dfinies entre les diffrents morceaux de code ce qui rend la
rutilisation beaucoup plus simple. Dautre part, il assure lindpendance des donnes, de
laffichage et des actions ce qui donne plus de souplesse pour la maintenance et lvolution
de lapplication.

2.2.2

Conception dtaille

Dans cette partie, on va prsenter les diagrammes dactivits, de squences et de classes


de notre application.
2.2.2.1

Diagramme de classes

Le diagramme de classes reprsente les classes intervenantes dans le systme. Il sagit


dune reprsentation statique des lments qui composent le systme et de leurs rela20

tions[N13].
La figure 2.4 prsente les classes les plus importantes de notre projet des deux parties :
client et serveur.
Dune faon gnrale, les activits Android font appel aux classes de la couche Web
Service. Ceux-ci excutent les classes de la couche service qui leurs sont relies. De mme,
ces dernires font appel aux classes de la couche DAO qui excutent des requtes HQL
pour extraire les donnes demandes de la base de donnes.
On va prsenter maintenant ces classes selon la couche laquelle elles appartiennent.
1. Couche DAO Dans cette couche, on a 4 classes :
GenericDao : Cest une classe abstraite qui implmente linterface IGenericDao dans laquelle on trouve la mthode create(Entity entity) qui va servir
la cration de nouvelle entity.
Il est noter que dans ce diagramme on utilise les entits Project (Projet), Workitem (lment de travail) et User (Utilisateur) dont on va expliquer davantage
leurs relations dans le modle de conception de donnes (dans la partie 2.2.3).
UserDao : Cette classe implmente linterface IUserDao qui contient la mthode getUsersList() qui va extraire la liste des utilisateurs et les donnes qui
leurs sont relatives (comme le rle de lutilisateur dans lapplication (UserRole)).
WorkitemDao : Cette classe implmente linterface IWorkitemDao qui contient
la mthode getWorkitemsByProject(Project project) qui va extraire la liste
des lments de travail relatifs au projet entr en paramtre. Ceux-ci seront accompagns par les donnes qui leurs sont relatives.
ProjectDao : Cette classe implmente linterface IProjectDao qui contient la
mthode getAllProjects() qui va extraire la liste des projets et les donnes qui
leurs sont relatives.
Ces 3 dernires classes de cette couche hritent de la classe GenericDao et les
interfaces quelles implmentent hritent de linterface IGenericDao.

21

Figure 2.4 Diagramme des classes.

22

txtDetailProject
name
json
id
jsonArray
element
data

:
:
:
:
:
:
:

TextView
String
String
int
JSONArray
JSONObject
JSONObject

ProjectDetailActivity

editTitle
editBusinessKey
editWorkitemStatus
editAssignedTo
editWorkitemDescription
spinnerProjectName
spinnerWorkitemType
spinnerWorkitemSeverity
spinnerWorkitemPriority
btnAddWorkitem
listProjectName
listWorkitemType
listWorkitemSeverity
listWorkitemPriority
actionBar
otherAction
jsonArray
element
data
json
jsonPost
url

:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:

EditText
EditText
EditText
EditText
EditText
Spinner
Spinner
Spinner
Spinner
Button
List<String>
List<String>
List<String>
List<String>
ActionBar
Action
JSONArray
JSONObject
JSONObject
String
String
String

# onCreate (Bundle savedInstanceState) : void

AddWorkitemActivity

EditText
EditText
Button
String
String
String

PagerSlidingTabStrip
ViewPager
PagerAdapter
ActionBar
Action
String
String
String
int
JSONArray
JSONObject
JSONObject

# onCreate (Bundle savedInstanceState) : void

:
:
:
:
:
:
:
:
:
:
:
:

SelectedProjectActivity
tabs
pager
mPagerAdapter
actionBar
otherAction
json
name
workitems
id
jsonArray
data
element

:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:

EditText
EditText
EditText
Spinner
Spinner
Spinner
Button
Button
Button
DatePickert
DatePickerDialog.OnDateSetListener
DatePickerDialog.OnDateSetListener
List<String>
List<String>
List<String>
ActionBar
Action
String
String
String

AddProjectActivity
editName
editAbreviation
editDescription
spinnerCustomer
spinnerProjectStatus
spinnerProjectGroup
btnPlannedStartDate
btnPlannedEndDate
btnAddProject
datePicker
startDatePickerListener
endDatePickerListener
listCustomer
listProjectStatus
listProjectGroup
actionBar
otherAction
json
jsonPost
url

1..*

:
:
:
:
:
:

AuthentificationActivity
username
password
btnConnexion
url
msgErreur
json

:
:
:
:
:
:
:
:
:
:

EditText
ListView
Button
ActionBar
Action
List<String>
ArrayAdapter<String>
String
String
String

ProjectListActivity
filterEditText
listViewProject
btnAddProject
actionBar
otherAction
projectList
adapter
json
userRole
url

ProjectWS

+ postWorkitem (MultivaluedMap<String, String> workitemListParams) : Workitem

- workitemService : IWorkitemService

WorkitemWS

+ getProjectList ()
: List<Project>
+ postProject (MultivaluedMap<String, String> projectListParams) : Project

- projectService : IProjectService

UserDao

WorkitemService
+ create (Workitem workitem) : Workitem

- workitemDao : IWorkitemDao

IWorkitemDao

+ create (Entity entity) : Entity

GenericDao

+ create (Entity newInstance) : Entity

IGenericDao

+ create (Workitem workitem) : Workitem

IWorkitemService

+ getWorkitemsByProject (Project project) : List<Workitem>

+ getAllProjects () : List<Project>

- workitemDao : IWorkitemDao

ProjectDao

+ getAllProjects () : List<Project>

IProjectDao

+ getAllUsers () : List<User>

IUserDao

+ getAllUsers () : List<User>

+ getWorkitemsByProject (Project project) : List<Workitem>

WorkitemDao

+ listProjects ()
: List<Project>
+ create (Project project) : Project

- projectDao : IProjectDao

ProjectService

+ listProjects ()
: List<Project>
+ create (Project project) : Project

IProjectService

+ listUsers () : List<User>

IUserService

+ listUsers () : List<User>

UserService
- usersDao : IUserDao

+ getUsersList () : List<User>

UserWS
- userService : IUserService

# onCreate (Bundle savedInstanceState) : void

# onCreate (Bundle savedInstanceState) : void

# onCreate (Bundle savedInstanceState) : void


# onCreateDialog (int id)
: Dialog

onCreate (Bundle savedInstanceState)


: void
onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) : View
getAllIds (View view)
: void
onActivityCreated (Bundle savedInstanceState)
: void

ExpandableListView
Button
ViewHolder_Child
ViewHolder_Parent
String
String
JSONArray
JSONObject
JSONObject

+
+
+

:
:
:
:
:
:
:
:
:

expandableListViewWorkitems
btnAddWorkitem
holder_child
holder_parent
json
workitems
workitemsJsonArray
element
data

WorkitemsActivity

1..*

+ onCreate (Bundle savedInstanceState)


: void
+ onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) : View
+ onActivityCreated (Bundle savedInstanceState)
: void

2. Couche Service
UserService : Cette classe implmente linterface IUserService qui contient
la mthode listUsers() qui va faire appel la mthode getAllUsers() de la
classe UserDao.
WorkitemService : Cette classe implmente linterface IWorkitemService
qui contient la mthode create(Workitem workitem) qui va faire appel la
mthode create(Entity entity) de la classe GenericDao travers la classe
WorkitemDao.
ProjectService : Cette classe implmente linterface IProjectService qui contient
la mthode listProjects() qui va faire appel la mthode getAllProjects() de
la classe ProjectDao.
La classe ProjectService contient aussi la mthode create(Project project)
qui va faire appel la mthode create(Entity entity) de la classe GenericDao
travers la classe ProjectDao.
3. Couche Web Service
UserWS : Cette classe contient la mthode getUserslist() qui va faire appel
la mthode listUsers() de la classe UserService.
WorkitemWS : Cette classe contient la mthode postWorkitem qui va faire
appel la mthode create(Workitem workitem) de la classe WorkitemService pour crer un nouveau lment de travail.
ProjectWS : Cette classe contient la mthode getProjectlist() qui va faire
appel la mthode listProjects() de la classe ProjectService.
La classe ProjectWS contient aussi la mthode postProject qui va faire appel
la mthode create(Project project) de la classe ProjectService pour crer
un nouveau projet.
4. Activits Android
AuthentificationActivity : Cest la premire activit Android qui se lance en
ouvrant lapplication. Elle permet, tout dabord, de lancer une requte GET pour
rcuprer la liste des utilisateurs partir de la BDD. Pour ce faire, elle fait appel
la mthode getUsersList() de la classe UserWS. Ensuite, elle vrifie les
donnes saisies par lutilisateur pour lui permettre daccder lactivit suivante
(au cas o il saisit des donnes valides).
23

ProjectListActivity : Cest lactivit qui va se lancer aprs authentification.


Elle lance ds son ouverture une requte GET qui va faire appel la mthode
getProjectList() de la classe ProjectWS dans le but de rcuprer et afficher
la liste des projets relatifs lutilisateur connect.
Cette activit contient aussi un bouton qui permet douvrir lactivit AddProjectActivity.
AddProjectActivity : Cette activit sert pour lajout dun nouveau projet. Ceci
se fait en lanant une requte POST qui va faire appel la mthode postProject
de la classe ProjectWS.
SelectedProjectActivity : Lutilisateur peut accder cette activit en slectionnant un projet de la liste fourni par lactivit ProjectListActivity.
Cette activit contient un ViewPager qui est compos de deux fragments : ProjectDetailActivity et WorkitemsActivity sachant que le ViewPager[N14] est un
gestionnaire de layout qui permet lutilisateur de glisser gauche et droite des
pages de donnes et les fragments reprsentent des portions dactivit qui vont
tre les composants de lactivit SelectedProjectActivity.
. ProjectDetailActivity : Cest un fragment qui va prsenter les dtails du projet
choisi.
. WorkitemsActivity : Cest un fragment qui va prsenter les lments de travail
relatifs au projet slectionn. Ce fragment contient aussi un bouton qui va
permettre daccder lactivit AddWorkitemActivity.
AddWorkitemActivity : Cette activit sert ajouter un nouveau lment de
travail. Ceci se fait en lanant une requte POST qui va faire appel la mthode
postWorkitem de la classe WorkitemWS.
2.2.2.2

Diagramme dactivits

Le diagramme dactivits reprsente la dynamique du systme. Il montre lenchanement des activits dun systme ou mme dune opration[N10].
Le diagramme dactivits est utilis pour illustrer les flux de travail dans un systme,
du niveau mtier jusquau niveau oprationnel[N11].

24

Figure 2.5 Diagramme dactivits.

La figure 2.5 prsente le diagramme dactivits qui traduit les diffrentes tches ralises par le chef de projet ou ladministrateur de lapplication :
1. Aprs avoir lancer lapplication, une interface dauthentification saffiche dans laquelle lutilisateur (le chef de projet ou ladministrateur de lapplication) saisit son
nom dutilisateur et son mot de passe.
2. Si le nom dutilisateur ou le mot de passe nest pas valide, un message derreur sera
affich sinon lutilisateur accde linterface qui contient liste des projets.
3. En accdant cette interface, lutilisateur peut ajouter un nouveau projet (en cliquant sur le bouton Add Project ). Dans ce cas, une nouvelle interface souvre.
Celle-ci contient des champs spcifiques pour ajouter les informations relatives au
nouveau projet. Aprs les avoir enregistres, la liste de projets saffiche de nouveau
tout en contenant le nom du projet ajout.
Lutilisateur peut aussi (aprs avoir accder linterface qui contient liste des pro25

jets) slectionner un projet en cliquant sur son nom dans la liste. Dans ce cas, il peut
afficher les dtails du projet slectionn ou afficher la liste des lments de travail
relatifs celui-ci.
Au cas o lutilisateur choisit dafficher la liste des lments de travail, une nouvelle
interface souvre dans laquelle il va pouvoir ajouter ou commenter un lment de
travail ou encore afficher les dtails dun lment de travail existant en le slectionnant.
Ce diagramme dactivits reste valable mme pour le dveloppeur sauf que ce dernier
na pas la permission dajouter un nouveau projet.
2.2.2.3

Diagrammes de squences

Le diagramme de squences est un diagramme dinteraction dont les principales informations sont les messages changs entre les lignes de vie, prsents dans un ordre
chronologique. Il peut servir illustrer un cas dutilisation[N12]. On va prsenter, dans
ce qui suit, des exemples de scnarios dcrivant quelques cas dutilisation prsents prcdemment.
1. Diagramme de squences du scnario Sauthentifier Pour accder aux
diffrentes fonctionnalits de lapplication, lutilisateur (dveloppeur, chef de projet
ou admin) doit sauthentifier.
Les tapes dauthentification sont dcrites dans la figure 2.6.
En ouvrant lapplication, une requte GET se lance pour rcuprer la liste des
utilisateurs existants dans la base de donnes. Lexcution de cette requte entrane
lexcution successive des mthodes : getUsersList() du Web Service, listUsers()
de la couche service et getAllUsers() de la couche DAO. Cette dernire excute
une requte HQL qui va servir la rcupration de la liste des utilisateurs partir
de la base de donnes PostgreSQL.
Aprs lexcution de ces mthodes, lapplication laisse la main lutilisateur pour
entrer son nom dutilisateur et son mot de passe. Puis, elle vrifie ces donnes. Si ces
derniers sont valides, alors lutilisateur pourra accder linterface suivante, sinon,
un message derreur sera affich.

26

DS Authentification

:Application_Android

:Web_Service

:Couche_Service

:Couche_DAO

:Base_de_donnes

Utilisateur

Ouvrir l'application
getUsersList()
userService.listUsers()
usersDao.getAllUsers()

Rcuper la liste
des utilisateurs

Retourner la liste
des utilisateurs
Retourner la liste
des utilisateurs
Retourner la liste
des utilisateurs

Ouvrir l'interface
d'authentification

Retourner la liste
des utilisateurs

Saisir nom d'utilisateur


et mot de passe
Vrifier nom d'utilisateur
et mot de passe dans la
liste des utilisateurs
alt

[Valide]
Autoriser l'acces

[Non valide]
Afficher message d'erreur

Figure 2.6 Diagrammes de squences du scnario Sauthentifier .

2. Diagramme de squences du scnario Afficher la liste des projets


Les tapes daffichage la liste des projets sont dcrites dans la figure 2.6.
Pour afficher la liste des projets, lutilisateur doit tout dabord sauthentifier. Aprs
avoir entr un nom dutilisateur et un mot de passe valides, lapplication ouvre
lactivit ProjectListActivity. Celle-ci lance une requte GET pour rcuprer
lensemble des projets stocks dans la base de donnes. Ce qui entraine lexcution de la mthode getProjectList() du Web Service qui fait appel la mthode
listProjects() de la couche service. Celle-ci, son tour, fait appel la mthode
getAllProjects() de la couche DAO. Pour rcuprer les listes dlments de travail
relatives chaque projet, cette dernire mthode fait appel la mthode getWorkitemsByProject(project) de la couche DAO.
Aprs avoir rcupr tous les donnes relatifs tous les projets, la liste des noms
27

des projets apparat dans linterface de lactivit courante.


DS Afficher la liste des projets

:Application_Android

:Web_Service

:Couche_Service

:Couche_DAO

:Base_de_donnes

Dveloppeur
S'authentifier

alt

[Non Valide]
Afficher message d'erreur

[Valide]

Lancer
ProjectListActivity
getProjectList()
projectService.listProjects()
projectDao.getAllProjects()

workitemDao.getWorkitems
ByProject(project)
Rcuper la liste des projets
Afficher la liste des projets

Figure 2.7 Diagrammes de squences du scnario Afficher la liste des projets .

2.2.3

Conception de la base de donnes

Le modle conceptuel de donnes (MCD ou Modle entit-association) a pour but


dcrire de faon formelle les donnes qui seront utilises par le systme dinformation. Il
sagit donc dune reprsentation des donnes, facilement comprhensible, permettant de
dcrire le systme dinformation laide dentits[N15].

28

Figure 2.8 Modle conceptuel de donnes.

29

ProjectRole

UserRole

1,1

1,1

0,n

Project

0,n

avoir

1,n

Identifiant_9 <pi>

Identifiant_8 <pi>

1,1

est caractris par

Identifiant_1 <pi>

1,1

contient

Identifiant_10 <pi>

idWSeverity <pi> Long integer


name
Long variable characters (30)

WorkitemSeverity

possde3

idProject
<pi> Long integer
name
Long variable characters (30)
1,1
abreviation
Long variable characters (10)
planned_start_date
Date
planned_end_date
Date
description
Text

Identifiant_3 <pi>

idWStatus <pi> Long integer


name
Long variable characters (30)

0,n

User
idUser
<pi> Long integer
username
Long variable characters (60)
password
Long variable characters (100)

idWType <pi> Long integer


name
Long variable characters (30)

appartient

0,n

0,n

0,n

0,n

WorkitemStatus

1,1

1,1

possde2

correspond

possde1

possde

WorkitemType

Identifiant_7 <pi>

idGroup <pi> Long integer


name
Long variable characters (30)

ProjectGroup

Identifiant_6 <pi>

idPStatus <pi> Long integer


1,1
name
Long variable characters (30)

ProjectStatus

Identifiant_5 <pi>

idCustomer <pi> Long integer


name
Long variable characters (30)

Customer

Identifiant_4 <pi>

idUserRole <pi> Long integer


name
Long variable characters (30)

Identifiant_12 <pi>

idProjectRole <pi> Long integer


name
Long variable characters (30)

Workitem

1,1

contient2

0,n

0,n

1,1

possde5

WorkitemPriority

0,n

Identifiant_11 <pi>

idWPriority <pi> Long integer


name
Long variable characters (30)

0,n

Identifiant_2 <pi>

idWorkitem
<pi> Long integer
business_key
Long variable characters (30)
title
Long characters (255)
asigned_to
Long variable characters (60)
description
Text

Identifiant_13 <pi>

possde4

0,n

0,n

WorkitemComment
idWComment <pi> Long integer
name
Long variable characters (30)

La figure 2.8 prsente le modle conceptuel de donnes de notre projet qui contient les
entits suivantes :
Project : Cette entit contient lidentifiant du projet, son nom, son abrviation, sa
description et ses dates de dbut et de fin.
Customer : Cest le client du projet.
ProjectStatus : Cest le statut du projet qui peut prendre lune des valeurs suivantes : "In progress", "Closed", "Cancelled", "New" ou "Planned".
ProjectGroup : Cest le groupe du projet.
User : Cette entit contient lidentifiant de lutilisateur, son nom et son mot de
passe.
UserRole : Cest le rle de lutilisateur dans lapplication. Celui-ci peut tre ladmin ou un simple utilisateur dans lapplication.
ProjectRole : Cest le rle de lutilisateur dans un projet donn. Celui-l peut tre
un chef de projet ou un dveloppeur.
Workitem : Cette entit prsente llment de travail. Elle contient son identifiant,
son titre, son business key, sa description et qui il est affect.
WorkitemType : Cest le type de llment de travail. Ceui-ci peut tre de type :
"Requirement", "Defect", "Change Request", "Test Case", "Risk", "Task", "Acceptance", "Improvement", "New feature", "Regression", "Business Case", "Notification",
"Question" ou "User Story".
WorkitemStatus : Cest le statut de llment de travail. Celui-ci peut tre
"Draft", "Accepted", "Active", "New", "Assigned", "In Progress", "Implemented", "Resolved", "Done", "Verified" ou "Closed".
WorkitemSeverity : Cest le degr de svrit de llment de travail. Il peut
tre : "Must Have", "Normal", "Blocker", "Critical", "Major", "Minor", "Trivial" ou
"Moderate".
WorkitemPriority : Cest le degr de priorit de llment de travail. Il peut
tre : "Highest", "High", "Medium", "Low" ou "Lowest".
WorkitemComment : Cette entit prsente les commentaires relatifs un lment de travail.

30

Conclusion
Dans ce chapitre, on a prsent en premier lieu les besoins fonctionnels et non fonctionnels de notre application. On a ensuite reprsent ces besoins en dtaillant les fonctionnalits attendues travers les diagrammes des cas dutilisation.
Puis, on a prsent la conception globale de notre solution. Aprs, on a dtaill la
conception de notre application travers une description des diagrammes de classes,
dactivits et de squences. Enfin, on a reprsent la conception de notre base de donnes.
Dans le chapitre suivant, on va exposer la ralisation de notre projet en prsentant
lenvironnement de travail ainsi que les rsultats obtenus.

31

Chapitre 3
Ralisation
Introduction
Limplmentation du projet est une tape aussi importante que la conception. Cette
tape constitue la phase dachvement et daboutissement du projet.
Pour accomplir cette tche avec succs, il faut bien choisir les outils ncessaires au
dveloppement. Ce choix peut influencer sur la qualit du produit obtenu et donc ncessite
une attention particulire et doit se baser sur les besoins du projet et le rsultat escompt.
Dans ce chapitre, on va prsenter alors lenvironnement de travail et les diffrentes
technologies utilises pour notre application. Par la suite, on va prsenter les interfaces
de notre solution.

3.1
3.1.1

Prsentation de lenvironnement de travail


Environnement matriel

Lenvironnement matriel avec lequel on a dvelopp notre application est le suivant :


. PC portable HP Pavillon dv6 ;
R Pentium Dual Core T4500, 2.3 Ghz ;
. Processeur Intel

. RAM : 4 Go ;
. Systme dexploitation : Windows 7.

32

3.1.2

Environnement logiciel

Les logiciels utiliss lors du dveloppement et de la conception sont les suivants :


Table 3.1 Logiciels utiliss.

Type

Nom

Version

Environnement de dveloppement

Eclipse Juno

4.2

Kit de dveloppement

SDK Android

22.0.1

Serveur dapplication

Apache Tomcat

7.0.37

SGBD

PostgreSQL

8.4

Outil de gestion de base de donnes

pgAdmin III

1.14

Logiciel de retouche dimages

Adobe Photoshop CC

14.0

Navigateur Web

Google Chrome

35

Environnement de conception UML

PowerAMC

16.5

On va prsenter maintenant les logiciels les plus importants parmi ceux situs dans le
tableau 3.1.
3.1.2.1

Eclipse

Eclipse est un environnement de dveloppement intgr (IDE) dont le but est de fournir
une plateforme modulaire pour permettre de raliser des dveloppements informatiques.
Le choix dEclipse se justifie par la multitude des points forts quil possde dont les
principaux sont[N16] :
. Une plateforme ouverte pour le dveloppement dapplications et extensible grce
un mcanisme de plugins.
. Malgr son criture en Java, Eclipse est trs rapide lexcution grce lutilisation
de la bibliothque SWT.
. Une ergonomie entirement configurable qui propose selon les activits raliser
diffrentes perspectives
. Le gestionnaire de mise jour permet de tlcharger de nouveaux plugins ou nouvelles versions dun plugin dj installes partir de sites web ddis.
Pour le dveloppement de notre projet, on a ajout les deux plugins suivants :
Android Development Tools (ADT) : Cest un plugin pour lIDE Eclipse qui est

33

conu pour offrir un environnement puissant et intgr pour crer des applications
Android[N17].
Hibernate Tools : Cest un ensemble doutils pour Hibernate implment en tant
quune suite intgre de plugins Eclipse. Il contribue la gnration des fichiers
de mapping.
3.1.2.2

SDK Android

Le SDK Android fournie les librairies et les outils de dveloppement ncessaire pour
compiler, tester, et dboguer les applications Android.
3.1.2.3

Apache Tomcat

Tomcat[N18] est un serveur dapplications Java, cest dire quil est intgralement crit
en Java et que les applications web quil est capable dexcuter doivent tre dveloppes
en Java. Pour traiter les requtes entrantes, il existe des connecteurs capables de vhiculer
les requtes du serveur web frontal au serveur dapplications.
Tomcat est un projet open source, ralis par la communaut Jakarta, au sein du
groupe Apache.
3.1.2.4

pgAdmin III

pgAdmin[N19] est la plateforme dadministration et de dveloppement libre la plus


populaire et la plus riche pour PostgreSQL.
Cette plateforme est conu pour rpondre aux besoins de tous les utilisateurs, de
lcriture de requtes SQL simples aux dveloppements de bases de donnes complexes.
Linterface graphique supporte toutes les fonctionnalits de PostgreSQL et simplifie ladministration.
pgAdmin est dvelopp par une communaut dexperts de PostgreSQL rpartis tout
autour du monde et est disponible dans plus dune douzaine de langues. De plus, cest un
logiciel libre propos sous la licence PostgreSQL.
3.1.2.5

Photoshop CC

Photoshop CC est lapplication de retouche dimages la plus performante au monde qui


permet damliorer, de retoucher et de manipuler les images. Cest un logiciel de la socit
34

Adobe qui est mondialement utilis pour ses capacits hors du commun[N20]. Photoshop
est loutil le plus utilis actuellement pour la retouche dimages de qualit professionnelle.
Ses nombreux outils lui permettent deffectuer quasiment tout ce qui est possible de faire
sur une image.
Ses principales fonctionnalits sont :
. La conception de slections dans diffrents modes qui permet de choisir avec une
grande prcision les parties de limage devant subir des modifications.
. Les nombreux outils permettant de dtourer tout ou partie dune image afin deffectuer des montages.
. De nombreux filtres permettant des effets spciaux.
On a utilis Photoshop dans le design de lapplication mobile essentiellement pour
supprimer larrire plan des images et parfois leurs ombres.
3.1.2.6

PowerAMC

PowerAMC[N21] est une solution de modlisation et de gestion de mtadonnes la


pointe de linnovation, destine aux architectures de donnes, dinformations et dentreprise.
On a choisi dutiliser ce logiciel pour crer les diagrammes UML de notre projet.

3.2

Interfaces Homme Machine

Aprs avoir choisi lenvironnement de dveloppement, on va prsenter dans cette section les diffrentes interfaces de notre application.
Il faut signaler que lors de la phase dimplmentation, on na pas pris compte des rles
de lutilisateur dans les projets, mais plutt, son rle dans lapplication (administrateur
ou utilisateur).
Avant de lancer lapplication, on doit dmarrer le serveur Tomcat (figure 3.1).

Figure 3.1 Lancement du serveur Tomcat.

35

3.2.1

Interface dauthentification

En lanant lapplication, une requte GET sexcute pour rcuprer la liste des utilisateurs partir de la base de donnes. Durant son excution, un ProgressDialog apparat sur
linterface de lapplication pour signaler lutilisateur que celle-ci est entrain de rcuprer
des donnes (voir figure 3.2).

Figure 3.2 ProgressDialog de linterface dauthentification.

Les donnes demandes sont reues de la couche Web Service sous forme de fichier
JSON aprs avoir pass par toutes les autres couches (service et DAO) venant de la base
de donnes.
Ds la rcupration des donnes, le ProgressDialog disparait afin de donner la main
lutilisateur pour entrer son nom dutilisateur (username) et son mot de passe (password)
comme le montre la figure 3.3.

36

Figure 3.3 Interface dauthentification.

Dans cette figure, on a utilis le compte administrateur pour voir les diffrentes fonctionnalits offertes par lapplication.
En cliquant sur le bouton connexion, lapplication vrifie les donnes saisies. Si lutilisateur ne saisit pas son username ou son password, ou quil utilise des donnes non valides,
un message derreur spcifique apparat pour lui signaler lerreur commise.
Au cas o lutilisateur saisie des donnes valides, il pourra accder linterface suivante.

3.2.2

Interface de la liste des projets

En lanant cette interface, une requte GET sexcute pour rcuprer la liste des projets partir de la base de donnes. Durant son excution, de mme que dans linterface
dauthentification, un ProgressDialog apparat pour indiquer lutilisateur que lapplication est entrain de rcuprer des donnes (voir figure 3.4).
Ds larrive de ces donnes, le ProgressDialog disparait et la liste des noms des projets
saffiche comme le montre la figure 3.5.

37

Figure 3.4 ProgressDialog de linterface de la liste des projets.

Figure 3.5 Interface de la liste des projets.

38

Linterface prsente par la figure 3.5 contient un EditText (qui sert comme un filtre
pour les noms des projets), la liste des projets et un bouton : "Add Project" qui permet
daccder linterface dajout de projet.

3.2.3

Interface prsentant le contenu du projet slectionn

En choisissant lun des projets de la liste (ALM - PFE par exemple), une nouvelle
interface souvre. Celle-ci contient un menu qui glisse horizontalement.
Dans ce menu, on peut choisir dafficher les dtails du projet slectionn comme le
montre la figure 3.6, ou bien, on peut choisir dafficher la liste des Work Items (lments
de travail) (voir figure 3.7).

Figure 3.6 Interface des dtails du projet.

39

Figure 3.7 Interface de la liste des Work Items.

En cliquant sur un lment de travail, on peut afficher ses dtails.


Dans la figure 3.8, on a choisi dafficher les dtails de llment de travail dont le
business key est "ALM-1".
Il est noter que le type de llment de travail apparat sous forme dicne qui le
dcrit. Par exemple, pour llment de travail "ALM-1", il sagit dune tche (Task).

40

Figure 3.8 Dtails de llment de travail "ALM-1".

Lutilisateur a aussi la possibilit de cliquer sur lun des boutons : "Comment Work
Item" (pour commenter un lment de travail) ou "Add Work Item" (pour ajouter un
nouveau lment de travail).

3.2.4

Interface dajout de projet

Pour ajouter un nouveau projet, lutilisateur clique sur le bouton "Add Project" prsent dans la figure 4.5. Alors, une nouvelle interface souvre pour permette lutilisateur
de saisir les donnes relatifs son projet. La figure 3.9 montre cette interface.
En cliquant sur le menu droulant (spinner) relatif "Customer", la liste des clients apparat (voir figure 3.10). On peut faire de mme pour les menus droulants correspondants
"Project Status" et "Project Group".

41

Figure 3.9 Interface dajout de projet.

Figure 3.10 Menu droulant correspondant "Customer".

42

En cliquant sur le bouton correspondant la date de dbut (Planned Start Date), un


Date Picker (figure 3.11) apparat pour permettre lutilisateur dentrer la date. De la
mme manire, on peut ajouter la date de fin.
On termine la saisie des autres donnes du nouveau projet, puis on clique sur le
bouton "Save". Alors, une requte POST sexcute pour enregistrer ce nouveau projet.
Cependant, un ProgressDialog apparat pour signaler lutilisateur que lapplication et
entrain de sauvegarder son projet dans la base de donnes (figure 3.12).
Aprs lenregistrement du nouveau projet, linterface de la liste des projets souvre et
charge de nouveau la liste actuelle des projets (figure 3.13).
Pour vrifier le bon droulement de lopration dajout de projet, on slectionne le
nouveau projet. Ainsi, linterface des dtails du projet souvre. Daprs la figure 3.13, on
vrifie que les donnes existantes dans cette interface correspondent bien aux donnes
ajoutes.

Figure 3.11 Date Picker.

43

Figure 3.12 Enregistrement du nouveau projet.

Figure 3.13 Liste des projets contenant le nouveau projet.

44

Figure 3.14 Dtails du nouveau projet.

3.2.5

Interface dajout dlment de travail

Pour ajouter un nouveau lment de travail, lutilisateur clique sur le bouton "Add
Work Item" prsent dans la figure 3.7. Alors, une nouvelle interface souvre pour permette
lutilisateur de saisir les donnes relatifs son nouveau lment de travail. Les figures
3.15 et 3.16 montrent cette interface.
En cliquant sur le bouton "Save", une requte POST sexcute pour enregistrer ce
nouveau lment de travail dans la base de donnes.
Aprs lenregistrement du nouveau lment de travail, linterface de la liste des projets
souvre et charge de nouveau la liste actuelle des projets avec leurs lments de travail.
Pour vrifier le bon droulement de lopration dajout dlment de travail, on slectionne le projet "ALM - PFE" et on choisit dafficher la liste des lments de travail.
Daprs les figures 3.17 et 3.18, on vrifie que les donnes existantes dans cette interface
correspondent bien aux donnes ajoutes.

45

Figure 3.15 Interface dajout dlment de travail (1).

Figure 3.16 Interface dajout dlment de travail (2).

46

Figure 3.17 Listes des lments de travail contenant llment ajout.

Figure 3.18 Dtails du nouveau lment de travail.

47

3.2.6

Interface dajout de commentaire un lment de travail

Pour commenter un lment de travail, lutilisateur clique sur le bouton "Comment


Work Item" prsent dans la figure 3.7. Alors, une nouvelle interface souvre pour permette
lutilisateur de saisir son commentaire et de choisir llment de travail auquel il va
ajouter celui-l. La figure 3.19 montre cette interface.
En cliquant sur le bouton "Save", une requte POST sexcute pour enregistrer ce
nouveau lment de travail dans la base de donnes.
Aprs lenregistrement du nouveau lment de travail, linterface de la liste des projets
souvre et charge de nouveau la liste actuelle des projets avec leurs lments de travail.
Pour vrifier le bon droulement de lopration dajout de commentaire llment de
travail "ALM-1", on slectionne le projet "ALM - PFE" et on choisit dafficher la liste des
lments de travail. Daprs la figure 3.20, on peut sassurer que le commentaire a t bien
ajout.

Figure 3.19 Interface dajout de commentaire un lment de travail.

48

Figure 3.20 Vrification de lajout du nouveau commentaire.

Conclusion
Dans ce chapitre, on a prsent la ralisation du projet ainsi que les diffrents outils
de dveloppement utiliss pour accomplir cette tche.

49

Conclusion gnrale et Perspectives


A travers ce rapport, on a procur le bilan complet de notre travail qui se situe dans
le cadre de notre projet de fin dtudes. Ce travail consiste concevoir et raliser une
solution mobile Android qui a pour objectif la simplification daccs aux fonctionnalits
usuelles de la solution Web ALM dj existante Telnet.
On a entam ce rapport par une tude du contexte gnral du sujet, ce qui nous a
permis de dgager la problmatique ayant engendr le besoin dune telle application. Puis,
on a effectu une tude thorique des concepts lis notre projet et on a choisi parmi ces
derniers, ceux qui sont les plus adaptes nos besoins. Ensuite, on a identifi les besoins
fonctionnels et non fonctionnels auxquels devra rpondre notre application. Par la suite, on
a prsent une conception gnrale et une conception dtaille de lapplication dveloppe
au sein de notre projet. Enfin, on a montr les choix techniques de lenvironnement de
travail et on a expos le travail effectu travers des captures dcran.
Pour simplifier la ralisation de notre projet et par contrainte de temps, on na pas fait
la relation entre lutilisateur de lapplication et lensemble des projets quil peut y accder
ainsi que son rle dans ces projets. Donc, on peut considrer cette tche comme perspective
du projet labor. Pour enrichir les fonctionnalits de notre application, on peut ajouter
un fil dactualit qui montre aux utilisateurs les dernires modifications effectues dans
ALM, cest--dire, par exemple quand un chef de projet ajoute ou commente un lment
de travail, les dveloppeurs de ce projet saperoivent (en consultant leurs fils dactualits)
de cet ajout sans avoir besoin de consulter la liste des lments de travail relatifs ce
projet.

50

Bibliographie
[1] D. Guignard, J. Chable et E. Robles : "Programmation Android : De la conception au
dploiement avec le SDK Google Android 2", EYROLLES, 2010.
[2] P. Gambarotto, "Technologies pour Web Services faciles : REST, JSON", INPT DSI,
ENSEEIHT Dpartement Informatique, Toulouse, France, 2009.

51

Ntographie
[N1] http://doc.pcsoft.fr/?3013072&name=gestion_3tiers consult le 18/02/2014.
[N2] http://www.journaldunet.com/solutions/expert/51364/comprendre-la-gestiondu-cycle-de-vie-des-applications--alm--en-2-min.shtml consult le 05/02/2014.
[N3] http://www.alcyonix.com/articles/google-android-premieres-impressions/
consult le 06/02/2014.
[N4] http://www.jmdoudoux.fr/java/dej/chap-service-web.htm#service-web-1
consult le 10/02/2014.
[N5] http://www.jmdoudoux.fr/java/dej/chap-hibernate.htm consult le 07/05/2014.
[N6] http://cyrille-herby.developpez.com/tutoriels/java/mapper-sa-base-donneesavec-pattern-dao/ consult le 07/05/2014.
[N7] http://www.adproxima.fr/glossaire-208-base-donnees.html consult le 07/05/2014.
[N8] http://www.commentcamarche.net/contents/814-postgresql-introduction
consult le 07/05/2014.
[N9] http://notes.mazenod.fr/le-design-pattern-mvc1.html consult le 18/02/2014.
[N10] http://saoudyihab.voila.net/cours_uml/Diagramme_d_activite.pdf consult
le 21/02/2014.
[N11] http://support.objecteering.com/objecteering6.1/help/fr/objecteering_
uml_modeler/diagrams/activity_diagrams.htm consult le 21/02/2014.
[N12] http://dico.developpez.com/html/991-Conception-diagramme-de-sequence.
php consult le 23/02/2014.
[N13] http://www.uml-sysml.org/diagrammes-uml-et-sysml/diagramme-uml/diagrammede-classe consult le 24/02/2014.
[N14] http://developer.android.com/reference/android/support/v4/view/ViewPager.
html consult le 01/04/2014.
[N15] http://www.commentcamarche.net/contents/659-merise-modele-conceptuel-

52

des-donnees consult le 19/02/2014.


[N16] http://jmdoudoux.developpez.com/cours/developpons/eclipse/chap-eclipseintro.php#eclipse-intro-1 consult le 04/02/2014.
[N17] http://developer.android.com/tools/sdk/eclipse-adt.html consult le 04/02/2014.
[N18] http://www-igm.univ-mlv.fr/~dr/XPOSE2003/tomcat/tomcat.php?rub=3 consult
le 06/02/2014.
[N19] http://www.pgadmin.org/?lang=fr_FR consult le 07/05/2014.
[N20] http://www.dicodunet.com/definitions/internet/logiciel-photoshop.htm
consult le 22/03/2014.
[N21] http://www.sybase.fr/products/modelingdevelopment/poweramc consult
le 14/03/2014.

53