WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Développement d'un réseau informatique, pour paiement et transfert d'argent par téléphone et par internet

( Télécharger le fichier original )
par Josias YOUMBI MBOUEDEU
Université protestante d'Afrique Centrale Yaoundé - Licence en science de l'ingénieur en informatique et électronique 2012
  

Disponible en mode multipage

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

 

Directeur Générale

DAF

Project Manager

Programmeurs

Figure 32: Organigramme CIC






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy