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

 > 

Conception et implémentation d'une application de gestion des dossiers d'équivalence

( Télécharger le fichier original )
par Brice Arsene GBITHICKI NDANGA
Université de Maroua/ Institut Supérieur du Sahel - Ingénieur de Conception en informatique 2013
  

Disponible en mode multipage

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

 

Université de Maroua The University of Maroua

**** ****

Institut Supérieur du Sahel The Higher Institute of the Sahel

**** ****

Département d'Informatique et des Department of Computer Science and

Télécommunications Telecommunications

**** ****

CONCEPTION ET IMPLEMENTATION D'UNE

APPLICATION DE GESTION DES DOSSIERS DE

DEMANDE D'EQUIVALENCE DES DIPLOMES

Mémoire présenté et soutenu en vue de l'obtention du Diplôme d'INGENIEUR DE

CONCEPTION EN INFORMATIQUE OPTION RESEAU

Par

GBITHICKI NDANGA BRICE ARSENE

Matricule : 11V126S

Ingénieur des Travaux en Informatique

Sous la Direction de

Dr EMVUDU WONO YVES

Devant le jury composé de :

Président : Pr LOURA BENOIT

Rapporteur : Dr EMVUDU WONO YVES

Examinateur : Dr VIDEME BOSSOU OLIVIER

Année Académique 2012 / 2013

 

DEDICACE

A mon enseignant d'informatique Dr Ndi Nyoungui André de regretté mémoire.

REMERCIEMENTS

Que les personnes suivantes trouvent ici l'expression de tous mes remerciements : Je remercier :

- Le Président du Jury Pr LOURA Benoît pour avoir présider ce jury;

- L'examinateur Dr VIDEME BOSSOU Olivier pour avoir examiner ce travail ; - Le rapporteur Dr EMVUDU WONO Yves pour avoir rapporter ce travail.

Je tiens à remercier le corps enseignant de l'ISS de Maroua pour les enseignements dispensés, en particulier notre chef de département Dr VIDEME BOSSOU Olivier;

Merci à ma grande famille NDANGA pour leur soutient tout au de ses moment difficiles ;

Un merci aux camarades de promotion pour la sympathie qui nous a animées durant cette formation de deux ans. Merci particulier à notre délégué pour sa volonté dans ses missions ;

II

Enfin merci à mes amis et tous ceux qui ont contribué à la réalisation de ce travail.

III

Table des matières

DEDICACE I

REMERCIEMENTS II

Table des matières III

Liste des abréviations VI

RESUME VII

Liste des illustrations IX

Liste des tableaux XIII

INTRODUCTION 1

Chapitre I : CONTEXTE ET PROBLEMATIQUE 2

I.1. Contexte et problématique 2

I.2. Méthodologie de résolution du problème 3

I.3. Objectifs visés 4

Chapitre II : GENERALITES DE LA PLATE FORME J2EE 5

II.1. Présentation de J2EE 5

II.1.1. Concept de la plate forme J2EE 5

II.1.2. Le paradigme MVC (Modèle-Vue-Contrôleur) 6

II.2. Apache Maven 2 : Outil de build 7

II.2.1. Principe de fonctionnement 8

II.2.2. La structure de répertoires 9

II.3. Le serveur SVN 10

II.4. Spring : Faciliter le développement et les tests 10

II .5. Apache Wicket : Mettre en place le MVC 11

II.6. Hibernate et DAO : le mapping objet/relationnel 11

II.6.1. Data Access Object (DAO) 12

II.6.2. Hibernate 13

II.6.3. JPA Java Persistance API 13

Chapitre III : SPECIFICATION DES BESOINS 15

III.1. Initialisation du projet 15

III.1.2. Livrables attendus 15

III.1.3 Composition de l'équipe 15

III.1.4. contraintes techniques 16

III.1.5. Identification de la méthode utilisée 16

III.1.6. Outils logiciels 17

III.1.7. Identification des risques 18

III.1.8. Planning prévisionnel 19

III.2. Expression des besoins 20

III.2.1. Etude de l'existant 20

III.2.2. Règles de gestion 22

III.2.3. Besoins fonctionnels 23

III.2.4. Besoins non fonctionnels 24

III.2.5. Architecture 24

III.2.5.1. Architecture Physique 24

III.2.5.1. Architecture en couche 25

IV

III.2.6. Gestion des besoins 26

Chapitre IV : ANALYSE ET CONCEPTION DU SYSTEME 28

VI.1. ANALYSE 28

IV.1.1. Modèles de cas d'utilisation 28

IV.1.1.1. Démarche des modèles de cas d'utilisation 28

IV.1.1.2. Identification des acteurs 30

IV.1.1.3. Identification des cas d'utilisation métier 30

IV.1.1.4. Structuration en packages 30

IV.1.1.5. Relations entre les cas d'utilisation métier 31

IV.1.1.6. Classement des cas d'utilisation métier 32

IV.1.1.7. Planification du projet en itérations 33

IV.1.1.8. Traçabilité des cas d'utilisation avec les besoins textuelles 34

IV.1.1.9. Maquette du système 35

IV.1.2. Modèles d'analyse 35

IV.1.2.1. Démarche des modèles d'analyse 35

IV.1.2.2. Analyse des cas d'utilisations 36

IV.1.2.3. Réalisation des cas d'utilisation 54

IV.1.3. Modèles navigationel 64

IV.1.3.1. Démarche des modèles navigationnel 64

IV.1.3.2. Conventions spécifiques 65

IV.1.3.3. Structuration de la navigation 66

IV.1.3.4. Diagramme de navigation des cas d'utilisation 67

IV.2. CONCEPTION 68

IV.2.1. Démarche de conception objet 68

IV.2.2. Digramme d'interaction 69

IV.2.2.1. Règles de conception des diagrammes de séquence objet 70

IV.4.2.2. Notation détaillée des diagrammes de séquence 70

IV.2.3. Classes de conception 74

IV.2.3.1. Méthode des liens durable ou temporaires 75

IV.2.3.2. Structuration en packages de classes 77

IV.2.3.3. Diagrammes de classes des packages de la couche métier 80

Chapitre V : IMPLEMENTATION DU SYSTEME 83

V.1. Environnement de développement 83

V.1.1. Installation de Maven 2 83

V.1.2. Mise en place du projet dans Maven2 84

V.1.3. Installation du serveur Jetty 84

V.2. Composants logiciels utilisés 84

V.2.1. Couche présentation 85

V.2.1.1. Le client léger 85

V.2.1.2. Le client lourd 85

V.2.3. Couche service 85

V.2.3.1. La génération de document 85

V.2.3.2. L'envoi de mail 86

V.2.3.3. Gestion des traces applicatives 86

V.3. Paquetage du système 86

V

V.3.1. Paquetage « service » 87

V.3.2. Paquetage « entities » 87

V.3.3. Paquetage « web » 87

V.3.4. Paquetage « dao » 87

V.4. Mise en oeuvre de l'architecture en couche du système 87

V.4.1. Description de la couche présentation 88

V.4.2. Description de la couche métier 90

V.4.3. Description de la couche service 90

V.4.4. Description de la couche DAO 91

V.5. Sécurité 93

V.5.1. Accès à l'application 93

V.5.2. Chiffrage du mot de passe 93

V.5.3. La session 94

VI.5. Déploiement du système 94

VI.5.1. Génération du fichier war 94

VI.5.2. Déploiement sur le serveur web 95

Chapitre VI : RESULTATS ET TESTS 96

VI.1. Les formulaires 96

VI.1.1. Authentification système 96

VI.1.2. Accueil 97

VI.1.3. Evaluation d'un dossier 98

VI.2. Les états 98

VI.2.1. Lettre 98

VI.2.2. Faux diplôme 100

CONCLUSION ET PERSPECTIVE 101

BIBLIOGRAPHIE 102

GLOSSAIRE 103

VI

Liste des abréviations

API: Application Programming Interface

D-AC : Dossier d'Analyse et Conception

DAO: Data Access Object

DCP : Diagramme de Classe Participante

D-I : Dossier d'Implémentation

D-CC: Dossier de Cahier des charges

DSS: Diagramme de Séquence Système

EA: Enterprise Architect

EJB: Entreprise Java Bean

FF: FireFox

HTML: Hypertext Transfer Markup Language

IE: Internet Explorer

IHM : Interface Homme Machine

IMAP : Internet Mail Access Protocol

ISS: Institut Supérieur du Sahel

J2EE : Java Entreprise Edition

JDBC: Java DataBase Connector

JPA : Java Persistance API

JSP: Java Server Page

LOSEQUIV : Logiciel du Suivi et Traitement des Dossiers d'Equivalence

MINESUP : Ministère de l'Enseignement Supérieur

MS: Microsoft

MVC : Model View Controller

ORM: Objet Relationnel Mapping

POJO : Plain Old/Ordinary Java Object

POM : Project Object Model

POP3 : Post Office Protocol

RUP: Rational Unified Processs

SDE : Sous-direction des équivalences

SGBD: Système de Gestion de Base de Données

SI: Système d'Information

SMS: Short Message System

SQL: Structure Query Language

UC : Use Case

UML: Unified Modeling Language

UP : Unified Process

XML: Extensible Markup Language

VII

RESUME

