Vous êtes sur la page 1sur 13

Projet de réalisation d’une application de gestion de

ticket pour la SODECI

I-Analyse des Besoins

La SODECI est la société de distribution d’eau en côte d’ivoire.

Elle a en charge, le raccordement au réseau national de distribution d’eau, des clients désireux
d’avoir l’eau potable grâce à la pause de compteur à leur domicile. Aussi a-t-elle en charge la
résolution des pannes techniques qui surviennent sur le réseau.

L’application, ALLOSODECI est une plateforme qui permet de prendre en charge toutes les demandes
d’intervention (raccordement et panne technique).

Quand un client fait une demande, elle est prise en charge par un conseiller clientèle et le technicien
en charge de la zone en prévenu de la date d’intervention.

Un client préalablement identifié sur l’application peut faire une demande de raccordement, un
ticket est de ce fait ouvert et sa demande est prise en charge par un conseiller clientèle qui lui
propose un rdv.

Apres accord du client la demande d’intervention est rajoutée à la fiche d’intervention journalière du
technicien en charge de la zone.

Tous les jours une fiche d’intervention par zone et par technicien est dressée et consultable la veille
par les techniciens.

Un client peut également faire une demande d’intervention pour une panne survenue sur le réseau.

Un ticket est aussi ouvert et sa demande est prise en charge par un conseiller clientèle.

Et en fonction de l’urgent de la demande, un rdv est fixé pour une intervention des techniciens.

II-Modélisation des besoins avec UML

UML est un langage de description basé sur des diagrammes permettant de modéliser le
fonctionnement d’une application informatique.

Ces diagrammes sont subdivisés suivant trois points de vue classiques de modélisation :

Fonctionnel : Diagramme de cas d’utilisation, Diagramme de séquence, Diagramme d’activité

Statique : Diagramme de classe, Diagramme de Package, Diagramme de structure composite,


diagramme d’objet, diagramme de déploiement.

Dynamique : Diagramme d’état transition, Diagramme de séquence, Diagramme de Communication.


1-Modélisation fonctionnelle

L’analyse fonctionnelle nous décris le contexte de l’application, la définition du périmètre d’action,


les différentes fonctionnalités offertes par celle-ci et les différents acteurs qui inter réagissent avec le
système. Il nous donne également une vision globale et fonctionnelle de notre système.

Diagramme de cas d’utilisation

Diagramme de Séquence
Le diagramme de séquence permet d’illustrer les interactions entre les acteurs du système et les
différents composants de notre application(les manager, les DAO et la base de données etc..).

Il permet également de mettre œuvre un scenario de collaboration entre les différents objets de
notre système sur un point de vue temporel pour un cas d’utilisation.

On y met l’accent sur la chronologie des envois des messages.


Fiche de description « Ouverture Ticket » :

Sommaire d’ouverture de Ticket:

Titre : Créer un Ticket.

Objectif : Permettre aux clients d’ouvrir un ticket pour une demande d’intervention.

Acteurs : client – système.

Description des enchainements :

Enchainements :

Scenario :

1. Si Première connexion.

2. Création de compte.

3. Sinon demande de connexion.

4. En cas d’erreur, l’authentification est rejetée.

5. Si non, redirection d’utilisateur vers ses rôles.

Diagramme de Séquence : Ouverture Ticket


Fiche de description « Prendre en charge d’un nouveau ticket» :

Sommaire Prise en charge de nouveau ticket:

Titre : Prise en charge d’un nouveau Ticket.

Objectif : Permettre aux conseiller de Traiter une nouvelle demande en fixant un rdv en
accord avec le client et mise à jour des plannings d’interventions.

Acteurs : conseiller – système.

Description des enchainements :

Enchainements :

Scenario :

1. Authentification.

2. affichage de la liste des tickets non traités.

3. accéder aux détails du ticket à traiter.

4. éditer la date d’intervention en accord avec le client.

5. actualiser le planning d’intervention.

Diagramme de Séquence : Prendre en charge Ticket


