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.
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 :
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.
Objectif : Permettre aux clients d’ouvrir un ticket pour une demande d’intervention.
Enchainements :
Scenario :
1. Si Première connexion.
2. Création de compte.
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.
Enchainements :
Scenario :
1. Authentification.
Il décrit l’enchaînement des activités liées à un processus métier (un cas d’utilisation).
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.
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 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 :
o Plateforme Java EE
o Framework Spring
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.
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).
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
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.
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.
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.
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
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.