Dans le cadre de notre formation de fin d'étude, nous avons effectué un stage allant de la période du 20 Mars au 30 juin 2013 au Ministère de l'Enseignement Supérieur du Cameroun, sanctionné à la fin par la rédaction de ce mémoire de fin d'étude. Durant cette période, nous avons développé une application de suivi des dossiers d'équivalence des diplômes. Cette application comporte cinq modules : le module de gestion des dossiers qui permet de créer, modifier, supprimer les dossiers des candidats ; Le module d'évaluation qui permet d'évaluer les dossiers des candidats sollicitant une demande d'équivalence ; Le module de transmission pour l'envoi des dossiers dans les différents services ; Le module position qui permet de donner la position d'un dossier dans un service ; et enfin le module imprime pour l'impression des différents documents (lettre de demande d'équivalence, liste des faux diplômes).

Mots clés : Equivalence, dossier, suivi, traitement, diplôme.

VIII

Asbtract

As part of our training at the end of study, we completed an internship from the period 20 March to 30 June 2013 the Ministry of Higher Education of Cameroon, sanctioned by the end of writing this dissertation study. During this period, we have developed a monitoring application records equivalency diplomas allowed to solve problems (poor organization, delays in processing losses) that met the executives of this sub-direction. The system we have developed has been deployed in the local network of the Ministry on the Tomcat application and database on the MySQL server.

Key words : Equivalence, folder, monitoring, treatment, diploma.

IX

Liste des illustrations

Figure 1-1 : découpage 3

Figure 2-1 : Outils J2EE 5

Figure 2-2 : Architecture d'une application J2EE 7

Figure 2-3 : Maven. 8

Figure 2-2 : Structure du répertoire maven2 9

Figure 2-5 : fonctionnement du serveur svn 10

Figure 2-6 : Mapping objet/relationnel 12

Figure 3-1 : Cycle de vie du processus unifié 17

Figure 3-2 : Planning prévisionnel 19

Figure 3-3 : Architecture physique 25

Figure 3-4 : Architecture logicielle 25

Figure 3-5 : Gestion des besoins. 27

Figure 4-1 : Démarche des besoins qui conduisent à des cas d'utilisation et à une

maquette. 29

Figure 4-2 : Synoptique de la démarche. 29

Figure 4-3 : Organisation des cas d'utilisation et des acteurs en packagent. 31

Figure 4-4 : Diagramme des relations entre les cas d'utilisation métier. 31

Figure 4-5 : Suite du diagramme des cas d'utilisation 32

Figure 4-6 : Matrice de relations entre cas d'utilisation et besoins sous EA. 34

Figure 4-7 : Maquette système. 35

Figure 4-8 : Démarche des cas d'utilisation qui conduisent au diagramme de séquence

et de classes participantes. 36
Figure 4-9 : Diagramme des cas d'utilisation d'analyse du chef de la sous direction. 37

Figure 4-10 : Diagramme des cas d'utilisation des cadres. 37

Figure 4-11 : Suite du diagramme des cas d'utilisation des cadres. 38

Figure 4-12 : Use case 1- créer dossier. 39

Figure 4-13 : Diagramme de séquence créer dossier. 41

Figure 4-10 : IHM créer dossier 42

Figure 4-14 : Use case 2 envoyer dossier. 42

X

Figure 4-15: Diagramme de séquence envoyer dossier. 44

Figure 4-16 : IHM envoyer dossier. 44

Figure 4-17 : Use case 3 créer comptes. 45

Figure 4-18 : Diagramme de séquence créer comptes. 47

Figure 4-19 : IHM créer comptes 47

Figure 4-20 : Use case 4 créer établissement. 48

Figure 4-21 : Diagramme de séquence créer établissement. 50

Figure 4-22 : IHM créer établissement. 50

Figure 4-23 : Élaboration de la matrice de validation. 51

Figure 4-24 : Opérations système. 52

Figure 4-25 : Opérations système structurés en interfaces. 52

Figure 4-27 : Concepts liés à la gestion des dossiers. 56

Figure 4-28 : Concepts liés à l'initiation de la lettre 56

Figure 4-29 : Concepts liés à l'évaluation des dossiers. 57

Figure 4-30 : Concepts liés à l'envoie des dossiers. 57

Figure 4-31 : Exemple d'entité, de contrôle et dialogue 60

Figure 4-32 : Exemple de diagramme de classe participante. 60

Figure 4-33 :DCP gérer dossiers. 61

Figure 4-34 : DCP Initier lettre. 62

Figure 4-35 : DCP évaluer dossier. 63

Figure 4-36 : DCP envoyer dossier. 63

Figure 4-37 : Démarche de la maquette et DCP qui conduisent à un diagramme de

navigation. 64

Figure 4-38 : Conventions graphiques spécifiques. 65

Figure 4-39 : Début des diagrammes de navigation. 66

Figure 4-40 : Diagramme global simplifié de la navigation. 67

Figure 4-41 : Démarche de réalisation de diagrammes d'interaction et de classes de

conception 68
Figure 4-42 : Suite démarche de réalisation de diagrammes d'interaction et de classes

de conception. 69

Figure 4-43 : Passage de l'analyse à la conception préliminaire 70

XI

Figure 4-40 : Notation détaillée des diagrammes de séquence 70

Figure 4-44 : Notation détaillé de diagramme de séquence 71

Figure 4-45 : Diagramme de séquence détaillée créer dossier. 71

Figure 4-46 : Diagramme de séquence détaillée créer dossier avec erreur. 72

Figure 4-47 : Diagramme de séquence détaillée suppression dossier. 72

Figure 4-48 : Diagramme de séquence détaillée évaluer dossier. 73

Figure 4-49 : Diagramme de séquence détaillée valider statut dossier. 73

Figure 4-50 : Diagramme de séquence détaillée envoyer dossier. 74

Figure 4-51 : Exemple liens temporaires et dépendances 75

Figure 4-53 : DCP détaillé évaluer dossier 75

Figure 4-52 : DCP détaillé gérer dossier. 76

Figure 4-48 : DCP détaillé gérer dossier 76

Figure 4-54 : DCP détaillé envoyer dossier. 76

Figure 4-55 : Diagramme de packages de l'architecture logique. 77

Figure 4-57 : Détail de l'architecture logique 78

Figure 4-58 : Découpage en packages montrant leur indépendance. 79

Figure 4-59 : Suite découpage en packages montrant leur indépendance. 80

Figure 4-60: Diagramme de classe du package dossier. 80

Figure 4-61 : Diagramme de classe du package traitement. 81

Figure 4-62 : Diagramme de classe du package suivi. 81

Figure 4-63 : Diagramme synthétique. 82

Figure 5-1 : Swing. 85

Figure 5-2 : Paquetage système. 86

Figure 5-3 : Architecture en couche du système 87

Figure 5-4 : Suite architecture en couche du système. 88

Figure 5-5 : Architecture couche présentation. 89

Figure 5-6 : Architecture couche métier 90

Figure 5-7 : Architecture couche service 91

Figure 5-8 : Architecture couche DAO. 92

Figure 5-9 : Accès application. 93

Figure 5-10 : Chiffrage du mot de passe. 93

XII

Figure 5-11 : Création session. 94

Figure 6-1 : Authentification système. 96

Figure 6-2 : Accueil. 97

Figure 6-3 : Formulaire d'évaluation. 98

Figure 6-4 : Etat lettre. 99

Figure 6-5 : Etat faux diplôme 100

XIII

Liste des tableaux

Tableau 3-1 : Livrables attendus 15

Tableau 3-2 : Outils logiciels 18

Tableau 3-3 : Identification des risques 18

Tableau 4-1 : Classement des cas d'utilisation 32

Tableau 4-2 : Planifications des itérations obtenu grâce aux cas d'utilisation. 34

Tableau 4-3 : Description des cas d'utilisation d'analyse. 38

Tableau 4-4: Scenario nominal use case 1. 40

Tableau 4-5: Fonction qualité mesure use case 1. 41

Tableau 4-4: Scenario nominal use case 2. 43

Tableau 4-5: Fonction qualité mesure use case 2. 43

Tableau 4-6: Scenario nominal use case 3. 45

Tableau 4-7: Fonction qualité mesure use case 3. 46

Tableau 4-8: Scenario nominal use case 4. 48

Tableau 4-9: Fonction qualité mesure use case 4. 49

Tableau 5-1 : configuration maven2 83

Tableau 5-2 : Mise en place losequiv 84

Tableau 5-3 : Configuration jetty 84

Tableau 5-4 : génération du fichier war 95

1

INTRODUCTION

L'émergence du Cameroun passera non seulement par l'agriculture mais aussi par la maitrise et l'application des nouvelles technologies en insistant sur la pluridisciplinarité des formations. Ainsi dans le but principal d'enrichir le pays de nouvelles disciplines, la jeunesse Camerounaise sollicite de plus en plus des formations étrangères. Ceci étant, de retour au pays, les diplômes étrangers pour leur mise en application doivent suivre une procédure de validation. Cette validation passe par l'obtention d'un document officiel nommé équivalence qui permettra au récipiendaire de postuler à un emploi ou à un concours. Au Cameroun, l'équivalence d'un diplôme est délivrée par le ministère de l'enseignement supérieur notamment par sa sous-direction des équivalences qui se charge de l'étude des dossiers de demande d'équivalence. L'équivalent d'un diplôme étranger confère à ce dernier le même droit que celui délivré par le Cameroun.

Face donc à la demande d'équivalence de plus en plus grandissante, les cadres de la sous-direction d'équivalence rencontrent d'énormes difficultés dans l'étude des dossiers de demande d'équivalence. Il était donc question de trouver une solution à ces difficultés. Solution que nous avons adoptée avec la conception et implémentation d'une application de suivi et traitement des dossiers des demandes d'équivalence des diplômes.

Ce mémoire comporte six chapitres. Le premier chapitre décrit le contexte de l'étude et pose la problématique. Le chapitre deux présente l'ensemble des technologies java web nécessaire à la conception et à l'implémentation du système. Le chapitre trois définit les besoins du système et des utilisateurs. Le chapitre quatre décrit le comportement et la conception des différents composants du système. Le chapitre cinq présente les différents paquetages. Et enfin le chapitre six présente les résultats et tests.

2

Chapitre I : CONTEXTE ET PROBLEMATIQUE

Il sera question dans ce chapitre non seulement de décrire le contexte de l'étude et de poser la problématique mais également de décrire la méthodologie utilisée et enfin définir les objectifs à atteindre.

I.1. Contexte et problématique

Le MINESUP, structure en charge de l'enseignement supérieur au Cameroun, dispose d'une direction de coordination des activités académiques dans laquelle on retrouve la Sous-direction des Equivalences, qui est chargé de l'étude des dossiers de demande d'équivalence. Cette SDE reçoit régulièrement les dossiers des candidats sollicitant une demande d'équivalence d'un diplôme obtenu dans un pays étranger. L'équivalence étant l'assimilation des diplômes délivrés par un système éducatif d'un pays étranger aux diplômes délivrés par le système éducatif Camerounais, sur la base d'un ensemble de conditions telles que celles relatives à l'inscription, au nombre d'années d'études, au contenu des programmes et aux procédures d'évaluation des connaissances (cf.1). Grâce à l'équivalence, un diplôme étranger acquiert la même valeur que ceux délivrés au Cameroun et son titulaire disposera, sauf exceptions, des mêmes droits que le possesseur d'un diplôme Camerounais et pourra par exemple avec cette équivalence postuler à un concours dans les secteurs publics et privés, à une offre d'emploi ou de formation.

Face à la demande de plus en plus grandissante des candidats sollicitant une équivalence de diplôme, les cadres de la SDE rencontrent d'énormes difficultés à savoir :

- Une mauvaise organisation des dossiers qui entraine des recherches longues et fastidieuses, parfois la perte de ceux-ci ;

- Des lenteurs de traitements des dossiers par certains services retardent le

processus de demande d'équivalence ;

1 Inspiré du document : Guide pratique pour les équivalences de diplôme,

http://www.cire.be/component/docman/doc_download/207-guide-pratique-pour-les-equivalences-de-diplome

- Difficulté à traiter les lettres de demande d'équivalence des candidats ;

- L'impossibilité d'informer le candidat de venir compléter les pièces manquantes ou de la délivrance ou le refus de son équivalence;

Comment permettre aux cadres de cette sous-direction d'avoir une meilleure organisation des dossiers ? D'éviter les lenteurs de traitement des dossiers par certains services ? De traiter facilement les lettres de demande ? D'informer les candidats ?

Dans le cadre de notre formation de fin d'étude, il nous a été demandé de trouver une solution aux problèmes d'études des dossiers d'équivalences que rencontrent les cadres de la Sous-direction des équivalences du MINESUP.

I.2. Méthodologie de résolution du problème

La méthodologie de cette solution commencera la rédaction du dossier d'initiation et d'expression des besoins qui définiront le cahier des charges du système; Ensuite un dossier d'analyse et conception sera défini, avec pour but ici d'apporter une solution informatique par les modèles de cas d'utilisation, d'analyse, de navigation et de conception. Enfin le dossier d'implémentation nous conduira au codage et déploiement définitif du système. La figure suivante illustre cette méthodologie.

Définition du cahier des charges

Analyse et conception du système

Implémentation et test du système

3

Figure 1-1 : découpage

4

I.3. Objectifs visés

L'objectif est de concevoir et implémenter une application de gestion des dossiers des demandes d'équivalence des diplômes qui permettra de résoudre les difficultés que les cadres rencontrent. Cette application devra ainsi permettre :

- Une meilleure organisation des dossiers de demande d'équivalence ;

- Un accès facile et une recherche rapide des dossiers ;

- La sauvegarde et archivages automatique des dossiers ;

- Informer les candidats de la délivrance ou le refus d'une équivalence par Email;

- Informer les cadres en cas de lenteurs de traitement des dossiers par certains

services;

- Permettre le traitement automatisé des lettres de demande d'équivalence des

candidats ;

- Permettre un suivi complet des dossiers d'un service à un autre.

Chapitre II : GENERALITES DE LA PLATE FORME J2EE

Dans ce chapitre nous allons décrire les principales généralités de la plate forme J2EE nécessaires à la mise en place du système. Nous commencerons par une présentation de J2EE, ensuite le constructeur de projet maven. Nous continuerons par la description du gestionnaire de version svn, ensuite du conteneur léger Spring, le Framework composant Wicket et enfin le mapping objet/relationnel de hibernate/ JPA.

II.1. Présentation de J2EE

Le terme « Java EE » signifie Java Enterprise 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 est construite sur le langage Java et la plate-forme Java SE (Java Standard Edition), et elle y 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 (MOLIERE, 2005).

II.1.1. Concept de la plate forme J2EE

La figure suivante présente les différentes technologies utilisées par la plate forme J2EE.

Source : (ROQUES, 2002). Figure 2-1 : Outils J2EE

5

6

Avec le langage Java est apparue une nouvelle technologie : les servlets. Ces petits «serveurs» ou «services» sont écrits en langage Java et utilisent une API spécifique. Les performances sont améliorées par les fonctionnalités multithreads des serveurs J2EE, évitant la création de processus externes (MOLIERE, 2005).

Cependant, le développeur doit toujours mixer le code Java et HTML. De plus, la moindre modification oblige à recompiler la servlet et à la recharger. Les JSP, ou Java Server Pages, viennent résoudre ces problèmes de recompilation. Ici, c'est le code Java que l'on incorpore dans la page HTML avec des techniques de scripting. Le serveur compile automatiquement la page en une servlet et l'exécute ensuite. Les approches à base de scripting nécessitent l'incorporation importante de code applicatif dans le HTML. Ces techniques limitent aussi la réutilisation de code (MOLIERE, 2005).

Pour ce qui est du monde Java, il a donc été proposé de faire collaborer les servlets et les JSP dans les applications. Les servlets sont utilisées par les développeurs pour gérer les aspects programmation d'une application web et les JSP sont utilisées par les infographistes pour effectuer l'affichage. On retrouve ainsi une servlet et une JSP par requête possible sur le site web. La servlet ne contient plus de HTML, et la JSP contient juste le code nécessaire à l'affichage. Ce style de programmation respecte le paradigme MVC.

II.1.2. Le paradigme MVC (Modèle-Vue-Contrôleur)

Le paradigme MVC est un schéma de programmation qui propose de séparer une application en trois parties :

· le modèle, qui contient la logique et l'état de l'application ;

· la vue, qui représente l'interface utilisateur ;

· le contrôleur, qui gère la synchronisation entre la vue et le modèle.

Le point essentiel consiste à séparer les objets graphiques des objets métier, afin de pouvoir les faire évoluer indépendamment et les réutiliser.

7

On peut également gérer facilement plusieurs vues du même modèle.

Au final, une telle séparation favorise le développement et la maintenance des applications :

· Le modèle étant séparé des autres composants, il est développé indépendamment. Le développeur du modèle se concentre sur le fonctionnel et le transactionnel de son application.

· Le modèle n'est pas lié à une interface, il peut donc être réutilisé (passage d'une application avec interface en Java à une application avec interface web). Dans les applications J2EE, le modèle est assuré par des EJB et/ou des JavaBeans, le contrôleur est assuré par des servlets et la vue par des JSP (voir la figure 2-2 suivante).

Figure 2-2 : Architecture d'une application J2EE

Source : (ROQUES, 2002)

II.2. Apache Maven 2 : Outil de build Apache Maven 2 est un outil « open source » de Apache Jakarta. Il permet de faciliter et d'automatiser la gestion et la construction d'un projet java (VONGVILAY Michel, 2004). Le premier but de Maven est de permettre aux

développeurs de connaitre rapidement l'état global du développement du projet. C'est dans ce but que Maven :

· Facilite le processus de construction

· Fournit un système de construction uniforme

· Fournit des informations utiles sur le projet

· Fournit clairement les grandes lignes directrices de développement

· Fournit les éléments nécessaires pour faire des tests complets

· Fournit une vision cohérente et globale du projet

· Permet d'ajouter de nouvelles fonctionnalités de façon transparente

Maven est basé sur le concept de « Project Object Model » (POM). Le développement et la gestion du projet sont contrôlés depuis le POM.

II.2.1. Principe de fonctionnement

La figure 2-3 suivante illustre le principe de fonctionnement du constructeur de projet maven.

Figure 2-3 : Maven.

8

Source : linsolas.developpez.com/articles/java/builds

1. Maven commence par définir la liste des dépendances nécessaires au projet, via la lecture du fichier pom.xml du projet ;

2. Maven interroge alors le repository local afin de trouver les dépendances utilisés ;

3. Si la dépendance n'est pas trouvée, alors maven va interroger les repositories distants ;

4. les dépendances absences du repository local sont alors téléchargées depuis les repositories distants, de telles façon a ce qu'elles disponibles lors des prochains builds ;

5. Maven peut alors utiliser la dépendance pour la construction du projet.

L'intérêt de ce mécanisme, en plus de sa simplicité, est que nous ne définissons plus que les dépendances directes de notre projet. Les dépendances de nos dépendances, autrement appelées dépendances transitives sont directement gérées par Maven2, et ne préoccupent plus l'esprit du développeur (VONGVILAY Michel, 2004).

II.2.2. La structure de répertoires

Une partie de la puissance de Maven vient des pratiques standardisées qu'il encourage. Un développeur qui a déjà travaillé sur un projet Maven se sentira tout de suite familier avec la structure et l'organisation d'un autre projet Maven. Il n'y a pas besoin de gaspiller du temps à réinventer des structures de répertoires, des conventions, et à adapter des scripts de build Ant pour chaque projet (SMART, 2005). Même s'il est possible de redéfinir l'emplacement de chacun des répertoires vers une localisation spécifique, il est réellement intéressant de respecter la structure de répertoire standard de Maven 2 autant que possible, et ce pour plusieurs raisons :

· Cela rend le fichier POM plus court et plus simple ;

· Cela rend le projet plus simple à comprendre et rend la vie plus simple au pauvre développeur qui devra maintenir le projet quand vous partirez ;

·

9

Cela rend l'intégration de plug-ins plus simple.

II.3. 10

Le serveur SVN

SVN signifie Subversion est un système de gestion de version, conçu pour remplacer CVS. Concrètement, ce système permet aux membres d'une équipe de développeur de modifier le code du projet quasiment en même temps. Le projet est en effet enregistré sur un serveur SVN et à tout moment, le développeur peut mettre à jour une classe avant de faire des modifications pour bénéficier de la dernière version et a la possibilité de comparer deux versions d'un même fichier.

Le principe de fonctionnement est le suivant :

Figure 2-5 : fonctionnement du serveur svn

II.4.

Spring : Faciliter le développement et les tests

Le Framework Spring est un conteneur dit « léger », c'est-à-dire une infrastructure similaire à un serveur d'application J2EE (FERRAN, 2008). 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

11