Le diagramme de Communication
Le diagramme de communication est une représentation simplifiée du digramme de séquence ou en
analyse, il représente un scenario dynamique d’enchainement des objets du système sans tenir
compte de l’ordre ni de la chronologie d’enchainement des messages. Et en conception il permet
d’illustrer un enchainement d’IHM décrivant les appels des méthodes des classes. Les objets sont les
classes d’implémentation et les messages, les méthodes.

Diagramme de communication : Ouverture nouveau Ticket

Diagramme de communication : Prise en charge ticket


Le Diagramme d’activité
Le diagramme d’activité nous permet dans la phase de conception de modéliser une activité.

Il décrit l’enchaînement des activités liées à un processus métier (un cas d’utilisation).

Sa représentation sous forme d’organigramme le rend plus accessible et beaucoup plus


compréhensible que les diagrammes d’états-transitions. On parle de modélisation en workflow.

L’accent est mis sur les activités telles que les voient les acteurs qui collaborent avec le système dans
le cadre d’un processus métier.

 Description du processus de création de ticket


o Un client demande l’ouverture d’une nouvelle intervention (Préalablement, il doit
être connecté, sinon le système demande la création d’un compte utilisateur).
o Le système traitement l’ouverture d’un ticket, enregistre la demande au niveau de la
basse de données
o Le système renvois les informations de création du nouveau ticket.

 Description du processus de prise en charge de nouvelle intervention


o le conseiller sélectionne le ticket à prendre en charge (il doit être au paravent être
logué).
o Renseigne la date de l’intervention (en accord avec le client).
o Enregistre les modifications dans la base de données.
o Un message (mail ou sms) notifiant la confirmation de la date d’intervention est
envoyé au client.
Diagramme de Classe
Le diagramme de classe est la représentation statique du système basé sur le modèle de classe et
association ou la classe est un ensemble d’objet aillant des propriétés similaires et des
comportements communs. Et l’association est le lien entre les instances de classe.

Il montre la structure interne du système indépendant du langage.

Le diagramme de classe représente également le modèle de base du système.


II-Réalisation

1. Environnement et outils de développement


a. Environnement de développement

o Inteliji idea

Pour l’environnement de développement j’ai opté pour l’IDE Inteliji ide qui est un
environnement de développement java destiné au développement de logiciels
informatiques

o Apache Tomcat
Apache Tomcat, souvent appelé Tomcat Server, est un conteneur de servlets Java open
source développé par Apache Software Foundation (ASF). Tomcat implémente plusieurs
spécifications Java EE, y compris Java Servlet, JavaServer Pages (JSP) et WebSocket, et
fournit un environnement de serveur web http « Java pur » dans lequel le code Java peut
s’exécuter.

o Système de gestion de base de données « MYSQL »

MySQL est un système de gestion de bases de données relationnelles (SGBDR)


fonctionnant sous Windows et Linux. Il fait partie des logiciels de gestion de base des
données les plus utilisées au monde, autant par le grand public (applications web
principalement) que par des professionnels, en concurrence avec Oracle, Informix et
Microsoft SQL Server.

o Maven

Maven est un outil de construction de projets (build) open source développé par la
fondation Apache, initialement pour les besoins du projet Jakarta Turbine. Il permet de
faciliter et d'automatiser certaines tâches de la gestion d'un projet Java.

Il permet notamment :

 d'automatiser certaines tâches : compilation, tests unitaires et déploiement


des applications qui composent le projet.
 de gérer des dépendances vis-à-vis des bibliothèques nécessaires au projet.
 de générer des documentations concernant le projet
o Twilio api :
Twilio (prononcé TWILL-eo) est une plate-forme de communication en nuage
comme une société de service, basée à San Francisco, en Californie. Twilio permet
aux développeurs de logiciels de programmer et de recevoir des appels
téléphoniques et d'envoyer et de recevoir des messages texte en utilisant ses API
de service Web. Les services de Twilio sont accessibles via HTTP et sont facturés
en fonction de leur utilisation.
Le but de l'amélioration de la communication sur une équipe est de s'assurer
qu'aucune information ou travail n'est perdu lorsque les tâches sont transférées
d'un membre de l'équipe à l'autre. Le concept central lorsque vous travaillez avec
Team Foundation est le projet d'équipe. Un projet d'équipe est stocké sur Team
Foundation Server et possède un nom que tout le monde peut identifier
facilement.
b. Technologies et Framework adoptées

