Conception et mise en place d’un CRM dédiée au centre d’appel à l’aide de Symfony4

Faculté des Sciences Économiques et de Gestion de Nabeul
1/77
100%
Rendu du PDF...
Page 1 sur 77Lecteur de document UniversityLib

Conception et mise en place d’un CRM dédiée au centre d’appel à l’aide de Symfony4

Faculté des Sciences Économiques et de Gestion de Nabeul · Ingénierie des Systèmes d'Information et des Connaissances · textbook

Voir tous les documents en génie logiciel

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique Université de Carthage **F**aculté des **S**ciences **E**conomiques et de **G**estion de **N**abeul

![C:\Users\Younes\Desktop\Younes 2019\Logo FSEGN.png](data:image/png;base64...)

Mémoire de Mastère

Présenté en vue d'obtenir le diplôme de la MASTÈRE PROFESSIONEL

SPECIALITE : Ingénierie des Systèmes d'Information et des Connaissances

Elaboré par

Arij BOUDHINA

**Conception et mise en place d’un CRM dédiée au centre d’appel à l’aide de Symfony4**

Réalisé au sein de

![C:\Users\Younes\Desktop\Ophony.jpg](data:image/png;base64...)

Encadré par

| | | | --- | --- | | Encadrant universitaire | Encadrant professionnel | | M. Taieb FELFEL | M. Taieb FELFEL |

Dédicaces

À ceux qui nous ont procuré soutien et courage,

À nos chers parents qui nous ont toujours honorés par leur fierté,

À nos chers professeurs qui n’ont épargné aucun effort en vue de nous faciliter les tâches et à qui nous devons respect et estime,

À tous les ami(e)s et à tous ceux qui nous avons eu la chance de croiser dans notre carrière,

Nous dédions ce travail modeste tout en souhaitant qu’il puisse susciter leur admiration,

À toute personne qui m’a aidé à franchir un horizon dans ma vie,

Merci à tous.

Remerciements

*M comme merci !! Pendant ce stage, venir chaque matin avec le même désir d’apprendre, de découvrir et de créer, n’est possible que si des personnes vous soutiennent et vous encouragent. Merci à tous ceux qui ont contribué à la réalisation de ce travail. Vous quittez se fera à Contrecœur.*

*E comme enrichissant !! Le projet est une expérience enrichissante sur le plan scientifique et humain. Ainsi, je tiens à remercier* ***M. Taieb FELFEL****, mon encadrant professionnel et universitaire, pour ses conseils assez utiles et fructueux, son écoute et sa patience, pour m’avoir accordé de son temps pour répondre à toutes mes questions sur les différentes manières d’aborder et de résoudre le sujet.*

*Merci également pour toute l’équipe d’****Ophony*** *pour leurs conseils, pour le partage de connaissances, pour la convivialité, ainsi pour leurs efforts méritoires qu’ils ont déployés du début jusqu’à la fin de ce stage.*

*Je tiens également à exprimer mes vifs remerciements à tous mes professeurs de la* ***FSEGN*** *qui ont aidé de près ou de loin.*

*Mes gratitudes et mes remerciements les plus distingués sont aussi adressés aux membres de Jury qui ont eu la gentillesse et l’honneur d’évaluer ce travail.*

*Enfin, j’espère que ce travail sera à la hauteur et pourra répondre aux attentes et exigences auxquels il a été destiné.*

Table des matières

Dédicaces i

Remerciements ii

Table des matières iii

Liste des figures vi

Liste des tableaux viii

Liste des abréviations ix

Introduction générale 1

Chapitre I. Cadre général de projet 2

I.1 Introduction 2

I.2 Entreprise d’accueil : Ophony 2

I.2.1 Présentation de l’organisme d’accueil 2

I.2.2 Organigramme d’Ophony 3

I.2.3 Missions 3

I.2.4 Positionnement 4

I.2.5 Valeurs 4

I.3 Les métiers d’Ophony 4

I.3.1 Mission Architecture Orientée Service 4

I.3.2 Entreprise Application Intégration 5

I.3.3 Processus métier 5

I.4 Les produits d’Ophony 6

I.4.1 Nuxeo Entreprise Platform 7

I.4.2 Asterisk 7

I.4.3 Joomla 8

I.4.4 Commerce 8

I.5 Conclusion 8

Chapitre II. Analyse et spécification des besoins 9

II.1 Introduction 9

II.2 Présentation de projet 9

II.2.1 Etude de l’existant 9

II.2.2 Critique de l’existant 9

II.2.3 Solution proposée 10

II.3 Spécifications des besoins 10

II.3.1 Analyse globale de l’application 10

II.3.2 Spécification des besoins fonctionnels 11

II.3.3 Spécification des besoins non fonctionnels 11

II.4 Conclusion 12

Chapitre III. Conception 13

III.1 Introduction 13

III.2 Choix de méthode de conception 13

III.3 Atelier génie logiciel 14

III.4 Présentation du processus de développement 15

III.5 Démarche de conception 17

