Académique Documents
Professionnel Documents
Culture Documents
Je dédie ce travail
A
Mes chers parents
Pour tout le bonheur qu’ils m’apportent, pour leur soutien moral, matériel et affectif.
Pour leur encouragement durant mes études et tout au long de la réalisation de ce
travail. Qu’ils trouvent dans ce travail le fruit de leurs sacrifices consentis pour mon
éducation et l’expression de mon amour et ma gratitude pour tout leur encouragement
qui m’a toujours poussé vers l’avant. Que Dieu le tout puissant leur protège et leur
procure santé et longue vie.
A
Mes sœurs
Je leur souhaite tout le succès et le bonheur du monde.
A
Tous les membres de ma famille, pour les encouragements et les conseils qu’ils n’ont
cessé de me prodiguer, plus spécialement mes chères Ines Maalej, Mouna Mallouli et son
mari Sabeur, Pour leur patience, leur confiance et leur affection.
Qu’ils trouvent avec ce travail l’expression de ma sincère gratitude et de mon affection.
A
Tous mes ami(e)s, notemment Zyed Triki, Ayoub Zayeti et Aladdin El Gharbi.
A
Ma chère amie Chikhrouhou Monia.
Rim
Dédicace
Mon père Ahmed : Qui n’a jamais cessé de me soutenir, m’assister et m’encourager
depuis mes premiers jours du primaire jusqu’aujourd’hui. A celui qui a sacrifié ses
belles années pour embellir les miennes.
Mes sœurs Sara et Maroua : Que personne ne peut égaler leurs places dans mon
cœur, pour les magnifiques moments passés ensemble. Je leur souhaite une belle vie
et qu’Allah les protège.
Lina : La perle qui ne cesse pas de sèmer la joie et la gaı̈té dans la maison. Qu’Allah la
garde pour ses parents.
A toute la famille et tous mes amis, qui m’ont toujours poussé vers la réussite, qu’Allah
leur offre le bonheur et nous rassemble dans ses paradis.
Akram
Remerciements
Qu’il nous soit permis de remercier les membres du jury, pour l’honneur qu’ils me font
de juger ce modeste travail.
Nos vifs remerciements s’adressent à Monsieur Walid Sadfi pour l’honneur qu’il nous
fait en acceptant d’encadrer notre projet de fin d’études. Votre haute compétence, votre
dynamisme, votre amour de métier et de vos étudiants, et votre sens de l’humain qu’on a
tant admiré, sont pour vous le meilleur guide. Vous êtes pour nous le maı̂tre dont je suis
fier d’être l’élève.
Nous présentons nos remerciements les plus sincères à tout le corps enseignant de
l’Ecole Nationale des Sciences de l’Informatique auxquels nous devons nos instructions.
Nous citons en particulier nos encadreurs professionnels Messieurs Sofiène Bchir et Bilel
El Ghali dont l’aide et l’encouragement continu nous ont permis de défier les entraves et
de travailler avec acharnement. Nous espérons être à la hauteur de leur confiance. Qu’ils
trouvent dans ce travail l’expression de notre profonde gratitude.
Nous remercions spécialement tous ceux qui ont croisé pour quelques temps notre
route au sein de LACERAMIC, nous pensons notamment à l’équipe des stagiaires qui ont
animé ces quatre mois de travail, notamment notre collègue Hsis Mos’ab.
Enfin, nous exprimons notre sympathie à toutes les personnes qui ont contribuées de
près ou de loin au bon déroulement de ce travail.
Table des matières
Introduction 1
1 Présentation générale 3
2 Etat de l’art 9
2.1 Le E-Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4 Conception 35
5 Réalisation 49
5.3 Chronogramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6 Conclusion et perspectives 60
TABLE DES MATIÈRES ix
Netographie 65
Glossaire 66
A Le standard J2EE 66
B Le framework JSF 71
C DAO et Hibernate 73
Table des figures
3.1 Le processus XP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
D e nos jours, le monde vit une situation économique de criticité indéniable. En effet les
mutations inéluctables de l’industrie mondiale mettent les entreprises devant le problème
de l’inadéquation de ses employés avec leur environnement économique, chose qui les
empêche d’évoluer dans le rythme international.
Maı̂triser et non subir ces changements est alors un enjeu qui est hors question de le
perdre. Pour cela la majorité des établissements dans le monde a concentré plein d’effort
autour de son maı̂tre d’œuvre qui n’est personne autre que l’employé puisque développer
son sens créatif, sa capacité à apprendre et à évoluer et maintenir ses compétences sont
devenus vitaux pour accroı̂tre l’agilité et la flexibilité de l’entreprise.
La compétitivité est encore plus d’actualité et le temps de travail reste fixe alors que
le besoin en formation augmente ce qui ne favorise pas la productivité recherchée. En
effet partir en formation nécessite le regroupement d’un nombre maximal d’apprenants
avec le formateur dans une période convenable à tout le monde, d’où la difficulté de la
planification. Comme le temps, c’est l’argent , les sociétés se trouvent dans une course
contre la montre et avec des budgets sans cesse optimisés.
C’est dans ce contexte que s’intègre notre travail et qui consistait à la conception et la
réalisation d’une plateforme de formation à distance au sein de LACERAMIC S.A qui a
inclus l’E-Learning dans sa stratégie pour faire face aux défis du marché et aux nouvelles
circonstances qui viennent de s’imposer.
Le présent document est un rapport descriptif synthétisant tout le travail que nous
avons effectué dans cette perspective. Il est organisé en chapitres comme suit :
– Le premier donne une présentation générale du projet : l’organisme d’accueil ainsi
que les objectifs à atteindre.
– Dans le second, nous exposons l’état de l’art du domaine du E-Learning afin de bien
se mettre dans le contexte.
– Le troisième chapitre intitulé ” Analyse et spécification des besoins ” présente les
différents besoins fonctionnels et non fonctionnels que doit satisfaire l’application à
réaliser.
– La conception générale et la conception détaillée font ensuite l’objet du quatrième
chapitre.
– Le dernier chapitre décrit les tâches accomplies durant le stage en titre de réalisation.
Enfin nous donnons une conclusion récapitulant le travail réalisé ainsi que des pers-
pectives futures.
Le rapport est muni aussi de quelques annexes représentant les détails techniques de
la conception et de la réalisation ainsi que quelques concepts théoriques indispensables
pour la bonne compréhension du rapport.
CHAPITRE
1 Présentation générale
Ce chapitre a pour objectif de situer notre projet dans son contexte général à savoir
l’organisme d’accueil et le sujet à traiter. Dans la première section nous donnons une brève
présentation de l’organisme d’accueil ’LACERAMIC S.A’. Dans la deuxième section, nous
décrivons le sujet à traiter et les objectifs à atteindre.
Pour bien se mettre dans le contexte du stage, nous avons jugé nécessaire de présenter
l’organisme qui nous a accueilli en mettant en relief ses activités diverses et l’étendu
géographique de ses sites en Tunisie.
Fondée en 1931, ”La Céramique Tunisienne”, c’est ainsi que la société s’appelait ini-
tialement, a été rebaptisée LACERAMIC après son rachat par le groupe éponyme.
Le groupe touche un effectif d’un millier de personnes entre cadres, ingénieurs, tech-
niciens, agents techniques, agents de maı̂trise et ouvriers, travaillant dans les divers sites
de produits rouges et de carreaux de faı̈ences situés à Fouchana, Jendouba, El Hamma,
Kasserine, Bizerte et à Tajerouine comme le montre la figure 1.1.
Une étude de cas a révélé l’obligation de certaines formations pour les différents agents
de LACERAMIC. D’où le besoin à un parcours professionnel avec des formations obliga-
toires dans le cadre d’une Validation des Acquis Professionnels (VAP) afin de permettre
aux agents de partir en formation malgré un manque de personnel, d’où la favorisation
du remplacement de la stratégie de formation.
Pour chacune des formations, les niveaux de compétence visent à attribuer aux appre-
nants une des qualifications suivantes :
Conclusion
Dans ce premier chapitre nous avons pu situer le projet dans son cadre général en
présentant l’organisme d’accueil et les buts de l’application. Dans le chapitre suivant,
nous allons procéder à une étude détaillée des principaux concepts en relation avec notre
sujet.
CHAPITRE
2 Etat de l’art
Avant d’entamer l’élaboration de notre projet, nous avons jugé primordial de présenter
les objectifs généraux d’une telle application à partir de ses éléments moteurs, à savoir le
concept et les les outils communément utilisés dans l’E-Learning .
2.1 Le E-Learning
Le but de cette section est de s’initier à la notion du E-Learning. Pour cela, nous
commençons par définir ce concept et présenter ses principes. Ensuite, nous définissons le
processus de développement d’un système de formation à distance. Enfin, nous exposons
l’expérience tunisienne dans l’apprentissage à distance.
Définition
l’E-Learning, du point de vue informatique, est la mise en œuvre des outils multimédia
(son, image, vidéo) au sein d’un système réparti grâce aux supports de distribution de l’in-
10 CHAPITRE 2. ETAT DE L’ART
Principes du E-Learning
L’école virtuelle de la poste tunisienne ouvre dans une première étape un ensemble de
cycle de formation à distance à l’intention des apprenants qui remplissent les conditions
de participation. Le déroulement de la formation effectue conformément aux étapes es-
sentielles suivantes (apprentissage, auto-évaluation, examen d’évaluation à distance, exa-
men final présentiel). Les cours de l’école virtuelle portent sur des thèmes à caractère
académique tel que la comptabilité, les finances, la gestion, l’économie, le droit, l’informa-
tique, les langues et les thèmes à caractère professionnel postal comme l’épargne postale
des chèques postaux, les nouveaux services.
Dans une plateforme typique d’apprentissage à distance, nous trouvons des outils de
gestion des formations (LMS=Learning Management System), des outils de création des
modules de cours (LCMS=Learning Content Management System) et des outils destinés
aux différentes formes de communication.
de cours.
– le suivi des cursus de formation : les LMS permettent de suivre les temps consacrés à
la formation et aux exercices, ainsi que d’affecter des rôles aux différents apprenants.
Il est possible d’évaluer les performances des apprenants et de leur délivrer des
certifications si certaines conditions d’obtention sont remplies.
– le suivi et le bilan de la formation : les LMS intègrent des outils de reporting et
de statistiques permettant de suivre de façon synthétique, par apprenant ou groupe
d’apprenants, le temps passé en formation, les résultats obtenus, etc. Cela autorise
notamment le suivi et la gestion des coûts de formation.
place. Mais le problème réside au fait que les travaux de normalisation sont en cours
et donc les spécifications changent fréquemment.
– Ergonomie des vues : afin d’intensifier la motivation des apprenants ainsi que celle
des tuteurs, les LMS doivent avoir des interfaces interactives et ergonomiques.
Notre stratégie d’évaluation consistait à consulter la documentation de référence en
ligne ainsi que les comparatifs, les analyses et les retours d’expériences des experts. Nous
effectuerons une étude comparative de quatre LMS (Claroline, Dokeos, Ganesha, Moodle)
et qui vise l’identification des caractéristiques ergonomiques, techniques, pédagogiques qui
répondent au mieux à nos contraintes.
Claroline : est une plate-forme Open Source de formation à distance et de travail col-
laboratif. Elle permet aux formateurs de créer des espaces de cours en ligne et de
gérer des activités de formation sur Internet. Elle est simple à installer et à utiliser
grâce à la documentation riche et claire contenue dans le site officiel. Cependant,
elle a quelques points faibles comme l’espace très limité pour les documents et les
liens d’un groupe et l’ergonomie modeste de la messagerie instantannée. De plus, la
possibilité de créer plusieurs comptes avec le même e-mail et de créer des comptes
avec des adresses fausses existent. Ceci pose un problème de statistique quant au
nombre exacte d’utilisateurs. La création de parcours pédagogique est aussi un peu
rigide (difficultés de revenir en arrière suite à une erreur de création).
Dokeos : Dokeos est une plate-forme d’apprentissage à distance. D’une grande simpli-
cité de mise en oeuvre et très intuitive pour ses utilisateurs (professeurs, formateurs,
élèves, auditeurs de la formation continue, etc. . .). Dokeos propose de nombreux ou-
tils destinés à organiser les apprentissages et laisse toute latitude à la créativité du
développeur pour élaborer des cours réellement attractifs, interactifs et multimédias.
Ganesha : est un LMS présentant un ensemble d’outils à des fins pédagogiques. Cette
plateforme est développée à sources ouvertes en 2001 par la société Anema. Ganesha a
été la première plateforme de téléformation gratuite sous licence GNU GPL. Plusieurs
autres plateformes telle que AnaXagora ont été conçues en se basant sur Ganesha. Elle
intègre les standards d’E-Learning SCORM 1.2 4 , SCORM 2004, AICC 5 et LOM 6 .
Ces standards sont à la base de la construction des contenus, de l’insertion de ces
4. Sharable Content Object Reference Model
5. Aviation Industry CBT Committee
6. Learning Object Metadata
2.2. LES OUTILS DU E-LEARNING 17
Moodle : Moodle est un LMS à code ouvert sous licence GNU GPL et développé par
Martin Dougiamas en 2003 permettant de créer des communautés d’apprenants au-
tour de contenus et d’activités pédagogiques. La modularité de Moodle lui permet
de s’adapter à toutes les structures. Un des points forts de Moodle c’est qu’il est
centré sur la classe devenue communauté d’apprenants qui doivent partager leurs
connaissances pour apprendre. Avec Moodle il est possible de créer et rassembler les
apprenants dans des groupes simulant ainsi des classes classiques.
Tableau comparatif
Nous pouvons définir les outils de création de cours comme ceux qui offrent les fonc-
tionnalités nécessaires à l’assemblage en modules des pages de contenu et à la création du
cours à partir de ces modules. Nous y trouvons donc :
– Des facilités d’assemblage des pages en modules avec construction automatique de
la navigation à l’intérieur du module.
– Des aides à la création des différents types de tests (questionnaires à choix multiples,
tests, navigation à l’intérieur du module).
– Des outils permettant de construire plus ou moins facilement la logique de navigation
d’un module à l’autre en fonction de la filière de cours et des résultats aux tests de
fin de module.
Les LCMS sont principalement basés sur les systèmes de gestion de contenu (CMS)
qui ont pour but de simplifier la création et la gestion du contenu en ligne. Ils permettent
une meilleure fréquence des mises à jour des ressources déjà publiées et à moindre coût.
Cela repose sur le principe de séparation de la forme et du fond ainsi les auteurs doivent
pouvoir se concentrer uniquement sur leur contenu. Ils disposent pour ce faire de modèles
de présentation prédéfinis spécifiques à chaque élément qui compose le document (en-tête,
format du titre, emplacement d’une image, intégration d’un fichier multimédia etc.)[N1]
2.2. LES OUTILS DU E-LEARNING 19
Il y a énormément de choses à vérifier avant de choisir un CMS, mais en voici les plus
décisives :
Appropriation : en pratique, il s’agit de mesurer l’écart entre les habitudes des futurs
utilisateurs et les nouveaux processus. En fonction des cultures d’entreprise, ce critère
peut être le facteur clef de succès, la bonne ou la mauvaise volonté des utilisateurs
pouvant à elle seule faire avorter ou non le projet.
à ce stade. Une étude de certaines solutions de gestion de contenu est alors nécessaire.
Pour cela nous avons choisi d’étudier de près trois CMS open source vu le coût de création
et le coût de possession qu’obligent des solutions payantes.
Corinis CCM : Corinis CCM est un système de gestion de contenu open-source basé
sur le langage Java. Il combine à la fois la puissance d’une solution professionnelle de
gestion de contenu (éditeur WYSIWIG, gestion de version, assurance de qualité basée
sur le rôle, . . .) avec facilité d’utilisation d’un framework communautaire. La concep-
tion modulaire du système encourage le développement d’extensions réutilisables
(comme le forum, le vote ou les modules d’album photo). Par ailleurs, le code Java et
l’utilisation de XML comme format de données garantissent l’interopérabilité. L’uti-
lisation de Corinis CCM dans un environnement Internet ou Intranet permettra de
réduire les coûts, les niveaux de compétence exigés et le temps requis pour sa mise
en place tout en s’assurant d’avoir un outil fiable et un développement ouvert de
plate-forme.
dotCMS : dotCMS est un système open-source de gestion de contenu dédié aux entre-
prises qui intègre les meilleures fonctionnalités de gestion de contenu. Il permet de
créer des structures de données pour diverses entités et ainsi que des liens entre eux
pour faciliter la création de bases de données générées dynamiquement sous forme
7. Aspect-Oriented Programming
2.2. LES OUTILS DU E-LEARNING 21
Tableau comparatif Une étude comparative a été alors élaborée dans le but de faire le
bon choix. la figure 2.3 récapitule la comparaison effectuée. En premier lieu les choix
de Corinis CCM et d’Alfresco CMS se sont écartés vu que le premier ne peut pas
intégrer la connexion au serveurs d’annuaire LDAP (qui est une fonctionnalité sur
laquelle l’authentification à la plateforme doit se baser) et que la richesse technolo-
gique et fonctionnelle de la deuxième induisent une légère compléxité d’utilisattion
pour les développeurs ainsi que pour les utilisateurs finaux. Enfin nous nous sommes
concentré sur l’étude de dotCMS qui consistituait une solution parfaite de gestion
de contenu. Cependant, le problème de dotCMS c’est qu’il requiert un accès com-
plet au serveur, car il nécessite l’installation personnalisée d’Apache Tomcat comme
serveur d’application , alors que la majorité des possesseurs de domaines internet
n’ont pas cet accès à leur serveur, ils ne possèdent que le domaine dans le nuage In-
ternet. D’autre part, tellement dotCMS est puissant dans sa manière d’architecturer
ses données et dans sa manière de considérer le contenu qu’il nécessite un serveur
de dernière génération au niveau des ressources matérielles, ce qui n’est encore pas
22 CHAPITRE 2. ETAT DE L’ART
du ressort du grand public. Par ailleurs, le grand défaut de dotCMS reste sa do-
cumentation. En effet, la politique de dotMarketing (l’entreprise qui gère dotCMS)
est d’ailleurs très explicite sur ce point, en libérant le code source, mais en faisant
payer toute aide et support. Enfin comme tout autre CMS, dotCMS présente certains
inconvénients parmi lesquels nous citons :
– La structure en 3 colonnes immuables.
– La rigidité des thèmes (ou templates) téléchargeables gratuitement et qui
nécessitent de conserver un lien visible sur le site développeé vers le site de leur
concepteur, et la création de nouveaux thèmes même si elle est possible parfois elle
sera coûteuse.
– L’uniformité de la diffusion de l’information donne des sites semblables.
– Les CMS sont un peu des usines à gaz puisqu’ils cachent les détails concrêts de
réalisation.
– La scalabilité n’est pas toujours assurée.
– Les risques de sécurité venant du fait que tout le monde connaı̂t le code source du
site et peut engendrer d’éventuels risques de sécurité et des vulnérabilités.
– Les modules complémentaires, souvent développés par des tiers et mis à la disposi-
tion de la communauté des utilisateurs du CMS, peuvent être source d’instabilité
du site.
Conclusion
Dans ce chapitre nous avons pu dégager et étudier les différents concepts surlesquels se
base la FOAD. Le chapitre suivant aura pour but de décortiquer les besoins fonctionnels
et non fonctionnels que notre application doit satisfaire.
CHAPITRE
3 Analyse et spécification
des besoins
Dans ce chapitre, nous commençons par définir notre processus de développement ainsi
que standard de modélisation adopté. Nous détaillons ensuite les besoins fonctionnels et
non fonctionnels du système. Enfin, nous proposons quelque diagrammes expliquant les
aspects statiques et dynamiques de l’application.
C’est dans ce contexte que s’inscrivent les méthodes agiles de développement visant à
réduire le cycle de vie en adoptant une approche itérative basé sur l’écoute continue du
client. Les méthodes agiles sont conçues pour s’adapter au changement, en assurant un
plan macroscopique précis et adaptatif.
24 CHAPITRE 3. ANALYSE ET SPÉCIFICATION DES BESOINS
XP 4 : eXtreme Programming.
UML est un langage de modélisation unifié standardisé par l’OMG. C’est un langage
d’analyse et de conception orientée objet. Il couvre l’aspect statique et dynamique d’un
système selon ses différents diagrammes. Son but est de spécifier, visualiser, construire,
et documenter les systèmes informatiques. Pour cela, il définit des diagrammes qui sont
subdivisés en des vues statiques (qui représentent ”physiquement” le système à modéliser
au moyen de diagrammes d’objets, de classes, de cas d’utilisation, etc.) et des vues dyna-
26 CHAPITRE 3. ANALYSE ET SPÉCIFICATION DES BESOINS
Cette application vise tous les employés de la société Laceramic, du simple ouvrier
jusqu’au cadre, dirigeant et directeur. Après avoir identifié les objectifs généraux de UVL
, nous avons pu dégager les acteurs qui vont interagir avec l’application. En effet ils sont
en nombre de deux à savoir : l’administrateur et les apprenants.
– L’administrateur : c’est le gérant du système qui a tous les privilèges et qui a la
responsabilité de la gestion des formations et de la mise en ligne des différents sup-
ports. Ce super utilisateur contribue en outre à l’enrichissement de la bibliothèque
virtuelle en déposant différents types de supports utiles pour les formations à court
et à long terme (articles, images, vidéos . . .) Par ailleurs, il est chargé de diriger les
utilisateurs à savoir la définition du cursus approprié à chaque membre.
– L’apprenant : c’est l’acteur principal sur lequel est basé tout le processus de for-
mation à distance. Il possède un espace privé depuis lequel il a accès aux diverses
activités d’apprentissage et aux ressources nécessaires qui lui permettent de mener
à bien sa formation.
3.4. ANALYSE DES BESOINS FONCTIONNELS 27
L’analyse des besoins fonctionnels consiste à définir d’une manière complète les diverses
fonctions de l’application à réaliser, ainsi que les informations manipulées. Il s’agit de
traduire les besoins du client en fonctionnalités du système à concevoir.
Nous proposons dans ce travail de réaliser une plateforme E-Learning se reposant sur
trois axes complémentaires à savoir :
Les solutions du E-Learning doivent miser, en outre, sur l’interaction pour susciter
l’attention des participants tout en assurant leur fiabilité, leur pertinence, leur portabilité
ainsi que leur maintenabilité.
Les besoins non fonctionnels décrivent toutes les contraintes aux quelles est soumis le
système pour son bon fonctionnement.
pratique afin que l’utilisateur puisse l’exploiter sans se référer à des connaissances
particulières. En d’autres termes, les informations doivent être lisibles et faciles à
accéder par n’importe quel utilisateur.
Besoin de sécurité : différents niveaux d’accès possibles au système pour les diverses
catégories d’utilisateurs du système. Ce besoin est assuré via une authentification.
Par ailleurs, le système doit garantir l’intégrité des données de la plateforme quels
que soientt leurs types.
Afin de bien veiller sur le bon fonctionnement de la plateforme et son intégrité, celle-ci
nécessite un utilisateur ayant plus de privilèges pour la gérer correctement. Cet utilisateur
est nomé ”‘administrateur”’. La figure 3.3 montre les tâches dont l’administrateur en est
responsable.
cheminement de flots de contrôle et de flots de données (les workflows). Ils permettent ainsi
de représenter graphiquement le comportement d’une méthode ou le déroulement d’un cas
d’utilisation. Par ailleurs, ils peuvent comporter des synchronisations pour représenter
les déroulements parallèles. La notion de couloir d’activité décrit les responsabilités en
répartissant les activités entre les différents acteurs opérationnels.
Conclusion
Dans cette partie, nous avons cerné les objectifs du système cible. Ces objectifs doivent
tenir comptes des exigences citées. Cette phase va nous permettre de bien élaborer le
modèle de conception de l’application qui sera le sujet du chapitre suivant.
CHAPITRE
4 Conception
Dans ce présent chapitre nous entamerons une partie cruciale du développement logiciel
et qui constitue un pont entre la spécification et la réalisation. Elle comporte la conception
de l’application ainsi que la conception de la base de données.
Dans cette section, nous donnerons un aperçu sur l’architecture globale de l’ap-
plication, ensuite nous allons explorer l’ensemble de composants de l’application à
réaliser. En fait, l’UVL est une plateforme qui se base essentiellement sur trois modules
complémentaires, à savoir, le module d’apprentissage, le module d’évaluation ainsi que le
module de collaboration.
L’architecture multi-tier est mise en œuvre dans notre application afin de bien séparer
tous ses niveaux et nous offrir la possibilité d’utilisation des composants graphiques riches
pour le niveau présentation. Cette approche ne divise pas l’application en un nombre
indéterminé de niveaux de service comme le fait penser son appellation, mais plutôt elle
la décompose en trois couches de services subdivisées elles-même en multiple services.
36 CHAPITRE 4. CONCEPTION
Une formation est généralement décomposée en des sous formations afin de définir
des différents niveaux de compétences et pour rendre plus performant le suivi de
l’évolution de la formation.
Les apprenants ont besoin, sans doute, de supports de formation dans lesquels ils
trouvent toutes les informations nécessaires pour acquérir des compétences en premier
lieu, et pour réussir l’évaluation en second lieu. Dans l’UVL les utilisateurs peuvent
trouver l’information dans deux emplacements différents : au sein du module de
formation et dans la bibliothèque virtuelle mise pour la raison.
Le paquetage ”Evaluation” : ce module est basé sur les questionnaires à choix mul-
tiples (QCM) générés aléatoirement et sans reprise avec un temps de réponse bien
déterminé et à ne pas dépasser. La plateforme offre trois chances à l’apprenant de
passer un QCM pour la même formation.
les délais sont bien respectés, un nouveau test se crée déclenchant un générateur de QCM
qui provoque la sélection de questions aléatoires et l’internaute est chargé d’y répondre
pendant une durée qui lui est permise. Le système vérifie alors la validité des réponses
40 CHAPITRE 4. CONCEPTION
et lui affiche le résultat et la correction. Deux cas de figures peuvent avoir lieu : soit un
échec causant la perte de jetons de l’utilisateur, soit un succès et le système met à jour le
score de l’apprenant et lui propose la formation suivante dans son cursus.
Suppresion de formation
Le diagramme de séquence présenté par la figure 4.4 explique comment doit procéder
un administrateur afin de supprimer une formation. Cette dernière peut être un module
ou un sous module. Notre acteur, ayant les permissions nécessaires pour accéder à l’admi-
nistration des modules doit sélectionner la formation à supprimer, le système lui demande
alors de confirmer sa demande.
Une fois effectuée, le système met à jour un par un les cursus des apprenants dont la
formation choisie en fait partie (et ceci en réglant les ordres respectifs des autres formations
avant de supprimer le module sélectionné du cursus). Les apprenants concernés seront alors
4.2. CONCEPTION DÉTAILLÉE 41
notifiés par ces changements. Par la suite le système se charge de supprimer la formation
sélectionnée tout en l’indiquant à l’administrateur.
Il s’agit d’une vue statique car il ne tient pas compte du facteur temporel dans le
comportement du système. Le diagramme de classes modélise les concepts du domaine
d’application ainsi que les concepts internes créés de toutes pièces dans le cadre de
l’implémentation d’une application.
La figure 4.6 illustre les différentes classes conçues pour la réalisation du paquetage
Utilisateurs. La classe Apprenant représente un apprenant de la plateforme. Elle contient
toutes les informations de ce dernier ainsi que les méthodes permettant sa bonne gestion.
De cette classe hérite la classe Administrateur qui représente un utilisateur ayant les
privilèges de gestion de la plateforme.
4.2. CONCEPTION DÉTAILLÉE 43
Les formations dans l’UVL sont organisées en modules se composant eux même d’un
nombre de sous modules. Chaque utilisateur a son propre cursus, représenté par la classe
Cursus, qui est l’agrégation ordonnée d’un ensemble de formations obligatoires, classe
SousModule du diagramme.
Les formations sont enrichies par des différents supports permettant aux appre-
nants d’acquérir certaines connaissances. Cette richesse vient du fait que la plate-forme
propose plusieurs types de supports (PDF, présentation PPT, Flash, livres interactifs,
vidéos)représentés par la classe Support élément du paquetage Bibliothèque et utlisée
par le paquetage Formation. Ces différentes classes et relations sont illustrées dans la
figure 4.7.
Dans les délais de chaque formation, les apprenants doivent s’évaluer, et ce, à travers
un QCM (classe QCM dans le diagramme) comportant un ensemble de questions générées
automatiquement à partir de la classe CatalogQCM qui contient toutes les questions
en relation avec la formation en cours. Afin d’éviter les répétitions des questions pour un
même apprenant nous avons eu recours à la classe QCMPassé pour sauvegarder toutes
les évaluations des utilisateurs. La figure 4.8 montre comment ces classes sont organisées
au sein du paquetage Evaluation.
ministrateur par mail. Les différentes formes de collaboration sont données par la figure
4.9.
A ce niveau de l’application et tout en tenant compte des besoins déjà spécifiés, nous
avons envisagé un certain nombre de tables pour le stockage des données nécessaires pour
la bonne gestion de la plateforme.
Les tables conçues et les relations qui les inter-relient sont données par les figures 4.10
et 4.11.
46 CHAPITRE 4. CONCEPTION
Conclusion
Dans ce chapitre nous avons déterminé les différents objets de l’application contri-
buants à assurer les fonctionnalités souhaitées par ses utilisateurs.
Cette phase était alors une préparation à la phase de codage qui constituera l’objet
du chapitre suivant.
CHAPITRE
5 Réalisation
Entreprise Architect
Enterprise Architect (EA) est un Atelier de Génie Logiciel (AGL) s’appuyant sur le
langage de modélisation unifié UML 2.1, langage qui constitue un moyen efficace pour
recenser, structurer et formaliser les besoins recueillis par l’Analyste.
Netbeans
SQL Server 2005 est le premier produit Microsoft pour la gestion des bases de données
relationnelles. Il est considéré comme le ”Big brother” de Microsoft Access, mais il vise
des bases de données d’entreprises plus sérieuses. SQL Server 2005 se base sur le langage
Transact-SQL pour la manipulation des données.
Le framework JSF
JSF ou Java Server Faces est un framework java pour le développement de clients
riches pour les applications web. JSF est basé sur la notion de composants, il reprend le
modèle d’autres frameworks pour l’IHM tel que Swing ou SWT où l’état d’un composant
est enregistré lors du rendu de la page pour être ensuite restauré au retour de la requête.
JSF met en œuvre le modèle MVC basé sur une seule servlet nommée Faces Servlet faisant
office de contrôleur et des pages JSF pour l’IHM. L’application de ce modèle permet la
séparation du mode web en trois parties distinctes : le modèle, la vue et le contrôleur.
L’architecture de JSF est donnée par la figure 5.1.
Le framework Hibernate
l’interrogation de la base de données appelé HQL 2 et qui fournit une couche d’abstrac-
tion SQL. Hibernate vient se positionner entre la couche métier de l’application et les
données auxquelles elle a besoin comme représenté dans la figure 5.2.
La page d’authentification des utilisateurs, représentée par la figure 5.4, est le point
d’entrée à la plate-forme. A travers son login et son mot de passe, l’utilisateur est identifié
par le système. En fait, il peut être soit un apprenant qui veut accéder pour se former
et s’évaluer, soit un administrateur voulant exécuter des tâches de gestion dans la plate-
forme.
Après avoir été reconnu par le système, l’apprenant se trouve dans la page d’accueil
qui lui propose de continuer la formation en cours s’il y en a une ou de s’inscrire dans la
formation suivante de son cursus sinon. La figure 5.5 illustre cette page.
Les utilisateurs sont invités à un QCM pour valider leurs connaissances acquises durant
la formation. L’interface de cette évaluation est donnée par la figure 5.7. Le test contient
cinq questions à deux, trois ou qutre propositions et l’apprennant doit l’y répondre et
valider sa réponse avant l’écoulement des dix secondes allouées.
54 CHAPITRE 5. RÉALISATION
Participation au forum
A l’aide d’un forum, l’apprenant peut communiquer avec d’autres utilisateurs afin de
poser des questions ou de répondre à d’autres posées par d’autres apprenants.
5.2. TRAVAIL RÉALISÉ 57
dules, des QCMs, des divers supports de cours. Par ailleurs l’administrateur peut accéder
aux différents rubriques du site tel que le forum et la bibliothèque.
Accueil de l’administrateur
La figure 5.10 montre l’interface de modification des modules. Cette interface inclue
la modification des divers champs relatifs à ce module. Par ailleurs, un administrateur a
la possibilité d’ajouter un sous module, changer les données concernant ce dernier tel que
la durée de formation . . .Il peut éventuellement supprimer un sous module.
L’ajout d’un document électronique est une tâche aussi simple. Tout d’abord, l’admi-
nistrateur doit choisir le module et le sous module auxquels est lié le support de formation.
Une fois choisi, le système se charge automatiquement d’extraire le nom, le type du fichier
et sa taille afin de les insérer dans la base de données. La figure 5.11 montre l’interface
à partir laquelle l’administrateur peut ajouter un document à une formation.
60 CHAPITRE 5. RÉALISATION
La figure 5.12 illustre l’interface d’ajout d’un utilisateur. Cette dernière demande le
remplissage ses coordonnées relatives. L’administrateur est alors sollicité de recenser les
formations qui lui sont obligatoires. Dès qu’il commence le système met à jour le cursus
de formation et l’affiche au fur et à mesure que l’administrateur le définit.
5.3. CHRONOGRAMME 61
5.3 Chronogramme
Il est nécessaire de tracer un diagramme qui décrit la répartition temporelle des tâches
du travail durant deux mois afin de montrer les différentes phases par lesquelles notre
projet a passé.
Conclusion
Dans cet ultime chapitre nous avons présenté l’environnement de la mise en œuvre de
notre application. Nous avons présenté aussi le travail réalisé à l’aide de quelques captures
d’écran.
CHAPITRE
6 Conclusion et
perspectives
Au terme de ce rapport nous rappelons les objectifs du stage et les différentes étapes
par lesquelles l’application a passé pour aboutir à son état actuel.
Nous avons commencé par une mise en contexte à travers une introduction et une
présentation générales. Ensuite une étude théorique a été effectuée afin de nous permettre
de bien définir les concepts théoriques en relation avec le domaine de l’apprentissage à
distance. La partie suivante a mis en relief les besoins spécifiques de LACERAMIC qui
l’ont fait penser à une solution de formation à distance. La conception est venu ensuite
pour traduire les spécifications recensées en un modèle logique présentant l’architecture
générale de l’application. La réalisation, où nous avons transformé le modèle théorique en
un système fonctionnel, a constitué la clôture du rapport.
dement des employés de Laceramic SA travaillant sur son système d’information. C’est
alors que dans cet esprit qu’en perspective notre application peut être perfectionner en
la migrant vers un portail d’apprentissage à distance sans oublier bien évidemment de lui
ajouter d’autres formes de collaboration comme un tableau blanc ou un wiki.
Bibliographie
[1] Olivier Debas, Christine Deffaix Rémy Applications Web Java Servlets et JSP,2004
[3] Giulio zambon Begining JSP, JSF and Tomcat web devloppement.Apress 2007
[4] Eric Sarrion. UML 2 pour la pratique .4ème édition, Septembre 2005
[5] G. Booch, J. Rumbaugh, I. Jacobson. The Unified Modeling Language User Guide
.WESLEY, 1999
[6] Som Naidu. E-Learning – A Guidebook of Principles, Procedures and Practices .se-
cond Revised Edition, CEMCA, 2006
[7] Terry Anderson. Theory and Practice of Online Learning .AU Press, 2008
Netographie
AJAX :
GNU :
GPL :
MVC : Model-View-Controller
PPT : PowerPoinT
SA : Société Anonyme
SWT :
XP : Extreme Programming
ANNEXE
A Le standard J2EE
J2EE signifie signifie Java 2 Entreprise Edition et repose donc sur Java, le fameux
langage objet conçu pour être ”portable” (”Write Once, Run Anywhere”).
J2EE a pour but de crédibiliser le statut de Java en tant que plateforme pour la
programmation en entreprise.
Architecture système
Pour simplifier, on peut dire que, dans ce type d’architecture, les traitements sont sur
le client et la base de données est sur le serveur. Le plus gros problème est celui de la
maintenance : La moindre modification oblige à mettre à niveau chaque poste client. De
plus les performances de l’application sont pour beaucoup en fonction des ressources des
clients.
Le niveau métier contient le code appelé (via le niveau présentation) par l’utilisateur
pour extraire et traiter les données de la troisième couche. Cette séparation en couches
améliore la souplesse de l’application. Il devient facile de déployer de nombreuses interfaces
utilisateur sans devoir modifier la logique applicative.
Architecture à n niveaux
– Interface utilisateur ou vue : Couche chargée de gérer les interactions entre l’utilisa-
teur et l’application (Application de bureau, navigateur WAP, Browser Internet. . .)
– Logique de présentation ou contrôleur : Elle permet de définir ce que doit afficher
l’interface utilisateur et la manière dont les requêtes doivent être traitées.
– Logique métier : Modélise les règles métiers de l’entreprise.
– Service d’infrastructure ou classes d’accès aux données : Fonctionnalités fournies
aux composants (connexions, transactions. . .).
68 ANNEXE A. LE STANDARD J2EE
La plateforme J2EE
En fait, J2EE est une norme qui va spécifier à la fois l’infrastructure de gestion de vos
applications et les API des services utilisées pour concevoir ces applications. La plateforme
J2EE est essentiellement un environnement fournissant :
– Une infrastructure d’exécution pour faire tourner les applications.
– Un ensemble de services accessibles via l’API J2EE pour vous aider à concevoir les
applications.
– JMS : Java Messaging Service est à la fois une ossature et une API permettant
aux développeurs de construire des applications professionnelles qui se servent de
messages pour transmettre des données.
– JTA : La spécification JTA (Java Transaction API) définit des interfaces standards
entre un gestionnaire de transactions et les éléments impliqués dans celles-ci : L’ap-
plication, le gestionnaire de ressources et le serveur.
– EJB : Chaque instance d’un EJB se construit dans conteneur EJB, un environnement
d’exécution fournissant des services (Sécurité, Communications, Cycle de vie...). Un
client n’accède JAMAIS directement à un composant. Il doit pour cela passer par une
interface locale et une interface distance. L’interface locale décrit le cycle d’existence
du composant en définissant des méthodes permettant de le trouver, de le créer, de
le détruire. Et L’interface distante spécifie les méthodes que ce composant présente
au monde extérieur.
Une application J2EE commence par la création de composants J2EE. Ces composants
sont ensuite regroupés en modules auquel on associe des descripteurs de déploiement. Ces
modules J2EE peuvent ensuite être déployés comme application à part entière ou être as-
semblés avec un descripteur de déploiements J2EE et être déployés en tant qu’application
J2EE. ( voir la spécification de sun au format PDF )
Durant cette phase, nous modélisons les règles métiers sous la forme de composants
applicatifs. Ces composants applicatifs seront groupés selon leur type ( Web, EJB.. )
avec un descripteur de déploiement pour donner un module J2EE. Ces modules J2EE
composeront l’application J2EE.
Assemblage de l’application
Une application J2EE peut être constituée d’un ou plusieurs module J2EE et un
descripteur d’application J2EE. L’application J2EE est packagée dans un fichier ayant
l’extension .ear ( Entrerpise Archive ).
Déploiement
B Le framework JSF
JSF - ou JavaServer Faces - est une spécification Sun pour le développement d’inter-
faces utilisateur enrichies pour les applications Web.
Un des principaux avantages de JSF, c’est qu’il est à la fois un standard de Java Web
user-interface et un framework qui suit fermement le Modèle-Vue-Contrôleur (MVC) de-
sign pattern. Cela fait que les applications JSF sont beaucoup plus gérables car le code
d’interface utilisateur (Vue) est nettement séparé des données et de la logique métier
(modèle). Afin de préparer le contexte JSF, qui fournit l’accès des données aux pages,
et pour protéger contre les accès non autorisés ou impropres des pages, toutes les inter-
actions de l’utilisateur avec l’application sont traitées par un front-end ”Faces” Servlet
(Contrôleur).
FacesServlet est l’élément contrôleur dans le framework JSF à travers lequel toutes les
demandes des utilisateurs vont passer. FacesServlet examine les demandes et les appels
des différentes actions sur le modèle utilisant les managed beans. Les Managed beans sont
un exemple du modèle. Les composants de JSF User Interface (UI) représentent la couche
vue.
Le contrôleur Faces servlet sert comme un lien entre l’utilisateur et l’application JSF.
Il fonctionne dans le cadre d’un du cycle de vie de JSF bien défini qui décrit l’ensemble du
flux d’événements entre les requêtes des utilisateurs. Par exemple, lors d’une initialisation
d’une application JSF, le contrôleur Faces Servlet gère la requête par préparation du
contexte JSF, qui présente un objet Java détenant toutes les données d’application. Le
72 ANNEXE B. LE FRAMEWORK JSF
Le point fort de JavaServer Faces réside dans son modèle de composants User-
Interface(UI), où les applications sont simplement construites à partir de collections de
composants qui peuvent se présenter de diverses manières pour plusieurs types de clients.
Vaguement semblable à d’autres technologies propriétaires tels ASP.Net, la technologie
de composants UI propose une productivité illimitée permettant aux développeurs de
construire des interfaces Web utilisant des composants pré-construit plutôt que d’avoir
à construire l’interface utilisateur entièrement à partir de zéro. Les composants JSF UI
prennet de nombreuses formes et peuvent être aussi simple qu’un outputLabel (compsant
qui affiche du simple texte) ou aussi complexe qu’un DataTable (composant qui peut
représenter un tableau de données à partir de collections de données telles que la table
d’une base de données.
C DAO et Hibernate
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.
Le choix d’une architecture multi-tiers pour les diverses applications, où la séparation
entre couches est mise en relief, est en train de plus en plus s’accentuer. Ces couches
devant être indépendantes. Dès que les spécifications fonctionnelles de chacune d’entre
elles soient établies, leur développement pourra se faire en parallèle, et la maintenance de
l’application n’en sera que plus aisée.
La couche d’accès aux données (Data Access Layer ou DAL), prend en charge toutes
les interactions entre l’application et la base de données. Si une telle couche n’existait
pas, il sera inévitable de réécrire les mêmes lignes de code à différents endroits de l’appli-
cation. En effet, cette couche prend en compte l’ensemble des interactions possibles avec
la base de données, c’est-à-dire la création, la lecture, la modification ou la suppression
des enregistrements dans chacune des tables de la base de données. Il est commun de
créer une classe pour chaque table existante, et de créer des méthodes possédant autant
de paramètres que la table possède de champs.
74 ANNEXE C. DAO ET HIBERNATE
Quel que soit le système de développement, il est toujours possible d’accéder aux
données relationnelles. L’utilisation des API telles que JDBC, ADO, ADO.Net put servir
à exécuter des requêtes SQL, ou à obtenir des objets représentant des tables et leurs
champs,. . .
Ces outils sont suffisants mais ne permettent jamais à eux seuls une vraie abstraction
de la base de données sous-jacente. Par exemple l’obtention de toutes les commandes
d’un client donné avec une seule ligne de code est impossible. De plus, la suppression
d’un client exige sa suppression manuelle par l’intermédiaire de son adresse, alors qu’elle
pourrait être faite automatiquement.
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 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.
C’est le but des DAO. Ils sont créés pour simplifier au maximum le travail du program-
meur avec le système de données en encapsulant les accès à la base via les frameworks tels
qu’ADO.Net. De plus, les DAO permettent d’accéder à des entités qui sont en relation,
effectuant les jointures en base de données automatiquement.
Limitations
Fonctionnalités : Les DAO n’ont pas pour objectif de gérer des concepts plus com-
plexes tels que les transactions ou la concurrence. De ce fait, la réalisation de la
couche métier restera quand même plus ou moins complexe à réaliser suivant le
modèle de base de données.
Taille des projets : Même s’il existe aujourd’hui de nombreux générateurs de classes
75
DAO qui utilisent des bases de données existantes, leur utilisation pour des projets
volumineux s’avère limitée, car nécessitant des fonctionnalités plus avancées.
Frameworks de persistance
Les frameworks de persistance sont plus que de simples wrappers de tables proposant
l’accès aux champs de celles-ci. Il s’agit en général d’outils permettant de modéliser un
système de données, en UML ou en XML par exemple, et de générer tous les DAO ainsi
que les objets métiers permettant d’exploiter au maximum un système de données.
De plus, ils prennent en charge des concepts avancés comme le cache des objets, la
concurrence, les transactions distribuées, le chargement des données via des requêtes ob-
jets, et peuvent également offrir une totale indépendance vis-à-vis du serveur de bases de
données.
Indépendance : On n’a plus à se soucier des problèmes liés aux bases de données telles
que le mapping, ou les méthodologies d’accès aux différents serveurs de bases de
données.
Modélisation objet : Elle est d’autant plus facile qu’elle est objet, permettant une
meilleure compréhension du système de données grâce à l’UML, et une réutilisation
d’autant plus facile de modèles préexistants.
Concrêtement, Hibernate permet de lier/mapper un objet défini en Java avec une table
dans une base de données, via un fichier déclaratif de mapping. Le système peut s’occuper
de la création des tables en fonction des fichiers de configuration et mettre aussi à jour
les tables si nécessaire lors d’un changement dans l’un des fichiers de configuration.
Hibernate posséde plusieurs moyens pour effectuer des requêtes. Il est possible d’expri-
mer des requêtes en SQL, ou en HQL (language propre à Hibernate) ou encore en critéres
orienté objet.