dépendances entre ces objets (IoC - Inversion of Control). Le gros avantage par rapport aux serveurs d'application est qu'avec SPRING, les classes n'ont pas besoin d'implémenter une quelconque interface pour être prises en charge par le Framework. C'est en ce sens que SPRING est qualifié de conteneur « léger ». L'idée du pattern IoC est très simple, elle consiste, lorsqu'un objet A à besoin d'un objet B, à déléguer à un objet C la mise en relation de A avec B (FERRAN, 2008).

II .5. Apache Wicket : Mettre en place le MVC

Apache Wicket est un Framework pour la création d'applications web qui repose presque entièrement sur Java et HTML comme moyens pour bâtir ses interfaces. Wicket est YAJF (Yet Another JavaEE Framework), mais orienté composants. Il se distingue par certaines grandes particularités :

· Pas de JSP !

· Aucun tag de logique (boucle, condition) mélangé au HTML

· Les composants web sont créés dans des classes Java "à la Swing" avant d'être simplement placés aux endroits souhaités dans le fichier HTML ;

· Une gestion particulièrement simple de tâches récurrentes dans le développement de sites web comme la validation de formulaires, le passage de paramètres entre les pages et la navigation ;

· Un Framework créé dans l'idée de vouloir faciliter le développement de composants réutilisables.

II.6. Hibernate et DAO : le mapping objet/relationnel

Les difficultés de cohabitation entre les mondes objets et relationnels sont résolues grâce au concept de Mapping objet-relationnel (O/R Mapping), qui est le nom donné aux techniques de transformation des modèles objets en modèles relationnels (ROS, 2003).

Les choix architecturaux d'une application sont décisifs dès lors qu'ils interviennent sur les performances, l'évolutivité, les temps de développement, et bien sûr les coûts.

Les sages d'aujourd'hui prônent une séparation en différentes couches des applications, et parlent alors d'applications multi niveaux (n-tier applications) voir figure 2-6.

 

Figure 2-6 : Mapping objet/relationnel

 

12

L'ORM est nécessaire parce la représentation sous forme Relationnelle n'entre pas en correspondance avec la représentation Objet.

· Objet : notions d'héritage et de polymorphisme ;

· Objet : pas d'identifiant (pointeur) ;

· Objet : les relations n:m sont modélisées par des containers.

II.6.1. Data Access Object (DAO)

Quel que soit le système sur lequel vous développez, vous pourrez toujours accéder à vos données relationnelles. Vous utiliserez alors des API telles que JDBC, ADO, ADO.Net, et pourrez alors exécuter des requêtes SQL, ou obtenir des objets représentant des tables et leurs champs.

Ces outils sont suffisants mais ne permettrons jamais à eux seuls une vraie abstraction de la base de données sous-jacente. Par exemple vous ne pourrez pas obtenir toutes les commandes d'un client donné avec une seule ligne de code. De plus, chaque fois que vous voudrez supprimer un client, vous devrez supprimer manuellement son adresse, alors que cela pourrait être fait automatiquement (ROS, 2003).

Tous ces problèmes doivent être gérés par une couche d'accès aux données chargée de communiquer avec le serveur de bases de données, et de renvoyer des objets

13

métiers au programmeur ; Ce denier n'aurait alors plus besoin de taper des requêtes SQL, comprendre les relations entre les tables, ou connaître tous les paramètres des procédures stockées, ou encore d'autres éléments. Lorsqu'on parle de séparation des couches par responsabilité, il y a va également de la séparation des compétences de chaque développeurs.

II.6.2. Hibernate

Outil de mapping objet/relationnel pour le monde Java. Le terme mapping objet/relationnel (ORM) décrit la technique consistant à faire le lien entre la représentation objet des données et sa représentation relationnelle basée sur un schéma SQL.

Non seulement, Hibernate s'occupe du transfert des objets Java dans les tables de la base de données (et des types de données Java dans les types de données SQL), mais il permet de requêter les données et propose des moyens de les récupérer. Il peut donc réduire de manière significative le temps de développement qui aurait été autrement perdu dans une manipulation manuelle des données via SQL et JDBC.

Le but d'Hibernate est de libérer le développeur de 95 pourcent des tâches de programmation liées à la persistance des données communes. Hibernate n'est probablement pas la meilleure solution pour les applications centrées sur les données qui n'utilisent que les procédures stockées pour implémenter la logique métier dans la base de données, il est le plus utile dans les modèles métier orientés objets dont la logique métier est implémentée dans la couche Java dite intermédiaire (ROS, 2003). Cependant, Hibernate vous aidera à supprimer ou à encapsuler le code SQL spécifique à votre base de données et vous aidera sur la tâche commune qu'est la transformation des données d'une représentation tabulaire à une représentation sous forme de graphe d'objets.

II.6.3. JPA Java Persistance API

JPA permet de manipuler des données en base de données relationnelle directement à partir d'objets Java sans écrire du code SQL. Comme pour JDBC,

14

l'utilisation de JPA nécessite un fournisseur de persistance qui implémente les les classes et méthodes de l'API lasses et méthodes de l'API.

Les classes dont les instances peuvent être persistantes sont appelées des entités dans la spécification de JPA Le développeur indique qu'une classe est une entité en lui associant l'annotation @Entity. Ne pas oublier d'importer javax.Persistence.Entity dans les classes entités (idem pour toutes les annotations).

~ Configuration de la connexion

Il est nécessaire d'indiquer au fournisseur de persistance comment il peut se connecter à la base de données. Les informations doivent être données dans un fichier persistence.xml situé dans un répertoire META-INF dans le classpath. Ce fichier peut aussi comporter d'autres informations.

~ Gestionnaire d'entités

Classe javax.persistence.EntityManager, le gestionnaire d'entités (GE) est l'interlocuteur principal pour le développeur. Il fournit les méthodes pour gérer les entités : les rendre persistantes, les supprimer de la base de données, retrouver leurs valeurs dans la base, etc.

~ Contexte de persistance

La méthode persist(objet) de la classe EntityManager rend persistant un objet. L'objet est ajouté à un contexte de persistance qui est géré par le GE (gestionnaire d'entités). Toute modification apportée à un objet du contexte de persistance sera enregistrée dans la base de données. L'ensemble des entités gérées par un GE s'appelle un contexte de persistance.

Dans le cadre d'une application autonome, la relation est simple : un GE possède un
contexte de persistance, qui n'appartient qu'à lui et il le garde pendant toute son
existence. Lorsque le GE est géré par un serveur d'applications, la relation est plus
complexe ; un contexte de persistance peut se propager d'un GE à un autre et il peut
être fermé automatiquement à la fin de la transaction en cours.

15

Chapitre III : SPECIFICATION DES BESOINS

Ce chapitre va nous permettre de décrire le référentiel qui nous guidera durant la conception et implémentation du système. Nous commencerons dans la partie initialisation par définir le cadre de déroulement de ce projet de conception, ensuite dans la partie expression des besoins par définir les besoins du système.

III.1. Initialisation du projet

La conception et implémentation du système à commencer par l'initialisation du projet qui à définir les livrables attendus, la composition de l'équipe projet, les contraintes techniques, la méthodologie technique utilisée, les outils logiciels, les risques identifiés et le planning prévisionnel.

III.1.2. Livrables attendus

Tableau 3-1 : Livrables attendus

Type

Code

Nom du livrable

Date de livraison

2

Document

D-CC

Dossier de Cahier des Charges

10 /04/2013

3

Document

D-AC

Dossier d'Analyse et
Conception

01/05/ 2013

4

Document

D-I

Dossier d'Implémentation

28/05/2013

5

Logiciel

losequiv

Logiciel du Suivi et Traitement
des dossiers d'Equivalence de
diplôme

03/06/2013

 

III.1.3 Composition de l'équipe

L'équipe intervenante dans la mise du système est répartir comme suit :

· Chef Projet

Dr EMVUDU Yves : Directeur des Systèmes d'Information (SI) du ministère de l'enseignement supérieur

· Réalisateur du projet :

GBITHICKI NDANGA Brice Arsène : Etudiant Master Informatique ISS Maroua

16

III.1.4. contraintes techniques

La conception et implémentation du système de suivi et traitement des dossiers d'équivalence des diplômes devra être un système multiutilisateur pour permettre à chaque cadre de la sous-direction d'effectuer ses tâches. Aussi ce système devra être accessible à travers un navigateur et indépendamment de tout système d'exploitation utilisé. Pour ce faire, nous avons opté d'utiliser une solution web à plusieurs couches basée sur la plate forme J2EE car cette dernière facilite le développement des applications web en structurant l'architecture en plusieurs couches et fournissant les composants déjà implémentés de chaque couche à travers un serveur d'application. Cette plate forme propose une architecture MVC qui apporte de réels avantages telle que :

· Une conception claire et efficace grâce à la séparation des données de la vue et du contrôleur ;

· Un gain de temps de maintenance et d'évolution du système ;

