Académique Documents
Professionnel Documents
Culture Documents
Projet Midihaou
Projet Base de données XML sur le net proposé par Jean-Luc Massat
1/29
Table des matières
1 Diagramme de cas d'utilisation.........................................................................................................3
1.1 Utilisateur non authentifié........................................................................................................ 3
1.2 Utilisateur authentifié............................................................................................................... 4
1.3 Gestionnaire de collection........................................................................................................ 5
1.4 Administrateur.......................................................................................................................... 6
2 Diagramme de séquence...................................................................................................................7
2.1 Authentification........................................................................................................................ 7
2.2 Création de document............................................................................................................... 8
2.3 Validation des documents......................................................................................................... 9
2.4 Génération de CSS..................................................................................................................10
3 Diagramme états-transitions........................................................................................................... 11
3.1 Démarrage et arrêt de l'application......................................................................................... 11
3.2 Requête d'affichage des documents........................................................................................ 11
3.3 Requête de modification de document....................................................................................12
3.4 Création d'un schéma..............................................................................................................13
3.5 Requête de demande............................................................................................................... 14
3.6 Validation de l'ensemble des documents.................................................................................15
3.7 Publication.............................................................................................................................. 16
3.8 Génération de CSS.................................................................................................................17
4 Diagramme de navigation...............................................................................................................18
4.1 Navigation utilisateur..............................................................................................................18
4.2 Navigation gestionnaire de collection.....................................................................................19
4.3 Navigation administrateur.......................................................................................................19
5 Diagramme de classe......................................................................................................................20
5.1 Beans persistés........................................................................................................................20
5.2 La couche de stockage (DAO)................................................................................................21
5.3 La couche métier (business)................................................................................................... 22
5.3.1 Manipulation des données...............................................................................................22
5.3.2 Publication des documents..............................................................................................25
5.3.3 Validation des documents................................................................................................25
5.4 Couche vue (View) + Couche Contrôleur (Control)..............................................................26
5.5 Architecture générale.............................................................................................................. 27
5.6 Architecture View/Control......................................................................................................28
6 Diagramme de déploiement............................................................................................................29
7 Génération du code.........................................................................................................................29
2/29
1 Diagramme de cas d'utilisation
Les cas d'utilisation permettent de structurer les besoins des utilisateurs et les objectifs
correspondants d'un système.
Ils identifient les utilisateurs du système (acteurs) et leur interaction avec le système.
Dans notre application, nous avons définis plusieurs types d'utilisateurs qui ont des droits et
des fonctionnalités qui leurs sont propres. C'est pourquoi nous avons quatre diagrammes de cas
d'utilisation, un pour chaque type d'utilisateur.
Nous pouvons remarquer que ce type d'utilisateur (non authentifié) a accès à l'application et
peut néanmoins consulter certains documents. Ceux-ci doivent avoir un «status» public.
3/29
1.2 Utilisateur authentifié
Utilisateur authentifié
Pour toute autre action sur un document que la modification du contenu l'utilisateur doit
effectuer une demande soit au gestionnaire de la collection soit à l'administrateur
4/29
1.3 Gestionnaire de collection
Gestionnaire de collection
Le gestionnaire de collection a tous les droits sur les documents de sa collection (création,
suppression, modification) et peut également changer les caractériques de celle-ci.
Il est à noter que le gestionnaire de collection peut «publier la collection», c'est à dire que les
documents sont mis en ligne et donc accessibles par tout le monde.
5/29
1.4 Administrateur
Administrateur
L 'administrateur a tous les droits sur les collections et les documents du CMS. De plus il est
le seul à pouvoir agir sur les schémas.
6/29
2 Diagramme de séquence
Nos diagrammes de séquence reprennent les cas d'utilisations que nous avons jugés judiceux
de représenter ainsi.
2.1 Authentification
Authentification
7/29
2.2 Création de document
Création de document
La création d'un document se fait premièrement par la création d'un document vide et ce
dernier sera rempli par la suite.
8/29
2.3 Validation des documents
La validation de tous les documents est exécutée en parcourant la hiérarchie de notre CMS
de manière récursive. C'est à dire qu'on valide chaque document de chacune des collections de tous
les schémas.
Dès lors que l'application a testé la validité, elle met à jour la donnée du document qui donne
son état de validité.
9/29
2.4 Génération de CSS
Génération de CSS
On change de manière dynamique la feuille de style CSS car chaque modification est
visible au fur et à mesure.
10/29
3 Diagramme états-transitions
Les diagrammes d'états-transitions permettent de décrire les changements d'états d'un objet
ou d'un composant, en réponse aux interactions avec d'autres objets/composants ou avec des
acteurs.
Une transition est déclenchée par un événement. En d'autres termes : c'est l'arrivée d'un événement
qui conditionne la transition.
Notre application étant un serveur web les actions sont déclenchées par des requêtes.
Ce serveur se trouve alors en attente de ses requêtes dès sa mise en service et jusqu'à son
extinction.
11/29
3.3 Requête de modification de document
Lorsqu'un document est modifié l'application vérifie sa validité. A ce moment, dans le cas où
le document est invalide, un message prévient l'utilisateur qui a le choix de sauvegarder malgrés
tout son document ou de revenir à l'état d'édition si il juge nécessaire de rendre son document
valide.
12/29
3.4 Création d'un schéma
13/29
3.5 Requête de demande
Requête de demande
14/29
3.6 Validation de l'ensemble des documents
Lorsqu'un document est invalide un mail est envoyé au propriétaire lui signifiant l'état de
son document ainsi que l'ensemble des incompatibilités avec le schéma. De plus ce document est
ajouté à une liste de documents invalides qui sera retourné à l'administrateur à la fin de cette phase
de validation.
15/29
3.7 Publication
Publication
Cette requête est lancé pas le gestionnaire lorsqu'il veut mettre en ligne l'ensemble des
documents de sa collection. Les pages webs permettant de mettre en forme les documents destinés à
la publication par l'application d'une feuille de style sont générées et déposées sur un serveur HTTP.
16/29
3.8 Génération de CSS
Génération de CSS
Un fichier html est généré à partir du schéma, afin de visualiser le changement des
paramètres de la feuille de style. Ces paramètres sont modifiés grâce à un formulaire.
Lorsque l'utilisateur estime que la mise en page est conforme à ses désirs la feuille de style
est créée ou modifiée.
17/29
4 Diagramme de navigation
Bien que ce diagramme ne fasse pas parti des diagrammes UML de base, nous avons préféré
en réaliser quelques uns. Une application web consiste en de nombreuses pages liées entre elles et
ce diagramme nous a permis de clarifier la navigation et l'interface qui doivent être implémentées.
18/29
4.2 Navigation gestionnaire de collection
19/29
5 Diagramme de classe
Nous avons organisé l'application en quatre couches distinctes plus un ensemble de classes
représentant les données de la base.
Chaque couche inférieure propose des interfaces qui devront être utilisées par la couche
supérieure afin d'introduire une inversion des dépendances et ainsi assurer la bonne séparation des
couches.
Les classes Document et InternalDocument représentent les documents gérés par le CMS.
La propriété content de Document contient les données sous forme XML.
20/29
5.2 La couche de stockage (DAO)
Cette couche regroupe les méthodes spécifiques à la base de données et au framework ORM
utilisé.
21/29
5.3 La couche métier (business)
La couche métier peut être vue comme un distributeur de service. Elle va principalement
faire appel à la couche DAO pour produire et effectuer les traitements sur les structures de données
manipulées par l'application.
Elle est composée de différents packages qui regroupent les classes en fonction des types de
traitements qu'elles proposent.
22/29
23/29
L'interface Auth est destinée à être implémentée par les modules d'authentification externe.
24/29
5.3.2 Publication des documents
Toujours dans l'optique service, cette couche va produire les documents HTML à destination
du front-office.
25/29
5.4 Couche vue (View) + Couche Contrôleur (Control)
La couche vue permet d'effectuer les traitements liés à l'affichage comme la génération des
formulaires dynamiques. Derrière chaque vue on trouve une classe Control qui va intercepter les
actions de la vue pour aiguiller. On se retrouve donc avec un modèle MVC derrière chaque page de
l'application.
26/29
5.5 Architecture générale
27/29
Ce diagramme montre l'empilement des différentes couches et les objets qu'elles utilisent
pour s'interfacer.
28/29
6 Diagramme de déploiement
7 Génération du code
Pour réaliser la majorité des diagrammes nous avons utilisé Poséidon. Nous avons donc
utiliser sa faculté à générer le code java correspondant afin de mettre en place le squelette de
l'application. Ceci nous a aidé dans la répartition des taches au niveau du développement.
Le code directement généré correspondait à nos attentes sauf pour certain type tel que les
tableaux d'objets, les enum et les types DOM4J.
29/29