Développement D'un réseau informatique,
pour paiement et transfert d'argent par téléphone et par
internet
ANNEE ACADEMIQUE 2011-2012
Mémoire De licence présenté et soutenu
par YOUMBI MBOUEDEU Josias Effectué à
: Community Investment Corporation Ltd Du 01 mai au 1
aout 2012
En vue de l'obtention du DIPLOME DE LICENCE EN SCIENCE DE
L'INGENIEUR EN Option INFORMATIQUE & ELECTRONIQUE
Sous la Direction :
PhD Ing, NANA MBINKEU Rodrigue Carlos
Président : Pr Claude
TANGHA Rapporteur : PhD Ing, Rodrigue Carlos NANA
MBINKEU Examinateur : PhD Student, Rodrigue Domga
Komguem
EpigraphE
«La science restera toujours
la satisfaction du plus haut désir de notre nature, la
curiosité ; elle fournira à l'homme le seul moyen qu'il
ait d'améliorer son sort'' Ernest Renan
Dédicace
DéDicace
Ce travail est dédié à mon grand
frère Gustave NOUPAYOU MBOUENDEU,
Aucune expression ne peut exprimer ma gratitude pour tout
l'amour, l'attention qu'il a pour moi.
Remerciements
RemeRciements
Nous tenons tout d'abord à remercier le Seigneur Tout
Puissant pour la santé, l'intelligence et la sagesse qu'il m'a
donnée durant ces 3 (trois) années de formations. Nous saisissons
également l'opportunité qui nous est offerte pour
témoigner notre reconnaissance aux personnes qui de près ou de
loin nous ont encouragé et ont rendu notre endurance moins
pénible. Nous pensons tout particulièrement à :
- Au Recteur de l'Université Protestante d'Afrique
Centrale, Pr Emmanuel Anyambod pour son appui constant dans la
résolution de nos problèmes administratifs et
académiques.
- Au Secrétaire académique de la Faculté
des Technologies de l'Information et de la Communication pour ses multiples
conseils.
- Mon Encadreur Académique Dr NANA MBINKEU Rodrigue
pour l'attention qu'il a accordé à ce travail, sa
disponibilité, son soutien et les conseils qu'il a su nous prodiguer.
- A tous les Enseignants de la Faculté des Technologies
pour tous les cours qu'ils ont pu nous dispenser.
- Au Directeur General, Dr. Fonki Mbenkum pour nous avoir
accueillis dans son entreprise,
- A mon Encadreur Professionnel, Ing Marie BEGUEL pour l'aide
qu'elle m'a apporté dans la collecte de l'information ainsi que la
réalisation des taches qui m'ont été assignées.
- Aux employés de CIC, Anatole, Joseph, Romuald, Sylvain,
Jean-Marie, Yuri.
- A tous mes camarades de promotion 2009 pour leur bonne
collaboration tout au long de notre formation.
- A toute ma famille plus particulièrement à mes
parents, maman Anne et papa Jean pour leur soutien et leur encouragement.
- A tous mes frères et soeurs Gustave, Judith, Myriam, et
Osée.
- A toute ma grande famille, particulièrement Mama
Jacqueline, Papa Nawe, papa Roger, Mama Saha, Papa Célestin, Mama
Valérie, Tata Marlise, Tonton Claude, Mr Kene, Josephine Victoire pour
les conseils et les bénédictions.
Liste des abréviations
-
Liste des abréviations
SIGLE
|
SIGNIFICATION
|
DAA
|
Distributeur Associe Agence
|
DCA
|
Distributeur Contrôleur Agence
|
DPA
|
Distributeur Point Agrée
|
Dr
|
Docteur
|
FTIC
|
Faculté des Technologies de l'Information et de la
Communication
|
HTML
|
HyperText Markup Language. Format du document du web ; il nous
permet de définir les pages web
|
HTTP
|
HyperText Transfer Protocol. Protocole de transmission des
données sur le web
|
JavaScript
|
Langage de script simple développé par NESCAPE et
initialement baptisé Live script
|
MySQL
|
Système de gestion de base de données
relationnel
|
ORM
|
Mapping Objet Relationnel
|
PHP
|
Personal Home Page, Langage de script orienté objet
permettant de gérer un site web
|
SGBD
|
Système de Gestion des Bases de Données
|
SMS
|
Short Message Service
|
UML
|
Unified Modeling Language, ou Langage de Modélisation
Unifié
|
WEB
|
World Wide Web
|
ORM
|
Mapping Objet Relationnel
|
Tableau 1: Liste des abréviations
Liste des figures
Liste des figures
Figure 1: Modèle de prototypage 20
Figure 2:Diagramme de flux d'une banque 22
Figure 3: Diagramme des cas d'utilisation pour un client simple
24
Figure 4: Diagramme des cas d'utilisation pour un client affaire
25
Figure 5: Diagramme des cas d'utilisation pour un Distributeur
DAA 26
Figure 6: Diagramme des cas d'utilisation pour un chef d'agence
27
Fie 7: Diagramme des cas d'utilisation pour un distributeur DPA
27
Figure 8: Diagramme des cas d'utilisation pour une banque 28
Figure 9: Diagramme des cas d'utilisation pour un administrateur
29
Figure 10: Description du cas d'utilisation demande d'inscription
29
Figure 11: Description du cas d'utilisation transfert d'argent
30
Figure 12: Description du cas d'utilisation retrait d'agent 31
Figure 13: Créer banque 32
Figure 14:maquette du Template d'EcoPay 33
Figure 15: Capture Interface login 35
Figure 16: Capture Interface code de validation 35
Figure 17: Capture Enregistrement d'un administrateur EcoPay
35
Figure 18: Capture Liste entreprise de vente en ligne 36
Figure 19: Liste des clients d'une banque 36
Figure 20: Liste des distributeurs d'une agence 36
Figure 21: Formulaire de paiement 37
Figure 22: Formulaire de confirmation de paiement 37
Figure 23: Capture historique des paiements reçus 38
Figure 24: Capture détail paiement effectué 38
Figure 25: Capture éditer une facture 39
Figure 26: Capture effectuer cherche par période 39
Figure 27: capture historique des transferts effectue 40
Figure 28: capture historique transfert effectue aux clients
externes a EcoPay 40
Figure 29 : Capture information sur un transfert effectue a un
client non EcoPay 41
Figure 30: Détail d'une facture 41
Figure 31: Transfert d'argent sur un Smartphone Android 42
Figure 32: Organigramme CIC xii
Liste des TABLEAUX
Tableau 1: Liste des abréviations iv
Tableau 2: tableau comparative des framework php 19
Tableau 3: diagrammes de Gantt 20
Tableau 4: Explication des cas d'utilisation du client simple
25
Tableau 5: Explication des cas d'utilisation du client affaire
26
Tableau 6: Explication des cas d'utilisation du chef d'agence
27
Tableau 7: Explication des cas d'utilisation d'une banque 28
Tableau 8: Explication des cas d'utilisation d'un administrateur
banque 29
Resume
Résume
Au cours de notre stage à la CIC, notre projet
d'entreprise a porté sur le développement d'un réseau
informatique, pour le paiement et transfert d'argent par le biais du
téléphone et de l'internet. L'application ainsi
réalisée permettra à des clients de créer leurs
porte-monnaie électronique, afin de pouvoir effectuer des paiements, des
transferts d'argent et des virements à partir de leurs
téléphones ou de leurs ordinateurs.
Le présent rapport constitue une étude et
propose une solution logicielle. Pour parvenir aux résultats, nous
commencerons d'abord par analyser des systèmes de transfert existants,
puis modéliser sur la base du langage UML. Ensuite pour
l'implémentation, nous utiliserons le langage de programmation php5 pour
la partie web, Java J2ME, Android, et i-OS pour les clients utilisant le
téléphone. Enfin le Framework PHP utilisé sera
CodeIgniter, comme SGBD, MySQL, avec pour outil de connexion à la base
de données SQL Yog et outil de gestion de version, Subversion.
Il faudra noter que l'entreprise et ses partenaires n'ont pas
souhaité que les diagrammes de séquence et de classe soient
présentés dans ce mémoire.
Abstract
ABSTRACT
The main objective of our work is to develop a computer
network for payment and transfer money by phone and internet. The application
has thus achieved allow customers to create their accounts Wallet electronics
in order to make payments, money transfers, transfers from their phones or
their computers.
This report is a study and proposes a software solution to
help improve the needs of men. To achieve results, we begin with a systems
analysis of existing transfer out of the limits, to propose solutions to these
limitations, and developed the system using UML (Unifying Modeling Language),
for implementation, we used the programming language from the php5 for web,
Java J2ME, Android, i-OS customers using the telephone, as we Framework PHP
Framework CodeIgniter uses, as we use MySQL DBMS as connection tool provides a
basis we used SQL Yog and as management tools version we used Subversion
Introduction
IntroductIon
De l'âge de la pierre à nos jours, l'esprit
perfectionniste de l'homme n'a cessé de lui permettre d'améliorer
sa vie quotidienne. L'adoption des nouvelles technologies de l'information et
de la communication (NTIC : multimédia, Internet,
télécommunication...) s'est généralisée
d'une manière très contagieuse. Ce qui a induit CIC-Ltd de mettre
sur pied un réseau informatique pour le paiement et transfert d'argent
à partir d'un porte monnaie électronique
Aujourd'hui, l'intérêt croissant de vouloir
gagner en temps, d'être discret, et d'autres raisons, ont poussé
le Dr NANA MBINKEU à faire des recherches sur une solution
adaptée au contexte africain. Apres la phase de conception, il a propose
le développement du projet a la Community Investment Corporation Ltd. Ce
projet consiste à développer un réseau informatique pour
interconnecter les banques et les micro-finances du Cameroun afin de faciliter
les paiements et transferts d'argent par le biais du
téléphone.
C'est dans ce cadre que s'inscrit notre stage de fin
d'étude qui consiste à développer un réseau
informatique pour les transactions financières.
Ce travail est réalisé en vue d'obtention du
Bachelor en science de l'ingénieur option informatique et
électronique, a l'Université Protestante d'Afrique Centrale de
Yaoundé.
Pour atteindre notre objectif nous avons partagé notre
travail comme suit: dans le premier chapitre nous présenterons la CIC,
sa structure, son organisation, ses services, le déroulement du stage et
le cahier des charges de notre projet, l'état de l'art du projet; le
second chapitre sera consacre a l'étude des outils et techniques a
utiliser, en justifier notre choix sur ces outils ou méthodes, quant au
chapitre troisième, elle sera concentre a l'analyse et a la conception
du système avec le langage de modélisation UML. Le
quatrième chapitre sera concentré a l'implémentation et
aux résultats que nous avons pu obtenir.
Chapitre i : EtudE BiBliographiquE I-
Présentation de L'entreprise
Dans cette partie, il sera question pour nous de présenter
l'entreprise qui nous a accueillir durant notre stage et son environnement.
1- Historique de la CiC
Community Investment Corporation Ltd est une
société spécialisée dans les secteurs
d'activités suivantes:
- Investissement dans les projets et prise de participation dans
les entreprises performantes;
- Conception et réalisation des applications informatiques
et du réseau internet (Wifi) au sein des institutions;
- Aménagement des terrains et construction des
logements.
Fondée en 2012 à Yaoundé au Cameroun,
elle est implantée au quartier Mfandena. Le personnel de CIC se compose
d'environ 10 personnels engagés dans des projets de
développement.
2- Présentation détaillé de la
CiC
2.1- Raison social
Sigle: CIC Ltd (Community Investment
Corporation Limited)
Logo:
Siège Social: Yaoundé
Directeur General: Dr. Fonki Mbenkum ;
Direction Nationale: Yaoundé
Forme Juridique: Limited (Sarl en
français)
Activité Principale: Conception et
réalisation des applications informatique, aménagement des
terrains et construction des logements;
Agence: Yaoundé;
Date de création: Année de
Création 2012;
Adresse : BP 1299 Yaoundé ; Tel +237 33
08 60 78 ou +237 77 70 87 38;
La CIC travaille en coopération en accord de siège
avec plusieurs banques.
2.2- Organigramme de la CiC
(Voir en annexe)
2.3- OrganisatiOn des différents services
La structure organisationnelle est composée de la
direction générale, du DAF, du Project Manager, du service du
personnel et du service informatique.
2- Historique du projet EcoPay
Le Projet EcoPay est un projet qui a été
pensé pour la première fois en mai 2007 par le Docteur
Ingénieur, Nana Mbinkeu à l'université de Modène en
Italie. La phase implémentation n'avait jamais été faite
malgré plusieurs lettres aux entreprises de
télécommunication. Finalement, CIC Ltd a étudié
l'originalité du projet et a décidé de le financer. Le
projet a été baptise ECOPAY ; ce projet viendra
révolutionner les modes d'utilisation de l'argent en Afrique Centrale et
particulièrement au Cameroun.
3- Objectifs du prOjet
EcoPay Systems doit permettre au commerçant de ne plus
marcher avec des espèces sur eux et de manière
générale à toutes personnes de ne pas avoir de
l'espèce sur lui. Dans la vie quotidienne, les populations doivent
pouvoir faire la majorité de leurs opérations avec EcoPay
système. Grace a EcoPay les marchands abonnes auront la
possibilité de vendre leurs articles en ligne et aussi de permettre aux
abonnes de faire des achats en ligne a partir de leur compte PME.
Par exemple, un commerçant de Yaoundé qui part
faire son ravitaillement à douala pour un montant de 3.000.000 FCFA ou
5.00.000 FCFA pourra aller déposer cet argent dans un compte EcoPay, il
pourra payer son grossiste avec son porte monnaie électronique. En
appliquant une commission de 0,005%, l'opération de paiement l'aura
couté 15000 FCA et 2500 FCFA pour un paiement de 500000.
4- Cahier des Charges d' EcoPay SyStemS
EcoPay Systems est une application informatique qui permet aux
abonnés du service de se faire créer un porte monnaie
électronique par un agent agrée par la banque utilisatrice du
système.
- Les acteurs
Les acteurs sont les différentes personnes qui
utiliseront EcoPay, nous pouvons citer entre autre : l'administrateur du
système, le manager de banque, le chef d'agence, le distributeur point
agrée, le distributeur associe agence, le distributeur contrôleur
agence, les clients standards et les clients affaires.
- Roles des différents acteurs
L'administrateur EcoPay a pour rôle de créer les
administrateurs banques et les administrateurs contrôleurs, d'activer le
paiement en ligne dans le site d'un client affaire et de configurer tout le
système;
L'administrateur banque a pour rôle de créer une
banque, de créer le manager d'une banque, de créer les agences
d'une banque et le chef d'agence associe à l'agence;
Les manager a pour rôle d'imprimer les compensations, de
lister les distributeurs et les clients de sa banque;
Les chefs d'agences pourront :
Créer des distributeurs ;
Modifier les informations sur un distributeur ;
Bloquer ou de débloquer un compte distributeur ;
Consulter les historiques des transactions faites au cours d'une
période Ravitailler les comptes distributeurs points agrées ;
Permettre les retraits d'espèce aux distributeurs points
agrées ;
Faire des reporting sur les différentes transactions
Faire des statistiques concernant toutes les opérations
faites par son personnel dans les comptes distributeurs agrées et
analysé les comptes de tiers crée par l'agence.
Les distributeurs agrées et associés agences auront
pour rôle de :
Créer les comptes PME pour des clients standards et pour
les clients Affaires ; Modifier les informations d'un client, de bloquer le
compte d'un client ;
charger le porte monnaie électronique des clients, de
permettre des retraits d'espèces, d'aider un client à effectuer
des transferts compte a compte et des transferts compte vers tiers.
Consulter les historiques des transactions (dépôt,
retrait, transfert) faites a un client ; Consulter l'historique des retrait
tiers qu'il a effectue;
Consulter les informations sur ses dépôts, retraits
qu'il a effectués auprès de son chef d'agence (uniquement par le
distributeur agrée) ;
Les distributeurs contrôleurs agences s'occuperont de
vérifier la nature des transactions et des cas de fraudes. Ils ont
autorité à bloquer toutes transactions suspectes. Ils disposeront
des outils leur permettant de faire une analyse des opérations faites
par les
distributeurs agrées. Les contrôleurs se
chargeront de résoudre tous les règlements de compensations entre
établissements financiers. Les contrôleurs pourront produire
toutes les statistiques concernant les commissions d'une banque.
L'utilisateur à partir de son téléphone
portable pourra faire les opérations suivantes :
Un transfert d'argent de son porte-monnaie A vers un
porte-monnaie B, sur la dite opération, il sera prélevé
une commission (La commission dans le système adoptera plusieurs
approches celui du système de pourcentage ou alors des barèmes de
prélèvement en fonction des intervalles de valeurs) ;
Un transfert d'argent de son porte-monnaie vers une personne
non enregistre, sur la dite opération, il sera prélevé une
commission ;
Un paiement entre deux personnes : client débite son
porte monnaie A pour payer le marchand dans son porte monnaie B. Sur la dite
opération il sera prélevé une commission suivant les
approches décrites au point (a) ;
Consulter son compte ;
L'utilisateur à partir de son d'internet pourra en plus
des qu'il effectue sur son téléphone pourra :
Consulter les historiques de ses dépôts, ses
retraits, ses transferts compte a compte effectué, ses transferts compte
vers une personne tiers effectué, ses paiements effectué et ses
virements reçus ;
Rechercher par période ou par numéro de
transaction, les transactions qu'il a effectuées ;
Les abonnés Affaires qui peuvent être des magasins,
des agences de voyages, des hôtels-restaurants, peuvent à partir
de leur compte :
|
Effectuer des virements de leurs comptes vers un compte client
affaires ou un compte client simple, ce qui leur permettra par exemple de payer
aisément leurs employés.
|
- Operations Inter-Etablissements Financiers
Le système EcoPay doit intégrer un
système de compensation de paiement entre établissements
financiers. Le Module de compensation consiste à enregistrer une
opération entre deux porte monnaie A et B appartenant à deux
banques différentes ou établissements de micro-finance
différents : exemple,
Le client du compte A fait un paiement au client du compte B,
le module devra enregistrer cette opération en précisant le
montant X que la Banque A à transférer à la Banque B, la
banque A est créditrice auprès de la Banque B du montant X. Et la
Banque B doit voir savoir que la Banque A lui doit de l'argent d'un Montant
X.
Le système de compensation sera utilisé aussi
dans le scénario suivant : le client possède son porte monnaie
dans une agence de la banque B et décide de retirer son argent dans une
agence de la banque A, dans ce cas cette opération est enregistré
dans le système de compensation. Il est précisé que la
Banque B doit de l'argent à la banque A.
La résolution des compensations se fait avec trois
acteurs : la Banque X, La Banque Y et Le médiateur qui est le
gestionnaire de la plateforme EcoPay système :
La Banque X calcul le montant global que lui doit la Banque Y
sur une période de p1 à p2 et transmet une demande de
compensation à EcoPay Systems qui vérifie que les données
transmisses sont correctes. Apres ce dernier transmet à la Banque Y la
facture de la compensation. La Banque Y confirme le montant et accepte de payer
la compensation. La banque Y envoie le certificat de règlement des
compensations sur la période p1 à p2.
Le certificat est envoyé à la banque X pour
confirmation. Apres confirmation par la banque X, EcoPay ajourne les
compensations aux statuts de compensations réglées et chacune des
parties est informée de cette opération de règlement.
L'application EcoPay système doit être
utilisée sur différents appareils :
- Ordinateur
-
- Téléphone Moyen de Gamme(Java) ou
Téléphone Androïd, i-phone: il y aura une application plus
complète pour les abonnées Affaires et les abonnés
simples. L'application devra être capable d'utiliser la connexion
internet sur le dit téléphone.
Note Bien : Les études sur les
taux de commissions seront étudiées par notre expert en Banque et
Finance. L'étude du projet doit prendre en compte la
réglementation en vigueur sur le blanchiment d'argent, les règles
de gestion d'un porte monnaie électronique dictées par la COBAC.
Les commissions sur les opérations seront les même pour un
paiement comme pour un transfert. Par conséquent, il n'est pas
nécessaire de préciser le type d'opération qu'on est
entrain de faire. Mais cependant le retrait des fonds du porte monnaie
électronique coute une commission de X % et sera en fonction du montant
à retirer.
5- Les Motivations du SyStème ecoPay
- La convenance :
EcoPay offre plus de souplesse aux clients qui effectuent les
transactions bancaires via leur téléphone mobile ou Internet
à temps réel sans se déplacer ou faire la queue.
- L'accessibilité :
Le client peut avoir ses informations bancaires n'importe
où et n'importe quand tant qu'il a une couverture du réseau sur
son téléphone mobile.
- Le gain du temps :
Le système EcoPay réduit le temps nécessaire
pour effectuer une transaction bancaire, cela est dû à
l'automatisation du processus et la non intervention humaine.
- La réduction des coûts :
Par conséquent, EcoPay réduit le coût d'une
transaction bancaire.
6- Sécurité
L'accès au système se fait par login,
après création d'un utilisateur, chaque nouveau utilisateur
reçoit un login et un mot de passe par SMS dans son
téléphone portable et par mail dans sa boite email, a chaque fois
qu'un utilisateur voudra accéder au système , il lui faudra son
login et son mot de passe, après validation par le système des
données d'identification, il
reçoit un SMS contenant un code PIN valable pour la
session en cours d'ouverture, l'utilisateur devra insérer ce code PIN
avant d'accéder à son menu personnel.
Lors d'un retrait ou d'un transfert auprès d'un
distributeur, le client reçoit un code de validation de transaction, le
passe au distributeur afin de valider sa transaction ;
Lors des opérations de transfert, paiement ou de
virement, le client connecté dans son espace doit valider sa transaction
par son code pin, et s'il rate trois fois son code pin, son compte se bloque en
le déconnectant, il doit se rendre au près de son agence pour
réactiver son compte.
Cryptage mot de passe : Les mots de passes sont cryptes en
utilisant le fameux algorithme de hachage SHA-1 pour que même
l'administrateur principale ne puisse avoir accès au mot de passe d'un
utilisateur du système ;
L'heure, la durée, l'adresse IP de la machine, le nom du
navigateur lors de la connexion de chaque utilisateur est enregistre,
Pour la sécurité nous évitons de mettre dans
les url l'id de l'utilisateur ;
Les SMS sont crypter et nous les décryptons avant de les
utiliser dans le web service.
Chapitre ii : Méthodes et outils
d'iMpléMentation
Il est évident que les méthodes et les outils
choisis pour concevoir et développer une application doivent être
en fonction de l'environnement et du domaine d'application de celle ci. Cela
est bien expliqué par le génie logiciel.
Dans ce chapitre nous allons mettre l'accent sur les avantages
de l'approche orienté objet, les architectures n-tiers et l'approche du
Model View Control (MVC) et en dernier lieu justifier notre
choix sur les méthodes et outils à appliquer pour faciliter notre
tache.
I- AvAntAges de l'Approche orientée objet
Parmi les avantages de cette approche, on peut citer : la
réutilisabilité des éléments (objets), l'avantage
d'utiliser un objet de base afin de produire un autre qui peut être une
amélioration de cet objet (phénomène d'héritage),
etc.
L'objet est le coeur de cette approche. Tout objet donné
possède deux caractéristiques : - Son état courant
(attributs)
- Son comportement (méthodes)
En approche orientée objet on utilise le concept de
classe, celle-ci permet de regrouper des objets de même
nature.
Une classe est un moule (prototype) qui permet de définir
les attributs (champs) et les méthodes (comportement) à tous les
objets de cette classe.
II- Les architectures n-tiers
[1] Ces vingt dernières années ont vues une
évolution majeure des systèmes d'information, à savoir le
passage d'une architecture centralisée à travers de grosses
machines (des Mainframe) vers une architecture distribuée basée
sur l'utilisation de serveurs et de postes clients grâce à
l'utilisation des PC et des réseaux, en occurrence l'Internet.
L'architecture logicielle ne peut pas rester indemne, elle doit suivre
l'évolution raison pour laquelle on trouve plusieurs architectures sur
le marché qu'on peut subdiviser en deux catégories :
- Architecture utilisant un serveur centré ; -
Architecture n-tiers
1- Architecture utilisAnt un serveur centré
Il s'agit de la première génération :
l'ensemble des traitements et de données se trouvent dans un serveur et
les utilisateurs des applications utilisent des terminaux pour appeler les
fonctions se trouvant dans le serveur. Les terminaux ont uniquement une
fonction d'affichage.
2- Architectures n-tiers
[1] Comme son nom l'indique cette
architecture est un prototype de plusieurs architectures. Commençant du
2-tiers (appelée régulièrement Client/serveur) qui est la
base de notre application allant du 3-tiers voire 4-tiers.
.
IV- NuaNce entre MVC et 3-Tiers :
[1] MVC et 3-Tiers sont des mots souvent cités dans les
cours de génie logiciel. Souvent les gens ont tendance à les
confondre mais ils n'ont pas tord car ces deux pratiques sont à la fois
différentes et similaires.
La différence fondamentale se trouve dans le fait que
l'architecture 3-Tiers sépare la couche Business logic (couche
métier) de la couche Data Access (accès aux
données).
Pour qu'une application MVC soit une vraie application 3-Tiers il
faut lui ajouter une couche d'abstraction d'accès aux données de
type DAO (Data Access Object).
Inversement pour qu'une application 3-Tiers respecte MVC il faut
lui ajouter une couche de contrôle entre User interface et Business
logic.
Loin d'être antagonistes, ces deux pratiques se comblent et
sont la fondation de la plupart des Frameworks de création d'application
web.
Pour notre projet, nous avons utilise une architecture 4-tiers,
Ici le modèle est constitue de plusieurs serveurs de base de
données et d'un serveur pour les web services, le contrôleur est
constitue d'un serveur pour la couche Business logic, la vue est
constituée des terminaux (téléphones, Smartphones,
ordinateur).
V- Méthodes et outils pour l'application
1- Choix des outils de ConCeption :
En Génie Logiciel (GL) la conception constitue une phase
fondamentale dans le cycle de vie d'un logiciel. La réussite de ce
dernier dépend beaucoup de cette étape. Dans notre application
nous allons se baser sur deux conceptions : la conception architecturale et la
conception détaillée.
1.1-ConCeption globale (architecturale) :
Cette conception consiste à scinder les taches de
l'application en différentes petites parties afin de mieux organiser et
développer le logiciel. Ça se base sur la technique «
Diviser pour mieux régner ».
Les retombés directs de cette technique ne sont pas
négligeables, on peut mentionner quelques uns :
- Le développement de l'application peut être
partagé par plusieurs groupes de travail. - La possibilité de
réutiliser les composantes dans d'autres applications.
- La portabilité de l'application.
Dans notre cas, nous allons utiliser entre autre le
MVC et une architecture client/serveur. Nous allons essayer de
scinder cette dernière en trois partie une partie de présentation
(représentée par les interfaces), une partie qui permet
l'accès à la base et une dernière partie composée
par la base même.
Mieux encore le partage de l'application en sous systèmes
va nous permettre de faire une conception détaillée de chaque
partie.
1.2- ConCeption détaillée
1.2.1- Choix du prinCipe et du logiciel de modélisation
:
[2] Merise et UML sont deux grands principes de
« traduction » ou modélisation d'un système
d'information. Néanmoins, ils ne sont pas aussi proches qu'on pourrait
le penser.
Le choix de l'un ou de l'autre se fait selon trois axes à
savoir l'accessibilité, la précision et
l'exploitabilité.
Pour le premier axe (accessibilité) MERISE présente
l'intérêt d'avoir des modèles logiques moins
détaillés facilement compréhensibles par un utilisateur
moins avisé.
Tandis qu'UML conçu pour s'adapter à n'importe
quel langage de programmation orientée objet (POO), présente
plusieurs modèles (diagrammes) dont leurs compréhensions
nécessitent une grande attention.
En ce qui concerne le deuxième critère
(précision), MERISE est décevant. Malgré sa clarté,
il la manque une précision du fait qu'elle est éloignée du
langage donc difficile à implémenter alors qu'UML intègre
les éléments communs des différents langages, sa
volonté est d'être fidèle à la réalisation
finale. Elle est beaucoup plus complète avec ses différents
diagrammes. Pour en finir avec l'exploitabilité, MERISE est une
méthode plus généraliste. Elle donne une vue globale de la
solution sans autant rentrer dans les petits détails. Contrairement
à UML qui est conçu pour l'implémentation
objet avec ses différents détails et sa portabilité
(s'adapte à n'importe quelle plateforme) elle est donc plus
exploitable.
L'une ou l'autre présente des avantages et des
inconvénients. Il est réservé au concepteur de choisir la
méthode la mieux adaptée pour son cas. Si on cherche la
précision et l'exploitabilité comme dans notre cas UML devance de
loin MERISE. Tandis que, si c'est la clarté et l'accessibilité
qui sont en question MERISE est préférable.
La conception de notre application mérite bien une
grande précision et une exploitabilité maximale. C'est la raison
pour laquelle nous allons retenir UML. Les différences entres les
logiciels de modélisation UML sont infimes. N'empêche de
mentionner quelques logiciels qui sont à notre connaissance : Agro UML
(open source), Poseidon UML, Rational Rose et le plus célèbre
Power Designer.
La facilité dotée au dernier (Power Designer) de
pouvoir faire une « ingénierie » et une
« retro-ingénierie » a influée sur
notre choix.
1.2.2- Choix des outils de développement
Un parmi les avantages qui nous ont permis de choisir UML
comme méthode de modélisation est l'orienté objet. Cette
approche influe aussi sur le choix du langage à adopter on peut rajouter
quelques uns à savoir la portabilité, la facilité, la
multidisciplinarité et pas mal d'autres comme la
sécurité.
1.2.3- Choix du langage de programmation
Souvent la sortie d'un nouveau langage n'est pas un fruit du
hasard mais il s'appuie sur
les anciens en profitant de leurs qualités et en essayant
de remédier les défauts.
Ici nous allons essayer de faire une étude comparative
sur les langages de programmation orientés objets qui sont en vogue sur
le marché et essayer d'en sélectionner un qui répondra
bien les besoins d'implémentation de notre application.
Nous allons s'intéresser surtout sur les langages Java
J2EE et PHP.
S'il faut comparer ces deux langage nous dirons que
- PHP possède des courbes d'apprentissage plus courtes que
Java ;
- PHP possède plus de supports de développement
web, parce que PHP fût créé pour construire des
applications web ;
- Java est destiné au langage pour des tâches
générales, ainsi il possède plus d'outils et de
bibliothèques le supportant ;
- PHP manque de facilité au niveau de la gestion des
«threads» ;
- PHP est plus échelonnable que Java, car ses besoins sont
bon marché, et les ressources sont éparpillées, alors que
Java est plus orientée entreprise, avec support et matériel.
Pour conclure nous dirons que choisir PHP ou Java est une
question de choix et dépend du but à atteindre. Et pour notre
application nous utiliseront le PHP5
1.2.4- Choix de l'outil de développement
Vu la multidisciplinarité et sa domination croissante,
plusieurs outils de
développement de PHP ne cessent de voir le jour. On peut
rencontrer pas mal d'Environnement de Développement. Certains sont en
open source et d'autres commerciaux. Citons quelques uns :
MACOMEDIA DREAMWEAVER, NetBeans, Notepad++, et pour notre projet nous avons
utilisé NetBeans 7.1
1.2.5- Choix du SGBd
[3] Un SGBD a pour rôle de stocker et de
gérer une grande quantité de données en les
organisant sous forme de tables, et de permettre la manipulation
de ces données à travers le langage de requête SQL.
[3] Il existe plusieurs SGBD tel que Oracle
Database, Access de Microsoft, SQL Server, SQLite, PostgreSQL, MySQL, Oracle
mais nous avons choisie MySQL car elle est devenue la base de données
open source la plus populaire au monde grâce à sa haute
performance, sa fiabilité et sa simplicité d'utilisation.
Beaucoup des sociétés les plus importantes et à forte
croissance telles que Google, Lafarge, EADS, Alcatel-Lucent, Nokia et YouTube,
réduisent leurs coûts de manière significative en utilisant
MySQL pour leurs sites Web, leurs applications critiques d'entreprise, ou en
embarquant MySQL au sein de leurs solutions. Non seulement MySQL est la base de
données open source la plus populaire au monde mais elle est aussi
devenue le choix privilégié pour la nouvelle
génération d'applications développées sur la pile
LAMP (Linux, Apache, MySQL, PHP / Perl / Python.). MySQL fonctionne sur plus de
20 plateformes incluant Linux, Windows, Mac OS, Solaris, HP-UX, IBM AIX, vous
offrant une grande flexibilité.
Il existe plusieurs outils pour se connecter a distante a une
base de donnee MySQL, nous pouvons citer entre autre : PhpMyAdmin,
MysqlWorkbeng, Mysql administrator, SQLYog. La facilité dotée au
dernier (SQL Yog) a influée sur notre choix.
1.2.6- Choix du logiCiel de gestionnaire de version
Pour travailler en équipe en parallèle,
nécessité d'un << référentiel commun >>
et d'outils pour éviter/gérer les modifications concurrentes.
Parmi les outils de gestion de version, nous pouvons citer : CVS, WebDAV,
DeltaV et Subversion. L'efficacité de subversion de pouvoir gerer les
modifications concurrentes sur des fichiers a influée sur notre
choix.
[4] Le projet Subversion a été
lancé par une équipe de développeurs experts de CVS.
Conscients des limites de CVS, ils ont décidé de créer un
système performant et moderne. Leur but n'était pas de
révolutionner le monde du contrôle de versions mais de corriger
les limites de CVS. En général Subversion est un système
de contrôle de révision, développé dans le but de
remplacer CVS comme norme du contrôle de révision dans le monde du
libre. La version 1.0 est sortie au terme de 5 ans de conception et
développement sponsorisé par CVS est un système
client/serveur qui permet aux développeurs de conserver leurs projets
sur un serveur central appelé dépôt. En utilisant les
clients CVS et les outils associés, les développeurs peuvent
faire des modifications du contenu sur le serveur. En fait, le
dépôt CVS conserve chaque changement fait sur chaque fichier,
créant ainsi un historique complet de toute l'évolution du
développement du projet. Les développeurs peuvent demander des
versions antérieures d'un fichier particulier, regarder un historique
des modifications et réaliser au besoin plusieurs autres actions
utiles.
Les opérations que nous avons le plus utilisé
sont:
- Checkout: à l'aide d'un client CVS,
chaque utilisateur souhaitant travailler sur le projet (pour modifier fichiers
ou simplement pour voir la dernière version des fichiers dans la base)
récupère une copie de travail grâce à une
opération appelée << checkout >>.
- Commit: lorsque l'utilisateur a
terminé de modifier les fichiers, il peut transmettre les modifications
à la base. Cette opération est appelée << commit
>>. Ainsi plusieurs développeurs peuvent travailler
simultanément sur une copie du dépôt et transmettre leurs
modifications.
- Update: S'il arrive qu'un utilisateur tente
de transmettre ses modifications alors qu'un autre utilisateur a lui-même
modifié ce fichier précédemment, CVS détecte un
conflit. Si les modifications portent sur des parties différentes du
fichier, le système CVS peut proposer une fusion des modifications,
grâce à une opération appelée diff, sinon CVS
- demande à l'utilisateur de fusionner manuellement les
modifications. Il est à noter que les fusions ne peuvent s'appliquer
qu'aux fichiers textes. CVS peut toutefois gérer des fichiers binaires
dans sa base, mais il n'a pas été prévu dans ce but. Les
modifications apportées par les autres utilisateurs ne sont pas
automatiquement répercutées par CVS sur la copie locale, il est
donc nécessaire, avant chaque modification de fichier, de mettre
à jour sa copie de travail grâce à une opération
appelée « update », afin de limiter les risques de
conflits.
1.2.7- Choix du Framework
[5] Un Framework est un
cadre de travail ou cadre d'application
offrant un ensemble d'outils et de briques logicielles, qui permettent
d'automatiser certaines parties du développement d'applications.
L'utilisation d'un Framework présente
plusieurs avantages : l'accélération du temps de
développement, la conservation d'un code homogène et une
pérennité certaine des projets. Enfin, les applications sont plus
facilement sécurisées. Par conséquent les
Framework sont en général mieux conçus et
plus robustes qu'une application développée par un seul
programmeur. Un nombre important de Framework est disponible
dans de nombreux langages. Il n'y a pas de Framework
idéal, chacun possède ses avantages et ses inconvénients.
Pour faire le bon choix il convient, après une première
présélection, d'en tester plusieurs afin de déterminer
celui répondant le mieux à vos besoins.
Parmi la multitude d'excellents Frameworks PHP
nous avons choisi de comparer cinq d'entre eux, adoptant tous la
structure MVC (Model-View-Controller ou
Modèle-VueContrôleur), Ces Frameworks sont parmi les plus connus
et renommés: cakePHP, Code Igniter, Jelix, Symfony, Zend, Notre choix a
été dirige sur CodeIgniter car Codelgniter est
particulièrement simple à utiliser, performant et d'une vitesse
d'exécution remarquable.
CodeIgniter est un Framework
PHP puissant, bien que léger, développé à
l'origine pour les propres besoins de l'entreprise EllisLab en
2006, il a depuis adapté le statut open source. Moins connu que
CakePHP ou Zend, CodeIgniter
est maintenu par la Société EllisLab et
remarquablement documenté. Son avenir semble prometteur, à en
juger par l'importance de sa communauté. CodeIgniter
est puissant bien que nécessitant peu de ressources. Il est en constante
évolution et son importante collection de librairies contribue largement
aux gains de productivité que l'on attend d'un
Framework, en matière de développement
d'applications de toutes natures. Sa simplicité d'utilisation par
rapport à
Symfony ou Zend contribue
à sa popularité au sein des développeurs
PHP. Son système de cache lui procure d'excellentes
performances et minimise l'impact sur le chargement des pages. Ses principaux
atouts : extrême légèreté, robustesse et
fiabilité. Facile à installer et acceptant de multiples
environnements, CodeIgniter à tout pour
séduire.
Selon un test réalisé il y a quelques mois par
Richard Goutorbe, consultant informatique à
Montpellier, l'utilisation de CodeIgniter pour le
développement d'applications PHP offre un gain de
productivité de 50%. La perte de performance liée à son
exécution est de l'ordre de 10%, très largement compensée
par une augmentation de fiabilité et de maintenabilité dû
à la réutilisation du code.
Tableau comparatif des 5 Frameworks
Nom
|
PHP
|
Modèle
|
Template
|
Cache
|
url conviviale
|
Validation de Formulaire
|
Ajax
|
Extension
|
Générateur de code
|
Cake PHP
|
5
|
MVC
|
PHP
|
0ui
|
0ui
|
0ui
|
0ui
|
0ui
|
0ui
|
CodeIgniter
|
4/5
|
MVC
|
PHP
|
0ui
|
0ui
|
0ui
|
Non
|
0ui
|
Non
|
Jelix
|
5
|
MVC
|
PHP
|
0ui
|
0ui
|
0ui
|
0ui
|
0ui
|
0ui
|
Symphony
|
5
|
MVC
|
PHP ou Smarty
|
0ui
|
0ui
|
0ui
|
0ui
|
0ui
|
0ui
|
Zend
|
5
|
MVC
|
/ PHP
|
0ui
|
0ui
|
Non
|
Non
|
Non
|
Non
|
Tableau 2: tableau comparative des framework
php
1.2.8- Choix du modèle de développement du
logiCiel
On considère aujourd'hui qu'on ne peut plus avoir une
démarche unique, mais qu'il faut construire le découpage temporel
en fonction des caractéristiques de l'entreprise et du projet. On
s'appuie pour cela sur des découpages temporels
génériques, appelés modèles de
développement. Les principaux modèles sont : modèle en
cascade, modèle en V, modèle en spirale, modèle par
incrément, modèle de prototypage et bien d'autres.
[6] Il existe pas mal de modèles, Le choix du
modèle est à prendre au sérieux puisque il n'y a pas un
modèle parfait et c'est difficile de se baser sur un seul modèle,
n'empêche d'avoir un modèle de référence. Cependant,
un ou plusieurs modèles peuvent bien s'adapter à un cas
donné par rapport à d'autres. En ce qui concerne notre projet, il
s'agit d'une application en relations étroites avec les clients. Il lui
faut temps en temps des maquettes d'essai. Raison pour laquelle on a choisi le
modèle de prototypage qui nous permet de présenter aux clients un
prototype et l'améliorer jusqu'à avoir un produit fini
satisfaisant. On peut faire ici des feed-back. Un prototype est modèle
exécutable d'un système logiciel, qui souligne des aspects
spécifiques, ses caractéristiques sont : un degré
élevé de participation du client, une représentation
tangible des exigences du client, très utile quand les exigences sont
instables ou incertaines. Ses avantages: participation du client, client
participe activement dans le développement du produit, le client
reçoit des résultats tangibles rapidement, le produit
résultant est plus facile à utiliser et à apprendre.
Figure 1: Modèle de prototypage
1.2.9- Diagramme De gantt
Pour faciliter le suivi des opérations à
entreprendre, éviter les oublis et les malentendus, l'information doit
parfaitement circuler. Le diagramme de Gantt est un planning qui permet de
représenter graphiquement le suivi des différents
opérations mises en oeuvre et leur réajustement compte tenu
d'éventuels aléas (retard), le diagramme de Gantt nous renseigne
sur la durée d'une tâche, le moment ou elle débute et celui
ou elle s'achève au plus tôt et au plus tard.
Tableau 3: diagrammes de Gantt
Chapitre iII AnAlyse et ConCeption du système
I- AnAlyse du système
Après avoir étudié le cahier des charges,
les méthodes de développement et de sécurisation, nous
allons effectuer une analyse des besoins, l'étude qui nous permettra de
comprendre la problématique et de dresser les objectifs de notre projet
afin de proposer la solution qui répondra aux exigences de notre
organisme d'accueil qui visera à améliorer les services que
offrent les banques à la clientèle.
1- EtudE dE fonctionnEmEnt dEs banquEs
Nous allons Ici étudier le point qui relie au quotidien
les banques et ses clients : l'Agence.
L'Agence est divisée en trois parties selon les taches
effectuées : Le Front Office, le Middle Office et le Back Office.
- Le Front office:
[7] Le front office est un espace
privilégié où est reçue la clientèle
dès son entrée à l'agence et où s'effectuent les
opérations courantes dans les banques.
Les procédures du Front Office sont les suivantes :
L'accueil, Les modalités d'ouverture de comptes, La gestion des
procurations, La clôture des comptes, Les opérations de caisse
(versements, retrait, transfert ...)
- Le Middle office :
Le Middle Office est l'espace intermédiaire entre le
Front Office & le Back Office, où s'effectuent les opérations
suivantes : Les opérations d'achat et de vente de devises, Chèque
de banque, Relevé de compte, Chéquiers, Bon de caisse
- Le Back Office :
Le Back Office est l'espace chargé d'assurer le suivi
administratif et comptable, d'organiser et d'assurer la saisie, le
contrôle, le règlement, la livraison et la prise en compte
comptable des négociations des valeurs mobilières
effectuées par le Front Office.
2- Problématiques
Après avoir étudié les services offerts
par les banques et leur clientèle, nous allons effectuer un diagnostic
sur l'ensemble de ces services afin d'en tirer la problématique, pour se
faire, nous allons dresser le diagramme de flux suivant :
Figure 2:Diagramme de flux d'une banque
Critique du diagramme de flux
Selon ce diagramme qui résume la diversité des
échanges entre le client et le Front, le Middle et le Back Office, nous
constatons que le client est soumis à se déplacer aux
différents offices de la banque aussi bien pour effectuer des
opérations telles que le versement, le retrait, le transfert etc. Mais
aussi pour avoir des informations sur son compte.
Le client se déplace aussi pour effectuer les demandes de
chéquier ou des bons de caisse, mais aussi pour demander un
renseignement au conseiller clientèle.
2.1- La probLématique
A partir de là, nous constatons une perte de temps non
seulement pour les clients mais aussi pour les employés de la banque
:
Le client perd du temps à faire la queue pour avoir de
simples informations sur ses opérations. L'employé perd du temps
à exécuter des tâches sans valeur ajoutée pour
informer le client sur ses opérations.
2.2- bjectifs
EcoPay est la solution qui va donner plus de confort, de
commodité et de confiance aux clients. Dorénavant, le client
d'une banque ne se déplacera à la banque rien que pour effectuer
les opérations nécessitant formellement sa présence
Cette solution vise à :
- Permettre aux clients d'avoir des informations sur leur compte
à distance.
- D'effectuer les paiements, retrait, virement et les transferts
à partir de leur téléphone portable ou de l'internet.
II- ConCeption du système
Une fois que nous avons achevé la partie « Analyse
des besoins » - l'étude qui nous a permis de décrire les
objectifs du système EcoPay, nous entamons l'étude
conceptuelle.
Il s'agit d'une étape cruciale dans la
réalisation d'une application donnée. Le futur d'un logiciel
dépend beaucoup de cette phase, elle nous permet d'éviter le
développement d'une application non satisfaisante. Concevoir un
système d'information n'est pas évident car il faut
réfléchir à l'ensemble de l'organisation que l'on doit
mettre en place. La phase de conception nécessite des méthodes
permettant de mettre en place un modèle sur lequel nous allons
s'appuyer. La modélisation consiste à créer une
représentation virtuelle d'une réalité de telle
façon à faire ressortir les points auxquels on
s'intéresse.
La phase de conception a pour objectif de s'accorder sur le
comment mais pas sur le quoi ; en d'autre terme, elle vise à trouver des
solutions informatiques et techniques pour mettre en oeuvre et construire le
système analysé au cours des phases précédentes.
Elle doit permettre d'élaborer les différentes couches du
système analysé et leurs interactions, d'abord au niveau plus
général puis à un niveau plus détaillé, en
tenant compte des contraintes informatiques et techniques : langage, base de
données, matériel....
Démarche adoptée :
Pour mener à bien le projet, nous avons choisi
d'utiliser le langage UML (Unified Modeling Language) qui est
considérée comme le standard en matière de
modélisation objet capable de résoudre certains problèmes
liés aux traitements.
Comme on l'a dit UML 2 possède treize diagrammes. Quant
à la catégorie dynamique à elle seule est associée
huit diagrammes. Dans notre application nous allons nous en servir de trois
seulement.
1- Diagramme De cas D'utilisation
Le but de ce diagramme est d'avoir une vision globale sur les
interfaces du futur logiciel. Ces diagrammes sont constitués d'un
ensemble d'acteurs qui agit sur des cas d'utilisation.
[8] L'objectif poursuivi par les cas
d'utilisation est de permettre de décrire, dans des documents lisibles
par tous, la finalité des interactions du système et de ses
utilisateurs.
1.1- IdentIfIcatIon des acteurs
Un acteur représente l'abstraction d'un rôle
joué par les entités externes (utilisateurs, dispositif
matériel ou autre système) qui interagissent avec le
système. Il a toujours le même comportement vis-à-vis d'une
interaction directe avec un cas d'utilisation.
- Cas d'utilisation pour un client simple
Figure 3: Diagramme des cas d'utilisation pour un client
simple
Use Cases Authentification
|
Commentaires
L'utilisateur envoie les informations requises pour ouvrir une
session.
|
Demande d'inscription
|
Le client se connecte au site pour saisie les informations
nécessaires pour la création de son porte-monnaie
électronique
|
Transférer l'argent
|
Il permet à un client d'effectuer un transfert de l'argent
d'un porte-monnaie à un autre
|
Modifier son password
|
Permet au client de changer son mot de passe pour l'accès
au système
|
Tableau 4: Explication des cas d'utilisation du client
simple
- Cas d'utilisation pour un client affaire
Figure 4: Diagramme des cas d'utilisation pour un client
affaire
Use Cases Commentaires
Authentification L'utilisateur envoie les
informations requises pour ouvrir
une session.
Demande d'inscription
|
Le client se connecte au site pour saisie les informations
nécessaires pour la création de son porte-monnaie
électronique
|
Transférer l'argent
|
Il permet à un client d'effectuer un transfert de l'argent
d'un porte-monnaie à un autre
|
Retrait physique argent
|
Permet au client d'entrer en possession de son argent
physiquement.
|
Régler un achat(ou paiement)
|
Régler la facture d'un achat effectué de son
porte-monnaie vers le porte-monnaie de son vendeur
|
Consulter
|
Permet au client de voir toutes les transactions
effectuées à un moment donné
|
Bloquer le porte-monnaie
|
Permet au client de suspendre toutes les opérations par
son porte-monnaie a un moment donné
|
Modifier son password
|
Permet au client de changer son mot de passe pour l'accès
au système
|
Tableau 5: Explication des cas d'utilisation du client
affaire
- Cas d'utilisation pour un DAA
Figure 5: Diagramme des cas d'utilisation pour un
Distributeur DAA
- Cas d'utilisation pour un chef agence
-
Figure 6: Diagramme des cas d'utilisation pour un chef
d'agence
Use Cases Commentaires
Authentification L'utilisateur envoie les
informations requises pour ouvrir une
session.
Gestion porte-monnaie Permet au chef d'agence de
valider un porte-monnaie, de le débiter,
de le créditer, de le bloquer et de le débloquer
Consulter (reporting) Permet au chef d'agence de
consulter toutes les transactions
(input/output) effectuées au sein de son agence
Archiver les données
|
Permet au chef d'agence de stocker les informations concernant
les différentes transactions (input/output) de son agence.
|
Tableau 6: Explication des cas d'utilisation du chef
d'agence
- Cas d'utilisation pour un DPA
- Cas d'utilisation pour un Banque
Figure 8: Diagramme des cas d'utilisation pour une
banque
Use Cases Authentification
|
Commentaires
L'utilisateur envoie les informations requises pour ouvrir une
session.
|
Demande de création
|
Permet à la banque de faire une demande pour faire partir
du réseau
|
Consulter (reporting)
|
Permet à la banque de consulter toutes les transactions
(input/output) effectuées au sein de toutes les agences appartenant
à sa banque
|
Archiver les données
|
Permet a la banque de stocker les informations concernant les
différentes transactions (input/output) de toutes les agences
appartenant à sa banque.
|
Gestion des agences
|
Il permet à la banque de créer une agence, de la
désactivée et de la activée
|
Tableau 7: Explication des cas d'utilisation d'une
banque
- Cas d'utilisation pour un administrateur
système
-
Figure 9: Diagramme des cas d'utilisation pour un
administrateur
Use Cases Commentaires
Authentification
|
|
L'utilisateur envoie les informations requises pour ouvrir une
session.
|
Demande de création
|
Permet à la banque de faire une demande pour faire partir
du réseau
|
Consulter (reporting)
|
Permet à la banque de consulter toutes les transactions
(input/output) effectuées au sein de toutes les agences appartenant
à sa banque
|
Archiver les données
|
Permet au chef d'agence de stocker les informations concernant
les différentes transactions (input/output) de toutes les agences
appartenant à sa banque.
|
Tableau 8: Explication des cas d'utilisation d'un
administrateur banque
1.2- Vue usage (description de quelque cas
d'utilisation) - Acteur: Client simple
Cas d'utilisation : Demande d'inscription
Description de Cas d'utilisation Pré condition:
· Distributeur connecté a EcoPay
a) Scenario nominal:
· Le distributeur DAA ou DPA saisi les informations du
client dans l'interface qui lui est fourni
· Le système crée le compte PME avec les
infos fournies
b) Le système renvoie une information
par SMS et par e-mail au client lui disant que son compte a été
créé avec succès avec son login et son mot de passe.
Post condition
· Son compte est crée en attendant la validation
Schéma du scenario
Cas d'utilisation: Transfert d'argent
Figure 11: Description du cas d'utilisation transfert
d'argent
Pré condition :
· Authentification
Scenario nominal
· Saisie des informations concernant le transfert
· Validation du transfert
· Confirmation du transfert (cas des interfaces)
· Notification par SMS
Exception
· Le compte n'est pas assez fourni
· Informations erronées
Cas d'utilisation : Retrait argent
Figure 12: Description du cas d'utilisation retrait
d'agent
Pré condition :
· Authentification (distributeur) Scenario
nominal
· Scenario des infos du retrait
· Validation du retrait (code pin)
· Confirmation du retrait
· Notification du client par SMS Exception
· Le compte n'est pas assez fourni
· Informations erronées
- Acteur: Administrateur Banque
Cas d'utilisation: Paramétrage
Créer Banque
Figure 13: Créer banque
Pré condition :
· Authentification (administrateur Bank)
Scenario nominal:
· Saisi les informations concernant une Bank
· Créer l'entité Bank
2- Diagramme De séquence
C'est une Représentation se concentrant sur la
séquence des interactions d'un point de vue temporel. Il permet la
description de l'ordre des interactions entre les objets qui composent le
système.
3- Diagramme De classe
Le diagramme de cas d'utilisation nous a montré le
système du point de vue des acteurs. Le diagramme de classe en montre la
structure interne. Il permet de fournir une représentation abstraite des
objets du futur système qui vont interagir ensemble pour réaliser
les cas d'utilisation. Il exprime de manière générale la
structure statique d'un système, en termes de classes et de relations
entre ces classes. Une classe permet de décrire un ensemble d'objets,
tandis qu'une association ou une relation permet de faire apparaître des
liens entre ces objets.
4- Maquette (non couvert par UML)
Une maquette d'IHM (Interface Homme-Machine) est un produit
jetable permettant aux utilisateurs d'avoir une vue concrète mais non
définitive de la future interface de l'application. La maquette peut
très bien consister en un ensemble de dessins produits par un logiciel
de présentation ou de dessin. Par la suite, la maquette pourra
intégrer des fonctionnalités de navigation permettant à
l'utilisateur de tester l'enchaînement des écrans ou des menus,
même si les fonctionnalités restent fictives.
Exemple de Maquette
Après le login l'utilisateur obtient le formulaire suivant
:
Logo
Menu de navigation
Url :
Pied de page
Corps de la page
Figure 14:maquette du Template d'EcoPay
Chapitre iV implémentation et Résultat
I- ImplémentatIon
Arrivé à ce stade nous pouvons nous estimer
heureux, il ne reste qu'à commencer à écrire notre code en
se basant sur les résultats obtenus des chapitres
précédents. Mais cela se fait en suivant des critères. On
doit passer par plusieurs jalons pour avoir un produit de bonne qualité.
Les règles utilise lors de l'implémentation sont les suivantes
:
- Casser la faisabilité, obtenir un premier code qui
marche dans le cas nominal, en écrivant des tests unitaires si besoin
;
- Pour chaque instruction, relire le code et gérer tous
les cas d'erreurs qui pourraient se présenter ;
- Refactoriser et si besoin optimiser le code si besoin
- Mettre au propre: c'est-à-dire enlever les bouts de
code commentés qui ne servent plus à rien, revoir le nommage des
variables et des noms de méthodes, enlever les warnings de compilation
si besoin, commenter les bouts de code qui ne sont pas triviaux à
comprendre ;
- Committer le code sur l'outil de gestion de sources (CVS,
SubVersion, ...) ;
Ainsi dans ce chapitre nous allons essayer de donner un bref
aperçu sur quelques modèles et choisir le modèle à
adopter, présenter les résultats de notre travail et finir par
une petite conclusion.
II- Résultats
Notre application s'agit d'une plateforme de paiement, de
transfert d'argent par téléphone ou par internet. La multitude
des taches que notre application est capable de faire engendre un grand nombre
de fenêtres. Nous allons essayer de sélectionner quelques unes qui
nous paraissent important pour les intégrer dans ce présent
mémoire.
Interface de logIn
Figure 15: Capture Interface login
C'est la première fenêtre qui s'affiche si on
exécute l'application toute personne qui veut bénéficier
des services doit s'authentifier. Après authentification une
fenêtre principale s'affiche et les menus sont activés selon les
droits d'accès de la personne authentifiée.
Code de validation
Figure 16: Capture Interface code de
validation
Si le login est correct l'utilisateur doit entrer le code de
validation, qu'il reçoit par SMS, et si le code de validation est
correct il obtiendra son espace de travail selon ses droits.
EnrEgistrEmEnt d'un administratEur
Figure 17: Capture Enregistrement d'un administrateur
EcoPay
Liste des entreprise de vente en Ligne
Figure 18: Capture Liste entreprise de vente en
ligne
Liste des cLients affaires d'une banque
Figure 19: Liste des clients d'une banque
Liste des distributeurs associés agence d'une
agence effectué par Le chef d'agence
Figure 20: Liste des distributeurs d'une
agence
Cette capture nous montre comment un chef d'agence peut un moment
donne avoir la liste de tous ses distributeurs.
EffEctuEr un paiEmEnt
Figure 21: Formulaire de paiement
Confirmation paiement
Figure 22: Formulaire de confirmation de
paiement
La confirmation se fait en entrant le code pin
Historique des paiements reçus
Figure 23: Capture historique des paiements
reçus
Ici nous pouvons voir comment un client connecté peut voir
l'historique des paiements qu'il a reçu pendant une période
donnée.
Détail D'un paiement effectué
Figure 24: Capture détail paiement
effectué
Apres avoir effectuée un paiement ou un transfert, chaque
client a la possibilité de voir le détail de la transaction.
EditEr facturE
Figure 25: Capture éditer une
facture
Lorsqu'un client standard effectue un paiement a une
société, il peut éditer une facture dans la quel il
précisera le motif et au nom de qui a été
édité la facture, par exemple il peut dire que c'est pour
inscription au nom de nom_de_letudiant ;
RecheRche des tRansactions effectuées en une
péRiode
Figure 26: Capture effectuer cherche par
période
Ici le client peut avoir les informations sur les transactions
effectué en une période, par exemple il peut savoir tous les
virements qu'il a reçu aux au long du mois d'octobre.
Résultat d'une RecheRche
effectuée
Figure 27: capture historique des transferts
effectue
Un client peut rechercher des informations sur une transaction et
en une période donnée et la capture ci-dessus nous donne le
résultat des transferts effectuées par aux personnels qui ne sont
pas dans la plate forme EcoPay.
Historique des transferts effectués aux
personnes externes au système EcoPay
Figure 28: capture historique transfert effectue aux
clients externes a EcoPay
Détail D'un transfert effectué
Figure 29 : Capture information sur un transfert effectue
a un client non EcoPay
Apres avoir effectué un transfert vers un client externe a
EcoPay il est possible de savoir si le bénéficiaire a
déjà retiré ou non et de savoir la date de retrait.
Détail D'une Facture
Ici la société (client affaire) qui reçoit
le paiement peut lire les détails de la facture de paiement
Figure 30: Détail d'une facture
Figure 31: Transfert d'argent sur un Smartphone
Android
Cette capture montre comment un client standard effectue un
transfert d'argent a partir de son telephone.
Conclusion et Perspective
ConClusion et perspeCtive
En somme, il était question pour nous de
développer un réseau informatique, pour paiement et transfert
d'argent par téléphone et par internet. Nous avons
appliqué au maximum possible les règles de bases permettant
d'avoir une application performante. Nous avons appliqué UML pour
concevoir une grande partie de notre travail. Nous avons utilisé le
Framework CodeIgniter de PHP5 et le SGBD MySQL pour implémenter notre
application.
Ce projet était bénéfique pour nous dans
plusieurs sens. Il nous a permis :
- De nous perfectionner en améliorant nos connaissances en
programmation et en conception ;
- D'optimiser les codes ;
- De bien comprendre et mettre en oeuvre le déroulement
d'un cycle de vie d'un logiciel ;
- De découvrir le monde de l'entreprise
(fonctionnement).
Grâce aux architectures que nous avons utilisé
(MVC et client/serveur) et du fait que PHP5 est un langage adaptable dans
plusieurs domaines, notre application permet a partir des web service
d'effectuer les opérations a partir du téléphone, nous
pouvons avoir des extensions ou des modifications dans le futur. Nous pourront
lier cette application à un site web dynamique qui permettra aux
marchands de vendre leurs marchandises en ligne.
Bibliographie
BiBliographie
Support de Cours
- Cour de Génie Logiciel L3 FTIC Mr Batchakui,
Informatique et électronique, - Cour de technique de communication L3
FTIC Informatique et électronique ; Ouvrage
- Jose Argudo Blanco, DavidU pton, CodeIgniter ,
ISBN: 978-1-847199-48-5, édition PACKT, 2007
- Christophe Porteneuve, Bien développer pour le
web 2.0, édition Eyrolles, 2007 - Christian Soutou,
Apprendre SQL avec MySQL édition Eyrolles, 2007
- Laurent Bloch, Sécurité Informatique
Principes et Méthode - Laurent Bloch - édition Eyrolles
2007
Site Web
[1] :
fr.wikipedia.org/wiki/Client-serveur
home.nordnet.fr/~ericleleu/cours/nfe107/Architecture
n-
tiers.ppt architecture
n-tier,
http://mrproof.blogspot.com/2011/03/larchitecture-client-serveur.html,
architecture n- tier consulte le 02/05/2012
[2] :
http://laurent-audibert.developpez.com/Cours-UML/html/index.html
consulte le
[3] :
www.mysql.fr/why-mysql/
Choix du SGBD MySQL, consulte le 02/05/2012
[4] :
ericreboisson.developpez.com/tutoriels/install-subversion/
http://fr.wikipedia.org/wiki/Apache_Subversion
installation et fonctionnement de SVN consulte le 14/05/2012
[5] :
http://davidleuliette.com/wordPress/dev/choix-du-framework-symphony-codeigniter-cakephp-orfuelphp/
choix du framework, consulte le 02/05/2012
[6] :
www.sescoi.fr/solutions-industries/modeles-et-prototype/,
Choix du modèle de prototypage consulte le 12/05/2012
[7] :
www.lesclesdelabanque.com,
www.cbanque.com/dictionnaire-cd.php,
fonctionnement des banques consulte le 02/08/2012
www.codeigniter.com site
officiel de codeigniter consulte le 02/05/2012
Annexe
Annexe
Organigramme de la CIC
DAF
Project Manager
Programmeurs
Figure 32: Organigramme CIC
|