· Une plus grande souplesse pour organiser le développement du logiciel entre les différents développeurs (indépendance des données, de l'affichage et des actions).

III.1.5. Identification de la méthode utilisée

Nous avons choisi d'utiliser la méthode UP (Unified Process) qui est un processus de développement logiciel « itératif et incrémental, centré sur l'architecture, conduit par les cas d'utilisation et piloté par les risques » (ROQUES, 2002). La gestion d'un tel processus est organisée suivant les quatre phases suivantes : initialisation, élaboration, construction et transition.

Les activités de développement sont définies par cinq disciplines fondamentales qui décrivent la capture des besoins, l'analyse et la conception, l'implémentation, le test et le déploiement.

Le cycle de vie du projet décrit l'ensemble des activités de développement que préconise la méthode UP. Ces activités sont décrites de façon indépendantes et

peuvent jouer un rôle plus ou moins important dans une phase, parfois ne jouer aucun rôle.

La figure 3-1 ci-dessous illustre ce cycle de vie.

Phases

Activités

Initialisation

Elaboration

Construction

Transition

Besoins

Analyse et Conception

Implémentation

Tests

Déploiement

 
 

17

Figure 3-1 : Cycle de vie du processus unifié

III.1.6. Outils logiciels

Nous prévoyons de travailler simultanément sur deux systèmes d'exploitation (Windows Seven et Ubuntu 12.10). Une de nos premières tâches sera de nous constituer une « boite à outils » constituée d'outils à la fois portables mais surtout compatibles les uns avec les autres (voir tableau 3-2):

18

Tableau 3-2 : Outils logiciels

Logo

Description

Rôle

 

Bureautique :

.docx (Microsoft Word) ou .odt (Open Office)

Utilisés pour la rédaction des documents

 
 

Gestion de projet : MS Project

Nécessaire à l'élaboration du planning prévisionnel

 

DropBox

stocker en ligne les

différents documents et les rendre accessibles depuis n'importe quel ordinateur

 

Modélisation : Enterprise Achitect

Dessiner les différents model d'UML2

 

Editeur de code source : Notepad ++

 
 

Environnement de développement Intégré: Eclipse for J2EE

 
 

Navigateurs: IE8 (Trident), FF17.0 (Gecko), Chrome (Webkit)

 
 

III.1.7. Identification des risques

Ce tableau 3-3 présente les différents risques identifiés et pourront constitués un frein à la mise en place de l'application.

Tableau 3-3 : Identification des risques

RISQUES

GRAVITE

PLAN D'ACTION

Accumulation du retard

Très importante

Remise en question du planning (réévaluation éventuelle des charges)

 
 

Faire régulièrement le point sur

 

Mauvaise compréhension des

Très importante

l'avancement du projet et

besoins

 

organiser des réunions avec les cadres de la sous direction des équivalences afin de mieux comprendre leurs exigences

 
 

sauvegarde régulière des

Perte de documents

importante

documents lors de leur rédaction; en plus, il faut

 
 

«commiter» un document sur le répositoire DROPBOX après chaque modification importante

 

III.1.8. Planning prévisionnel

Le planning ci-dessous a été réalisé à l'aide de l'outil MS Project. Il contient l'ensemble des tâches à réaliser afin de mener à bout le projet, regroupées en phases et sous-phases (voir figure 3-2).

Figure 3-2 : Planning prévisionnel

19

20

III.2. Expression des besoins

L'expression des besoins nous à permit de faire une étude de l'existant. De cette étude de l'existant ont découlés les règles de gestion à mettre en place ainsi que les besoins fonctionnels et non fonctionnels du système.

III.2.1. Etude de l'existant

Les candidats sollicitant une demande d'équivalence vont déposer un dossier comprenant un ensemble de pièces au courrier central du MINESUP. Ces pièces sont les suivantes :

- une demande timbrée adressée au MINESUP avec précision de l'adresse personnelle, numéro de téléphone et numéro d'étudiant à l'étranger ;

- Une copie certifiée conforme de l'acte de naissance ;

- Photocopie certifié conforme des diplômes à évaluer ;

- Programme des cours qui ont précédé l'obtention des diplômes ; - Photocopies certifiés conformes de tous les diplômes antérieurs ; - Trois photocopies de chacun des diplômes ;

- Adresse complète et exacte des établissements de formation ayant délivré les diplômes à évaluer ;

- Préciser le centre d'écrit pour les examens étrangers présentés au Cameroun ;

- Autorisation de l'étudiant pour solliciter les renseignements le concernant auprès de son établissement ;

- Copie de la thèse pour les détenteurs du Master. Ces dossiers vont suivre les étapes suivantes :

Etape 1 : La Sous-direction des Equivalences va étudier le dossier des candidats en vérifiant les informations sur le diplôme présenté.

21

Etape 2 : Ensuite collecte d'information nécessaire à l'évaluation du diplôme présenté, du système d'enseignement, des conditions de formation, d'admission, et du statut de l'établissement dans le pays de délivrance.

Etape 3 : Les cadres de la SDE montent les dossiers d'équivalence (initié une lettre qui sera joint avec certaines pièces) et les envois au chef de la sous-direction pour signature.

Etape 4 : Lorsque le dossier d'un candidat n'est pas complet le cadre appelle le candidat et lui informe de venir compléter les pièces manquantes.

Etape 5 : Après signature des dossiers par le chef de la Sous-direction, les cadres les envois dans les ambassades respectifs pour vérification du dossier (authenticité du diplôme, statut de l'école, système d'enseignement) par l'intermédiaire du service courrier.

Etape 6 : Après la réponse de l'ambassade, si l'établissement n'est pas reconnu dans le pays où le diplôme a été délivré, une délivrance ne peut être accordée.

Etape 7 : Une fois que les informations nécessaires sont disponibles pour qu'elle se prononce sur l'équivalence à accorder. Les sous commissions techniques siègent à l'avance et émettent des avis préparatoires et préalables aux délibérations de la commission Nationale qui se tient deux semaines après.

Etape 8 : Les résultats des délibérations sont ensuite acheminés aux cadres de la SDE pour l'élaboration d'un projet d'équivalence des diplômes (établissement des attestations de diplôme, niveau et arrêtés) à soumettre à la signature du MINESUP.

Etape 9 : Après signature du MINESUP les dossiers sont renvoyés à la SDE. Affichage des résultats au MINESUP et diffusion des résultats sur le site du MINESUP.

Etape 10 : La SDE établie des extraits d'équivalence (Document) et les envois au chef de la Sous-direction pour signature.

22

Etape 11 : Les Candidats se présentent à la SDE pour retrait des extraits d'équivalence et des photocopies certifiées conformes des extraits de l'arrêté d'équivalence sous présentation de leur carte nationale d'identité.

III.2.2. Règles de gestion

R1 : Le candidat dépose un dossier de demande d'équivalence d'un diplôme obtenu dans un pays l'étranger ;

R3 : Les cadres de la Sous-direction des équivalences collecte des informations nécessaires à l'évaluation du diplôme ;

R3 : Les cadres initiés une lettre qui sera joint avec les certaines pièces ;

R4 : Ils envois les dossiers au chef de la Sous-direction pour signature ;

R5: Les dossiers sont ensuite envoyés dans les ambassades respectifs pour authentification des différentes pièces ;

R6 : L'établissement qui délivre le diplôme doit être reconnu dans ce pays sinon la demande d'équivalence sera pas accordée ;

R7 : Délibération des dossiers d'équivalence devant la commission nationale d'équivalence ;

R8 : Les résultats des délibérations sont ensuite acheminés aux cadres de la Sous-direction pour l'élaboration d'un projet d'équivalence des diplômes à soumettre à la signature du MINESUP ;

R9 : Après signature du MINESUP les dossiers sont renvoyés aux cadres de la Sous-direction pour l'établissement des extraits d'équivalence, puis envoyés pour signature au chef de la Sous-direction;

R10 : Retrait des extraits d'équivalence et des photocopies certifiées conformes des extraits de l'arrêté d'équivalence sous présentation de leur carte nationale d'identité du candidat.

23

III.2.3. Besoins fonctionnels

Les fonctionnalités du système à mettre en place sont les suivantes.

· Gérer les dossiers de demande d'équivalence des candidats :

La gestion des dossiers va consister en : L'enregistrement, la modification, la recherche et la suppression.

· traiter les lettres de demande des candidats :

Permettra de créer une lettre qui sera joint avec les pièces du candidat

· Evaluer les dossiers de demande d'équivalence des candidats :

Qui consistera à vérifier l'originalité du diplôme présenté, le niveau d'étude, le système d'enseignement, les conditions de formation, d'admission, et du statut de l'établissement.

· Envoyer les dossiers dans un service :

Les dossiers devront être acheminés d'un service à un autre tout en conservant la traçabilité de ceux-ci. Les cadres seront informés de la durée des dossiers dans chaque service.

· Etablir un projet d'équivalence :

Après que la commission nationale à siéger, établir un projet d'équivalence des candidats dont les dossiers ont été approuvés. Il s'agit des attestations de diplôme, de niveau, des arrêtés et des extraits d'équivalence ;

· Consultation les dossiers :

Voir la liste des dossiers, Informer les candidats de la position de leurs dossiers, Imprimer les extraits et arrêtés d'équivalence ;

24

III.2.4. Besoins non fonctionnels

Il est nécessaire de confronter le futur système à un certain nombre de besoins non fonctionnels afin qu'il puisse répondre avec satisfaction à son utilisation.

· Disponibilité

Vu la forte demande d'équivalence des diplômes, le système devra être capable de répondre à une exigence de disponibilité extrêmement importantes. Il sera nécessaire de veiller à concevoir une architecture suffisamment importante et éventuellement des moyens de secours permettant de palier à un incident.

· Sécurité

Pour poursuivre dans cette idée de disponibilité du système, il faudra bien évidemment répondre à un besoin de sécurité extrêmement important. Il sera en effet vital d'assurer authentification de chaque utilisateur, ceci permettra d'avoir une structure sécurisée d'accès à l'application et de pouvoir suivre toutes les opérations jugées critiques.

· Ergonomie

Enfin, le système devra répondre à l'exigence globale d'ergonomie par une navigation simple de l'application, Une mise en page de l'application qui facilitera au maximum la démarche à l'aide d'une présentation claire et intuitive.

III.2.5. Architecture

Nous distinguons deux types d'architecture, une basée sur une architecture physique et une autre sur architecture logicielle.

III.2.5.1. Architecture Physique

Le système est une application Web, les utilisateurs peuvent se connecter à l'application par Internet ou intranet. Voila, la figure 3-3 suivante donne une vue de l'architecture physique du système.

Serveur d'application

Client 2

INTRANET

Client 1

COUCHE PRESENTATION

COUCHE SERVICE

COUCHE DAO

Figure 3-3 : Architecture physique

III.2.5.1. Architecture en couche

L'application est destinée à être déployée dans un environnement J2EE (Java 2 Enterprise Edition) définissant une norme proposée par la société Sun. L'architecture que nous proposons repose sur les principes d'une architecture 4-tiers. Elle permet de diviser notre système en plusieurs couches (voir figure 3-4) :

Utilisateur

COUCHE
METIER

 

25

Figure 3-4 : Architecture logicielle

SGBD

 

26

La couche présentation correspond à la partie de l'application visible et avec laquelle les utilisateurs vont interagir ;

La couche service fournit un ensemble de méthodes pour le traitement des données qui seront présenter à la couche présentation ;

La couche d'accès aux données (DAO) regroupe un ensemble d'objets permettant d'accéder à une base de données. ;

La couche métier est responsable de la manipulation des entités de l'application. Elle fournit ces entités aux couches présentation, service et dao.

L'application pourra être exécutée sur les plates formes Windows et Linux. Nous privilégierons le développement sur un poste de travail Linux, le déploiement sur un serveur Linux pour sa facilité, sa souplesse et sa robustesse. Nous prendrons un soin de nous fier au standard Web pour avoir une même représentation des données indépendantes du navigateur.

III.2.6. Gestion des besoins

« La gestion des Besoins est l'ensemble des activités permettant de définir et de suivre les besoins d'un système au cours d'un projet. Elle va nous permettre de s'assurer de la cohérence entre ce que fait réellement le projet et ce qu'il doit faire, de faciliter l'analyse d'impact en cas de changement » (ROQUES, 2002).

Grace l'outil EA (Entreprise Architect), nous avons décrit les Besoins comme des éléments de modélisation à part entière. Les Besoins ont au moins un type, un identifiant et un texte descriptif, comme indiqué sur la figure 3-5 suivante.

27

Figure 3-5 : Gestion des besoins.

« Ces Besoins sont classés suivant plusieurs critères tels que la priorité fonctionnelle, la difficulté technique. Cette gestion de Besoins nous permettra par la suite de conserver la traçabilité entre les Besoins textuelles et les cas d'utilisation du projet » ;

28

Chapitre IV : ANALYSE ET CONCEPTION DU SYSTEME

Nous rappelons que nous utilisons la méthode UP qui est un processus itératif et incrémental, guidé par des cas d'utilisation centré sur l'architecture (ROQUES, 2002). Cette méthode utilise le langage UML 2 pour la modélisation des données. Nous préciserons ici que l'ensemble des diagrammes et figures qui seront présentés dans ce chapitre ont été développé grâce l'outil de modélisation de projet Entreprise Achitect.

Une fois que les besoins des utilisateurs ont été identifiés au chapitre trois, il est question de migrer ses besoins vers une solution informatique par le concept des modèles de UML2. Nous débuterons dans la partie analyse par une description détaillée du comportement du système ensuite dans la partie conception par une spécification de la façon dont chacun des composants du système seront réalisés et comment ils interagiront.

VI.1. ANALYSE

Nous présenterons dans cette section les modèles de cas d'utilisation, ensuite les modèles d'analyse et enfin les modèles navigationnel.

IV.1.1. Modèles de cas d'utilisation

La réalisation des modèles de cas d'utilisation débutera par la présentation d'une démarche, l'identification des acteurs et cas d'utilisation à partir des besoins fonctionnels décrits précédemment. Ensuite nous structurons, relirons et classerons ces cas d'utilisation ainsi que les représentations graphiques UML associées. Encore nous planifierons et sortirons la traçabilité entre les besoins textuels et les cas d'utilisation et enfin nous déduirons la maquette de notre système.

IV.1.1.1. Démarche des modèles de cas d'utilisation

L'expression préliminaire des besoins des utilisateurs donne lieu à une modélisation par les cas d'utilisations et à une maquette d'interface homme-machine (IHM) (ROQUES, 2002). La figure 4-1 ci-dessous nous décrit cette démarche :

Figure 4-1 : Démarche des besoins qui conduisent à des cas d'utilisation et à une

maquette.

Figure 4-2 : Synoptique de la démarche.

29

A partir des besoins nous allons identifier les acteurs, identifier les cas d'utilisation, structurer les cas d'utilisation en packages, ajouter les relations entre les cas d'utilisation et enfin finaliser les diagrammes de cas d'utilisation (voir synoptique de la figure 4-2 ci-dessous).

30

IV.1.1.2. Identification des acteurs Les acteurs de notre système sont :

· Cadres ;

· Chef de la Sous-direction.

IV.1.1.3. Identification des cas d'utilisation métier

· Gérer dossier

· Gérer lettre

· Evaluer dossier

· Envoyer dossier

· Gérer établissement

· Imprimer

· Paramétrages

· S'authentifier

Le cas d'utilisation S'authentifier est utilisé afin de permettre aux cadres d'exécuter ses propres cas d'utilisation majeurs. Nous qualifierons donc ce petit cas d'utilisation de « fragment » : il ne représente pas un objectif à part entière des cadres, mais plutôt un objectif de niveau intermédiaire (ROQUES, 2002).

IV.1.1.4. Structuration en packages

Nous allons organiser les cas d'utilisation et les regrouper en ensembles fonctionnels cohérents. Pour ce faire, nous utilisons le concept général d'UML, le package. Les acteurs ont également été regroupés dans un package. Le cas d'utilisation s'authentifier sera structuré dans un package à part intitulé use case de second rang.

Le sigle UC pour use case sera utilisé pour raccourcir les noms de packages.

La figure 4-3 suivante montre l'organisation des cas d'utilisation et des acteurs en packagent.

Figure 4-3 : Organisation des cas d'utilisation et des acteurs en packagent.

IV.1.1.5. Relations entre les cas d'utilisation métier

Nous allons dans la figure 4-4 suivante montrer les relations entre les cas d'utilisation et les acteurs.

Figure 4-4 : Diagramme des relations entre les cas d'utilisation métier.

31

32

Figure 4-5 : Suite du diagramme des cas d'utilisation.

IV.1.1.6. Classement des cas d'utilisation métier

Après tout ce travail d'identification des cas d'utilisation, nous pouvons maintenant les classifier en tenant compte des deux facteurs suivants (ROQUES, 2002) :

· la priorité fonctionnelle, déterminée par la Sous-direction des équivalences ;

· le risque technique, estimé par le chef de projet. Le tableau suivant illustre cette démarche sur notre étude de cas.

Tableau 4-1 : Classement des cas d'utilisation

Cas d'utilisation

Priorités

Risques

Gérer dossier

Haute

Haut

Gérer lettre

Haute

Haut

Evaluer dossier

Haute

Haut

Envoyer dossier

Haute

bas

Gérer établissement

Moyenne

bas

 

33

Imprimer

Moyenne

bas

Paramétrages

Basse

bas

 

Dans ce classement des cas d'utilisation nous avons distingués trois niveaux d'importance (Haute, Moyenne, Basse). Les quatre priorités hautes des cas d'utilisation Gérer dossier, Gérer lettre, Evaluer dossier, Envoyer dossier sont celles sur lesquelles un accent sera mis tout au long du projet. Au niveau technique les cas d'utilisation Gérer dossier, Gérer lettre et évaluer dossier ont été classer avec le risque le plus haut à cause de leurs complexités de mise en oeuvre.

IV.1.1.7. Planification du projet en itérations

À partir du classement précédent, nous avons effectué le découpage en itérations suivant : Un des bons principes du Processus Unifié consiste à identifier et lever les risques majeurs au plus tôt. Nous devons donc prendre en compte de façon combinée la priorité fonctionnelle et l'estimation du risque (ROQUES, 2002):

· Si la priorité est haute et le risque également, il faut planifier le cas d'utilisation dans une des toutes premières itérations ;

· Si la priorité est basse et le risque également, on peut reporter le cas d'utilisation à une des toutes dernières itérations ;

· Lorsque les deux critères sont antagonistes, soit on essaye de décider en pesant le pour et le contre, soit on négocier avec les cadres de la SDE pour les convaincre qu'il vaut mieux pour le projet traiter en premier un cas d'utilisation risqué mais peu prioritaire, au lieu d'un cas d'utilisation plus prioritaire mais ne comportant pas de risque (ROQUES, 2002).

Tableau 4-2 : Planifications des itérations obtenu grâce aux cas d'utilisation.

Cas d'utilisation

Priorités

Risques

Itération#

Gérer dossier

Haute

Haut

1

Gérer lettre

Haute

haut

2

Evaluer dossier

Haute

Haut

4

Envoyer dossier

Haute

bas

3

Gérer établissement

Moyenne

bas

5

Consultation

Moyenne

bas

6

Paramétrages

Basse

bas

7

 

IV.1.1.8. Traçabilité des cas d'utilisation avec les besoins textuelles

Nous avons établir dans cette figure des liens de traçabilité entre besoins textuelles et les cas d'utilisations du système (voir figure 4-6).

Figure 4-6 : Matrice de relations entre cas d'utilisation et besoins sous EA.

34

35

Nous déduisons de cette matrice que toutes les besoins textuelles ont bien été tracés par rapport à au moins un cas d'utilisation. Par contre, les cas d'utilisation paramétrages, s'authentifier doivent induire des nouveaux besoins, puisqu'ils n'ont pas été reliés du tout. Il est tout à fait courant que l'identification des cas d'utilisation amène ainsi à une révision des besoins textuels.

IV.1.1.9. Maquette du système

De ces cas d'utilisation nous pouvons déjà déduire nous marquette du logiciel du suivi des dossiers d'équivalence suivante (voir figure 4-7).

Figure 4-7 : Maquette système.

IV.1.2. Modèles d'analyse

Les modèles d'analyse vont nous permettre de faire une description détaillée du système. Nous débuterons cette description par une présentation de la démarche, ensuite l'analyse des cas d'utilisations et enfin la réalisation des cas d'utilisation d'analyse.

IV.1.2.1. Démarche des modèles d'analyse

Nous rappelons que l'expression préliminaire des besoins nous a donné lieu à une modélisation par les cas d'utilisation métier et à une maquette d'interface homme-machine. Nous allons maintenant apprendre à les décrire de façon détaillée afin

36

d'obtenir une expression précise des besoins (ROQUES, 2002). La figure 4-8 ci-dessous illustre cette démarche :

Figure 4-8 : Démarche des cas d'utilisation qui conduisent au diagramme de séquence
et de classes participantes.

IV.1.2.2. Analyse des cas d'utilisations

L'analyse des cas d'utilisation consiste à élaborer des diagrammes de cas d'utilisation et faire une description de ces cas d'utilisation. Ensuite élaborer la matrice de validation, décrire les opérations système, structurer ces opérations systèmes en interface et enfin les reliées au cas d'utilisation.

a) Élaboration du diagramme des cas d'utilisation d'analyse

Ce diagramme de cas d'utilisation d'analyse est plus détaillé que celui présenté au paragraphe précédent. En effet, nous sommes passés dans une phase d'analyse qui correspond à une vue informatique du système.

