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 es t 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éalabl ement 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.

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

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

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 ces 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.

Module

Webapp

Module

Model

Module

Business

Module

Consumer

Base de

Données Webservice

Projet parent Maven

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.