Академический Документы
Профессиональный Документы
Культура Документы
ALAUZET Pierre
PALUMBO Michael
3. Navigation .............................................................................................................................. 24
Figure 1 : diagramme de cas d'utilisation n°1 - Les actions du visiteur et du client ............................ 6
Figure 2 : diagramme de cas d'utilisation n°2 - le travail de l'administrateur........................................ 7
Figure 3 : diagramme de séquence n°1 - un client souhaite louer un film ............................................... 8
Figure 4 : un administrateur importe un nouveau film dans le système .................................................. 9
Figure 5 : diagramme de classes de lockafilm ................................................................................................... 10
Figure 6 : Modèle Conceptuel de Données de lockafilm ................................................................................ 11
Figure 7 : Partie du MCD initial de lockafilm ..................................................................................................... 12
Figure 8 : Modèle Logique Relationnel ................................................................................................................ 13
Figure 9 : Diagramme de navigabilité .................................................................................................................. 24
Dans le cadre de l'UV IN56, il nous a été confié la réalisation d'un site web avec les
technologies J2EE. Ce projet ayant pour thématique la location de DVD par internet. Le choix des
technologies utilisé est quand à lui libre, tant que les standards J2EE sont respectés.
Nous avons nommé notre site web de location de films par internet lockafilm. Ce
développement propose toutes les fonctions basiques que puisse proposer un site de location de
DVD : affichage d’une vidéothèque classée par genres, inscription et connexion d’utilisateurs,
location de films, visualisation de son compte et de ses locations actuelles, avertissement sur les
tarifs, les dépassements de temps de location, etc.
De plus, nous avons décidé de pousser plus loin notre développement afin d’incorporer
quelques fonctionnalités additionnelles, mais indispensable, telle que l’accès à un panneau
d’administration pour les membres y étant autorisé ou l’on peut notamment gérer les films, les
locations et les clients ou encore l’achat de crédit.
Notre projet se base essentiellement sur le langage Java dans sa variante web, les JSP.
Nous utilisons également des Java Server Faces (JSF) pour la partie administrateur. Du côté de la
base de données, nous avons choisie une base de données MySQL.
Dans ce rapport, nous allons tout d’abord présenter et expliquer les technologies utilisés
pour le développement de lockafilm. Nous traiterons ensuite de sa conception dans un dossier
complet et alimenté de diagramme UML, MDC et MLD. Nous terminerons par une description
détaillée du projet avec un parcours des fonctionnalités, un schéma de navigation et des
explications sur l’implémentation de notre base de données.
Nous avons donc conçu nous même nos classes que nous avons mis en relation avec les
données de notre base de donnée. Nos pages JSP, quant à elle, font le lien entre les données et le
client.
Le JavaServer Pages ou JSP est une technologie basée sur Java qui permet aux
développeurs de générer dynamiquement du code HTML, XML ou tout autre type de page web.
La technologie permet au code Java et à certaines actions prédéfinies d'être ajoutés dans un
contenu statique. Depuis la version 2.0 des spécifications, la syntaxe JSP est complètement XML.
La syntaxe du JSP ajoute des balises XML, appelées actions JSP, qui peuvent être utilisées pour
appeler des fonctions. De plus, la technologie permet la création de bibliothèques de balises JSP
(taglib) qui agissent comme des extensions au HTML ou au XML. Les bibliothèques de balises
offrent une méthode indépendante de la plate-forme pour étendre les fonctionnalités d'un
serveur HTTP.
Nous avons choisi MySQL pour sa gratuité, son appartenance au monde du logiciel libre
et pour sa simplicité. Il nous permet de stocker nos données relatives à l’application. Nous
utilisons les outils annexes proposés par MySQL pour administrer et gérer notre base de
manière indépendante et extérieure au site internet. MySQL Administrator nous permet de
créer la base, la sauvegarder et la restaurer. MySQL Query Browser met à disposition tout les
outils nécessaires au CRUD (Create, Read, Update & Delete).
Afin de coller au plus près de nos choix de départ de gratuité et de logiciel libre, nous
avons décidé de prendre la solution développée par Apache. Nous avons testé GlassFish, mais
5. L’IDE NetBeans
Ce choix d’IDE s’est justifié par l’utilisation des technologies J2EE. En effet, alors
qu’Eclipse convaint parfois plus que Netbeans dans le développement de projets Java, il reste
tout de même l’IDE incontournable et incontesté des solutions J2EE.
1. Description générale
Ce projet propose de réaliser un outil de location de DVD en ligne (accessible via HTTP).
Les acteurs visiteur, client et visiteur vont jouer un rôle dans ce système.
Nous aurons besoin d'une base de données pour stocker les informations relatives au site
internet, tel que les informations des clients, les films, les locations, etc.
Nous aurons donc besoin d'un peu moins qu'une dizaine de tables dans la base de
données. Des classes seront crées dans le système dans le but de faire la relation entre les
données de la base et le site internet.
2. Besoins fonctionnels
Pour chacun de ces cas d'utilisation, nous commenterons brievement leur interêt et leur
Ce cas d'utilisation explique ce que le visiteur est capable de faire sur le site lockafilm.
L'héritage du visiteur au client montre que le client est autorisé à faire les mêmes actions que le
visiteur, mais en possède quelques une supplémentaires.
b. Diagrammes de séquences
Le client, qui souhaite louer un film, nécessite tout d'abord de s'authentifier. En passant par l'interface, il recherche à travers les
films que lui propose le site, décide d'en choisir un et de le louer. Pour cela, il devra déjà recharger son compte pour pouvoir payer.
L'administrateur, comme expliquer auparavant, est en mesure d'accéder aux données du système. Ici, on s'intéresse au cas du
l'enregistrement d'un nouveau film dans la base de données de site lockafilm.
Le diagramme de classe de lockafilm vous est présenté ci-dessous. Dans notre système,
un client peut louer un ou plusieurs films, faisant chacun partie d'une catégorie. Chaque film est
tourné par 1 réalisateur et 0, 1 ou plusieurs acteurs jouent dedans.
Nous avons choisi de simplifier la partie de la location entre un client et un film. Une
première conception nous avait amené à créer une fiche de location, une table d'exemplaires des
films ainsi que de proposer plusieurs types de locations (DVD, VHS, BlueRay, etc.). Voici une
partie de notre MCD initial :
Le MLR nous amène enfin à la base de données qui a été créée pour le site web lockafilm.
Nous utilisons 7 tables interconnectées. Le film est créé grâce aux tables FILM, REALISATEUR et
ACTEUR. On stocke les locations de films des clients grâce à la table LOUER.
1. Description générale
Ce site internet ressemble de très près à ses concurrents, avec notamment une
vidéothèque classée par genres, qui affiche pour chaque film la jaquette, une description
détaillée et quelques informations sur les acteurs, le réalisateur, la durée, etc.
Malgré cela, nous avons pensé et organiser notre site de façon à faire apparaître quelques
fonctionnalités non indispensable mais très utile. Lockafilm propose donc de multiples
fonctionnalités :
Visualisation de la vidéothèque
Enregistrement et authentification de membres
Location de films en fonction du crédit disponible
Mise à jour du crédit après chaque film loué
Affichage des films en cours de location avec date de retour prévu
Visualiser son crédit et en acheter
Marquer les films loués comme rendu
Recherche de films par critères (genre de film)
Affichage du nombre d’exemplaire disponible
Affichage des dernières nouveautés
Visualiser et modifier ses informations personnelles
Affichage des dates de fin de location
Rappels sur les retards de films à rendre
Décompte de crédit supplémentaire par jour de retard de remise de film
Panneau d'administration
a. L’interface visiteur
Page d'accueil
La page d'accueil permet au visiteur d'être mis dans l'ambiance du site lockafilm. Dès le
début, nous lui proposons quelques fonctionnalités intuitives que sont le panneau nouveautés
(à droite - généré en Javascript qui prend les 6 derniers films introduits dans la base de
données) ou il peut parcourir les nouvelles affiches et être redirigé directement sur la page du
film sur lequel il aura cliqué. On lui propose également un bref aperçu du nombre de films
actuellement disponible sur la barre du haut.
Espace membre
b. L’interface client
Mon Compte
Mon compte permet au client de visualiser ses informations : ses films actuellement
loués, son actuel crédit ainsi que ses informations personnelles. Il peut ici voir si certaines
N'oublions pas la barre supérieure qui a changée : elle permet maintenant d'apporter au
client un bref résumé sur le nombre de films qu'il loue et sur les crédits qu'il lui reste.
Vidéothèque
La vidéothèque est la même que dans la partie visiteur, hormis le fait qu'il peut ici
effectuer des actions tel que louer, rendre ou acheter du crédit.
Lorsque le client clique sur Rendre ou Louer un film, nous lui affichons une page qui
résume son choix, le redirigeant sur sa page d'accueil au bout de 10 secondes (balise méta).
L'exemple ci-dessous est une page de confirmation du rendu d'un film. Nous pouvons
voir que le client a rendu son film en retard, de 15 jours. Nous avons prévu de lui décompter 2
crédits de plus par jour de retard dans la remise d'un film.
Le client est notifié durant sa navigation sur le site s'il n'a pas rendu un film dans les
temps par une petite boite d'information affichée durant 7 secondes sur la partie supérieure
gauche de son écran (Javasript) :
c. L’interface administrateur
L’interface administrateur doit être utile, intuitive et viable. Elle doit permette une vue
complète du système de données, c'est-à-dire les tables et leurs informations. De plus, elle va
donner la possibilité à l’administrateur de créer, éditer et supprimer des données de
l’application. En effet, il a accès à chaque table de la base, sur lesquelles il peut faire l’opération
qu’il souhaite.
Visualisation d'informations :
Lorsque que l'on veut accéder plus en détail aux informations de chaque tuple, le bouton
Show nous permet de voir toutes les relations de notre tuple avec les autres tables. Prenons
Nous permettons également la création ou l'édition de tuple. Basé sur le même modèle de
relation entres les tables, vu précédement, nous sommes capable de proposer à l'administrateur
de créer ou éditer ses données directement en fonction des autres tables. Voici l'exemple de la
création d'un réalisateur, ou l'on peut d'hors et déjà séléctionner les films (affichés par noms)
qu'il a réalisé :
Nous allons proposer ici un diagramme de navigabilité afin de montrer le processus de navigation entre nos pages JSP :
S'enregistrer
index.jsp registration.jsp credit.jsp
Redirection Redirection
videoLibrary.js login.jsp homepage.jsp
p
Si authentifié
Rendre film
Louer film Accéder au
panneau
Rendre film admin
Louer film
Cette partie est très intéressante car elle montre comment nous avons appris à nous connecter à
la base de données :
Nous avons utilisés des PrepareStatements et des ResultSet afin de récuperer nos
données. Les PrepareStatements sont plus propres que les Statements car ils permettent de
préparer nos requêtes sans avoir à les exécuter quand cela n'est pas nécessaire.
Ce projet de construction d'un site internet à l'aide des technologies J2EE a été très
formateur et nous a immergés dans le monde du web par Sun ! Il nous a permis d’avoir une
première expérience avec le J2EE, et de découvrir ce domaine.
Nous pensons avoir aboutis à une solution fiable, utile et ergonomique qu'est lockafilm.
Nous pensons avoir amené un site internet de qualité autant au niveau de l'interface que des
fonctionnalités apportées. Nous avons respecté les requêtes de départ, que nous avons étoffé
avec nos propres idées.
Grâce à une partie administrateur complète, on peut en effet facilement interagir avec la
base de données en ajoutant et modifiant l’ensemble des informations. L’interface que nous
avons proposée colle au besoin des utilisateurs des sites actuels.
Certes, nous n'avons utilisés aucun Framework comme Struts ou Hibernate, mais nous
avons appris nous même à créer nos classes relatives avec nos tables et a jouer avec leurs
données. Ayant compris le principe général des JSP et d'un projet J2EE, nous pourrons
dorénavant utiliser ces Framework sans être perdu. De plus, la partie administrateur nous a
introduits à l'utilisation des JSF.