~ Diagramme des cas d'utilisation d'analyse du chef de la Sous-direction

Le diagramme de la figure 4-9 présente les cas d'utilisation du chef de la sous-direction.

Figure 4-9 : Diagramme des cas d'utilisation d'analyse du chef de la sous direction.

~ Diagramme des cas d'utilisation d'analyse des cadres de la Sous-direction Le diagramme de la figure 4-10 présente les cas d'utilisation des cadres

Figure 4-10 : Diagramme des cas d'utilisation des cadres.

37

38

Figure 4-11 : Suite du diagramme des cas d'utilisation des cadres. b) Description des cas d'utilisation d'analyse

Nous allons décrire chaque cas d'utilisation d'analyse dans l'ordre des itérations du tableau des planifications. Le tableau suivant résume l'ordre d'analyse des cas d'utilisation présenté dans la partie du modèle des cas d'utilisation précédente.

Tableau 4-3 : Description des cas d'utilisation d'analyse.

Itération

Cas d'utilisation métier

Cas d'utilisation d'analyse

1

Gérer dossier

Créer dossier Modifier dossier Supprimer dossier Rechercher dossier

2

Gérer lettre

créer lettre

3

Evaluer dossier

Evaluer dossier

5

Envoyer dossier

Envoyer dossier

6

Gérer établissement

Créer établissement

7

Imprimer

Lettres

Faux-diplômes Arrêtés

 

 
 

Equivalences

8

Paramétrages

Gérer comptes Gérer modèle

 

Pour chaque cas d'utilisation, les sous-activités suivantes de l'activité « Analyse des cas d'utilisation » sont réalisées :

- Description textuelle du cas d'utilisation ; - Elaboration du diagramme de séquence ; - Elaboration de l'interface utilisateur.

Nous allons décrire les sous-activités des cas d'utilisation suivant : créer dossier, envoyer dossier, créer établissement, créer compte.

> Use case 1 : Créer dossier

 
 
 

Figure 4-12 : Use case 1- créer dossier.

 
 
 
 
 

39

1' Acteur principal : Cadres

1' Priorité : 1

1' Objectifs : sauvegarder les informations sur le dossier des candidats

1' Pré-conditions :

· L'application est lancée,

· Le cadre s'authentifier,

· Le cadre se situé dans la page Gérer dossier.

40

1' Post-conditions :

· Le dossier a été créé

· La page Gérer dossier est affichée 1' Scénario nominal :

Tableau 4-4: Scenario nominal use case 1.

Action menée par le cadre

Action réalisée par le système

1- Demande de création du dossier

 
 

2- Affiche le formulaire de saisi

3- Saisi les données relatives aux dossiers

 

4- Valide la saisie

 
 

5- Accède à la base de données et y ajoute les données relatives au dossier

 

6- Informe le cadre que le dossier a été créé

7- Affiche la page Gérer dossier

 

1' Alternatives :

· Le système signale le dysfonctionnement au cadre

· Le système détecte des erreurs ou des incohérences parmi les nouvelles informations

· Le cadre modifié toutes les informations erronées et valide de nouveaux 1' Besoin IHM

· Un élément pour demander la création d'un dossier,

· Un formulaire composé de composants de saisie (champs de texte, listes de choix, etc.) pour saisir les informations liées au dossier,

· Une zone de confirmation contenant un élément de validation et un élément d'annulation,

· Une barre des tâches pour informer de la création du dossier ;

41

V' Fonction Qualité Mesure :

Tableau 4-5: Fonction qualité mesure use case 1.

Fonction

Fréquence

Qualité

Mesure

Créer dossier

Régulière

Rapidité

Instantanée

 

Gère les accès concurrents aux données de la base

 

V' Diagramme de séquence créer dossier

Ce diagramme (voir figure 4-13) montre les interactions entre les cadres et le système.

Figure 4-13 : Diagramme de séquence créer dossier.

L'interface Homme Machine de la création des dossiers pourra ressembler au dessin suivant (voir figure 4-10), réalisé avec l'outil EA, permettant ainsi de relier les dessins de la maquette aux cas d'utilisation.

 

Figure 4-10 : IHM créer dossier.

 

> Use case 2 : Envoyer dossier

 
 
 

Figure 4-14 : Use case 2 envoyer dossier.

 
 

42

" Acteur principal : Cadres

" Priorité : 2

" Objectifs : envoyer les dossiers dans un service

" Pré-conditions :

· L'application est lancée,

· Le cadre s'authentifier,

· Le cadre se situé dans la page Envoyer dossier. " Post-conditions :

· Le dossier a été envoyé

· La page Envoyer dossier est affichée

43

V' Scénario nominal :

Tableau 4-4: Scenario nominal use case 2.

Action menée par le cadre

Action réalisée par le système

1- Demande d'envoi du dossier

 
 

2- Affiche le formulaire d'envoi

3- sélectionne le(s) dossier(s) de(s) candidat(s) et le service

 

4- Valide l'envoi

 
 

5- Accède à la base de données et y ajoute les données relatives a l'envoi

 

6- Informe le cadre que l'envoi s'est effectué

7- Affiche la page Envoyer dossier

 

V' Alternatives :

· Le système signale le dysfonctionnement au cadre

· Le cadre modifié toutes les informations erronées et valide de nouveaux V' Besoin IHM

· Un élément pour demander l'envoi des dossiers,

· Un formulaire composé de composants de sélection (listes de choix, checkbox, etc.) pour sélectionner les informations liées a l'envoi du

dossier,

· Une zone de confirmation contenant un élément de validation et un élément d'annulation,

· Une barre des tâches pour informer de l'envoi du dossier. V' Fonction Qualité Mesure :

Tableau 4-5: Fonction qualité mesure use case 2.

Fonction

Fréquence

Qualité

Mesure

Créer dossier

Régulière

Rapidité

Instantanée

 

Gère les accès concurrents aux données de la base

 

 

Figure 4-16 : IHM envoyer dossier.

 

44

i' Diagramme de séquence envoyer dossier

Le diagramme de la figure 4-15 suivante montre l'interaction de l'envoie d'un dossier entre le cadre et le système.

Figure 4-15: Diagramme de séquence envoyer dossier.

L'interface Homme Machine (IHM) de l'envoi des dossiers pourra ressembler au dessin suivant (voir figure 4-16).

> Use case 3 : Créer comptes

 

Figure 4-17 : Use case 3 créer
comptes.

 

45

1' Acteur principal : Cadres

1' Priorité : 7

1' Objectifs : Enregistrer les comptes des cadres

1' Pré-conditions :

· L'application est lancée,

· Le cadre s'authentifier,

· Le cadre se situé dans la page Paramétrages. 1' Post-conditions :

· les comptes ont été crées

· La page Paramétrage est affichée 1' Scénario nominal :

Tableau 4-6: Scenario nominal use case 3.

Action menée par le cadre

Action réalisée par le système

1- Demande de création du compte

 
 

2- Affiche le formulaire de saisi

3- Saisi les données relatives aux compte

 

4- Valide la saisie

 
 

5- Accède à la base de données et y ajoute les données relatives au compte

 

6- Informe le chef de la sous direction que le compte a été créé

7- Affiche la page de Paramétrage

 

46

i' Alternatives :

· Le système signale le dysfonctionnement au cadre

· Le système détecte des erreurs ou des incohérences parmi les nouvelles

informations

· Le chef de la sous direction modifié toutes les informations erronées et valide

de nouveaux i' Besoin IHM

· Un élément pour demander la création d'un dossier,

· Un formulaire composé de composants de saisie (champs de texte, listes de choix, etc.) pour saisir les informations liées au dossier,

· Une zone de confirmation contenant un élément de validation et un élément d'annulation,

· Une barre des tâches pour informer de la création du compte i' Fonction Qualité Mesure :

Tableau 4-7: Fonction qualité mesure use case 3.

Fonction

Fréquence

Qualité

Mesure

Créer compte

Occasionnelle

Rapidité

Instantanée

 

Gère les accès concurrents aux données de la base

 

i' Diagramme de séquence créer comptes

Le chef de la sous-direction devra définir au préalable définir les comptes de tous les cadres qui devront interagir avec le système. Pour création de chaque compte, il clique sur le menu administration et choisi le menu nouveau utilisateur. La figure suivante illustre la suite des opérations.

 

Figure 4-19 : IHM créer comptes.

 

47

i' Diagramme de séquence créer comptes

Ce diagramme montre l'interaction entre le chef et le système dans la création d'un comptes.

Figure 4-18 : Diagramme de séquence créer comptes.

L'interface Homme Machine (IHM) de la création de compte pourra ressembler au dessin suivant.

> Use case 4 : Créer établissement

 

Figure 4-20 : Use case 4 créer établissement.

 

48

" Acteur principal : cadres

" Priorité : 5

" Objectifs : Créer les établissements

" Pré-conditions :

· L'application est lancée,

· Le cadre s'est authentifié. " Post-conditions :

· les établissements ont été crées " Scénario nominal :

Tableau 4-8: Scenario nominal use case 4.

Action menée par le cadre

Action réalisée par le système

1- Demande de création de l'établissement

 
 

2- Affiche le formulaire de saisi

3- Saisi les données relatives à l'établissement

 

4- Valide la saisie

 
 

5- Accède à la base de données et y ajoute les données relatives a l'établissement

 

6- Informe le chef de la sous direction que l'établissement a été créé

7- Affiche la page de Pa métrage

 

49

V' Alternatives :

· Le système signale le dysfonctionnement au cadre

· Le système détecte des erreurs ou des incohérences parmi les nouvelles

informations

· Le chef de la sous direction modifié toutes les informations erronées et valide

de nouveaux V' Besoin IHM

· Un élément pour demander la création d'un dossier,

· Un formulaire composé de composants de saisie (champs de texte, listes de choix, etc.) pour saisir les informations liées au dossier,

· Une zone de confirmation contenant un élément de validation et un élément d'annulation,

· Une barre des tâches pour informer de la création de l'établissement V' Fonction Qualité Mesure :

Tableau 4-9: Fonction qualité mesure use case 4.

Fonction

Fréquence

Qualité

Mesure

Créer compte

Occasionnelle

Rapidité

Instantanée

Sécurité

Gère les accès concurrents aux données de la base

V' Diagramme de séquence créer établissement

Seul le chef de la sous-direction peut créer un établissement, car nous avons spécifiés dans les besoins que le chef approuve les établissements dont le statut est authentifié au pas (voir figure 4-21).

Figure 4-21 : Diagramme de séquence créer établissement.

 

Figure 4-22 : IHM créer établissement.

50

L'interface homme machine de création des établissements pourra ressembler à ceci (voir figure 4-22).

c) 51

Élaboration de la matrice de validation

La matrice de validation permet de vérifier que l'analyse du cas est complète, c'est-à-dire que tous les cas d'utilisation métier ont été intégrés. Elle permet aussi d'établir une correspondance entre les cas d'utilisation métier et les cas d'utilisation d'analyse (voir figure 4-23).

Figure 4-23 : Élaboration de la matrice de validation.

d) Opérations système

Les événements système envoyés par les acteurs au système LOSEQUIV déclenchent des traitements internes que nous appellerons opérations système.

L'ensemble des opérations système de tous les cas d'utilisation définit l'interface publique du système, qui visualise le système comme une entité unique, boîte noire offrant des services. En UML, le système pris dans son ensemble peut être représenté par une classe, avec le mot-clé «system», comme nous l'avons déjà fait dans les diagrammes de séquence précédents (ROQUES, 2002). À la suite de la création des différents DSS et en enrichissant cette description préliminaire avec les

extensions des cas d'utilisation, nous obtenons la liste d'opérations système suivante (voir figure 4-24).

 

Figure 4-24 : Opérations système.

Cette liste n'est bien sûr pas exhaustive, car nous n'avons pas encore décrit dans les détails tous les cas d'utilisation. Elle sera donc progressivement complétée au fur et à mesure des itérations successives. On commence cependant à voir apparaître les fonctionnalités majeures du système, à un niveau de détail proche de ce qui sera disponible dans l'IHM.

e) Structuration des opérations systèmes en interface

Il serait également possible de commencer à définir des interfaces, pour découper l'ensemble des opérations en groupes cohérents (voir figure 4-25).

Figure 4-25 : Opérations système structurés en interfaces.

52

f) Opérations système structurés en interfaces et reliées aux cas d'utilisation

Nous avons reliées chaque opération système aux cas d'utilisation dans la figure 4-26 suivante.

53

Figure 4-26 : Opérations système structurés en interfaces et reliées aux cas d'utilisation.

54

IV.1.2.3. Réalisation des cas d'utilisation

Après avoir effectué l'analyse des cas d'utilisation à la section précédente, nous allons donc passer à la réalisation de ces derniers. Le procédé de cette réalisation débutera par une identification des concepts du domaine qui permettra de faire ressortir des entités et attributs. Par la suite, ces entités et attributs seront mis en associations entre eux. Enfin une description d'une typologie des classes d'analyse permettra la réalisation des diagrammes de classes d'analyse participantes du système. a) Identification des concepts du domaine

L'étape typiquement orientée objet de l'analyse est la décomposition d'un domaine d'intérêt en classes conceptuelles représentant les entités significatives de ce domaine. Il s'agit simplement de créer une représentation visuelle des objets du monde réel dans un domaine donné (ROQUES, 2002).

Comment identifier les concepts du domaine ? Plutôt que de partir à l'aveugle et nous heurter à la taille du problème à résoudre, nous allons prendre les cas d'utilisation un par un et nous poser pour chacun la question suivante : quels sont les concepts métier qui participent à ce cas d'utilisation ?

> Pour le cas d'utilisation Gérer dossiers, nous identifions les concepts

fondamentaux suivants :

· Candidat ;

· Pièces ;

· Dossiers ;

· Etablissement ;

· Session ;

· Diplômes.

> Pour le cas d'utilisation Evaluer dossier, nous identifions :

· Dossiers ;

· Types ;

· Statut.

55

> Pour le cas d'utilisation Envoyer dossiers, nous identifions :

· Services ;

· Envoyer ;

· Alertes ;

· Dossiers.

> Pour le cas d'utilisation initier lettre, nous identifions :

· Lettre ;

· Modèle ;

· Dossier.

> Enfin, pour le cas d'utilisation Paramétrages, nous identifions :

· Comptes ;

· Modèle.

c) Ajout des associations et des attributs

Une fois que l'on a identifié les concepts fondamentaux, il est utile d'ajouter :

· les associations nécessaires pour prendre en compte les relations qu'il est fondamental de mémoriser ;

· les attributs nécessaires pour répondre aux besoins d'information. Reprenons donc les cas d'utilisation majeurs un par un.

" Gérer dossiers

Un candidat dépose un dossier pour une session qui est composé de plusieurs pièces, ce candidat possède un diplôme qui est obtenu dans un établissement (voir figure 427).

Figure 4-27 : Concepts liés à la gestion des dossiers.

" Traiter lettre

56

Figure 4-28 : Concepts liés à l'initiation de la lettre.

Le traitement d'une lettre concerne un dossier appartement à un modele (voir figure 4-28)