o Plateforme Java EE

Le terme « Java EE »signifie Java Entreprise Edition, et était anciennement raccourci en «


J2EE ». Il fait quant à lui référence à une extension de la plate-forme standard.
Autrement dit, la plate-forme Java EE construite sur le langage Java et la plateforme Java
SE, et elle ajoute un grand nombre de bibliothèques remplissant tout un tas de
fonctionnalités que la plate-forme standard ne remplit pas d’origine.

L’objectif majeur de Java EE est de faciliter le développement d’applications web


robustes et distribuées déployées et exécutées sur un serveur d’applications.

o Framework Spring

SPRING est effectivement un conteneur dit « léger », c'est-à-dire une infrastructure


similaire à un serveur d'application J2EE. Il prend donc en charge la création d'objets et la
mise en relation d'objets par l'intermédiaire d'un fichier de configuration qui décrit les
objets à fabriquer et les relations de dépendances entre ce s objets.

Le gros avantage par rapport aux serveurs d'application est qu'avec SPRING, vos classes
n'ont pas besoin d'implémenter une quelconque interface pour être prises en charge par
le Framework (au contraire des serveurs d'applications J2EE et des EJBs). C'est en ce sens
que SPRING est qualifié de conteneur « léger ».

Le cœur de SPRING et ce qui fait sa très grande force est la mise en œuvre du design
pattern « Inversion Of Control » ou encore « Dependency Injection », et c'est ça mon
premier but d'utilisation de ce Framework dans mon projet.

o Framework Spring Security

Spring Security est un Framework d'authentification puissante et hautement


personnalisable et d'un cadre de contrôle d'accès. Il est le standard pour la sécurisation
des applications web.

Spring Security est l'un des projets de Spring les plus matures et largement utilisé.
Fondée en 2003 et activement maintenu par SpringSource, il est aujourd'hui utilisé pour
sécuriser de nombreux environnements les plus exigeants, y compris les agences
gouvernementales, les applications militaires et les banques centrales. Il est distribué
sous licence Apache 2.0.

o Framework Hibernate/jpa

Les applications d’entreprises s’orientent de plus en plus vers des architectures n -tiers.
La technologie J2EE et les Framework qui se sont offrent beaucoup d’outils pour
répondre aux besoins modernes. Pour la couche présentation, on trouve par exemple, le
plus populaire Struts respectant le modèle MVC de séparation de code, de l’interface et
des données.

Nous allons, cependant, nous intéressé à une couche plus basse d’une architecture
applicative, la couche d’accès aux données. Celle-ci permet d’interfacer le code métier
avec une source des données. L’intérêt est de pouvoir changer de base de données en
n’ayant besoin de ne modifier que la couche d’accès.
Pour réaliser cette tâche, il existe plusieurs solutions fournies par J2EE qui sont appelé
JPA (suivre l’annexe) (Java Persistance API). Ce mécanisme qui gère la correspondance
entre des objets d’une application et les tables de base des données se nomme ORM
(Object-Relationnal Mapping).

Pour cela, on a pris la décision d’utiliser Hibernate comme un Framework ORM.

On a pris le choix d’utiliser Hibernate car :

 Génère le code SQL nécessaire, ce qui rend l’application plus portable.


 La persistance est transparente.
 La récupération des données est optimisée.
 Portabilité du code en cas de changement de la base des données.
o Framework Bootstrap

Bootstrap est une collection d'outils utile à la création du design (graphisme, animation
et interactions avec la page dans le navigateur ... etc. ...) de sites et d'applications web.
C'est un ensemble qui contient des codes HTML et CSS, des formulaires, boutons, outils
de navigation et autres éléments interactifs, ainsi que des extensions JavaScript en
option.