III.5.1 Identification des acteurs 17

III.5.2 Diagramme de cas d'utilisation 17

III.5.2.1 Diagramme de cas d’utilisation général 17

III.5.2.2 Détails de cas d’utilisation 19

III.5.2.3 Diagramme de cas d’utilisation "Gérer les utilisateurs" 20

III.5.2.4 Diagramme de cas d’utilisation "Gérer les centres d’appels" 21

III.5.2.5 Diagramme de cas d’utilisation "Gérer les groupes" 22

III.5.2.6 Diagramme de cas d’utilisation "Gérer les campagnes" 23

III.5.2.7 Diagramme de cas d’utilisation "Gérer les statuts" 24

III.5.2.8 Diagramme de cas d’utilisation "Gérer les listes" 25

III.5.2.9 Diagramme de cas d’utilisation "Gérer les fiches" 26

III.5.2.10 Diagramme de cas d’utilisation "Consulter les statistiques" 27

III.5.2.11 Diagramme de cas d’utilisation "Gérer les téléphones" 28

III.5.2.12 Diagramme de cas d’utilisation "Gérer les appels téléphoniques" 29

III.5.2.13 Diagramme de cas d’utilisation "Consulter les rendez-vous" 30

III.5.3 Diagramme de séquence 31

III.5.3.1 Diagramme de séquence "Authentification" 31

III.5.3.2 Diagramme de séquence "Ajouter" 32

III.5.3.3 Diagramme de séquence "Modifier" 33

III.5.3.4 Diagramme de séquence "Supprimer" 34

III.5.3.5 Diagramme de séquence "Importer fiche CSV" 35

III.5.3.6 Diagramme de séquence "Consulter fiche rendez-vous" 36

Publicité

III.5.3.7 Diagramme de séquence "Consulter les statistiques" 37

III.5.4 Diagramme de classe 38

III.6 Conclusion 40

Chapitre IV. Réalisation 41

IV.1 Introduction 41

IV.2 Architecture logiciel : Architecture 3-tiers 41

IV.3 Qu'est-ce qu'un framework ? 42

IV.4 Qu'est-ce que Symfony4 42

IV.4.1 Les avantages de Symfony4 43

IV.4.2 Qui utilise Symfony4 ? 43

IV.4.3 L'architecture conceptuelle de Symfony4 43

IV.5 Environnement de développement 45

IV.5.1 Environnement matériel 45

IV.5.2 Environnement logiciel 45

IV.5.3 Les piles de logiciels de notre application 46

IV.5.4 Les caractéristiques de VICIdial 48

IV.6 Jeux d’essai 49

IV.6.1 Interface "Authentification" 49

IV.6.2 Interface "Liste des utilisateurs" 50

IV.6.3 Interface "Ajouter un utilisateur" 51

IV.6.4 Interface "Liste des centres d’appels" 52

IV.6.5 Interface "Ajouter un centre d’appel" 52

IV.6.6 Interface "Liste des groupes" 53

IV.6.7 Interface "Ajouter un groupe" 53

IV.6.8 Interface "Liste des campagnes" 54

IV.6.9 Interface "Ajouter une campagne" 54

IV.6.10 Interface "Modifier une campagne" 55

IV.6.11 Interface "Liste des listes" 55

IV.6.12 Interface "Ajouter une liste" 56

IV.6.13 Interface "Liste des statuts campagnes" 56

IV.6.14 Interface "Ajouter un statut campagne" 57

IV.6.15 Interfaces "Liste statistique des campagnes" 58

IV.6.16 Interfaces "Liste statistique des fiches par liste" 59

IV.6.17 Interface "Liste exporter diagramme" 60

IV.6.18 Interface "Liste des téléphones" 61

IV.6.19 Interface "Ajouter un téléphone" 61

IV.6.20 Interface "Modifier un téléphone" 61

IV.6.21 Interface "Connexion en tant que super administrateur" 62

IV.6.22 Interface "Connexion en tant que administrateur" 62

IV.6.23 Interface "Connexion en tant que agent" 62

IV.7 Conclusion 63

Conclusion générale 64

Webographie 65

Liste des figures