57

1' Evaluer dossiers

Les dossiers font l'objet d'une évaluation (voir figure 4-29).

Figure 4-29 : Concepts liés à l'évaluation des dossiers.

1' Envoyer dossiers

Les dossiers sont envoyés dans les services et un envoie possède plusieurs alertes (voir figure 4-30)

Figure 4-30 : Concepts liés à l'envoie des dossiers.

58

d) Typologie des classes d'analyse

Pour élargir cette première identification des concepts du domaine, nous allons utiliser une catégorisation des classes d'analyse qui a été proposée par I. Jacobson et popularisée ensuite par le RUP. Les classes d'analyse qu'ils préconisent se répartissent en trois catégories (ROQUES, 2002):

· Celles qui permettent les interactions entre le système et ses utilisateurs sont qualifiées de dialogues. Il s'agit typiquement des écrans proposés à l'utilisateur : les formulaires de saisie, les résultats de recherche, etc. Ces classes proviennent directement de l'analyse de la maquette. Il y a au moins un dialogue pour chaque paire acteur-cas d'utilisation. Ce dialogue peut avoir des objets subalternes auxquels il délègue une partie de ses responsabilités. En général, les dialogues vivent seulement le temps durant lequel le cas d'utilisation est concerné.

· Les classes qui contiennent la cinématique de l'application sont appelées contrôles. Elles font la transition entre les dialogues et les concepts du domaine, en permettant aux écrans de manipuler des informations détenues par des objets métier. Elles contiennent les règles applicatives et les isolent à la fois des objets d'interface et des données persistantes. Les contrôles ne donnent pas forcément lieu à de vrais objets de conception, mais assurent que nous n'oublions pas de fonctionnalités ou de comportements requis par les cas d'utilisation.

· Celles qui représentent les concepts métier sont qualifiées d'entités. C'est elles que nous avons appris à identifier au début de ce chapitre, cas d'utilisation par cas d'utilisation. Elles sont très souvent persistantes, c'est-à-dire qu'elles vont survivre à l'exécution d'un cas d'utilisation particulier et qu'elles permettront à des données et des relations d'être stockées dans des fichiers ou des bases de données.

59

e) Classes d'analyse participantes des cas d'utilisation du système

Il s'agit de diagrammes de classes participantes (DCP) UML qui décrivent, cas d'utilisation par cas d'utilisation, les trois principales classes d'analyse et leurs relations.

Règles

Pour compléter ce travail d'identification, nous allons ajouter des attributs et des opérations dans les classes d'analyse, ainsi que des associations entre elles (ROQUES, 2002).

· Les entités vont seulement posséder des attributs. Ces attributs représentent en général des informations persistantes de l'application.

· Les contrôles vont seulement posséder des opérations. Ces opérations montrent

la logique de l'application, les règles transverses à plusieurs entités, bref les comportements du système informatique.

· Les dialogues vont posséder des attributs et des opérations. Les attributs représenteront des champs de saisie ou des résultats. Les résultats seront distingués en utilisant la notation de l'attribut dérivé. Les opérations représenteront des actions de l'utilisateur sur l'IHM.

Nous allons également ajouter des associations entre les classes d'analyse, mais en respectant des règles assez strictes :

· Les dialogues ne peuvent être reliés qu'aux contrôles ou à d'autres dialogues, mais pas directement aux entités.

· Les entités ne peuvent être reliées qu'aux contrôles ou à d'autres entités.

· Les contrôles ont accès à tous les types de classes, y compris d'autres contrôles.

Enfin, nous ajouterons les acteurs sur les diagrammes en respectant la règle suivante : un acteur ne peut être lié qu'à un dialogue (voir figure 4-31).

« Entité »

E

Données1 Données2 ...

 

« Contrôle »

C

Opération1 () Opération2 () ...

« Dialogue»

D

Champ1 Champ2

 

Action IHM1 () Action IHM2 () ...

Figure 4-31 : Exemple d'entité, de contrôle et dialogue.

 
 
 
 
 
 

« Dialogue »

D

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

60

« Contrôle»

D

 
 

« Entité »
E2

 
 
 
 
 
 

Figure 4-32 : Exemple de diagramme de classe participante.

" Gérer dossier

Le cadre à besoin de créer le dossier du candidat qui a déposé la demande d'équivalence. Lorsque le dossier du candidat a été créé, il doit être en mesure de le modifier lorsque le candidat lui communique d'autres informations supplémentaires ou de supprimer complètement le dossier de l'application.

Nous supposerons que nous avons un seul écran, avec un seul contrôle et un dialogue (voir figure 4-33).

61

Figure 4-33 :DCP gérer dossiers.

62

1' Initier dossier

Une fois que le dossier à été créer, le candidat initier la lettre du candidat.

Figure 4-34 : DCP Initier lettre.

1' Evaluer dossier

Le cadre veut connaitre le statut du dossier du candidat. Il s'agit notamment de vérifier si l'établissement qui a délivré le diplôme a été reconnu, si le diplôme a été également reconnu par cet établissement. Il entre les informations du candidat et l'application lui donne le statut du dossier.

Nous supposerons que la marquette va nous montrer deux écrans :

· Un écran ou il entre les informations du candidat ;

· Un deuxième qui nous donne les résultats de l'évaluation. La figure 4-36 suivante illustre ces l'évaluation des dossiers.

Figure 4-35 : DCP évaluer dossier.

1' Envoyer dossier

63

Figure 4-36 : DCP envoyer dossier.

Le cadre veut envoyer les dossiers des candidats à un service. Sélectionne les dossiers des candidats et le service, puis envoi. Nous supposerons que nous avons un seul écran, avec un seul contrôle et un dialogue (voir figure 4-36).

IV.1.3. Modèles navigationel

Nous allons commencer par présenter la démarche, ensuite définir quelques conventions spécifiques, procéder à une structuration de la navigation et terminer par une représentation des diagrammes de navigation.

IV.1.3.1. Démarche des modèles navigationnel

Nous avons identifié à la section précédente les principales classes d'IHM (dialogues) ainsi que celles qui décrivent la cinématique de l'application (contrôles). Pour que le tableau soit complet, il nous reste à détailler une exploitation supplémentaire de la maquette ou une extension éventuelle de celle-ci. Il s'agit de réaliser des diagrammes dynamiques représentant de manière formelle l'ensemble des chemins possibles entre les principaux écrans proposés à l'utilisateur (ROQUES, 2002). Ces diagrammes s'appellent des diagrammes de navigation (voir figure 4-37).

64

Figure 4-37 : Démarche de la maquette et DCP qui conduisent à un diagramme

de navigation.

IV.1.3.2. Conventions spécifiques

Nous allons pousser un peu plus loin et nous servir du concept d'état pour modéliser plusieurs concepts différents, grâce aux conventions graphiques suivantes (ROQUES, 2002):

· une page complète de l'application («page»),

· un frame particulier à l'intérieur d'une page («frame»),