o Framework jQuery

JQuery est un Framework développé en JavaScript qui permet notamment de manipuler


aisément la DOM, d'utiliser AJAX, de créer des animations..., La vocation première de ce
Framework est de gagner du temps dans le développement des applications: « write less,
do more ».

o Framework AJAX

AJAX (Asynchronous JavaScript And XML, traduisez JavaScript asynchrone et XML) est
une méthode de développement web basée sur l'utilisation d'un script Javascript pour
effectuer des requêtes web à l'intérieur d'une page web sans recharger la page. AJAX
rend plus interactifs les applications web et offre une meilleure ergonomie ainsi qu'une
réactivité amélioré en permettant de modifier interactivement une partie de l'interface
web seulement.

En effet, le modèle web traditionnel est basé sur une suite de requêtes et de réponses
successives, c'est-à-dire une navigation séquentielle de page web en page web.

AJAX permet de ne modifier que la partie de la page web qui nécessite d'être mise à jour
en créant une requête HTTP locale et en modifiant tout ou partie de la page web en
fonction de la requête HTTP récupérée.

o Framework Struts

Apache Struts est un Framework libre servant au développement d'applications web Java
EE.

Il permet aux développeurs d’implémenter aisément la partie vue et contrôleur de


l’architecture MVC.
o Framework AJAX

AJAX (Asynchronous Javascript And XML, traduisez Javascript asynchrone et XML) est une
méthode de développement web basée sur l'utilisation d'un script Javascript pour
effectuer des requêtes web à l'intérieur d'une page web sans recharger la page. AJAX
rend plus interactifs les applications web et offre une meilleure ergonomie ainsi qu'une
réactivité amélioré en permettant de modifier interactivement une partie de l'interface
web seulement.

En effet, le modèle web traditionnel est basé sur une suite de requêtes et de réponses
successives, c'est-à-dire une navigation séquentielle de page web en page web.

AJAX permet de ne modifier que la partie de la page web qui nécessite d'être mise à jour
en créant une requête HTTP locale et en modifiant tout ou partie de la page web en
fonction de la requête HTTP récupérée.

2. Architecture générale de l'application


a. Architecture logiciel.

Le patron MVC
Le design pattern MVC ou patron MVC est une bonne pratique de développement qui
consiste à diviser son code en trois partie (Model, Vue, Contrôleur).
Dans cette architecture, lorsqu’un client envoi une requête au serveur destinée à notre
application, elle prise en charge par le Contrôleur qui s’appuie sur le Model pour traiter
la demande et génère une Vue qui est renvoyé au client.
Cette architecture présente beaucoup d’avantage :
 Conception claire et efficace grâce à la séparation des données de la vue du
contrôleur.
 Un gain de temps dans l’évolutivité et la maintenabilité du code.

Architecture multi-tiers
Cette architecture subdivise l’application en plusieurs couches (présentation, métier,
model, persistance) avec une chaine de responsabilité ou chaque couche n’appelle que
la couche immédiatement en dessous d’elle et n’a aucune connaissance des couches
supérieures.
Cette approche présente plusieurs avantages :
 La possibilité de développer et tester les couches séparément en mettant en
place des interfaces.
 Créer plusieurs couches différentes de même niveau pouvant partager es
couches métier, persistance et model.

Implémentation de l’architecture multi-tiers avec Maven

La matérialisation de cette architecture multi-tiers avec Maven ce fait grâce à des modules
Maven. Chaque couche de l’application fait l’objet d’un module Maven.

Ses modules Maven sont des sous-projets Maven rattachés au projet Maven principal.
Ils fournissent chacun leur propre livrables et il est possible de créer des dépendances entre
eux.

Projet parent Maven

Module

Webapp

Module
Module Model
Business

Module

Consumer

Base de Webservice
Données
 le module Webapp :
Elle contient toute l’application web.
 Le module Business :
Elle contient toute la logique métier de l’application.
 Le module consumer :
Elle traite les données en lien avec la base de données et les Webservice extérieure.

Vous aimerez peut-être aussi