[Figure 1 – Logo d’Ophony 2](#_Toc50374962)

[Figure 2 – Organigramme d’Ophon 3](#_Toc50374963)

[Figure 3 – Logo d’UML 13](#_Toc50374964)

[Figure 4 – Logo de StarUML 14](#_Toc50374965)

[Figure 5 – Cycle de vie en cascade 15](#_Toc50374966)

[Figure 6 – Diagramme de cas d'utilisation général 18](#_Toc50374967)

[Figure 7 – Diagramme de cas d'utilisation "Gérer les utilisateurs" 20](#_Toc50374968)

[Figure 8 – Diagramme de cas d'utilisation "Gérer les centres d'appels" 21](#_Toc50374969)

[Figure 9 – Diagramme de cas d'utilisation "Gérer les groupes" 22](#_Toc50374970)

[Figure 10 – Diagramme de cas d'utilisation "Gérer les campagnes" 23](#_Toc50374971)

[Figure 11 – Diagramme de cas d'utilisation "Gérer les statuts" 24](#_Toc50374972)

[Figure 12 – Diagramme de cas d'utilisation "Gérer les listes" 25](#_Toc50374973)

[Figure 13 – Diagramme de cas d'utilisation "Gérer les fiches" 26](#_Toc50374974)

[Figure 14 – Diagramme de cas d'utilisation "Consulter les statistiques" 27](#_Toc50374975)

[Figure 15 – Diagramme de cas d'utilisation "Gérer les téléphones" 28](#_Toc50374976)

[Figure 16 – Diagramme de cas d'utilisation "Gérer les appels de téléphoniques" 29](#_Toc50374977)

[Figure 17 – Diagramme de cas d'utilisation "Consulter les rendez-vous" 30](#_Toc50374978)

[Figure 18 – Diagramme de séquence "Authentification" 31](#_Toc50374979)

[Figure 19 – Diagramme de séquence "Ajouter" 32](#_Toc50374980)

[Figure 20 – Diagramme de séquence "Modifier" 33](#_Toc50374981)

[Figure 21 – Diagramme de séquence "Supprimer" 34](#_Toc50374982)

[Figure 22 – Diagramme de séquence "Importer fiche CSV" 35](#_Toc50374983)

[Figure 23 – Diagramme de séquence "Consulter fiche rendez-vous" 36](#_Toc50374984)

[Figure 24 – Diagramme de séquence "Consulter les statistiques" 37](#_Toc50374985)

[Figure 25 – Diagramme de classe 39](#_Toc50374986)

[Figure 26 – Architecture 3-tiers 41](#_Toc50374987)

[Figure 27 – Quelques framework PHP 42](#_Toc50374988)

[Figure 28 – Exemples d'applications réalisées avec Symfony 43](#_Toc50374989)

[Figure 29 – Architecture Symfony4 44](#_Toc50374990)

[Figure 30 – Logo de XARIX 46](#_Toc50374991)

[Figure 31 – Logo de VICIdial 49](#_Toc50374992)

[Figure 32 – Interface "Authentification" 49](#_Toc50374993)

[Figure 33 – Interface "Liste des utilisateurs" 50](#_Toc50374994)

[Figure 34 – Interface "Ajouter un utilisateur" 51](#_Toc50374995)

[Figure 35 – Interface "Liste des centres d’appels" 52](#_Toc50374996)

[Figure 36 – Interface "Ajouter un centre d’appel" 52](#_Toc50374997)

[Figure 37 – Interface "Liste des groupes" 53](#_Toc50374998)

[Figure 38 – Interface "Ajouter un groupe" 53](#_Toc50374999)

[Figure 39 – Interface "Liste des campagnes" 54](#_Toc50375000)

[Figure 40 – Interface "Ajouter une campagne" 54](#_Toc50375001)

[Figure 41 – Interface "Modifier une campagne" 55](#_Toc50375002)

[Figure 42 – Interface "Liste des listes" 55](#_Toc50375003)

[Figure 43 – Interface "Ajouter une liste" 56](#_Toc50375004)

[Figure 44 – Interface "Liste des statuts campagnes" 56](#_Toc50375005)

[Figure 45 – Interface "Ajouter un statut campagne" 57](#_Toc50375006)

[Figure 46 – Interface "Liste des campagnes" 58](#_Toc50375007)

[Figure 47 – Interface "Statistique des campagnes" 58](#_Toc50375008)

[Figure 48 – Interface "Liste des fiches par liste" 59](#_Toc50375009)

Publicité

[Figure 49 – Interface "Nombre de fiches pour chaque statut" 59](#_Toc50375010)

[Figure 50 – Interface "Nombre de fiches appelées pour chaque statut" 60](#_Toc50375011)

[Figure 51 – Interface "Nombre de fiches non appelées pour chaque statut" 60](#_Toc50375012)

[Figure 52 – Interface "Exporter en format PNG, JPEG, PDF, SVG" 60](#_Toc50375013)

[Figure 53 – Interface "Liste des téléphones" 61](#_Toc50375014)

[Figure 54 – Interface "Ajouter un téléphone" 61](#_Toc50375015)

[Figure 55 – Interface "Modifier un téléphone" 61](#_Toc50375016)

[Figure 56 – Interface "Page d'accueil super administrateur" 62](#_Toc50375017)

[Figure 57 – Interface "Page d'accueil administrateur" 62](#_Toc50375018)

[Figure 58 – Interface "Page d'accueil agent" 62](#_Toc50375019)

Liste des tableaux

[Tableau 1 – Les technologies utilisées 45](#_Toc50375020)

Liste des abréviations

B2B Business to business

B2C Business to consumer

BPEL Business Process Execution Language

CMS Content Management System

CRM Customer Relationship Management

EAI Entreprise Application Intégration

ECM Enterprise Content Management

EDI Electronic Data Interchange

ESB Enterprise Service Bus

IAX Inter-Asterisk eXchange

IRC Internet Relay Chat

IVR Interactive Voice Response

GRC Gestion de la Relation Client

MVC Modèle - Vue - Contrôleur

PBX Private Branch eXchange

SIP Session Initiation Protocol

SOA Service Oriented Architecture

UML Unified Modeling Language

WS-BPEL Web Services Business Process Execution Language

Introduction générale

Les entreprises, quel que soit leurs domaines d’activités, ont toujours le même besoin on terme de logiciel de gestion. Que ce soit pour gérer les personnes de la société, leurs projets, les clients...

Ce rapport décrit le stage effectué dans la société Ophony. Ce stage se situe dans le cadre de la formation du Mastère Professionnel en Ingénierie des Systèmes d'Information et des Connaissances à la Faculté des Sciences Économiques et de Gestion de Nabeul.

Ce stage est particulièrement orienté « Conception et mise en place d’un CRM dédié au centre d’appel à l’aide de Symfony4 » à Ophony.

Plusieurs outils ont été utilisés pour permettre le développement d’un outil de reporting.

Le résultat de ce stage est de concevoir et développer une application web qui permet de gérer plusieurs campagnes en intégrant toutes les fonctionnalités pour une gestion dynamique de centre d’appel.

Ce rapport contient quatre chapitres :

Dans le premier, la présentation de la société Ophony ainsi ses missions, ses activités, ses produits et son rôle dans le domaine d’informatique.

Dans le second chapitre, nous proposons d’analyser l’existant ainsi nous identifions les besoins fonctionnels et non fonctionnels.

Dans le troisième chapitre nous élaborons une conception détaillée des cas d’utilisations, les diagrammes de séquence, ainsi qu’un diagramme de classe complet.

Dans le dernier chapitre, nous détaillerons la réalisation de notre application en présentant l’environnement logiciel utilisée et la différente technique de réalisations, nous allons aussi donner une vue sur l’application dans son état final tout en présentant les différentes interfaces de cette dernière.

1. Cadre général de projet

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

* 1. Introduction

Ce chapitre introductif présent l’organisme d’accueil Ophony au sein duquel nous avons effectué le stage relatif au présent projet avec ses métiers et ses produits.

* 1. Entreprise d’accueil : Ophony

Ce projet s’inscrit dans le cadre de la préparation d’un rapport de fin d’études à FSEG Nabeul, présenté en vue d’obtenir le diplôme de Mastère Professionnel en Ingénierie des Systèmes d'Information et des Connaissances. Le stage de fin d’études est effectué au sein de l’entreprise « Ophony ».

* + 1. Présentation de l’organisme d’accueil

Ophony est un opérateur télécom, il offre des services d’interconnexion voix en qualité premium.

Ophony à des plateformes assurant une continuité de services et des garanties de temps d’intervention en correspondance avec les normes internationales. Elle a une intégration verticale de l’ensemble du métier des télécoms et offre une maitrise technique hardware ainsi qu’un ensemble de solutions de productivité.

![C:\Users\Younes\Desktop\Ophony.jpg](data:image/png;base64...)

Figure – Logo d’Ophony

* + 1. Organigramme d’Ophony

![](data:image/png;base64...)

Figure 2 – Organigramme d’Ophony

* + 1. Missions

Ophony intervient dans l’évolution des systèmes d’informations dans la charnière capitalisation-évolution.

Cette mission se synthétise en quatre points :

* Urbanisation du SI en fonction du cœur de métier de notre client. * Ouverture du SI vers les échanges B2B, B2C ou EDI. * Mise en place de l’architecture logicielle en adéquation avec existant et ouverture. * Adaptation de l’architecture physique en fonction des besoins en performances et sécurité. + 1. Positionnement

La capitalisation des savoir-faire et des bonnes pratiques, par l’expérience ou par la formation, nous permet de proposer une offre de conseil parfaitement adaptée aux attentes de nos clients et ancrée aux problématiques de leurs métiers.

* + 1. Valeurs

Apporter à notre client la satisfaction d’une solution adaptée à son besoin. Raison pour laquelle nous cultivons notre indépendance vis-à-vis des solutions et des éditeurs.

Notre valeur ajoutée est notre savoir-faire et la satisfaction de nos clients constituent notre priorité. Ophony accompagne ses clients dans toutes les phases des projets.

Son conseil porte sur les axes suivants :

* **Conseil technique et technologique :** La mise en disposition aux clients le capital en matière de solutions techniques et savoir-faire technologique. * **Conseil fonctionnel :** L’étude de choix de la solution la plus adaptée en fonction du périmètre fonctionnel pré requis. * **Conseil en organisation :** Toute évolution du système d’information nécessite une adaptation de l’organisation interne. Ils accompagnent leurs clients dans la gestion du changement. 1. Les métiers d’Ophony 1. Mission Architecture Orientée Service

L'architecture orientée services ou Service Oriented Architecture (SOA) est une architecture d’échange d’information. Elle se synthétise par un fournisseur offrant des services et un ou des clients consommant ces services. Ces services sont des composants logiciels offrant une brique fonctionnelle : les web Services. Cette technologie peut être utilisée en interne à l’entreprise que pour les échanges externes.

L’architecture SOA représente la convergence de plusieurs technologies et est maintenant intégrée non seulement aux solutions d’inter-échange mais aussi aux différents progiciels métiers.

Les outils intégrant cette approche d'architecture du SI sont appelés Enterprise Service Bus (ESB).

* + 1. Entreprise Application Intégration

L'intégration d'applications d'entreprise est une architecture logicielle d’échange de flux d’informations intra-entreprise. Elle permet à des applications hétérogènes d’opérer des échanges. Ces échanges sont en général liés à des informations métiers. En terme d’urbanisation ces informations métiers sont baptisées objets métier. L’EAI gère alors les échanges d’objets métiers entre applications diverses. Cet échange permet d’homogénéiser l’information dans le SI en temps réel ou au fil de l’eau.

* + 1. Processus métier

La gestion des processus métier vise à formaliser, organiser et contrôler les activités d'une entreprise. Elle se focalise au sein de l’entreprise au niveau acteur et son interaction au sein de l’entreprise. Cet acteur peut être humain ou le système d'information. Les activités intégrées dans les processus métier peuvent alors être manuelles, interactives ou complètement automatisées. Lorsque les processus sont suffisamment bien définis et modélisés, il devient possible d'en exécuter certains automatiquement et d'en contrôler le déroulement. C'est le rôle des moteurs d'exécution qui tendent à adopter un standard de description : Le Business Process Execution Language (BPEL ou WS-BPEL).

* **BPM**

Business Process Modeling ou Business Process Management, sont deux notions étroitement liées :

* **Business Process Modeling :** C'est la modélisation des flux métier de l’entreprise. Les différents échanges entre applications ou entre services est appelé flux.

La BPM se consacre à créer des modèles de ces flux. Ces flux comportent essentiellement des objets métiers de l’entreprise.

* **Business Process Management :** C’est la gestion de ces flux métier. Le Business Process Management s’attèle à outiller la gestion de ces flux autant en matière d’outils qu’en matière d’organisation.

La mise en place d’un BPM s’accompagne en général d’outils de workflow qui permettent le suivi des processus d’échanges.

* **BAM** * **Business Activity Monitoring** ou supervision des activités métier est souvent associée au BPM. Il s'attèle au suivi des processus métier. Son objectif consiste à s'assurer de la performance de ces derniers au regard de leur degré de criticité.

Un projet de BAM nécessite généralement la mise en œuvre de deux types de briques :

* Un outil d'intégration pour agréger l'ensemble des données techniques nécessaires. * Une solution de reporting pour compiler et présenter les résultats. * **Décisionnel**

Le décisionnel est le raccourci du terme outils d’aides à la décision. En anglais il est l’équivalent du terme Business Intelligence. Il couvre l'ensemble des technologies permettant en bout de chaîne d'apporter une aide à la décision.

Pour statuer sur les choix stratégiques, le chef d’entreprise a besoin d'une information exacte lui permettant de jauger son activité à l'aide d'indicateurs de performance clefs. Sans cette disposition, les décisions perdent de leur clairvoyance ou prennent du délai ce qui peut occasionner une position ou des réactions et inadaptées au marché.

* 1. Les produits d’Ophony

Ophony offre intégration et support sur deux types de produits :

* **EAI, B2B et serveurs d'applications**

Dans le domaine de l'architecture et l'urbanisation nous travaillons sur des produits d'intégration comme webMethods ou webLogic. Nous avons développé une grande expérience dans l'utilisation de tels produits dans des architectures distribuées avec des fortes contraintes en termes de sécurités et de performance.

* **Produits spécifiques pour l'entreprise**

Nous basons notre offre essentiellement autour de solutions open sources, Nous avons développés une expertise techniques sur ces solutions qui couvrent un périmètre fonctionnel important dans le besoin des sociétés qui va de la GED/ECM jusqu'au couplage CTI/SI. Nous sommes passés partenaires avec certains des éditeurs de ces solutions.

* + 1. Nuxeo Entreprise Platform

Publicité

**Nuxeo Enterprise Platform (EP)** est une solution d’Enterprise Content Management (ECM/GED) open source robuste et extensible basée sur les technologies JavaEE.

* Permet aux organisations de profiter des opportunités offertes par la nouvelle Société de l’information (web 2.0, multiplication des sources de données numériques, e-mails, travail online/offline, mobilité, etc.). * Permet de gérer l’ensemble des types de contenus utilisés par une organisation au moyen d’une plate-forme unique. Cette approche permet à différents utilisateurs ou groupes d’utilisateurs d’accéder de manière sécurisée aux informations de l’entreprise, de les réutiliser et de les partager avec d’autres départements ou secteurs d’activité. * Permet également de diffuser en toute sécurité le contenu de l’entreprise auprès de ses partenaires et de ses clients. + 1. Asterisk

Asterisk est une implémentation open source d'un commutateur téléphonique privé PBX (Private Branch eXchange).

Cette implémentation tourne sous Linux, Open BSD, FreeBSD, Mac OS X, Solaris et dernièrement un portage est fait sous Microsoft Windows. Il supporte les protocoles SIP et IAX. Asterisk s'interconnecte avec tous les équipements de téléphonie de base standard.

Asterisk offre les fonctionnalités suivantes :

* Messagerie vocale * Conférence téléphonique * Transfert d'appel * Répondeur vocal interactif * Mise en attente d’appels * Services d'identification de l'appelant * Fonctionnalités pour centre d'appel * Fonctionnalité IVR/boite vocale * Service de connexion à des applications externe (CRM/facturation...) * VoIP (Voice over IP) * Gestion de la voix et de la vidéo + 1. Joomla

Un système de gestion de contenu (en anglais, CMS, pour Content Management System). Un CMS est un système de portail permettant de publier un site web dynamique.

Il est composé d'un front office et d'un back-office, le front office représente la partie visible par les internautes et le back-office est la partie administration du site qui permet d'éditer et de générer les différentes pages du site.

Joomla est un CMS Open Source distribué sous licence GNU/GPL avec lequel vous pourrez mettre en ligne du contenu et mettre à disposition aux internautes des visiteurs des services (forum, boutique en ligne, galerie photos, etc.) le tout sans connaissances techniques particulières.

* + 1. Commerce

Pour la vitrine sur internet, elle propose un accompagnement complet depuis la spécification du besoin, en passant par les différents choix technologiques, jusqu’à la mise en place et l’hébergement.

Son offre se base sur les produits phares open source : virtueMart et osCommerce.

* 1. Conclusion

Dans ce premier chapitre, nous avons présenté une étude approfondie ce qui existe sur le marché. Ceci nous a permis d’avoir une idée sur les améliorations que nous allons ajouter à la solution existant afin de répondre aux besoins d’Ophony.

1. Analyse et spécification des besoins

**\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_**

* 1. Introduction

La phase d’analyse et spécification des besoins présente une étape primordiale dans le cycle de développement d’un projet. En effet, elle permet de mieux comprendre le travail demandé dans l’environnement de l’entreprise en dégageant les besoins des différents utilisateurs que le système doit accomplir.

* 1. Présentation de projet

Le CRM VICIDIAL est un CRM prédictif stable, performant, sécurisé et évolutif. Il convient aux centres d’appel de petite à grande taille dans diverses industries. Il permet sur une seule plateforme de gérer plusieurs campagnes en intégrant toutes les fonctionnalités pour une gestion dynamique de centre d’appel. A présent, Ophony dispose d’un site développé avec le Framework Symfony2 pour présenter le CRM Vicidial ainsi que ses services.

* + 1. Etude de l’existant

Dans cette section, les objectifs de notre stage de fin d’études seront représentés. Au début nous évoquons le contexte du projet et nous enchainons par la suite avec la description du travail demandé.

* + 1. Critique de l’existant

Après une recherche et collecte des informations approfondis nous avons remarqué qu’à Ophony le CRM VICIdial représente les limites suivantes :

* **Espace non ergonomique :** La conception graphique de l’application était très classique et basique. Il y avait un manque d’innovation et de créativité du coté design. * **Application lourde :** Lenteur de l’application lors de l’accès à un service. * Le site a été développé avec l’ancienne version de Symfony (Version 2) alors pour l’améliorer on a essayé de le mettre à jour avec la dernière version (Version 4). * Les données de l’application non sécurisées. + 1. Solution proposée

La mise en place d’une solution décisionnelle est devenue nécessaire pour la société Ophony. Notre mission est de concevoir et développer une nouvelle application permettant la gestion de la relation client (GRC), ou gestion des relations avec les clients, appelé aussi Customer Relationship Management (CRM).

Notre solution permettre de :

* Visualiser des tableaux de bord. * Améliorer les fonctionnalités de l’application. * Utiliser une architecture MVC, cette architecture sert à simplifier la tâche du développeur qui tenterait d’effectuer une maintenance ou une amélioration sur le projet. * De plus, elle doit être ergonomique et facile à utiliser. 1. Spécifications des besoins

La phase d’analyse et spécification des besoins présente une étape primordiale dans le cycle de développement d’un projet. En effet, elle permet de mieux comprendre le travail demandé en dégageant les besoins des différents utilisateurs que le système doit accomplir.

* + 1. Analyse globale de l’application

Cette section a pour objet de présenter les acteurs et leurs fonctionnalités auxquelles doit répondre notre application.

Nous commençons notre analyse par identifier les acteurs qui agissent sur notre système à savoir :

**Administrateur :** Joue un rôle primordial dans l’assurance du bon fonctionnement du système. C’est la personne qui prend en charge la gestion des contrôleurs ainsi que leurs licences. Cette personne bénéficie de toutes les fonctionnalités de l’application.

**Contrôleur :** C’est un acteur qui intervient seulement pour gérer ces propres informations.

* + 1. Spécification des besoins fonctionnels

Notre système intitulé VICIdial doit satisfaire les besoins fonctionnels suivants :

* Gérer les campagnes * Gérer les listes * Gérer les utilisateurs * Gérer les groups * Gérer les statuts * Gérer les statistiques * Gérer les agendas * Gérer les SMS * Gérer le temps d'appel * Gérer les appels sortants/entrants * Gérer l'historique des activités * Gérer les rendez-vous * Suivi la production en temps réel * Récupérer les enregistrements pour toutes les communications + 1. Spécification des besoins non fonctionnels

Ce sont les besoins qui permettent d’améliorer la qualité des services de l’application.

Parmi ces besoins on peut citer :

**La sécurité** **:** Besoins d’établissement de la connexion, il faut avoir une interface d’authentification qui permet à chaque utilisateur de se connecter en sécurité.

**La convivialité** **:** Le site doit être facile à utiliser. Il doit présenter un enchainement logique entre les interfaces et un ensemble de liens suffisants pour assurer une navigation rapide et un texte compréhensible, visible et lisible.

**La disponibilité** **:** Lorsque n’importe quel utilisateur désire consulter le site, il doit être disponible.

**Temps de réponse :** Le temps de réponse de calcul doit être le plus court possible.

* 1. Conclusion

Ce chapitre nous a permis de décrire l’existant et les principales fonctionnalités de notre système. Dans le chapitre suivant, nous entamons la phase de conception afin de déterminer les vues, statique et dynamiques, du système à réaliser.

1. Conception

**\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_**

* 1. Introduction

La conception est une phase très importante dans le cycle de développement, l’accompagnement de cette phase par des outils appropriés est crucial pour produire une application de qualité et pour optimiser l’effort de développement. Ce chapitre présente toutes les étapes liées à la conception de l’application en utilisant les différents diagrammes UML.

* 1. Choix de méthode de conception

Pour la réalisation de ce projet, nous avons opté le langage UML (Unified Modeling Language). En effet, UML est un langage de modélisation unifie utilisé généralement pour spécifier, visualiser, construire et documenter les artifices d’un système informatique. Il est apparu dans le monde du génie logiciel, dans le cadre de la « conception orientée objet ». Couramment utilise dans les projets logiciels, il peut être appliqué à toutes sortes de systèmes. Il est très intuitif, plus simple, plus homogène est plus cohérent que les autres méthodes. UML permet de modéliser toute méthode ou tout langage de programmation. C’est une notation graphique simple, compréhensible même par des non informaticiens.

![UML_logo](data:image/png;base64...)

Figure 3 – Logo d’UML

UML est basé sur la notation des diagrammes qui sont classé en deux catégories : les diagrammes structurels et les diagrammes comportementaux.

Les diagrammes structurels représentent l’aspect statique du système d’information en définissant la structure du problème et de quelles parties il est compose.

Les diagrammes statiques sont :

* Le diagramme de classes * Le diagramme d’objets * Le diagramme de package * Le diagramme de composants * Le diagramme de déploiement

Les diagrammes comportementaux aux diagrammes dynamiques UML présentent les aspects dynamique du système d’information, le comportement du problème et de sa solution ainsi l’interaction les collaborations entre les éléments de la solution.

Les diagrammes dynamiques sont :

* Le diagramme d’activités * Le diagramme de séquence * Le diagramme de collaboration * Le diagramme de communication * Le diagramme de cas d’utilisation * Le diagramme d’états transition 1. Atelier génie logiciel

Différents logiciels sont utilisés pour faire la conception des projets. Parmi ces logiciels, on cite StarUML, PowerAMC, AgroUML etc.

Notre outil de conception UML est le logiciel Start UML.

![StarUML_logo](data:image/png;base64...)

Figure 4 – Logo de StarUML

StarUML est un logiciel de modélisation UML, cédé comme open source par son éditeur, à la fin de son exploitation commerciale, sous une licence modifiée de GNU GPL.

* 1. Présentation du processus de développement

Afin de répondre au mieux aux besoins cités précédemment, nous sommes orientes vers l’utilisation d’un processus de développement en cascade qui demeure actuellement le plus utilise. Le modèle en cascade (en anglais : waterfall model) est un modèle de gestion linéaire qui divise les processus de développement en phases de projet successives. Contrairement aux modèles itératifs, chaque phase est effectuée une seule fois. Les sorties de chaque phase antérieure sont intégrées comme entrées de la phase suivante. Le modèle en cascade est principalement utilisé dans le développement de logiciels.

![Le modèle en cascade présenté schématiquement](data:image/png;base64...)

Figure 5 – Cycle de vie en cascade

Dans le modèle en cascade, les différentes phases d’un processus de développement s’enchaînent. Chaque phase se termine par un résultat intermédiaire (étape).

**Analyse :** Chaque projet logiciel commence par une phase d’analyse comprenant une étude de faisabilité et une définition des besoins. Les coûts, le rendement et la faisabilité du projet logiciel sont estimés lors de l’étude de faisabilité. Celle-ci permet de créer un cahier des charges (une description grossière des besoins), un plan de projet, une budgétisation du projet et, le cas échéant, un devis pour le client.

Les besoins sont ensuite définis de façon détaillée. Cette définition comprend une analyse réelle et un concept cible. Alors que les analyses réelles décrivent les problèmes, le concept cible permet de définir quelles fonctionnalités et quelles propriétés le produit logiciel doit offrir afin de répondre aux besoins. La définition des besoins permet notamment d’obtenir un cahier des charges, une description détaillée de la façon dont les exigences du projet doivent être remplies ainsi qu’un plan pour le test d’acceptation.

Enfin, la première phase du modèle en cascade prévoit une analyse de la définition des besoins, au cours de laquelle les problèmes complexes sont décomposés en sous-tâches de moindre ampleur et des stratégies de résolution correspondantes sont élaborées.

**Conception :** La phase de conception sert à l’élaboration d’un concept de résolution concret sur la base des besoins, des tâches et des stratégies déterminées au préalable. Au cours de cette phase, les développeurs élaborent l’architecture logicielle ainsi qu’un plan de construction détaillé du logiciel et se concentrent ainsi sur les éléments concrets tels que les interfaces, les frameworks ou les bibliothèques. Le résultat de la phase de conception inclut un document de conception avec un plan de construction logicielle, ainsi que des plans de test pour les différents éléments.

**Implémentation :** L’architecture logicielle élaborée pendant la phase de conception est réalisée lors de la phase d’implémentation qui comprend la programmation du logiciel, la recherche d’erreurs et les tests de modules. Lors de la phase d’implémentation, le projet de logiciel est transposé dans la langue de programmation souhaitée. Les différents composants logiciels sont développés séparément, contrôlés dans le cadre de tests de modules et intégrés étape par étape dans le produit global. Le résultat de la phase d’implémentation est un produit logiciel qui sera testé pour la première fois en tant que produit global lors de la phase suivante (test alpha).

**Test :** La phase de test comprend l’intégration du logiciel dans l’environnement cible souhaité. En règle générale, les produits logiciels sont tout d’abord livrés à une sélection d’utilisateurs finaux sous la forme d’une version bêta (bêta-tests). Il est alors déterminé si le logiciel répond aux besoins préalablement définis à l’aide des tests d’acceptation développés lors de la phase d’analyse. Un produit logiciel ayant passé avec succès les bêta-tests est prêt pour la mise à disposition.

Après avoir réussi la phase de tests, le logiciel est mis en production pour exploitation. La dernière phase du modèle en cascade inclut la livraison, la maintenance et l’amélioration du logiciel.

* 1. Démarche de conception 1. Identification des acteurs

Les acteurs de notre système sont :

**Super administrateur :** C’est l’acteur qui a une visibilité totale sur la base de données. Il a comme tâche de gérer tout le système. Il gère les utilisateurs et les droits pour chacun d’eux.

**Administrateur :** C’est l’acteur qui a comme tâche de gérer les agents ainsi les groupes d’agents, gérer les listes, les campagnes, le suivi de la production en temps réel, consulter les statistiques par campagnes, par liste ou par utilisateurs.

**Agent :** C’est l’acteur qui a comme tâche de consulter ces fiches des rendez-vous sur une ou plusieurs campagnes, d'accéder à l'historique de son activité, récupérer le temps d'appel, les appels sortants, les enregistrements pour tous les communications et de lancer les appels.

* + 1. Diagramme de cas d'utilisation

Chaque usage que les acteurs font du système est représenté par un cas d’utilisation.

Chaque cas d’utilisation représente une fonctionnalité qui leur est offerte afin de produire le résultat attendu. Ainsi, « le diagramme de cas d’utilisation décrit l’interaction entre le système et l’acteur en déterminant les besoins de l’utilisateur et tout ce que doit faire le système pour l’acteur ».

* + - 1. Diagramme de cas d’utilisation général

A cet effet, on présente les diagrammes de cas d’utilisation pour la compréhension du fonctionnement du système : ce diagramme représente le diagramme général de cas d’utilisation de notre projet, il est composé de 13 cas d’utilisation qui seront détailles en ce qui suit.

![diagrammedecasgéneral](data:image/png;base64...)

Figure 6 – Diagramme de cas d'utilisation général

* + - 1. Détails de cas d’utilisation

**Gérer les centres d'appels :** Elle permet au super administrateur de supprimer, de consulter, de modifier et d’ajouter un nouveau centre d'appel.

**Gérer les utilisateurs :** Elle permet au super administrateur ainsi qu’à l'administrateur de supprimer, de consulter, de modifier et d’ajouter un nouvel utilisateur (agent, administrateur).

Publicité

**Gérer les groupes :** Elle permet à l'administrateur de supprimer, de consulter, de modi