· une erreur ou un comportement inattendu du système («exception »,

· une liaison vers un autre diagramme d'activité, pour des raisons de structuration et de lisibilité («connector»).

Les concepts de page et de frame sont directement en rapport avec les classes dialogues du chapitre précédent (voir figure 4-38).

65

Figure 4-38 : Conventions graphiques spécifiques.

66

IV.1.3.3. Structuration de la navigation

Pour commencer le travail de modélisation, nous devons d'abord le séparer en ensembles maîtrisables et les plus indépendants possibles.

Début du diagramme de navigation des acteurs (voir figure 4-39)

Figure 4-39 : Début des diagrammes de navigation.

Le cadre se connecte au système à partir de l'intranet. Il doit saisir son identifiant et son mot de passe dans un frame particulier. Suivant le résultat du contrôle effectué par le système, il se retrouve soit sur la page d'accueil propre à son profil, soit de nouveau sur le frame d'identification avec un message d'erreur. Nous n'avons pas modélisé la limite de trois erreurs consécutives pour ne pas compliquer le diagramme, mais il faudrait bien sûr le faire dans la réalité.

IV.1.3.4. Diagramme de navigation des cas d'utilisation

Nous pouvons maintenant réaliser un diagramme global de navigation du système. Il va comprendre l'ensemble des pages, frames et actions principales des cas d'utilisation. Pour simplifier, nous n'avons pas repris les exceptions.

Le schéma ainsi obtenu (figure 4-40) est très intéressant, car il fournit sur une seule page les règles fondamentales de déplacement dans l'application.

67

Figure 4-40 : Diagramme global simplifié de la navigation.

IV.2. CONCEPTION

« L'attribution des bonnes responsabilités aux bonnes classes est l'un des problèmes les plus délicats de la conception orientée objet. Pour chaque service ou fonction, il faut décider quelle est la classe qui va la contenir. Les diagrammes d'interactions (séquence ou communication) sont particulièrement utiles au concepteur pour représenter graphiquement ses décisions d'allocation de responsabilités. Chaque diagramme va ainsi représenter un ensemble d'objets de classes différentes collaborant dans le cadre d'un scénario d'exécution du système. Dans ce genre de diagramme, les objets communiquent en s'envoyant des messages qui invoquent des opérations (ou méthodes) sur les objets récepteurs. Il est ainsi possible de suivre visuellement les interactions dynamiques entre objets, et les traitements réalisés par chacun » (ROQUES, 2002).

Nous débuterons cette conception objet par une description de la démarche de mise en place, ensuite la réalisation d'un digramme d'interaction et enfin un diagramme de classes de conception.

IV.2.1. Démarche de conception objet

Par rapport aux diagrammes de séquence système du chapitre 4, nous allons remplacer le système vu comme une boîte noire par un ensemble d'objets en interaction. Pour cela, nous utiliserons encore dans ce chapitre les trois types de classes d'analyse, à savoir les dialogues, les contrôles et les entités.

La figure 4-41 ci-dessous illustre la démarche adoptée :

68

Figure 4-41 : Démarche de réalisation de diagrammes d'interaction et de classes de

conception

69

Suite de la démarche de réalisation des digrammes d'interaction et de classes (voir figure 4-42)

Figure 4-42 : Suite démarche de réalisation de diagrammes d'interaction et de
classes de conception.

IV.2.2. Digramme d'interaction

L'expression diagramme d'interactions englobe principalement deux types de diagrammes UML spécialisés, qui peuvent servir tous les deux à exprimer des interactions de messages similaires : les diagrammes de communication et les diagrammes de séquence. Les diagrammes de communication ne feront pas l'objet de cette étude. Les diagrammes d'interactions font participer des objets et non pas des classes. Il ne s'agit d'ailleurs pas forcément d'occurrences spécifiques, mais plus généralement de rôles possédant un type. Du coup, UML n'utilise pas directement la notation des instances dans les diagrammes d'objets (nomObjet:NomClasse), mais une notation légèrement différente, sans soulignement (nomRÙle:NomType) (ROQUES, 2002).

Pour la représentation des diagrammes d'interaction nous commencerons par définir quelques règles, ensuite nous donnerons une notation détaillée. Nous avons choisit de représenter les diagrammes de séquence qui avaient la priorité fonctionnelle haute : créer et supprimer dossier, évaluer et envoyer.

70

IV.2.2.1. Règles de conception des diagrammes de séquence objet

Nous respecterons également les règles que nous avions fixées sur les relations entre classes d'analyse, mais en nous intéressant cette fois-ci aux interactions dynamiques entre objets (ROQUES, 2002):

· Les acteurs ne peuvent interagir (envoyer des messages) qu'avec les dialogues.

· Les dialogues peuvent interagir avec les contrôles.

· Les contrôles peuvent interagir avec les dialogues, les entités, ou d'autres contrôles.

· Les entités ne peuvent interagir qu'entre elles.

Le changement de niveau d'abstraction par rapport au diagramme de séquence système peut ainsi se représenter comme sur la figure 4-43 ci-dessous.

Figure 4-43 : Passage de l'analyse à la conception préliminaire Source : (ROQUES, 2002)

IV.4.2.2. Notation détaillée des diagrammes de séquence

Les diagrammes de séquence représentent les interactions dans un format où chaque nouvel objet est ajouté en haut à droite. On représente la ligne de vie de chaque objet par un trait pointillé vertical. Cette ligne de vie sert de point de départ ou d'arrivée à des messages représentés eux-mêmes par des flèches horizontales (voir figure 4-44). Par convention, le temps coule de haut en bas. Il indique ainsi visuellement la séquence relative des envois et réceptions de messages, d'où la dénomination : diagramme de séquence.

71

Figure 4-44 : Notation détaillé de diagramme de séquence Source : (ROQUES, 2002)

Tout message est bon pour créer une instance, mais la convention UML que nous appliquerons ici veut que l'on utilise à cet effet un message standardisé appelé create. Le message create peut comprendre des paramètres d'initialisation. Il peut s'agir, par exemple, d'un appel de constructeur avec paramètres en Java ou en C# (ROQUES, 2002).

De même, lorsque nous souhaiterons montrer explicitement la destruction des objets, nous utiliserons le message standardisé destroy.

> Diagramme de séquence créer dossier (voir figure 4-45)

Figure 4-45 : Diagramme de séquence détaillée créer dossier.

Le cadre entre les paramètres de création du dossier, le dialogue passe la main à un contrôleur qui va créer l'objet. Il peut aussitôt optionnellement évaluer le dossier créé.

Nous n'avons représenté que le scénario nominal sur ce diagramme ci-dessus, Cela signifie que tout « se passe bien », le cadre abouti à la création du dossier.

Les cas d'erreur sont abordés avec le diagramme suivant (voir figure 4-46).

Figure 4-46 : Diagramme de séquence détaillée créer dossier avec erreur. > Diagramme de séquence suppression d'un dossier

La suppression ne peut être possible que si on a supprimé au préalable le candidat, diplôme et pièces correspondant au dossier (voir figure 4-47).

72

Figure 4-47 : Diagramme de séquence détaillée suppression dossier.

73

> Diagramme de séquence d'évaluation d'un dossier (voir figure 4-48)

Figure 4-48 : Diagramme de séquence détaillée évaluer dossier.

Le cadre entre le nom du dossier avant évaluation, si ce dossier existe, il sera évalué. La fin de l'évaluation nous indique si le dossier doit être approuvé ou rejeté. Le diagramme suivant permet aux cadres de valider le statut du dossier (voir figure 4-49).

Figure 4-49 : Diagramme de séquence détaillée valider statut dossier.

74

> Diagramme de séquence envoyer dossier (voir figure 4-50)

Figure 4-50 : Diagramme de séquence détaillée envoyer dossier.

IV.2.3. Classes de conception

En partant du modèle d'analyse (voir section IV.2), nous allons affiner et compléter les diagrammes de classes participantes obtenus précédemment. Nous allons utiliser les diagrammes de séquence que nous venons de réaliser pour (ROQUES, 2002):

· Ajouter ou préciser les opérations dans les classes (un message ne peut être reçu par un objet que si sa classe a déclaré l'opération publique correspondante).

· Ajouter des types aux attributs et aux paramètres et retours des opérations.

· Affiner les relations entre classes : associations (avec indication de navigabilité), généralisations ou dépendances.

Nous utiliserons également le travail réalisé à la section (IV.3) sur la navigation pour ajouter les éventuels dialogues qui manquaient.

Nous débuterons cette conception par la présentation de la méthode des liens durable ou temporaires qui donnera lieu à une association navigable entre les classes correspondantes ou une relation de dépendance. Ensuite une structuration en package de classes en trois couches : couche présentation, couche logique Applicative et la couche logique métier.

IV.2.3.1. Méthode des liens durable ou temporaires

Un lien durable entre éléments va donner lieu à une association navigable entre les classes correspondantes ; un lien temporaire va donner lieu à une relation de dépendance.

« Sur l'exemple du schéma ci-dessous, le lien entre les éléments: A et :B devient une association navigable entre les classes correspondantes. Le fait que l'élément :A reçoive en paramètre un message d'une référence sur un objet de la classe C induit une dépendance entre les classes concernées » (ROQUES, 2002).

Figure 4-51 : Exemple liens temporaires et dépendances.

Figure 4-53 : DCP détaillé évaluer dossier

75

> Diagramme de classe participante évaluer dossier (voir figure 4-53)

> Diagramme de classe participante gérer dossier (voir figure 4-52)

Figure 4-52 : DCP détaillé gérer dossier.

76

Figure 4-54 : DCP détaillé envoyer dossier.

> Diagramme de classe participante envoyer dossier (voir figure 4-54)

77

IV.2.3.2. Structuration en packages de classes

« Pour structurer notre modèle, nous allons organiser les classes et les regrouper en ensembles cohérents. Pour ce faire, nous utilisons une fois de plus le concept général d'UML, le package » (ROQUES, 2002).

Les systèmes informatiques modernes sont organisés en couches horizontales, elles-mêmes découpées en partitions verticales. Cette découpe est d'abord logique, puis éventuellement physique en termes de machines.

Nous allons donc structurer les classes identifiées jusqu'à présent en trois couches principales :

· une couche Présentation, rassemblant toutes les classes dialogues ;

· une couche Logique Applicative, rassemblant toutes les classes contrôles ;

· une couche Logique Métier, rassemblant toutes les classes entités ;

L'architecture logique de notre étude de cas est ainsi représentée par un premier diagramme de packages, comme illustré par la figure 4-55 ci-dessous.

Figure 4-55 : Diagramme de packages de
l'architecture logique.

 

V' Architecture en couches

« Le principal objectif de la séparation en couches est d'isoler la logique métier des classes de présentation (IHM), ainsi que d'interdire un accès direct aux données stockées par ces classes de présentation. Le souci premier est de répondre au critère d'évolutivité : pouvoir modifier l'interface de l'application sans devoir modifier les règles métier, et pouvoir changer de mécanisme de stockage sans avoir à retoucher l'interface, ni les règles métier »2.

Si nous répartissons maintenant les classes identifiées précédemment, nous obtenons une structuration comme celle illustrée sur la copie d'écran 4-52, issue de l'outil Enterprise Architect.

Figure 4-57 : Détail de l'architecture logique

2 ROQUES Pascal (2002), p.140

78

« La structuration des couches Présentation et Logique Applicative peut s'effectuer en tenant compte des cas d'utilisation. La structuration de la couche Logique Métier est à la fois plus délicate et plus intéressante, car elle fait appel à deux principes fondamentaux : cohérence et indépendance » (ROQUES, 2002).

V' Le premier principe consiste à regrouper les classes qui sont proches d'un point de vue sémantique. Un critère intéressant consiste à évaluer les durées de vie des instances et à rechercher l'homogénéité. Par exemple, les entités Modèles, Services et Etablissement ont une durée de vie de plusieurs mois, voire de plusieurs années. En contrepartie, les concepts de Envoyer et Evaluer sont beaucoup plus volatiles. Il est donc naturel de les séparer dans des packages différents.

V' Le deuxième principe s'efforce de minimiser les relations entre packages, c'est à-dire plus concrètement les relations entre classes de packages différents. Les considérations précédentes amènent à une solution naturelle consistant à découper le modèle en trois packages comme indiqué sur la figure 4-58. Les packages ainsi constitués vérifient bien les principes de forte cohérence interne et de faible couplage externe.

79

Figure 4-58 : Découpage en packages montrant leur indépendance.

Figure 4-59 : Suite découpage en packages montrant leur indépendance.

IV.2.3.3. Diagrammes de classes des packages de la couche métier Terminons ce chapitre en peaufinant les diagrammes de classes de chacun des packages.

Figure 4-60: Diagramme de classe du package dossier.

80

i' Diagramme de classe du package dossier (voir 4-60)

i' Diagramme de classe du package traitement

Figure 4-61 : Diagramme de classe du package traitement. i' Diagramme de classe du package suivi (voir figure 4-62)

81

Figure 4-62 : Diagramme de classe du package suivi.

Figure 4-63 : Diagramme synthétique.

82

Les dépendances entre packages de la couche métier sont représentées sur le diagramme synthétique de la figure 4-63.

83

Chapitre V : IMPLEMENTATION DU SYSTEME

Le chapitre précédent sur l'analyse et conception nous a permit de faire une migration des besoins vers une solution informatique par le concept des modèles décrit par UML2, cela nous à permit d'avoir une représentation du futur système à mettre en place. Alors nous allons dans ce chapitre débuté le codage effectif du système, nous commencerons par une présentation de l'environnement de travail, ensuite une description des composants logiciels utilisées. Nous continuerons avec une description des paquetages du système, de la mise en oeuvre de l'architecture en couche et enfin le déploiement de l'application.

V.1. Environnement de développement

Le respect de chartes de développement, les outils de gestion de projet sont autant de points constituant un environnement de développement. La méthodologie utilisée, elle aussi, influe sur la façon de travailler et donc sur les structures et procédures à mettre en place (MOLIERE, 2005). Nous allons de ce point montré l'installation de l'outil de gestion maven et la mise en place du système et du serveur d'application à partir de cet outil de gestion.

V.1.1. Installation de Maven 2

Sous Linux, nous avons téléchargé et décompresser le paquet maven2, ensuite écrire à partir d'une console : # gedit .profile sous gnome, ou # kate .profile sous KDE, puis ajouter les lignes suivantes :

Tableau 5-1 : configuration maven2

Dans la console Linux

export M2_HOME=/home/user/apache-maven-2.0.9 export M2=$M2_HOME/bin

export JAVA_HOME=/usr/lib/java/jdk1.6.0_01/ PATH="$M2:$PATH"

84

V.1.2. Mise en place du projet dans Maven2

Après l'installation et la configuration de l'outil de build maven, nous avons crée un nouveau projet du système à partir de maven2 comme décrit ci-dessous.

Tableau 5-2 : Mise en place losequiv

Dans la console Linux

mvn archetype:create -DarchetypeGroupId=cm.minesup.equiv alence-DarchetypeArtifactId=losequiv -DarchetypeVersion=1.4-SNAPSHOT -DartifactId=project

V.1.3. Installation du serveur Jetty

A la suite de la mise en place du projet, nous avons installé le serveur d'application à partir de maven2 comme suit.

Tableau 5-3 : Configuration jetty

Ouvrir le fichier pom et ajouter

<plugin>

<groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>8.1.5.v20120716</version> </plugin>

Puis exécuter la commande ci-dessous a partir du terminal:

mvn jetty:run

V.2. Composants logiciels utilisés

Nous allons présenter ses composants logiciels selon leurs interactions sur les couches présentation, service et DAO.

V.2.1. Couche présentation

« L'interface graphique d'une application est la partie « visible » pour un utilisateur. La négliger annule tout le travail fait en amont. L'ergonomie de notre application va donc conditionner son utilisation. Réactivité, présentation, sobriété, sont autant de facteurs à prendre en compte pour ne pas passer à côté de nos objectifs » (MOLIERE, 2005). Nous distinguons deux clients au niveau de cette couche.

V.2.1.1. Le client léger

Le client léger s'appuiera sur la technologie du Framework Wicket qui repose presque entièrement sur Java et HTML comme moyens pour bâtir ses interfaces.

V.2.1.2. Le client lourd

Le client lourd possède une interface graphique propre. Nous avons choisi d'utiliser la technologie Swing associée à SwingX. Swing est une bibliothèque graphique pour Java et offre la possibilité de créer des interfaces graphiques identiques quelque soit le système d'exploitation sous-jacent. De plus, elle dispose de plusieurs choix d'apparence pour chacun des composants standards. Pour finir, Swing peut être enrichie avec des APIs telles que SwingX ou JGoodies afin de fournir des composants plus complexes ou de simplifier la validation de données dans des champs de saisie (voir figure 5-1), par exemple (MOLIERE, 2005).

 

Figure 5-1 : Swing.

85

V.2.3. Couche service

Cette couche fournit l'ensemble des méthodes nécessaire au traitement des données du système, nous décrivons ci-dessous les principaux composants utilisés.

V.2.3.1. La génération de document

Lorsque l'extrait, l'arrêtés ont été établis, ils peuvent être générées. Ces documents doivent pouvoir être exportées au format PDF afin de les archiver. Pour cela, nous utilisons Jasperreport qui est un outil puissant pour la génération d'état.

Figure 5-2 : Paquetage système.

86

V.2.3.2. L'envoi de mail

Pour avertir les candidats de la disponibilité de leurs équivalences, notre application doit gérer l'envoi de mails. L'envoi sera réalisé à l'aide de Java Mail API. Java Mail est une API directement intégrée à la spécification J2EE. De plus, elle est capable de gérer l'envoi de mails pour différents protocoles (IMAP et POP3).

V.2.3.3. Gestion des traces applicatives

Log4J permet de gérer traces applicatives lors des tests unitaires. Le but de Log4J est d'accélérer les procédures de correction d'erreurs en enlevant la place au doute. En effet, une trace bien faite doit permettre de suivre étape par étape le chemin de l'utilisateur jusqu'à l'erreur qu'il signale.

V.3. Paquetage du système

La figure ci-dessous illustre les principaux paquets mis en place dans le système. Ci-dessous, nous faisons une brève description de chaque paquet.

V.3.1. Paquetage « service »

Le paquetage « service » contient les méthodes d'accès aux traitements métiers permettant ainsi de cacher l'implémentation de ceux-ci.

V.3.2. Paquetage « entities »

Le paquetage « entities » représente les objets métiers dans un mécanisme de stockage persistant. Les entités sont des POJOs ordinaires qui possèdent un certain nombre d'annotations permettant de définir une représentation objet de la base de données. Les principales méthodes sont les getters et setters qui permettent d'accéder aux champs.

V.3.3. Paquetage « web »

Le paquetage « web » correspond à l'implémentation du client léger grâce au Framework Wicket qui permet de générer dynamiquement les pages Web.

V.3.4. Paquetage « dao »

Le paquetage « dao » représente la couche d'accès aux données persistantes via l'intermédiaire d'Entity Bean. Il joue le rôle de « Proxy » entre la couche service et la base de données persistante (ou plus précisément avec JPA).

V.4. Mise en oeuvre de l'architecture en couche du système

1

Figure 5-3 : Architecture en couche du système

87

1

88

Figure 5-4 : Suite architecture en couche du système.

V.4.1. Description de la couche présentation

Permet à l'utilisateur de piloter l'application et d'en recevoir des informations (voir figure 5-5).

PACKAGE WEB

COUCHE PRESENTATION

Administration

Utilisateur Profil

Nouveau Lister

Edit

Template

Envoyer

Session

Nouveau

Liste

Nouveau

Liste

LOGIN

Nouveau

Rechercher

Lister

SetReponsePage

Success

Echec

Evaluer

Modèle

Nouveau

Modifier

Nouveau

Liste

Template

SecureTemplate

HOME

Dossier

Dossier

Etablissement

Candidat

« Extend »

Service

Template.properties

Wizardstep

Nouveau

Liste

Position

Nouveau

Liste

Diplome

Pieces

Lettre

Impression

Fauxdiplome Lettre

Arrêtés

Lettre

Nouveau Rechercher

Lister

Etablissement

Nouveau

Liste

Figure 5-5 : Architecture couche présentation.

89

90

V.4.2. Description de la couche métier

La couche métier est la couche qui applique les règles dites métier, c.à.d. la logique spécifique de l'application, sans se préoccuper de savoir d'où viennent les données qu'on lui donne, ni où vont les résultats qu'elle produit (voir figure 56).

PACKAGE METIER

RESOURCES

persistance

META-INF

ENTITIES

 

DOSSIER

SERVICE

CANDIDAT

PIECES

 

ETABLISSEMENT

ENVOYER

DIPLOME

LETTRE

 

MODELE

STATUT

UTILISATEUR

TYPES

 

Figure 5-6 : Architecture couche métier

V.4.3. Description de la couche service

Elle implémente les algorithmes " métier " de l'application. Elle est indépendante de toute forme d'interface avec l'utilisateur, utilisable aussi bien avec une interface console, web, client riche (voir figure 5-7).

91

PACKAGE SERVICE

ServiceFactory

IUtilisateurService

IDossierService

CONFIG

Spring-bean

IMPLEMENTATION

UtilisateurServiceImpl

DossierServiceImpl

RESOURCES

Figure 5-7 : Architecture couche service

V.4.4. Description de la couche DAO

La couche DAO est la couche qui fournit à la couche métier des données préenregistrées (fichiers, bases de données, ...) et qui enregistre certains des résultats fournis par la couche métier.

La spécification JPA (Java Persistence API) est utilisée pour standardiser la couche ORM. Hibernate est un outil qui fait le pont entre le monde relationnel des bases de données et celui des objets manipulés par Java.

Nous utiliserons le Framework Spring pour lier la couche DAO et JPA/Hibernate. Le grand intérêt de Spring est qu'il permet de lier les couches par configuration et non dans le code. Avec Spring, les couches seront implémentées avec des POJOs permettant la réutilisation de ceux-ci dans un autre contexte. Ceux-ci auront accès aux services de Spring (pool de connexions, gestionnaire de transaction) par injection de dépendances dans ces POJOs : lors de la construction de ceux-ci, Spring leur injecte des références sur les services dont ils vont avoir besoin.

PACKAGE DAO

COUCHE DAO

IUtilisateurDao

IServiceDao

ILettreDao

CONFIG

IEtablissementDao

ISessionDao

IEnvoyerDao

IDossierDao

ICandidatDao

IDao

DataAccessException

Spring-bean

RESOURCES

META-INF

IMPL

DAO

Persistence

IUtilisateurDaoImpl

IServiceDaoImpl

ILettreDaoImpl

IEtablissementDaoImpl

ISessionDaoImpl

IEnvoyerDaoImpl

IDossierDaoImpl

ICandidatDaoImpl

IDaoImpl

DataAccessExceptionImpl

LOG4J.Properties

Figure 5-8 : Architecture couche DAO.

92

V.5. Sécurité

Le système est application web qui devra fonctionner dans un réseau informatique (Internet ou Intranet), dés lors celui pourra être susceptible à une attaque provenant soit d'un pirate informatique ou d'autres utilisateurs connectés sur le réseau. Il est donc nécessaire de programmer une politique de sécurité afin de prévenir tout risque qui pourra nuire au bon fonctionnement de l'application.

V.5.1. Accès à l'application

La sécurité au niveau de l'accès de l'application consiste à mettre en place une structure sécurisée d'accès et de suivi de toutes les opérations jugées critiques. Il nous parait anormal de mettre en place une application multiutilisateur fonctionnant en mode client-serveur sans pouvoir contrôler l'accès de chaque utilisateur. Une politique d'identification par login et mot de passe ont été définie pour chaque compte utilisateur.

Login et password

IDENTIFICATION

HOME

Figure 5-9 : Accès application.

93

V.5.2. Chiffrage du mot de passe

En plus du fait d'avoir definir une politique d'accès à l'application sécurisé par login et mot de passe, il est important de définir une politique de chiffrement du mot de passe. Ainsi si un pirate snife l'echange entre le client et le serveur il ne pourra avoir accès seulement au mot de passe codé. Le codage du mot de passe s'est éffectué avec l'algorithme du SHA 256 (Secure Hash Algorithm). Lorsque l'utilisateur saisit son mot de passe, il est codé et la vérification s'effectué avec les deux versions codées : celle de la base de données et celle saisie (voir figure 5-10).

Password chiffré

Serveur

Client

Figure 5-10 : Chiffrage du mot de passe.

V.5.3. La session

Notre application web est basée sur le protocole HTTP, qui est un protocole dit "sans état" : cela signifie que le serveur, une fois qu'il a envoyé une réponse à la requête d'un client, ne conserve pas les données le concernant. C'est pour pallier cette lacune que le concept de session a été créé : il permet au serveur de mémoriser des informations relatives au client, d'une requête à l'autre. La session représente un espace mémoire alloué pour chaque utilisateur, permettant de sauvegarder des informations tout le long de leur visite ;

le contenu d'une session est conservé jusqu'à ce que l'utilisateur ferme son navigateur, reste inactif trop longtemps, ou encore lorsqu'il se déconnecte du site ; La figure 5-11 ci-dessous illustre la création d'une session.

IDENTIFICATION

getSession ()

Création d'un objet HttpSession, avec identifiant unique

94

HOME

 

Figure 5-11 : Création session.

VI.5. Déploiement du système

Une fois l'application cliente prête, il faut la diffuser aux utilisateurs. Dans notre cas, la diffusion se limite aux cadres de la SDE via le réseau interne du ministère. Nous verrons comment utiliser Maven2 pour déployer notre application sur le réseau intranet. Alors nous verrons comment générer le fichier war et le déployer sur un serveur web.

VI.5.1. Génération du fichier war

La commande install, compile, test et mets en paquet vos classes dans un fichier jar puis le deploy dans votre entrepôt Maven2 local, d'où il peut être utilisé par d'autres projets. Saisir la commande suivante à partir d'un terminal.

95

Tableau 5-4 : génération du fichier war

Dans la console Linux

mvn package

VI.5.2. Déploiement sur le serveur web

Une fois que le système a été réalisé, il ne reste plus qu'à le placer dans le répertoire convenable sur la machine faisant office de serveur web. Pour cela, il s'agira de faire une simple copie de fichiers. Nous allons donc faire une copie du fichier généré dans répertoire du serveur d'application.

96

Chapitre VI : RESULTATS ET TESTS

Nous avons commencé la conception et implémentation de ce système par la définition des besoins et de l'architecture au chapitre III, ensuite la modélisation de ces besoins c'est opérer au chapitre IV et le codage du système au chapitre V. Nous sommes arrivés au terme cette conception et implémentation de l'application de suivi et traitement des dossiers d'équivalence que nous avons nommé « losequiv ». Il est donc nécessaire de présenter quelques résultats ainsi obtenu dans le chapitre qui suit. Nous présenterons ces résultats avec quelques captures des formulaires et états faites du système.

VI.1. Les formulaires

Les formulaires sont des pages sur lesquels on peut effectuer un ensemble d'opération. Nous présenterons les formulaires d'authentification, d'accueil et d'évaluation d'un dossier.

VI.1.1. Authentification système

Losequiv est application web, alors accessible à travers un navigateur. Lorsque le cadre accède au système une page d'authentification lui est présentée, il se doit de renseigner son nom d'utilisateur et son mot de passe. Cette authentification limite l'acces à toute personne malveillante et nous permet de connaitre l'identité de toutes personnes sur le système (voir figure 6-1).

Figure 6-1 : Authentification système.

97

En cas de succès d'authentification, une page d'accueil est affichée dans le cas contraire la même page d'authentification reste présente. Bien attendu seul le chef de la sous-direction à la responsabilité de crée les différents comptes des cadres.

VI.1.2. Accueil

La page d'accueil contient les informations relatives au menu, au profil des utilisateurs et alertes des dossiers (voir figure 6-2).

3

2

1

1

2

3

Figure 6-2 : Accueil.

Contient les informations relatives l'utilisateur connecté.

Présente les différents menus du système losequiv. Chaque menu peut dérouler

un sous-menu lorsqu'on clique dessus.

Présente les alertes des dossiers. Ces alertes sont de deux types et sont notifier

automatiquement par le système ; Une alerte relative au retard de traitement est notifier après un délai d'une semaine pour les services interne et deux semaines pour les services externe. Et une alerte relative au non évaluation d'un dossier est notifiée après deux mois.

98

VI.1.3. Evaluation d'un dossier

Pour évaluer un dossier il faut entrer le code du dossier, code générer automatiquement à la création de celui. Ce code est unique à chaque dossier (voir figure 6-3).

Figure 6-3 : Formulaire d'évaluation.

Une fois le code renseigner, le cadre clique valider, ensuite on obtient le statut de l'établissement et du diplôme qui peut avoir comme valeur authentifier ou non authentifier. Par la suite on peut aller modifier ses valeurs.

VI.2. Les états

Les états sont une représentation des informations récupérées depuis une base de données et affichés au format PDF. Nous allons présenter les états sur les faux diplômes et la lettre.

VI.2.1. Lettre

L'état suivant est généré en PDF grâce l'API jasper à partir des enregistrements issus de la base de données sur le dossier du candidat Caco Paul sollicitant une demande d'équivalence du diplôme de master en math. Cette lettre est expédié par le ministère de l'enseignement supérieur du Cameroun au Directeur de l'ENSAI de N'Gaoundéré pour confirmer la délivrance et l'authenticité du diplôme du candidat Caco.

REPURLIQLE DU CAMEROUN

MINLSTERE DE [.'ENSEIGNEMENTSUPERIEUR

DIRECTION DU DEy[LOPPEMENT DE L'ENSEIGNEMENT

Phone: 22132293 Etrait: minesup(ayahoe.fr
Site: www.minesup.cm

août 20, 2013

A

Directeur ENSAI Nganundére

Objet: Demande d'authentification de diplopie

Nous avons la bienveillance de venir xrupres de vous solliciter l'authentification du diplomc de l'étudiant ci-dessous obtenus dans votre. établissement

Nom: coco peul

Date de naissance : OS-janvier-MO

Liuu : dnuala

L)ipldmc ohrenu dans vûtrc établissement : master en math Ann d'obrcnrïon : 2013

En effet, l'étudiant ci-dessus à dcposer auprès de notre ministre une. demande d'équivalence du diplome obtenus dans votre établissement_ Nous vous envoyons cette lettre pour aunce[Ailler l'obtention de ce diplome dans votre établissement

Nous vous adressons nos salutations.

Yaoundi le 2010812013 Signature

99

Figure 6-4 : Etat lettre.

VI.2.2. Faux diplôme

Cet état représente la liste des faux diplômes déclarés à l'issu de la 66eme session. Nous avons le diplôme de BAC D du candidat Amana Klaise qui a été déclaré faux (voir figure 6-5).

100

Figure 6-5 : Etat faux diplôme

101

CONCLUSION ET PERSPECTIVE

Le problème qui nous à été confié au début de ce stage était de trouver une solution aux difficultés que les cadres de la sous-direction d'équivalence rencontraient dans l'étude des dossiers de demande d'équivalence des diplômes. Solution adopté avec la conception et implémentation d'une application de suivi et traitement des dossiers d'équivalence.

En effet, la conception de ce système à débuter avec la rédaction du cahier des charges qui à permit d'identifier les besoins et faire ressortir l'architecture générale. Ensuite nous avons migré ces besoins vers une solution informatique par des modèles dans la partie analyse et conception. A partir des modèles et de l'architecture réalisée, nous avons effectué le codage et les tests qui nous ont conduits au système final nommé losequiv (Logiciel du Suivi et Traitement des dossiers d'équivalence).

Nous avons rencontré d'énormes difficultés dans la réalisation de ce système. Dans un premier temps le recueil des informations n'a pas été chose aisé car le personnel de la sous-direction d'équivalence était tous accablé par le travail et dont ne disposait pas assez de temps pour répondre à nos interrogations. Aussi, sur le plan technique, la faible maitrise au début de ce stage du développement web avec la technologie J2EE était un frein au déroulement de ce travail. Néanmoins, la spécificité de J2EE à fait que nous avons dû apprendre toutes les bases de cette nouvelle technologie, ce qui nous a pris plus de temps que nous ne l'escomptions.

Les objectifs fixés au début de ce travail ont été presque tous atteint. Le système est en mesure d'informer les cadres de la position des dossiers dans un service, d'évaluer ces dossiers, traiter les lettres, pour ne cité que ces fonctionnalités. Faute de ressource matériel, nous n'avons pas pu implémenter la notification par email et SMS du candidat de la délivrance de son équivalence.

Ce système à été développé afin de venir faciliter le travail des cadres dans la gestion des dossiers d'équivalence. Il serait judicieux de permettre d'effectuer une demande d'équivalence en ligne aux candidats. Ceci contribuera à une meilleure informatisation du système losequiv.

102

BIBLIOGRAPHIE

Ouvrage :

[1] DASHORST Martijn, HILLENIUS Eelcon, Wicket in action, MANNING, USA, 2009.

[2] HEFFELFNGER David, JasperReports for Java Developers, PACKT, Birmingham, UKRAINE, 2006.

[3] KENT KA Iok Tong, Enjoying Web development with Wicket, First Edition, TipTec Development, 2007.

[4] MOLIERE Jérôme, Les cahier du programmeur J2EE, 2eme Edition, EYROLLES, Paris, FRANCE, 2005.

[5] ROQUES Pascal, Les cahiers du programmeur UML2, 4eme Edition, EYROLLES, Paris, FRANCE, 2002.

[6] SEDDIGHI Ahmad Reza, Spring Persistence with Hibernate, First Edition, PACKT, Birmingham, UKRAINE, 2009.

[7] SONATYPE, Maven guide, 1er Edition, Sonatype, Palo Alto, 2009.

[8] VAYNBERG Igor, Apache Wicket Cookbook, PACKT, Birmingham,
UKRAINE, 2011.

Article :

[9] ANDRIET Louis, DASTUGUE Julien, LAROCHE Sébastien, MADEGARD Michaël, MYLLE Cédric, Cahier des charges technique, p.19, 2007.

[10] DI GALLO Frédéric, Méthodologie des systèmes d'information - UML, Octobre 2001, 59p.

[11] DEMICHIEL Linda, Java Persistence Criteria API, 20-62, Juin 2010.

[12] FERRAN Olivier, PAPON Guillaume, Rapport de Projet J2EE Site de E-Commerce, p.5, 2008.

[13] MOUSSA Jawher, Exploration des modèles de Wicket, p.12, 2008.

[14] ROS Sébastien, Livre blanc sur le Mapping objet-relationnel, la couche d'accès aux données et les Framework de persistance, p.3, 2003.

[15] SMART John Ferguson, CABASSON Denis, Introduction à Maven 2, p.19 2005.

103

GLOSSAIRE

API : Interface de programmation (Application Programming Interface ou API) définit la manière dont un composant informatique peut communiquer avec un autre.

Apache Wicket : Framework pour la création d'applications web qui repose presque entièrement sur Java et HTML comme moyens pour bâtir ses interfaces.

Client léger : Dans le cadre d'une application "web", on parlera de client léger en parlant du navigateur internet.

Client lourd : Un client lourd est un logiciel qui propose des fonctionnalités complexes avec un traitement autonome. Contrairement au client léger, le client lourd ne dépend du serveur que pour l'échange des données dont il prend généralement en charge l'intégralité du traitement.

Framework: En informatique, un Framework est un espace de travail modulaire. C'est un ensemble de bibliothèques, d'outils et de conventions permettant le développement rapide d'applications. Il fournit suffisamment de briques logicielles et impose suffisamment de rigueur pour pouvoir produire une application aboutie et facile à maintenir.

IHM : Interface Homme Machine, ce qui est visible par l'utilisateur. C'est une façon de concevoir des systèmes informatiques qui soient ergonomiques, c'est-à-dire efficaces, faciles à utiliser ou plus généralement adaptés à leur contexte d'utilisation.

Java : Java est une technologie développée par Sun Microsystems : (la technologie JavaTM). Elle correspond à plusieurs produits et spécifications de logiciels qui, ensemble, constituent un système pour développer et déployer des applications.

Jasper Reports : Librairie Java open source dédiée à l'ajout de capacités de reporting aux applications Java, Web ou stand alone. Elle permet la représentation

104

de données sous forme textuelle, mais aussi la génération de graphiques divers (sous forme de barre, courbe, nuage de point).

JDBC : Java Database Connectivity: une interface standardisée permettant à une application cliente sous Java d'accéder à une base de données.

J2EE : Java 2 (Platform, Enterprise Edition) est une spécification pour le langage de programmation Java de Sun plus particulièrement destinée aux applications d'entreprise. Dans ce but, toute implémentation de cette spécification contient un ensemble d'extension au cadre d'applications Java standard (J2SE, Java 2 standard édition) afin de faciliter la création d'applications réparties.

Java Persistence API : L'API de persistance des données JPA fait parti de la spécification EJB3. Spécification EJB3 qui fait elle-même parti de la plate-forme J2EE 5.0. La persistance des données en EJB3 est possible à l'intérieur d'un conteneur EJB3 aussi bien que dans une application autonome J2SE en dehors d'un conteneur particulier. Cette API réalise la fusion des travaux sur Hibernate avec la continuité des spécifications EJB précédentes 2.0 et 2.1.

POJO : Est un acronyme qui signifie Plain Old Java Object. Il fait référence à un objet qui dispose d'un constructeur sans paramètre ainsi qu'un couple d'accesseurs (get/set) pour chacun de ses champs.

SGBDR: La gestion et l'accès à une base de données sont assurés par un ensemble de programmes qui constituent le Système de gestion de base de données.

Note : on peut parfois parler de SGBDO. `O' de objet signifie que la base de donnée stocke l'information dans des objets, très souvent une fiche individuelle, une machine, une ressource... à laquelle on associe des valeurs, ses attributs.

Serveur d'applications : Un serveur d'applications est un serveur sur lequel sont installées des applications accessibles par le réseau à des utilisateurs.






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








"I don't believe we shall ever have a good money again before we take the thing out of the hand of governments. We can't take it violently, out of the hands of governments, all we can do is by some sly roundabout way introduce something that they can't stop ..."   Friedrich Hayek (1899-1992) en 1984